만족

[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자리의 문자열은 들어가서는 안된다)



Comments