만족
[Database] 관계형 데이터베이스 용어 정리 본문
[Database] 관계형 데이터베이스 용어 정리
DataBase/이론 Satisfaction 2021. 4. 25. 19:23
열(column)= 필드(field)= 애트리뷰트(attribute)
=> 애트리뷰트는 관계 데이터 모델에서 사용하는 개념으로 관계형 데이터베이스의 열, 필드와는 약간의 차이점이 있다
행(row)= 레코드(record)= 튜플(tuple)
=> 튜플은 관계 데이터 모델에서 사용하는 개념으로 관계형 데이터베이스의 행, 레코드와는 약간의 차이점이 있다
릴레이션 스키마= 애트리뷰트의 집합(a set of attributes)
릴레이션 인스턴스= 어느 한 시점에서의 튜플의 집합(a set of tuples about specific time)
=> 데이터 추가, 삭제 등으로 인해 튜플 집합은 시간에 따라 변한다
도메인(domain)
도메인은 애트리뷰트(행)이 취할 수 있는 값들의 집합이다.
타입도 도메인으로 볼 수 있으며,
도메인은 단순 도메인(simple domain)과 복합 도메인(composite domain)으로 나누어 볼 수 있다.
단순 도메인은 더 이상 쪼갤 수 없는 원자 값들의 집합이고(정수 등)
복합 도메인은 여러 개의 단순 도메인들이 하나로 묶어진 값들의 집합이다(날짜; 연-월-일)
또한 도메인은 개발자 임의로 추가할 수도 있다.
릴레이션
릴레이션(relation)= 릴레이션 스키마(열 집합) + 릴레이션 인스턴스(행 집합)
=> 릴레이션은 애트리뷰트 도메인의 곱집합(Cartesian Product)의 부분집합이다.
=> 애트리뷰트 도메인의 곱집합은 가능한 모든 튜플 조합을 포함하므로, 튜플 집합은 항상 애트리뷰트 도메인의 부분집합이다.
데이터베이스= 릴레이션의 집합(a set of relations)
차수
릴레이션의 애트리뷰트 갯수= 열 갯수
릴레이션 A와 B의 카테시안 곱의 차수= 릴레이션 A의 차수+ 릴레이션 B의 차수
카디널리티
릴레이션의 튜플 갯수= 행 갯수
릴레이션 A와 B의 카테시안 곱의 카디널리티= 릴레이션 A의 카디널리티* 릴레이션 B의 카디널리티
관계형 데이터 모델 VS 관계형 데이터베이스
차이점
1. 관계형 데이터 모델에서 튜플은 중복될 수 없다.
2. 관계형 데이터 모델에서 튜플은 순서를 갖지 않는다.
3. 관계형 데이터 모델에서 애트리뷰트는 순서를 갖지 않는다.
공통점
1. 애트리뷰트는 단일 값을 갖는다.
키(key)
릴레이션 안에서 각 튜플을 유일하게 식별할 수 있는 애트리뷰트의 집합
=> 어떤 튜플의 집합에서도 동일한 애트리뷰트 값이 존재하지 않는 애트리뷰트
키의 유일성(uniqueness): 특정 애트리뷰트의 집합이 다른 튜플에서 중복되어 나타나지 않는 성질 (ex: {성명, 주민등록번호} 또는 {주민등록번호} 조합은 한국의 전 국민을 모아도 동일하게 나타나지 않는다; 주민등록번호는 실제로 중복되는 경우도 있으나, 이 경우 그렇지 않는다고 가정)
키의 최소성(minimality): 특정 애트리뷰트의 집합에서 어떤 애트리뷰트를 지웠을 때만 유일성이 훼손되는 성질
(ex: {주민등록번호}에서 유일한 애트리뷰트인 주민등록번호 애트리뷰트는 지울 수 없다. 따라서 주민등록번호는 키의 최소성을 만족한다)
키의 종류
후보키(candidate key): 릴레이션 내의 애트리뷰트 집합으로 이루어진 키로, 유일성과 최소성을 모두 만족하는 애트리뷰트듸 집합 (ex: 성명, 주민등록번호 애트리뷰트에서 {주민등록번호}가 후보키이다)
슈퍼키(super key): 릴레이션 내의 애트리뷰트의 집합으로 이루어진 키로, 유일성은 만족하지만 최소성은 만족하지 않는 애트리뷰트의 집합. (ex: 성명, 주민등록번호 애트리뷰트에서 {주민등록번호}, {주민등록번호, 성명}은 슈퍼키를 만족한다)
기본키(primary key): 후보키에서 지정된 하나의 키로, 데이터베이서 설계자가 지정한다. 기본키는 NULL값이 허용되지 않는다. (ex: 성명, 주민등록번호에서 후보키는 {주민등록번호} 하나이므로 기본키는 {주민등록번호}이다)
대체키(alternate key): 후보키에서 기본키를 제외한 나머지 키 (ex: 성명, 주민등록번호에서 후보키는 {주민등록번호}이고 기본키는 {주민등록번호} 이므로 이 경우 대체키는 존재하지 않는다)
외래키(foregin key): 어떤 릴레이션 R1의 애트리뷰트 A1이 릴레이션 R2의 키본 키 애트리뷰트 A2를 참조할 경우, R1의 애트리뷰트 A1은 외래키이다. 외래 키는 참조하는 R1의 애트리뷰트 A1의 도메인은 릴레이션 R2의 기본 키 애트리뷰트 A2의 도메인과 동일하며, A1은 NULL값이 될 수 있지만 A2의 도메인을 위반할 수는 없다
(ex: R1이 {주민등록번호, 휴대폰번호}이고 R2가 {성명, 주민등록번호:기본키}이면서 R1의 주민등록번호는 R2의 주민등록번호(기본키)를 참조하므로 R1의 주민등록번호는 외래키이다; 한 사람이 여러개의 휴대폰 번호를 가질 수 있으므로 R1의 주민등록번호는 유일하지 않다)
무결성 제약(Integrity Constraints)
개체 무결성: 기본 키는 NULL값을 가지거나, 중복된 값을 가질 수 없다
참조 무결성: 외래 키의 값은 참조하려는 릴레이션의 애트리뷰트에 존재하는 값이거나 NULL이여야 한다.
도메인 무결성: 애트리뷰트의 값은 해당 애트리뷰트 도메인 내에 속한 값이여야 한다(ex: 주민등록번호는 항상 13자리여야 하므로, 2자리의 문자열은 들어가서는 안된다)
'DataBase > 이론' 카테고리의 다른 글
[Database] Data Modeling (Crow Foot Notation) (0) | 2021.06.11 |
---|---|
[Database] Data Modeling (Concept & ER Modeling) (0) | 2021.06.11 |
[Database] 관계대수(Relational Algebra): 셀렉트(SELECT), 프로젝션(PROJECTION), 디비전(DIVISION) (0) | 2021.04.25 |
[Database] 관계 대수(Relational Algebra): 집합 연산 (0) | 2021.04.25 |
[Database] 관계대수 (Relational Algebra): 조인(JOIN), 외부 합집합(OUTER UNION) (0) | 2021.04.07 |