데이터베이스 설계 과정
- 데이터베이스에 어떤 정보를 저장할지 분석
- 해당 정보의 구성요소 간의 관계 분석
- 데이터베이스 스키마 라고 불리는 데이터베이스의 구조 명세
- 설계는 DBMS에 입력될 수 있는 양식(SQL)에 맞춰 커밋됨
- 데이터베이스가 물리적으로 생성됨
고수준 설계 모델
- E/R 모델
- UML 모델
- ODL 모델
데이터베이스 모델링 및 시행 과정
- 문제 분석
- E/R 모델 산출
- 관계 스키마 생성
- 관계 DBMS 생성
E/R(Entity-Relationship) 모델
- Entity: 사각형
- 다른 객체와 구별 가능한 형태의 실세계 객체
- 속성의 집합으로 표현됨
- Entity Sets: 같은 속성을 공유하는 같은 타입의 엔티티 집합
- Attributes: 타원
- Entity set의 각 멤버가 보유한 설명 속성
- 표준 E/R 모델은 속성으로 원시값(Int, String 등)만 사용할 수 있음
- Relationship: 마름모
- Relationship: 여러 엔티티간의 연관을 나타냄
- Relationship set: 같은 타입의 관계에 대한 집합
예제: 영화
- 데이터베이스에 필요한 정보
- 영화
- 주연 배우
- 배급사
- 엔티티 - 각 영화, 각 배우, 각 배급사
- 엔티티 셋 - 영화들의 집합, 배우들의 집합, 배급사들의 집합
- 엔티티의 속성
- 엔티티에서 필요한 정보를 속성으로 추출함
- 베지어 곡선, 테이블, 텍스트 형태로 표현 가능
- 엔티티 셋: 영화, 배우
- Movies라는 Entity Sets엔 Movie 엔티티가 포함됨
- Stars라는 Entity Sets엔 Star 엔티티가 포함됨
- 관계
- Movie와 Stars의 관계
- 한 영화에 여러 배우가 출연할 수 있음
- 한 배우가 여러 영화에 출연할 수 있음 → 다대다 관계
- 이를 E/R 모델로 표현하면 다음과 같음
- 영화의 전체 E/R 모델
- 관계의 화살표
- Movie는 하나의 Studio에서 제작한다는 뜻
- 즉 Movies와 Studios는 다대일 관계
- 관계의 화살표
- 릴레이션으로 엔티티 셋와 관계 셋 표현
E/R 관계 셋의 다양성
1. 화살표 표현
- 다대다 - 실선
- 다대일 - 한쪽 화살표(화살표를 쏘는 쪽이 다, 받는 쪽이 일)
- 일대일 - 양측 화살표
2. number 라벨 표현
- 다대다 - M, N
- 다대일 - N, 1
- 일대일 - 1, 1
3. (min,max) 라벨 표현
- 다대다 - (0, N), (0, N)
- 다대일 - (0, 1), (0, N)
- Studios입장에서는 한 Studio는 하나의 Presidents와 관계가 있음
- Presidents 입장에서는 한 Presidents에 여러 Studio와 관계가 있음
- number 라벨 표현과 혼동 주의
- 일대일 - (0, 1), (0, 1)
- Studios는 (1, 1)인데, 이는 Studio는 Presidents에 하나의 관계가 반드시 있다는 것을 나타냄
- 0의 의미는 관계가 없을 수도 있다는 뜻
관계의 다양한 방법
- E/R 모델은 두 엔티티 세트 이상과 관련된 관계 세트을 쉽게 정의할 수 있음
- 아래는 삼진 관계
- Stars와 Movies는 다대다 관계이며 Studios와 다대일의 관계를 맺음
관계의 역할
- 영화의 후속작에 대한 관계
- 앞선 영화의 후속작은 앞선 영화에 다대일 관계
- 배우와 영화, 스튜디오 간의 계약 관계
- 여러 배우는 하나의 스튜디오와 전속 계약할 수 있음(다대일)
- 여러 영화는 하나의 스튜디오와 전속 계약할 수 있음(다대일)
- 배우와 영화는 다대다 관계
- 관계를 명확하게 표현해주어야 헷갈리지 않음
관계의 속성
- 관계 세트도 속성을 가질 수 있음
- Movies, Stars, Studios의 속성이 아님
- 계약이라는 관점에서 Contracts에 속하는 속성임
E/R 다이어그램의 상속
- isa 관계로 상속을 나타냄(삼각형)
- 상속되는 것 - 부모의 속성
- 표준 관계 모델은 상속을 지원하지 않음
상속 정리
- E/R 모델에서는 상속을 지원함
- 표준 릴레이션 모델에서는 상속을 지원하지 않음
- 현재 DBMS에선 상속을 지원하는 모델이 있지만 표준화되지 않음
- DBMS 마이그레이션 시 문제 발생
Uploaded by Notion2Tistory v1.1.0