득이공간
[데이터베이스] 5장. 데이터베이스 설계와 ER 모델 본문
해당 게시물은 김태연 교수님의 '데이터베이스' 강의를 수강하며
학습한 내용을 개인적으로 정리한 글입니다.
📌 목차 - 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)
'CS > DB' 카테고리의 다른 글
[데이터베이스] 7장. 릴레이션 정규화 (0) | 2024.02.27 |
---|---|
[데이터베이스] 6장. 물리적 데이터베이스 설계 (1) | 2024.02.27 |
[데이터베이스] 4장. SQL (0) | 2024.02.27 |
[데이터베이스] 3장. 관계 대수 (0) | 2024.02.27 |
[데이터베이스] 2장. 관계 데이터 모델과 제약조건 (0) | 2024.02.27 |