5장, 관계 데이터 모델
릴레이션(relation) ?
하나의 개체에 관한 데이터를 담는 것. 하나의 개체에 관한 데이터를 하나의 릴레이션에 담아 데이터베이스에 저장한다.

속성(attribute) ?
릴레이션의 열, 파일의 필드(field)에 대응하는 개념
튜플(tuple) ?
릴레이션의 행, 개체의 인스턴스, 파일의 레코드(record)에 대응하는 개념
도메인(domain) ?
속성 하나가 가질 수 있는 모든 값의 집합
속성 값으로는 더는 분해할 수 없는 원자 값만 사용할 수 있다.
일반적으로 속성의 특성을 고려한 데이터 타입으로 정의한다.
널(null) 값 ?
특정 튜플의 속성 값을 모르거나, 적합한 값이 없는 경우에는 널(null)이라는 특별한 값을 사용할 수 있다. 널 값은 특정 속성에 해당되는 값이 없음을 나타내므로 숫자 0이나 공백 문자와는 다르다.
차수(degree) ?
하나의 릴레이션에서 속성의 전체 개수. 일반적으로 자주 변하지 않는다는 정적인 특징이 있다.
카디널리티(cardinality) ?
하나의 릴레이션에서 튜플의 전체 개수. 일반적으로 자주 변한다는 동적인 특징이 있다.
릴레이션 스키마(relation schema)
릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조, 릴레이션 내포(relation intension)
정적인 특징
릴레이션이름(속성이름1, 속성이름2, … 속성이름n)
릴레이션 인스턴스(relation instance)
어느 한 시점에 릴레이션에 존재하는 튜플들의 집합, 릴레이션 외연(relation extension)
동적인 특징

데이터베이스 스키마(database schema)
데이터베이스를 구성하는 릴레이션들의 스키마를 모아 놓은 것
데이터베이스 인스턴스(database instance)
어느 한 시점에서 데이터베이스에 저장된 데이터 내용의 전체 집합

릴레이션의 특징
1. 튜플의 유일성 : 하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
2. 튜플의 무순서 : 하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
3. 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
4. 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다.
키(key)의 종류
- 슈퍼키(super key) : 유일성의 특성을 만족하는 속성 또는 속성들의 집합
▷ 유일성(uniqueness) ? 하나의 릴레이션에서 키로 지정된 속성 값은 튜플마다 달라야 한다는 특성 - 후보키(candidate key) : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
▷ 최소성(minimality) ? 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성
릴레이션의 인스턴스만 보고 유일성과 최소성을 판단해서는 안된다. 현실 세계의 환경까지 염두에 두고 속성의 본래 의미를 정확히 이해한 후 슈퍼키와 후보키를 선별해야 한다. - 기본키(primary key) : 후보키 중 기본적으로 사용할 키
선정 기준
- 널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합하다
- 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다
- 단순한 후보키를 기본키로 선택한다
기본키는 속성 이름에 밑줄을 그어 표시한다. - 대체키(alternate key)
기본키로 선택되지 못한 후보키 - 외래키(foreign key)
어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
기본키를 참조하지만, 널값을 가질 수 있고 같은 값을 가질 수 있다.
무결성 제약조건
무결성(integrity) ? 결함이 없는 상태. 데이터가 정확하고 유효하게 유지되는 상태
무결성 제약조건은 데이터베이스에 저장된 데이터의 무결성을 보장하고, 데이터베이스의 상태를 일관되게 유지하는 것이 목적이다.
개체 무결성 제약조건(entity integrity constraint)
기본키를 구성하는 모든 속성은 널값을 가질 수 없다.
참조 무결성 제약조건(referential integrity constraint)
외래키는 참조할 수 없는 값을 가질 수 없다.
참고자료
'IT Basic > Data' 카테고리의 다른 글
[DB] 무결성(Integrity)과 보안(security) (0) | 2022.01.25 |
---|---|
[DB] 데이터베이스 개론 - 7장 데이터베이스 언어 SQL (0) | 2022.01.23 |
[DB] 데이터 사전(Data Dictionary) (0) | 2022.01.18 |
[DB] 데이터베이스 개론 - 4장 데이터 모델링 (0) | 2022.01.17 |
[DB] 데이터베이스 개론 - 3장 데이터베이스 시스템 (0) | 2022.01.17 |
댓글