본문 바로가기
DATABASE

데이터베이스(DB) 관계 데이터 모델 개념

by YoonJong 2022. 10. 24.
728x90

용어정리 ( 책에서 사용하는 용어 )

릴레이션 = 테이블

투플 = 행

속성 = 열

 

일반적으로 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 데이터베이스에 저장한다.

고객아이디 고객이름 나이 등급 직업
VARCHAR(20) VARCHAR(20) INT VARCHAR(20) VARCHAR(20)
1 가길동 20 bronze 학생
2 나길동 21 silver 학생
3 다길동 22 gold 학생

고객아이디, 고객이름 과 같은 열을 속성 이라고 부른다.

고객아이디의 1,2,3  고객이름의 가길동 나길동 다길동과 같은 행을 투플 이라고 부른다.

 

속성 하나가 가질 수 있는 모든 값의 집합을 도메인 이라고 한다.

예로, 등급에서 bronze , silver , gold 를 모아둔 것이 등급 속성의 도메인이 된다.

속성은 해당 도메인 내에서만 선택(허용) 할 수 있으므로, 올바른 값을 유지할 수 있다.

하지만, 실제 데이터를 보면 고객이름, 직업 등은 무수히 많으므로 나열하기 어렵다.

따라서, 데이터 타입으로 정하는것이 일반적인 경우이다. EX) 나이 (INT), 직업(VARCHAR(10))

 

행(투플)의 값은 널(null) 값이 들어갈 수 있다.

적합한 값이 없을 때 , 회원가입을 하면서 값을 입력하지 않았을때, 등 null 을 사용한다.


릴레이션(테이블)의 구성

스키마와 인스턴스로 나뉜다.

스키마는 열(속성) 의 이름을 가리키며, 인스턴스는 속성의 값을 나타낸다.


릴레이션의 특성

1. 행(투플)의 유일성

하나의 릴레이션에는 동일한 투플이 존재할 수 없다.

이런 특성을 하나하나 속성을 찾아가면서 확인할 수 없어 나온 것이 PK (Primary Key) 이다.

투플을 유일하게 구별하기 위한 키 라고 할 수 있다. (중복X)

 

2. 투플의 무순서 

하나의 릴레이션에서 투플 사이의 순서는 의미가 없다.

1번과 2번의 순서가 바뀌어도 상관이없다. 검색을 할때 PK 값을 사용하거나 특정값을 사용하기 때문이다.

 

3. 속성의 무순서

투플의 무순서와 같다.

속성의 순서가 바뀌어도 상관없다.

 

4. 속성의 원자성

모든 속성은 더 이상 나눌 수 없는 값을 가져야 한다.

관계 데이터 모델에서는 다중값을 허용하지 않는다.


키의 종류

키는 관계형 데이터 모델에서 중요한 제약조건을 정의한다.

키의 종류는 슈퍼키, 후보키, 기본키, 대체키, 외래키 5가지로 분류한다.

 

1. 슈퍼키 

유일성의 특성을 만족하는 키이다.

고객아이디의 속성에서는 모든 고객의 값이 달라 슈퍼키를 만족할 수 있지만,  직업,등급 등은 유일성을 만족하지 못하므로 슈퍼키가 될 수 없다.

 

2.후보키

유일성과 최소성을 만족하는 키이다.

투플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어져야 한다.

예로, 고객아이디 속성은 해당 속성으로만 구분이 가능하므로 후보키가 될 수 있다.

하지만, 고객아이디 + 고객이름은 후보키가 될 수 없다. 고객이름이 없어도 고객아이디로 구분이 가능하기 때문에,

최소한의 속성이 아니기 때문이다.

슈퍼키와 약간 비슷한 개념이라고 생각한다.

 

3.기본키

관계형 데이터 베이스에서 유일성을 만족시키기 위한 방법 중 최선의 방법은 기본키를 이용하는 것이다.

기본키는 반드시 속성에 1개만 존재하기 때문에, 아무리 값이 삽입되어도 중복될 일이 없다.

기본키를 선택하는 기준은 정말 다양하지만 미래를 생각해보면 최선의 방법은 자동증가값(Auto_Increment)를 사용하는 것이라고 생각한다. ( 김영한님 강의에서도 그랬다 )

 

먼저 책에서 소개하는 최선의 방법은 

1. 널값을 가져서는 안된다.

2. 값이 자주 변경되어서는 안된다.

3. 단순한 후보키를 선택한다.

라고 나타나 있다.

 

추가적으로 예를 들면 주민등록번호로 기본키를 생각할 수 도있지만, 예전에 주민등록번호로 기본키를 사용하다가

주민등록번호 보관에 관련된 법이 바뀌면서 많이 애를 썼다고 한다. (강의에서.)

 

4.대체키

기본키로 선택되지 못한 후보키를 의미한다.

 

5. 외래키

어떤 테이블에서 소속된 속성이 다른 테이블의 기본키가 되는 키이다.

고객아이디는 고객릴레이션의 기본키이다.

주문 릴레이션의 주문고객 속성이 고객 릴레이션의 고객아이디(PK)를 참조한다.

주문고객 속성은 외래키가 된다.

두 릴레이션간의 관계가 형성되며, 주문고객을 참조하는 릴레이션 & 고객아이디(PK)를 참조되는 릴레이션 이라고 한다.

 

 

728x90

댓글