- 관계 데이터 모델
- 관계 데이터베이스 시스템에 직접 구현될 수 있도록 데이터베이스 구조를 정의하는 방법을 제공
- 장점: 수학적 기초를 가짐/ 사용자에게 단순성 제공
- 릴레이션 조작을 위한 연산인 관계 대수의 지원을 받음
- 릴레이션(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 문법 확인)
- 애트리뷰트 제약 조건
- 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
'3-2 > 데이터베이스 이해와 활용' 카테고리의 다른 글
6주차-SQL과 관계 대수 (0) | 2024.10.20 |
---|---|
4주차-논리적 데이터 모델 (1) | 2024.10.14 |
3주차-데이터 모델 (1) | 2024.10.10 |
1주자-정보 관리와 데이터베이스 시스템 (0) | 2024.09.17 |