3. 관계 데이터 모델과 제약조건

jjin
Learn From Data
Published in
5 min readAug 20, 2021

--

기초가 든든한 데이터베이스

Section 1. 관계 데이터 모델

릴레이션 개괄

행과 열로 구성된 2차원의 테이블

릴레이션 용어

http://www.jidum.com/jidums/view.do?jidumId=107
*참고
스키마 : 릴레이션이 어떻게 구성되는지, 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의(첫 행 헤더)
  • 속성 : 릴레이션의 열
  • 튜플 : 릴레이션의 행
  • 도메인 : 하나의 속성이 가질 수 있는 값들의 집합

도메인은 프로그래밍 언어의 데이터 형식과 비슷한 것으로 동일한 도메인이 여러 속성에 사용될 수 있다. 예를 들어 도서번호 속성에 숫자 데이터를 입력할 수 있을 때, 도서번호 속성의 도메인은 ‘BNO INT’라고 정의할 수 있다.(BNO : 도메인 이름, INT : 도메인 타입)

몇몇 관계 DBMS에서는 다음과 같이 도메인을 명시할 수 있다.

CREATE DOMAIN 도메인_이름 도메인_타입

용어들의 대응관계

http://www.jidum.com/jidums/view.do?jidumId=107

참고로 관계 DBMS에서는 테이블/행/열이라는 용어를 사용한다.

릴레이션의 구성

릴레이션은 릴레이션 스키마와 인스턴스로 구성되어 있다.

1. (릴레이션) 스키마

한 개의 릴레이션의 논리적인 구조를 정의한 것으로 릴레이션의 이름과 릴레이션에 포함된 속성들의 집합. 내포(intention)이라고 부르기도 한다.

릴레이션_이름(속성_ 이름1, 속성_이름2, … 속성_이름n)

2. (릴레이션) 인스턴스

어느 한 시점의 릴레이션에 들어있는 내용 또는 상태를 의미하는 것으로, 튜플 전체의 데이터. 외연(extension)이라고 부르기도 한다.

  • 카디널리티 : 한 릴레이션의 튜플 수로 릴레이션 기수라고도 한다.

릴레이션의 특성

  1. 튜플의 유일성 : 하나의 릴레이션에는 중복된 튜플이 존재하지 않는다.
  2. 튜플의 무순서성 : 하나의 릴레이션에서 튜플 간의 순서는 의미가 없다.
  3. 속성의 무순서성 : 하나의 릴레이션 내에서 속성의 순서는 의미가 없다.
  4. 속성의 원자성 : 모든 속성 값은 원자값만 사용할 수 있다.

Section 2. 무결성 제약조건

https://iamdaeyun.tistory.com/entry/%EB%A6%B4%EB%A0%88%EC%9D%B4%EC%85%98-%ED%8A%B9%EC%A7%95%EA%B3%BC-%EB%A6%B4%EB%A0%88%EC%9D%B4%EC%85%98-%ED%82%A4-%EC%A2%85%EB%A5%98%EC%8A%88%ED%8D%BC%ED%82%A4%ED%9B%84%EB%B3%B4%ED%82%A4%EA%B8%B0%EB%B3%B8%ED%82%A4%EC%99%B8%EB%9E%98%ED%82%A4

고유한 식별자 역할을 하는 것으로서 여러 종류가 있다.

  • 수퍼키(Super Key) : 하나의 릴레이션을 구성하는 속성들 중에서 각 튜플을 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합. 튜플을 고유하게 구별하는 데 꼭 필요하지 않는 속성도 포함할 수 있다.
유일성 : 하나의 키 값으로 하나의 튜플을 유일하게 식별할 수 있는 성질
슈퍼키는 유일성 개념을 포함한다.
  • 후보키(Candidate Key) : 릴레이션을 구성하는 속성들 중에서 각 튜플을 유일하게 식별할 수 있는 최소한의 속성들의 집합.
최소성 : 모든 튜플들을 유일하게 식별할 수 있는 최소한의 속성들의 집합
후보키는 유일성 + 최소성 개념을 포함한다.
  • 기본키(Primary Key) : 여러 후보키 중에서 하나를 선택하여 튜플을 식별하는 데 기준으로 사용하는 키. 기본키는 (학생번호, 과목번호)와 같이 두 속성이 합쳐져 만들어지기도 한다.
  • 대체키(Alternate Key) : 기본키로 선정되지 않은 후보키

위는 모두 단일 릴레이션에 적용하는 키들이지만 추가적으로 외래키와 같이 릴레이션 간의 관계를 맺는 데도 사용 가능하다.

  • 외래키(Foreign Key) : 어떤 릴레이션의 기본키를 참조하는 속성 또는 속성 집합이다. 외래키의 속성은 참조하는 릴레이션의 기본키와 동일한 도메인을 가져야 한다. 외래키 이름은 기본키 이름과 다를 수도 있다.

무결성 제약조건

1. 개체 무결성 제약조건(기본키 제약)

릴레이션에서 기본키를 구성하는 속성은 NULL이나 중복 값을 가질 수 없다.

2. 참조 무결성 제약조건(외래키 제약)

릴레이션 간의 참조 관계를 정의하는 제약조건으로 관련된 릴레이션의 튜플들 사이에서 일관성을 유지하는 데 사용된다.

- 부모 릴레이션 : 참조되는 릴레이션
- 자식 릴레이션 : 참조하는 릴레이션

무결성 제약조건에서는 두 조건 중 하나가 성립된다.

  1. 외래키 값은 부모 릴레이션의 어떤 튜플의 기본키 값과 같다.
  2. 외래키가 포함하고 있는 릴레이션의 기본키를 구성하고 있지 않으면 NULL값을 가진다.

이 때 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 같아야 하며, 자식 릴레이션이 값이 변경될 때 부모 릴레이션의 제약을 받는다.

--

--