●차수(dgree)
▷1진, 2진, 3진, n진 관계를 보여준다.
●카디날리티 비율
▷두 엔티티 타입 간의 카디날리티 비율도 정확하게 모델링해야 한다.
▷관계를 흠히 1:1, 1:N, M:N으로 구분한다.
●M:N 관계
▷관계 타입의 카디날리티 비율을 최솟값과 최댓값을 사용하여 좀 더 명확하게 나타 낼 수 있다.
▷ER 다이어그램에서 관계 타입과 엔티티 타입을 연결하는 실선 위에 (min,max) 형태로 표기한다.
●역할(role)
▷역할은 관계 타입의 의미를 명확하게 하기 위해 사용된다.
▷하나의 관계 타입에 하나의 엔티티 타입이 여러 번 나타나는 경우에는 반드시 역할을 표기해야 한다.
●전체 참여와 부분 참여
▷전체 참여는 모든 엔티티들이 관계 타입 R에 의해서 연관되는 것을 말한다.
▷이중 실선으로 표현한다.
●다중 관계
▷두 엔티티 타입 사이에 두 개 이상의 관계 타입이 존재할 수 있다.
●순환적 관계
▷하나의 엔티티 타입이 동일한 관계 타입에 두 번 이상 참여하는 것이다.
◆ER 스키마를 작성하기 위한 지침
●애트리뷰트 vs 엔티티
●관계 vs 엔티티
▷둘다 상황에 맞게 써야한다.
●ER 스키마를 작성할 때 대략적인 규칙 (가이드라인)
▷엔티티는 키 애트리뷰트 이외에 설명 정보를 추가로 갖는다.
▷다치 애트리뷰트는 엔티티로 분류해야 한다.
▷애트리뷰트들이 직접적으로 설명하는 엔티티에 애트리뷰트들을 붙인다.
▷관계는 일반적으로 독자적으로 존재할 수 없지만, 엔티티 타입과 관계 타입을 절대적으로 구분하는 것은 어렵다.
◆데이터베이스 설계 과정
▷1. 응용의 요구사항을 수집하여 기술한다.
▷2. 응용과 연관이 있는 엔티티 타입들을 식별한다.
▷3. 응용과 연관이 있는 관계 타입들을 식별한다. 관계가 1:1, 1:N, M:N 중에서 어떤 것인지 결정한다.
▷4. 엔티티 타입과 관계 타입들에 필요한 애트리뷰트들을 식별하고, 각 애트리뷰트가 가질 수 있는 값들의 집합을 식별한다.
▷5. 응용을 위한 ER 스키마 다이어그램을 그린다.
▷6. 엔티티 타입들을 위한 기본 키를 식별한다.
▷7. ER 스키마 다이어그램이 응용에 대한 요구사항과 부합되는지 검사한다.
▷8. ER 스키마 다이어그램을 DBMS에서 사용되는 데이터베이스 모델로 변환한다.
●새발 표기법
●데이터베이스 설계사례
▷요구사항을 잘 이해한 후에, 명사들을 엔티티 타입으로 동사들은 관계 타입으로 나타내면서 연관된 엔티티 타입들을 연결한다.
◆논리적 설계: ER 스키마를 관계 모델의 릴레이션들로 사상
▷논리적 설계 단계에서 ER 스키마를 관계 모델의 릴레이션들로 사상해야 한다.
▷ER 스키마에는 엔티티 타입과 관계 타입이 존재하지만 관계 데이터베이스에는 엔티티 타입과 관계 타입을 구분하지 않고 릴레이션들만 들어 있다.
◆ER 모델을 릴레이션들로 사상하는 7개의 단계로 이루어진 알고리즘
●1. 정규 엔티티 타입과 단일 값 애트리뷰트
▷ER 스키마의 각 정규 엔티티 타입 E에 대해 하나의 릴레이션 R을 생성한다.
▷단순 애트리뷰트들을 릴레이션 R에 모두 포함시킨다.
▷E의 기본 키가 릴레이션 R의 기본 키가 된다.
●2. 약한 엔티티 타입과 단일 값 애트리뷰트
▷소유 엔티티 타입 E를 갖는 각 약한 엔티티 타입 W에 대하여 릴레이션 R을 생성한다.
▷W에 있던 모든 단순 애트리뷰트들을 릴레이션 R에 포함시킨다.
▷소유 엔티티 타입에 해당하는 릴레이션의 기본 키를 약한 엔티티 타입에 해당하는 릴레이션에 외래 키로 포함시킨다.
●3. 2진 1:1관계 타입
▷타입 R에대하여, R에 참여하는 엔티티 타입에 대응되는 릴레이션 S와 T를 찾는다.
▷S와 T중에서 한 릴레이션을 선택하여, 만일 S를 선택했다면 T의 기본키를 S에 외래 키로 포함시킨다.
▷S와 T 중에서 관계 타입에 완전하게 참여하는 릴레이션을 S의 역할을 하는 릴레이션으로 선택하는 것이 좋다.
▷관계 타입 R이 가지고 있는 모든 단순 애트리뷰트들을 S에 대응되는 릴레이션에 포함시킨다.
▷두 엔티티 타입이 관계 타입 R에 완전하게 참여할 때는 두 엔티티 타입과 관계 타입을 하나의 릴레이션으로 합치는 방법도 가능하다.
●4. 정규 2진 1:N 관계 타입
▷N측의 참여 엔티티 타입에 대응되는 릴레이션 S를 찾는다.
▷1측의 릴레이션의 기본키를 릴레이션 S에 외래 키로 포함시킨다.
●5. 2진 M:N 관계 타입
▷릴레이션 R을 생성한다.
▷참여 엔티티 타입에 해당하는 릴레이션들의 기본 키를 릴레이션 R에 외래 키로 포함시키고, 이들의 조합이 릴레이션 R의 기본 키가 된다.
▷R이 가지고 있는 모든 단순 애트리뷰트들을 릴레이션 R에 포함시킨다.
●6. 3진 이상의 관계 타입
▷3진 이상의 각 관계 타입 R에 대하여 릴레이션 R을 생성한다.
▷관계 타입 R에 참여하는 모든 엔티티 타입에 대응되는 릴레이션들의 기본 키를 릴레이션 R에 외래 키로 포함시킨다.
▷관계 타입 R이 가지고 있는 모든 단순 애트리뷰트들을 릴레이션 R에 포함시킨다.
▷하지만 관계 타입 R에 참여하는 엔티티 타입들의 카디날리티가 1:N:N 이면 카디날리티가 1인 릴레이션의 기본 키를 참조하는 외래 키를 제외한 나머지 외래 키들의 모임이 릴레이션 R의 기본 키가 된다.
●7. 다치 애트리뷰트
▷릴레이션 R을 생성한다.
▷다치 애트리뷰트에 해당하는 애트리뷰트를 릴레이션 R에 포함시키고, 다치 애트리뷰트를 애트리뷰트로 갖는 엔티티 타입이나 관계 타입에 해당하는 릴레이션의 기본 키를 릴레이션 R에 외래키로 포함시킨다.
▷릴레이션의 R의 기본 키는 다치 애트리뷰트와 외래키의 조합이다.
'학교수업 > 데이터베이스' 카테고리의 다른 글
데이터베이스 15주차 요약 (0) | 2023.01.31 |
---|---|
데이터베이스 14주차 요약 (0) | 2023.01.31 |
데이터베이스 12주차 요약 (0) | 2023.01.31 |
데이터베이스 11주차 요약 (0) | 2023.01.31 |
데이터베이스 10주차 요약 (4) | 2023.01.31 |