관계형 데이터 모델 (Relational data model)
동일한 구조(관계)의 관점에서 모든 데이터를 논리적으로 구성
높은 데이터 독립성을 제공
기본 용어
- 관계 (Relation) : 2차원 테이블
- Tuple : 각 행(row)을 나타냄
- Attributes : 각 속성(col)을 나타냄
- Cardinality : 행의 개수
- Degree : 속성(col)의 개수
도메인 (Domain)
- 각 속성(Attributes)에서 나타날 수 있는 모든 값들의 집합
- 도메인은 원자값(더 이상 쪼개질 수 없는 속성)을 가짐
- 프로그래밍 언어의 데이터 유형과 유사함
- 동일한 도메인을 여러 속성에서 사용 가능
- 복합 및 다중 값을 허용하지 않음
Key
- Super key
한 Relation에서 특정 튜플을 고유하게 식별 할 수 있는 한개 이상의 속성들의 집합
튜플을 식별하는데 필요하지 않은 속성을 포함할 수도 있음
모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족시키지 못함
- Candidate key
각 튜플을 식별할 수 있는 최소한의 속성 집합
모든 Relation에는 한개 이상의 후보키가 존재함
둘 이상의 속성으로 구성될 수도 있음(이 경우 복합키(Composite key))
모든 튜플에 대해 유일성, 최소성 만족
- Primary key
후보키들 중에서 선택한 유일한 키
기본키로 지정된 속성은 동일한 값을 중복하여 저장할 수 없음
- Alternate key
기본키를 제외한 나머지 후보키
- Foreign key
Relation 사이의 관계 연결을 나타낼 때 사용
다른 Relation의 기본키를 참조하는 속성
예를 들어 Relation R1, R2가 있을 때 R1이 참조하는 R2의 기본키와 같은 R1의 속성이 외래키