CS/데이터베이스

[데이터베이스] 관계형 데이터베이스 모델링

happy_life 2022. 8. 2. 16:34

[데이터베이스] 관계형 데이터베이스 모델링

 

목차

1. 데이터 모델링

2. 개체 관계 모델

3. 관계 데이터 모델링

데이터 모델링

 

현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정으로 데이터베이스 설계의 핵심 과정이다. 데이터 모델링은 2단계로, 개념적 데이터 모델링과 논리적 데이터 모델링이 있다.

 

데이터 모델링

 

1) 개념적 데이터 모델링

현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업

 

2) 논리적 데이터 모델링

개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업

 

 

개체 관계 모델

개체 관계 모델 예시

 

 

1) 관련 개념

요약

 

 

1. 개체

현실세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것을 의미한다. 

Ex) 서점에 필요한 개체: 고객, 책

 

2. 속성

개체나 관계가 가지고 있는 고유의 특성으로 의미 있는 데이터의 가장 작은 논리적 단위이다.

Ex) 고객이라는 개체가 있다면, 고객 아이디, 고객명은 고객 개체의 속성이다.

 

* 속성의 분류

1.속성값의 개수: 단일 값 속성, 다중 값 속성

Ex) 전화번호는 핸드폰, 집전화 등 여러 개이므로 다중 값 속성이다.

 

2. 의미 분해 가능성: 단순 속성, 복합 속성

Ex) 생년월일은 년/월/일로 나눌 수 있으므로 복합 속성이다.

 

3. 기타: 유도 속성, 키 속성

Ex) 주민번호를 통해 나이라는 속성을 유도할 수 있다.

Ex) 각 개체의 인스턴스를 식별하는 데 사용되는 속성은 키이다. 고객 아이디가 이에 해당한다.

 

3. 개체 타입

개체를 고유의 이름과 속성들로 정의한 것이다.

 

4. 개체 인스턴스

개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체이다.

 

5. 개체 집합

특정 개체 타입을 모아놓은 것이다.

 

6. 관계

개체와 개체가 맺고 있는 의미 있는 연관성이다.

Ex) 고객 개체와 책 개체간의 구매 관계

 

관계의 유형

1. 일대일 관계

Ex) 결혼

 

2. 일대다 관계

Ex) 부서와 사원: 하나의 부서에 여러 명의 사원이 있다.

 

3. 다대다 관계

Ex) 고객과 상품:  상품은 여러 고객이 살 수 있고, 고객이 여러 상품을 살 수 있다.

 

관계의 특성

1. 필수적 참여: 모든 개체 인스턴스가 관계에 반드시 참여해야 하는 것을 의미한다.

Ex) 고객 개체가 책 개체와의 구매 관계에 필수적으로 참여한다. 즉, 모든 고객은 책을 반드시 구매한다는 것이다.

 

2. 선택적 참여: 개체 인스턴스 중 일부만 관계에 참여해도 되는 것을 의미한다.
Ex) 책 개체가 고객 개체와의 구매 관계에 선택적으로 참여한다. 즉, 고객이 구매하지 않은 책이 존재할 수 있다.

 

 

관계 데이터 모델링

관계 데이터 모델링

 

개요

관계 데이터 모델링이란, 개념적 구조를 논리적 구조로 표현하는 모델링이다. 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장한다. 

 

관련 용어

관련 용어 시각화

 

1. 릴레이션: 데이터를 2차원 테이블의 구조로 저장한 것으로 스키마와 인스턴스로 나뉜다. 

 

2. 속성: 릴레이션의 열 

 

3. 튜플: 릴레이션의 행 

 

4. 도메인하나의 속성이 가질 수 있는 모든 값의 집합으로 데이터의 형식을 나타낸다.

 

5. 차수: 하나의 릴레이션에 속성의 전체 개수

 

6. 카디널리티: 하나의 릴레이션에서 튜플의 전체 개수

 

 

1. 개념

릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합

 

2. 특성

유일성: 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야한다.

최소성: 꼭 필요한 최소한의 속성들로만 키를 구성한다.

 

3. 종류

1. 슈퍼키: 유일성을 만족하는 속성 또는 속성들의 집합

 

2. 후보키: 유일성과 최소성을 만족하는 속성 또는 속성들의 집합

 

3. 기본키: 후보키 중 선택받은 키

1. null 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적절하다.

2. 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적절하다.

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

 

4. 대체키: 후보키 중 선택받지 못한 키

 

5. 외래키: 다른 릴레이션의 기본키를 참조하는 키

 

예를 들어 아래와 같이 주문, 고객 릴레이션이 있다고 해보자.

 

고객(고객ID, 고객이름, 나이, 직업)

주문(주문번호, 주문고객, 주문제품, 수량, 일자)

 

위의 경우 빨간색 글자가 기본키이다. 이때 주문 릴레이션의 주문고객은 고객 릴레이션을 연결해주는 외래키라고 할 수 있다. 여기서 유의할 점은, 외래키와 매핑된 다른 릴레이션의 기본키의 도메인이 반드시 같아야한다는 것이다.

 

 

 

 

* 최소성 vs 유일성

 

1. 최소성: 예를 들어 (주민번호, 나이)를 통해 튜플을 구분할 수 있다. 하지만 나이를 제외하고 주민번호만으로도 튜플을 유일하게 구분할 수 있는데, 이럴 때 나이라는 속성을 빼면 키는 최소성을 만족한다고 한다.

 

2. 유일성: 하나의 키 값으로 튜플을 유일하게 식별할 수 있는 성질이다. 예를 들어, 이름은 튜플 간 중복될 수 있는 성질이지만, 주민번호는 중복될 수 없는 성질이다. 이러한 것을 유일성이라고 한다.