3-2/데이터베이스 이해와 활용

2주차-관계 데이터 모델

Donghun Kang 2024. 10. 2. 16:19
  • 관계 데이터 모델
- 관계 데이터베이스 시스템에 직접 구현될 수 있도록 데이터베이스 구조를 정의하는 방법을 제공
- 장점: 수학적 기초를 가짐/ 사용자에게 단순성 제공
- 릴레이션 조작을 위한 연산인 관계 대수의 지원을 받음
  • 릴레이션(Relation)
- 개체를 표현하기 위한 데이터 구조
- 2차원 테이블로 표현
# 행(Row) = 튜플(Tuple): 개체를 표현, 관련된 데이터 값들의 모임 
# 열(Column) = 애트리뷰트(Attribute): 각 행의 값들의 의미를 해석하는데 사용
- 튜플들의 집합(Set)
데이타베이스는 릴레이션들의 모임

 

EX) 릴레이션 Movie ⭐ ⭐ ⭐ (용어 중요)

  • 릴레이션 스키마
- 하나의 릴레이션 스키마는 하나의 개체 또는 관계성 클래스를 표현
- 개체들을 표현하는데 사용하는 테이블의 구조 정의를 제공
# 내포(intension): 릴레이션의 구조 또는 스키마
- 정적인 성질을 가짐
  • 릴레이션 상태
- 한 시점에 릴레이션 R에 포함되어 있는 튜플(Tuple)들의 집합
# 릴레이션 외연(extension)이라고 정의
- 동적인 성질을 가짐

 

  • 릴레이션의 특징

1. 튜플의 유일성

한 릴레이션에 포함된 튜플들은 모두 상이하다.

 

2. 튜플의 무순서성

한 릴레이션에 포함되어 있는 튜플 사이에는 순서가 없다.

 

3. 애트리뷰트의 무순서성

한 릴레이션을 구성하는 애트리뷰트 사이에는 순서가 없다.

 

4. 애트리뷰트의 원자성

모든 애트리뷰트 값은 원자값(더 이상 분해할 수 없는 원자 값, 처리상의 단위 값)

 

* SQL을 이용한 스키마 생성

=> "create table"문을 중심으로 스키마 정의에 필요한 요소를 기술

 

  • 관계 데이터 모델의 스키마 기반 제약 조건
1. 도메인 제약 조건
2. 애트리뷰트 제약 조건
3. 키 제약 조건
4. 엔터티 무결성 제약 조건
5. 참조 무결성 제약 조건

 

  • 도메인 제약 조건
- 각각의 튜플 내에서 각각의 애트리뷰트 A의 값이 반드시 A의 도메인 dom(A)에 속하는 원자값이어야 한다.

⭐ (CHECK 문법 확인)

c

 

  • 애트리뷰트 제약 조건
- Not Null 제약 조건: 어떤 애트리뷰트에서 Null값이 허용되지 않음.
- Default<값>: 새로운 튜플을 삽입하면 이 애트리뷰트에 디폴트 값이 들어감.

 

# 애트리뷰트가 NULL일 경우

- 각 애트리뷰트에 대한 값을 가지지만, 그 값은 NULL이 될 수 있다.

- NULL의 의미 ⭐

1. 적용되지 않음 (Not Applicable): 애트리뷰트를 적용할 수 없으므로 값을 가져서는 안됨

EX) 결혼하지 않은 사람의 배우자 애트리뷰트

 

2. 기록되지 않음 (Missing): 애트리뷰트 값이 존재하지만 지정되지 않음

EX) 어떤 사람의 몸무게 애트리뷰트

 

3. 알 수 없음 (Unknown): 애트리뷰트 값이 없거나 혹은 적용할 수 없음

EX) 전화번호가 없거나 기록하지 않음

 

  • 키 제약 조건
- 어떠한 두 튜플도 릴레이셔의 모든 애트리뷰트에 대한 같은 애트리뷰트 값들의 조합을 가질 수 없음
- 모든 릴레이션은 적어도 하나의 슈퍼키(모든 애트리뷰트들은 집합)를 갖는다.


- 후보키(candidate key): 일반적으로 릴레이션 스키마는 하나 이상의 키를 가질 수 있음
EX) CAR 렐레이션은 License_numbe와 Engine_serial_number 라는 두개의 후보기를 가짐

- 기본키(primary key): 후보키들 중 하나를 지정 
=> 튜플들을 식별할 수 있는 후보키, 기본키를 구성하는 애트리뷰트들에는 밑줄

- 유일키(unique key): 다른 후보키들을 지정

 

# 키(Key): 릴레이션 R에 대한 키 조건 ⭐
1. 서로 다른 두 튜플은 동일한 키 애트리뷰트 값을 가질 수 없음
2. 키는 최소의 슈퍼키(minimal superkey)이다.

EX) STUDNET 릴레이션

- {Ssn}: 키 

- {Ssn, Name, Age}, {Ssn,Name}, {Ssn,Age}, {Ssn}: 슈퍼키

 

  • 엔티티 무결성 제약 조건 ⭐⭐⭐
- 어떠한 기본키 값도 널 값이 될 수 없다.
(기본 키 값은 한 릴레이션 내의 각 튜플을 식별하는대 사용되는데 기본 키 값이 NULL값이면 식별 X)

 

  • 참조 무결성 제약 조건
- 두 릴레이션 사이에 명시되는 제약 조건, 두 릴레이션의 튜플들 사이의 일관성을 유지하는데 사용
- 반드시 참조되는 튜플이 그 릴레이션 내에 존재해야 함.
=> 외래키가 되기 위해서는 두 릴레이션 스키마 R1과 R2사이의 참조 무결성 제약 조건이 만족되어야 함.

 

# 외래키

 

EX) 

기본: on delete Restricted

 

# 참조 무결성 제약 조건 위반시

1. RESTRICT: 위반을 초래한 연산을 거절

2. CASCADE: 참조하는 튜플이나 값을 연쇄적으로 삭제/ 변경
- On Delete: 참조하는 모든 튜플을 삭제
- On Update: 참조하는 모든 튜플들을 새로운 값으로 변경

3. SET NULL/ SET DEFAULT