가자미의 개발이야기
[데이터베이스] 관계 데이터 모델 본문
1. 관계 데이터 모델의 개념
#릴레이션과 관계
-릴레이션(Relation) : 행과 열로 구성된 테이블. 흔히 아는 표.
-릴레이션 내의 관계(Relationship) : 릴레이션 내 데이터들의 관계. 관련 있는 실제 데이터들의 집합.
-릴레이션 간의 관계 : 한 릴레이션에서 다른 릴레이션으로 식별 가능한 값을 이용해 연결하는 관계
#릴레이션 스키마
-스키마 : 릴레이션의 기본적인 구조를 정의 (첫 가로줄 헤더를 생각)
-속성 : 릴레이션 스키마의 열(헤더 중의 하나를 가르키는 단위)
-도메인 : 속상이 가질 수 있는 값의 집합.
-차수 : 릴레이션이 갖고 있는 속성의 개수
#릴레이션 인스턴스
- 인스턴스 : 정의된 스키마에 따라 테이블에 저장되는 데이터 집합.
- 투플 : 릴레이션의 행
- 카디날리티 : 투플의 수
릴레이션 용어 | 같은 의미로 사용되는 용어 | 파일 시스템 용어 |
릴레이션 | 테이블 | 파일 |
스키마 | 내포(instension) | 헤더 |
인스턴스 | 외연(extension) | 데이터 |
투플 | 행 | 레코드 |
속성(attribute) | 열 | 필드 |
#릴레이션의 특징
- 속성은 단일 값을 가진다.
- 속성은 서로 다른 이름을 가진다.
- 속성의 순서는 상관없다.
- 릴레이션 내의 중복된 투플은 허용하지 않는다.
- 투플의 순서는 상관없다.
2. 키
#키(key)
- 릴레이션에서 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합.
- 키가 되는 속성은 반드시 값이 달라서 투플들을 서로 구별할 수 있어야 한다.
#슈퍼키
- 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합.
#후보키
- 투플을 유일하게 식별할 수 있는 속성의 최소 집합.
- 슈퍼키에서 가장 작은 단위
#기본키
- 여러 후보키 중 하나를 선정하여 대표로 삼는 키
#기본키 고려 사항
- 릴레이션 내 투플을 식별할 수 있는 고유한 값을 가져야 한다.
- NULL값은 허용하지 않는다.
- 키 값의 변동이 일어나지 않아야 한다.
- 최대한 적은 수의 속성을 가진 것이라야 한다.
- 향후 키를 사용하는 데 있어서 문제 발생 소지가 없어야 한다.
#대리키
- 기본키가 마땅치 않거나, 보안을 요하는 경우 가상의 속성을 만들어 기본키로 삼는 키.
#대체키
- 기본키로 선정되지 않은 후보키.
#외래키
- 다른 릴레이션의 기본키를 참조하는 속성
- 다른 릴레이션의 기본키를 참조하여 릴레이션 간의 관계를 표현.
- 참조하고 참조되는 양쪽 릴레이션의 도메인이 서로 같아야 함.
- 항상 데이터의 일관성을 유지해야 함.
- NULL 값이나 중복 값을 허용.
- 자기 자신을 참조할 수 있음.
3. 무결성 제약조건
#도메인 무결성 제약조건(도메인 제약)
-릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만을 가져야 한다.
- ex. 주문일자는 날짜 데이터만 사용. 영문자나 다른 자료형을 사용하지 않음
- 언어의 변수형 선언과 비슷한 개념
#개체 무결성 제약조건(기본키 제약)
-기본키는 NULL 값을 가져서는 안 되며 릴레이션 내에 오직 하나의 값만 존재해야 한다.
# 참조 무결성 제약조건(외래키 제약)
- 참조되는(제공하는) 릴레이션을 부모 릴레이션, 참조하는(제공받는) 릴레이션을 자식릴레이션이라고 할 때,
- 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 하며,
- 자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다.
- 부모 릴레이션의 도메인과 다른 값으로 삽입, 수정 거부.
- 자식 릴레이션에서 참조하고 있는 값을 부모 릴레이션에서 삭제나 변경 거부.
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스] MySQL의 my.ini 수정 권한이 없다고 나올 때 해결방법. (0) | 2021.02.23 |
---|---|
[데이터베이스] SQL 내장함수 (0) | 2021.02.23 |
[데이터베이스] sql 기초 총정리! (0) | 2021.02.17 |
[데이터베이스] 관계대수 (0) | 2021.02.16 |
[데이터베이스]데이터베이스 시스템의 개념 (0) | 2021.02.09 |