Search

[도움이 되었으면 좋겠어요 3편] 데이터베이스 E-R 다이어그램

Status
NOT_COMPLETED
Date
2023/12/09
Tags
Database

E-R 다이어그램

E-R 다이어그램을 나타내는 그림입니다.

Mapping Cardinality

하나의 팀에는 여러 선수가 속할 수 있지만, 한 선수는 하나의 팀에만 속할 수 있습니다.
Mapping Cardinality를 잘 표현하는 문장 중 하나인데, Mapping Cardinality는 각 관계가 몇 대 몇 대응인지 나타냅니다.
대게 다음의 공식에 각 Entity를 집어 넣어 말이 되는 문장이 해당 Entity 관계 간의 Mapping Cardinality 입니다.
Many ( ) can have one ( )
Many ( ) can have many ( )
One ( ) can have one ( )
One ( ) can have many ( )
그림으로 표현하면 다음과 같습니다.
ER Model에서는 화살표가 일을 의미하며, 화살표가 없다면 다를 의미한다.

Participation

참여 제약 조건은 두 가지 유형으로 나눌 수 있습니다.
전체 참여(Total participation)
어떤 개체 집합의 모든 개체가 특정 관계 집합에 참여하는 조건
부분 참여(Partial participation)
어떤 개체 집합의 일부 개체가 특정 관계 집합에 참여하는 조건
예를 들어 보겠습니다.
강사강의 그리고 강좌가 있다고 가정하겠습니다.
모든 강사강의에 참여하지 않습니다. 이는 부분 참여라고 합니다.
하지만 모든 강좌강의를 진행하는 강사반드시 존재합니다. 이는 전체 참여라고 합니다.
전체 참여는 두 줄로, 부분 참여는 한 줄로 나타냅니다.

Relation Schema로의 변환

변환 시 규칙은 다음과 같습니다.
1.
모든 개체는 릴레이션으로 변환된다
2.
다대다 관계는 릴레이션으로 변환된다
3.
일대다 관계는 외래키로 표현한다
4.
일대일 관계는 외래키로 표현한다

복합 속성

복합 속성의 예제는 다음과 같습니다

강한 개체와 약한 개체

강한 개체는 자체적으로 주 키를 가지고 있습니다. 반면에 약한 개체는 주 키를 가지고 있지 않습니다.
또한 약한 개체는 강한 개체에 의존적입니다.
대학교에서 과목 개체는 과목명, 학점 등의 속성을 가지고 있으며, 학생들이 수강하고 교수들이 강의하는 것은 분반(section) 개체입니다.
과목에 대한 분반은 동일 학년과 동일 학기에 대하여 다수개가 개설이 되므로, 분반 번호, 연도, 학기는 과목 하나 안에서는 유일하나 분반 전체에서는 유일하지 않습니다. 이 경우 분반은 주 키를 가지지 못하는 약한 개체입니다.
분반 개체는 과목 개체 존재에 의존적이어서 과목 개체에 연관이 없는 분반 개체는 존재할 수가 없습니다. 이는 참여제약 관점에서는 전체참여 제약입니다. 카디날리티 제약은 과목 개체 하나에 분반 개체 다수가 존재하므로 1:N입니다.
만약 과목 cID를 분반의 속성으로 설정하게 되면, 분반 개체가 강한 개체가 되며, 과목과 분반간의 관계성은 불필요하게 됩니다.

일반화와 특수화

일반화(Generalization)
일반화는 여러 개체(entity)들이 공통적으로 가지고 있는 속성을 기반으로 새로운 상위 개체를 생성하는 과정입니다. 이 과정에서 하위 개체는 상위 개체로부터 속성을 상속받습니다.
예제: 직원(Staff) 데이터베이스
상위 개체: 직원(Staff)
공통 속성: 직원ID, 이름, 주소, 연락처
하위 개체:
교수(Professor): 직원ID, 이름, 주소, 연락처, 학과, 연구분야
행정직원(Administrator): 직원ID, 이름, 주소, 연락처, 부서, 담당업무
여기서 교수(Professor)행정직원(Administrator)직원(Staff)의 특수한 형태로, 공통 속성을 직원(Staff)에서 상속받습니다.
특수화(Specialization)
특수화는 일반화의 반대 개념으로, 상위 개체의 속성과 동작을 상속받아 더 구체적인 하위 개체를 만드는 과정입니다.
예제: 차량(Vehicle) 데이터베이스
상위 개체: 차량(Vehicle)
속성: 차량ID, 브랜드, 모델, 연도
하위 개체:
승용차(Car): 차량ID, 브랜드, 모델, 연도, 좌석 수, 연비
트럭(Truck): 차량ID, 브랜드, 모델, 연도, 화물 적재량, 톤수
여기서 승용차(Car)트럭(Truck)차량(Vehicle)의 특수한 형태로, 차량(Vehicle)의 속성을 상속받고 추가적인 속성을 가집니다.