🏛️ 관계 데이터 모델 개념 정리
📌 릴레이션(Relation)
- 데이터를 행(Row)과 열(Column) 로 구성된 테이블 형태 로 저장
- 각 속성(Attribute) 은 단일 값 을 가짐
- 속성은 서로 다른 이름 을 가져야 함
- 속성 값은 같은 도메인(Domain) 에 속해야 함
- 속성과 튜플의 순서는 상관없음
- 중복된 튜플(Tuple) 은 허용되지 않음
📌 릴레이션 스키마와 인스턴스
✅ 릴레이션 스키마(Relation Schema)
- 테이블의 구조를 정의하는 틀
- 속성(Attribute) : 테이블의 열
- 도메인(Domain) : 속성이 가질 수 있는 값의 집합
- 차수(Degree) : 속성의 개수
✅ 릴레이션 인스턴스(Relation Instance)
- 테이블에 저장된 실제 데이터
- 튜플(Tuple) : 테이블의 행
- 카디널리티(Cardinality) : 튜플(행)의 개수
📌 관계 데이터 모델(Relational Data Model)
- 데이터를 2차원 테이블 형태(릴레이션) 로 표현
- 릴레이션의 제약조건과 연산(관계 대수) 정의
🛡️ 무결성 제약조건 (Integrity Constraints)
데이터의 일관성 유지 및 중복 최소화를 위한 제약 조건
✅ 키(Key, 식별자)
- 릴레이션에서 특정 튜플을 식별하는 속성(컬럼)
🔹 슈퍼키(Super Key)
🔹 후보키(Candidate Key)
🔹 기본키(Primary Key)
- 후보키 중 대표로 선정된 키
- 중복 ❌ (유일해야 함)
- NULL ❌ (항상 값이 있어야 함)
- 변경 가능성 최소화
🔹 대체키(Alternate Key)
🔹 외래키(Foreign Key)
- 다른 릴레이션의 기본키를 참조하여 관계를 표현
- 기본키와 도메인이 동일 해야 함
- 기본키가 변경되면 참조하는 외래키도 변경됨
- NULL 및 중복 값 허용
- 자기 자신의 기본키를 참조하는 외래키 가능
✅ 무결성 제약조건
🛑 도메인 무결성(Domain Integrity)
- 속성 값은 해당 도메인 범위 내에서만 가져야 함
🛑 개체 무결성(Entity Integrity)
- 기본키는 NULL을 가질 수 없고, 유일해야 함
🛑 참조 무결성(Referential Integrity)
- 자식 릴레이션의 외래키는 부모 릴레이션의 기본키를 참조해야 함
- 부모 릴레이션에 없는 값이 자식 릴레이션에 들어갈 수 없음
- 부모 릴레이션의 기본키 변경 시 자식 릴레이션의 외래키도 변경됨
🔄 관계 대수(Relational Algebra)
- 릴레이션에서 데이터를 추출하기 위한 연산
- 절차적인 언어 → 데이터 검색을 어떻게 수행할지 명시
✅ 순수 관계 연산 (Pure Relational Operations)
| 연산 기호 | 연산명 | 설명 |
|---|
| σ | Selection (셀렉션) | 조건을 만족하는 튜플(행) 추출 |
| π | Projection (프로젝션) | 특정 속성(열)만 추출 |
| ⨝ | Join (조인) | 두 개 이상의 릴레이션을 결합 |
| ∪ | Union (합집합) | 두 릴레이션의 튜플을 모두 포함 (중복 제거) |
| ∩ | Intersection (교집합) | 두 릴레이션에서 공통된 튜플만 추출 |
| - | Difference (차집합) | 한 릴레이션에는 있지만, 다른 릴레이션에는 없는 튜플 |
| × | Cartesian Product (카티션 프로덕트) | 두 릴레이션의 모든 튜플을 곱집합으로 연결 |
📌 정리 및 추가 내용
✔ 릴레이션은 중복된 튜플을 허용하지 않음 (SQL에서는 기본적으로 중복 허용)
✔ 기본키는 중복되면 안 되며, NULL 값을 가질 수 없음
✔ 외래키는 부모 릴레이션의 기본키를 참조하며, NULL을 가질 수 있음
✔ 관계 대수는 관계형 데이터베이스에서 데이터를 처리하는 연산이며, SQL의 기초가 됨
💡 데이터 모델의 핵심은 데이터의 무결성을 유지하고, 관계를 효율적으로 정의하는 것! 🚀