득이공간

[데이터베이스] 5장. 데이터베이스 설계와 ER 모델 본문

CS/DB

[데이터베이스] 5장. 데이터베이스 설계와 ER 모델

쟁득 2024. 2. 27. 09:21
해당 게시물은 김태연 교수님의 '데이터베이스' 강의를 수강하며
학습한 내용을 개인적으로 정리한 글입니다.

📌 목차 - 5장. 데이터베이스 설계와 ER 모델

5-1. 데이터베이스 설계의 개요
5-2. ER 모델
5-3. 데이터베이스 설계 사례
5-4. 논리적 설계: ER 스키마를 관계 모델의 릴레이션으로 사상


📌 5-1. 데이터베이스 설계의 개요

* 데이터베이스 설계
- 개념점 vs 물리적
- 개념적 데이터베이스 : 정보 사용의 모델을 개발하는 과정
- 물리적 데이터베이스 : 물리적인 저장 장치와 접근 방식


* 개념적 수준의 모델
- 엔티티-관계(ER: Entity-Relationship) 모델
- 구현 데이터 모델


* 데이터베이스 설계 과정
1. 요구사항 분석 단계
2. 설계 단계
- 개념적 설계 : ER 다이어그램
- DBMS의 선정 : 기술적, 정치적, 경제적 요인 고려
- 논리적 설계 : 개념적 설계에 알고리즘(지침)을 적용한다.
- 스키마 정제
- 물리적 설계 : 성능상 주요기준 구분 (응답시간, 트랜잭션 처리율)
- 보안 설계
3. 구현 단계


📌 5-2. ER 모델

* ER 모델
- 실세계를 엔티티, 애트리뷰트, 엔티티들 간의 관계로 표현했다.
- CASE 도구 : ERWin


* 엔티티
- 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체
- 생각이나 개념과 같이 추상적인 것도 있다.


* 엔티티 타입
- 엔티티 집합(인스턴스)
- 강한 엔티티 타입 : 자신의 키 애트리뷰트를 사용하여 고유하게 엔티티들을 식별할 수 있는 엔티티 타입
- 약한 엔티티 타입 : 키를 형성하기에 충분한 애트리뷰트들을 갖지 못한 엔티티 타입 (이중선 직사각형)
- 부분 키(partial key) : 약한 엔티티 타입에서 식별하는 키 애트리뷰트


* 애트리뷰트
- 단순 애트리뷰트
- 복합 애트리뷰트 : 두 개 이상의 애트리뷰트로 이루어진 애트리뷰트
- 단일 값 애트리뷰트 : 각 엔티티마다 정확하게 하나의 값을 갖는 애트리뷰트
- 다치 애트리뷰트 : 각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트(이중선 타원)
- 저장된 애트리뷰트 : 다른 애트리뷰트와 독립적으로 존재하는 애트리뷰트
- 유도된 애트리뷰트 : 다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트 (점선 타원)

 

* 관계
- 관계는 엔티티들 사이에 존재하는 연관이나 연결로서 두 개 이상의 엔티티 타입들 사이의 사상으로 생각할 수 있다. (다이아몬드)
- 관계 집합 : 동질의 관계들의 집합
- 관계 타입 : 동질의 관계들의 틀
- 관계의 애트리뷰트 : 관계 타입은 키 애트리뷰트를 갖지 않는다.
- 차수 : 관계로 연결된 엔티티 타입들의 개수 ex. 1진, 2진, n진 관계
- 카디날리티 : 한 엔티티가 참여할 수 있는 관계의 수 ex. 1:1, 1:N, M:N
- 카디날리티 비율 : min=0은 어떤 엔티티가 반드시 관계에 참여해야 할 필요는 없음을 의미, max=*은 어떤 엔티티가 관계에 임의의 수만큼 참여할 수 있음을 의미


* 역할

- 관계 타입의 의미를 명확하게 하기 위해서 사용된다.


* 전체 참여

- 어떤 관계에 모든 엔티티들이 연관되는 것 (이중 실선)


* 부분 참여

- 어떤 관계에 일부 엔티티만 참여하는 것


* 다중 관계

- 두 엔티티 타입 사이에 두 개 이상의 관계 타입이 존재할 수 있다.


* 순환적 관계

- 하나의 엔티티 타입이 동일한 관계 타입에 두 번 이상 참여하는 것


* ER 스키마 작성 지침
- 엔티티는 키 애트리뷰트 이외에 설명 정보를 추가로 가진다.
- 다치 애트리뷰트는 엔티티로 분류한다.


* 애트리뷰트 vs. 엔티티

- 엔티티 타입과 애트리뷰트를 구분하는 절대적인 기준은 없다.


📌 5-3. 데이터베이스 설계 사례

* 데이터베이스 설계 과정
- 요구사항 수집, 엔티티 타입 식별, 관계 타입 식별
- 관계가 1:1, 1:N, M:N 중에서 어느 것에 해당하는지 결정
- 애트리뷰트 식별, 애트리뷰트 집합 식별
- 기본 키 식별
- ER 스키마 다이어그램 그림
- ER 스키마 다이어그램 검사
- 데이터베이스 모델 변환


* 새발(crow-feet) 표기법

- 0, 1, n 표시


📌 5-4. 논리적 설계: ER 스키마를 관계 모델의 릴레이션으로 사상

* ER 스키마를 관계 모델의 릴레이션으로 사상
- 논리적 설계 단계에서 7개의 단계로 이뤄진 알고리즘
- 개념적 스키마 (ER 스키마) -> 논리적 설계 -> 논리적 스키마 (관계 데이터베이스 스키마)


* ER-관계 사상 알고리즘

- 단계 1 : 정규 엔티티 타입과 단일 값 애트리뷰트
EMPLOYEE(_Empno, Empname, Title, City, Ku, Dong, Salary)
PROJECT(_Projno, Projname, Budget)
DEPARTMENT(_Deptno, Deptname, Floor)
SUPPLIER(_Suppno, Suppname, Credit)
PART(_Partno, Partname, Price)


- 단계 2 : 약한 엔티티 타입과 단일 값 애트리뷰트
DEPENDENT(_Empno, _Depname, Sex)


- 단계 3 : 2진 1:1 관계 타입
PROJECT(_Projno, Projname, Budget, StartDate, Manager)


- 단계 4 : 정규 2진 1:N 관계 타입
EMPLOYEE(_Empno, Empname, Title, City, Ku, Dong, Salary, Dno)

PART(_Partno, Partname, Price, Subpartno)


- 단계 5 : 2진 M:N 관계 타입
WORKS_FOR(_Empno, _Projno, Duration, Responsibility)


- 단계 6 : 3진 이상의 관계 타입
SUPPLY(_Suppno, _Projno, _Partno, Quantity)


- 단계 7 : 다치 애트리뷰트
PROJ_LOC(_Projno, _Location)