0133

학교

DB07 - ER model

목차

- 데이터베이스 설계

- E-R 다이어그램

설계 단계

1. 초기 단계: 데이터베이스 사용자들의 데이터 요구사항을 완전히 파악

2. 두 번째 단계: 데이터 모델 선택

1) 선택한 데이터 모델의 개념 적용

2) 요구사항을 데이터베이스의 개념적 스키마로 변환

3) 완전히 개발된 개념적 스키마는 기업의 기능적 요구사항을 나타냄

- 데이터에 대해 수행될 연산(또는 트랜잭션)의 종류 설명

3. 최종 단계: 추상적인 데이터 모델에서 데이터베이스 구현으로 이동

1) 논리적 설계 – 데이터베이스 스키마 결정

(1) 데이터베이스 설계는 "좋은" 관계 스키마의 집합을 찾는 과정이 필요

(2) 비즈니스 결정 – 데이터베이스에 어떤 속성을 기록할 것인가?

(3) 컴퓨터 과학적 결정 – 어떤 관계 스키마를 가질 것이며, 속성을 다양한 관계 스키마에 어떻게 분배할 것인가?

2) 물리적 설계 – 데이터베이스의 물리적 배치 결정

4. 데이터베이스 스키마를 설계할 때 두 가지 주요 문제를 피해야 함

1) 중복: 잘못된 설계는 반복적인 정보를 초래할 수 있음

(1) 중복된 정보 표현은 다양한 정보 복사본 간의 데이터 불일치를 초래할 수 있음

2) 불완전성: 잘못된 설계는 기업의 특정 측면을 모델링하기 어렵거나 불가능하게 만들 수 있음

5. 잘못된 설계를 피하는 것만으로는 충분하지 않으며, 선택해야 할 좋은 설계가 많을 수 있음

설계 접근 방식

1. 개체 관계 모델

1) 기업을 개체관계의 집합으로 모델링

(1) 개체: 기업 내에서 다른 객체와 구별할 수 있는 "것" 또는 "객체"

- 속성 집합에 의해 설명됨

(2) 관계: 여러 개체 간의 연관성

2) 개체-관계 다이어그램(E-R 다이어그램)으로 도식적으로 표현됨

2. 정규화 이론

: 잘못된 설계를 형식적으로 정의하고 이를 테스트

목차

- 데이터베이스 설계

- E-R 다이어그램

- 매핑 카디널리티

- E-R 모델의 기본 키

- 약한 개체 집합

- 관계 스키마로의 변환

데이터베이스 모델링을 위한 E-R 모델

1. E-R 데이터 모델은 데이터베이스 스키마의 명세를 허용하여 데이터베이스 설계를 용이하게 하기 위해 개발됨

- 데이터베이스 스키마는 데이터베이스의 전체 논리적 구조를 나타냄

2. E-R 데이터 모델은 세 가지 기본 개념을 사용

- 개체 집합

- 관계 집합

- 속성

3. E-R 모델은 도식적 표현과 연결됨

- E-R 다이어그램데이터베이스의 전체 논리적 구조를 그래픽으로 표현 가능

개체 집합

1. 개체는 존재하며 다른 개체와 구별할 수 있는 객체

- 예: 특정 개인, 회사, 이벤트, 공장

2. 개체 집합은 동일한 유형의 개체들로 구성되며 동일한 속성을 공유

- 예: 모든 사람, 회사, 나무, 공휴일의 집합

3. 개체는 속성 집합으로 표현됨. 즉, 개체 집합의 모든 구성원이 가지는 기술적 속성

- 예: 강사 = (ID, name, salary), 강좌 = (course_id, title, credits)

4. 속성의 일부가 개체 집합의 기본 키를 형성하며, 이는 집합의 각 구성원을 고유하게 식별

E-R 다이어그램에서 개체 집합 표현

1. 개체 집합은 그래픽으로 표현 가능

- 사각형은 개체 집합을 나타냄

- 속성은 개체 사각형 내부에 나열됨

- 밑줄은 기본 키 속성을 나타냄

관계 집합

1. 관계는 여러 개체 간의 연관성

- 예시

44553(Peliter)

advisor

22222 (Einstein)

student entity

relationship set

instructor entity

2. 관계 집합은 수학적 관계이며 n ≥ 2개의 개체 집합에서 각각 하나씩 선택된 개체들의 집합

- {(e1, e2, … en) | e1 ∈ E1, e2 ∈ E2, …, en ∈ En}

- 예: (44553,22222) ∈ 지도교수(advisor)

예제: 개체 및 관계 집합 - (1)

1. 개체 집합 – 강사 및 학생

: Illustrative example (NOT an ER diagram)

2. 관계 집합 – 학생과 지도 교수 간의 관계를 나타내는 advisor 관계 집합 정의

E-R 다이어그램을 통한 관계 집합 표현

1. 다이아몬드는 관계 집합을 나타냄

예제: 개체 및 관계 집합 - (2)

1. 속성은 관계 집합과 연관될 수도 있음

- 예: 강사와 학생 개체 집합 간의 advisor 관계 집합에는 학생이 지도 교수와 연관되기 시작한 날짜를 추적하는 date 속성이 있을 수 있음

- advisor relation set이 강사와 학생이 관계를 맺기 시작한 날짜 attribute를 가질 수 있음

속성이 있는 관계 집합

1. 속성은 관계 집합과 연관될 수도 있음

역할

1. 관계의 개체 집합은 반드시 구별될 필요는 없음

- 관계의 각 개체 집합은 "역할"을 수행

- 예: "강좌_ID" 및 "선수과목_ID"는 역할로 불림

관계 집합의 차수

1. 이진 관계

- 두 개의 개체 집합을 포함 (또는 차수 2)

- 대부분의 데이터베이스 시스템에서 관계 집합은 이진 관계

2. 두 개체 집합 이상 간의 관계는 드물지만 가능

- 예: 학생들이 교수의 지도하에 연구 프로젝트 수행

- proj_guide 관계는 강사, 학생 및 프로젝트 간의 삼항 관계

비이진 관계 집합

- 대부분의 관계 집합은 이진 관계

- 때때로 관계를 비이진 관계로 표현하는 것이 더 편리할 수 있음

- 삼항 관계를 포함하는 E-R 다이어그램

복합 속성

1. 속성 유형:

1) 단순 및 복합 속성

2) 단일 값 및 다중 값 속성

- 예: 다중 값 속성 - phone_numbers(한 사람이 여러 개의 전화번호를 가질 수 있음)

3) 유도 속성: 다른 속성에서 계산할 수 있는 속성

- 예: age(생년월일을 기반으로 계산)

2. 도메인: 각 속성에 대해 허용된 값의 집합

복합 속성

1. 복합 속성은 속성을 하위 속성(다른 속성)으로 나눌 수 있도록 한다

E-R 다이어그램에서 복합 속성 표현

목차

1. SQL 데이터 정의 언어(DDL)

2. 데이터베이스 설계

3. E-R 다이어그램

- 매핑 카디널리티

- E-R 모델에서 기본 키

- 약한 엔터티 집합

- 관계 스키마로 변환

매핑 카디널리티

1. 관계 집합을 통해 하나의 엔터티가 다른 엔터티와 연관될 수 있는 개수를 표현

- 이진 관계 집합에서 가장 많이 사용됨

2. 이진 관계 집합에서 매핑 카디널리티 유형:

- 일대일(One to One)

- 일대다(One to Many)

- 다대일(Many to One)

- 다대다(Many to Many)

3. 특징

1) One to one <-> One to many

- 주의: A와 B의 일부 요소는 다른 집합의 요소와 매핑되지 않을 수도 있음

2) Many to one <-> Many to many

- 주의: A와 B의 일부 요소는 다른 집합의 요소와 매핑되지 않을 수도 있음

E-R 다이어그램에서 카디널리티 표현

1. 카디널리티 제약을 표현할 때 관계 집합과 엔터티 집합 사이에 다음과 같이 선을 그림

- 방향 있는 선(->): "하나"를 의미

- 방향 없는 선(—): "여러 개"를 의미

2. 일대일 관계

- 한 학생은 관계 advisor를 통해 최대 한 명의 강사와 연관될 수 있으며, 강사도 마찬가지

3. 일대다 관계

- 한 강사는 여러 명(0명 포함)의 학생과 advisor 관계를 가질 수 있음

- 한 학생은 advisor 관계를 통해 최대 한 명의 강사와 연관될 수 있음

4. 다대일 관계

- 한 강사는 advisor 관계를 통해 최대 한 명의 학생과 연관될 수 있음

- 한 학생은 여러 명(0명 포함)의 강사와 advisor 관계를 가질 수 있음

5. 다대다 관계

- 한 강사는 advisor 관계를 통해 여러 명(0명 포함)의 학생과 연관될 수 있음

- 한 학생도 advisor 관계를 통해 여러 명(0명 포함)의 강사와 연관될 수 있음

전체 참여 및 부분 참여

1. 전체 참여(이중 선으로 표시): 엔터티 집합의 모든 엔터티가 관계 집합의 적어도 하나의 관계에 참여해야 함

- 예: advisor 관계에서 학생의 참여는 전체 참여(모든 학생은 강사와 연관되어야 함)

2. 부분 참여: 일부 엔터티는 관계 집합의 어떠한 관계에도 참여하지 않을 수 있음

- 예: advisor 관계에서 강사의 참여는 부분 참여(일부 강사는 학생과 연관되지 않을 수 있음)

더 복잡한 제약 조건을 표현하는 표기법

1. 선에 최소 및 최대 카디널리티를 l..h 형태로 표시 (l은 최소 카디널리티, h는 최대 카디널리티)

- 최소값이 1이면 전체 참여 의미

- 최대값이 1이면 최대 하나의 관계만 참여 가능

- 최대값이 *이면 제한 없음

2. 예시

- 강사는 0명 이상의 학생을 지도할 수 있음

- 학생은 반드시 1명의 강사를 가져야 하며, 여러 명의 강사를 가질 수 없음

목차

1. SQL 데이터 정의 언어(DDL)

2. 데이터베이스 설계

3. E-R 다이어그램

- 매핑 카디널리티

- E-R 모델에서 기본 키

- 약한 엔터티 집합

- 관계 스키마로 변환

기본 키

1. 기본 키는 엔터티와 관계를 구별하는 방법을 제공함

2. 고려할 요소

- 엔터티 집합

- 관계 집합

- 약한 엔터티 집합

엔터티 집합의 기본 키

1. 개별 엔터티는 고유해야 함

2. 데이터베이스 관점에서 엔터티 간 차이속성을 통해 표현해야 함

- 엔터티의 속성 값은 엔터티를 고유하게 식별할 수 있어야 함

- 동일한 엔터티 집합 내에서는 모든 속성 값이 동일한 두 개의 엔터티가 존재할 수 없음

3. 엔터티의 엔터티를 서로 구별할 수 있는 속성 집합임

관계 집합의 기본 키

1. 관계 집합 내에서 여러 관계를 구별하기 위해 관계 집합 내 엔터티들의 기본 키를 사용함

- 관계 집합 R이 엔터티 집합 E1, E2, ..., En을 포함할 때

- R의 기본 키는 E1, E2, ..., En의 기본 키를 합한 것

- 관계 집합 R에 a1, a2, ..., am 속성이 포함될 경우, 기본 키는 해당 속성들도 포함함

2. 예시: 관계 집합 "advisor"

- 기본 키는 instructor.ID와 student.ID로 구성됨

이항 관계의 기본 키 선택

1. 관계 집합의 매핑 카디널리티에 따라 기본 키 선택이 달라짐

1) 다대다 관계: 기본 키들의 합집합이 최소 슈퍼키이며, 이를 기본 키로 선택함

2) 일대다 관계: "다" 측의 기본 키가 최소 슈퍼키이며, 이를 기본 키로 사용함

3) 다대일 관계: "다" 측의 기본 키가 최소 슈퍼키이며, 이를 기본 키로 사용함

4) 일대일 관계: 두 개의 엔터티 집합 중 하나의 기본 키가 최소 슈퍼키이며, 둘 중 하나를 선택하여 기본 키로 사용 가능

목차

1. SQL 데이터 정의 언어(DDL)

2. 데이터베이스 설계

3. E-R 다이어그램

- 매핑 카디널리티

- E-R 모델에서 기본 키

- 약한 엔터티 집합

- 관계 스키마로 변환

약한 엔터티 집합

1. 약한 엔터티 집합다른 엔터티(식별 엔터티)에 의존하여 존재함

2. 약한 엔터티에는 기본 키 대신 식별 엔터티와 추가 속성(판별자, Discriminator)을 사용하여 고유하게 식별함

1) 약한 엔터티 집합 자체에는 기본 키가 없음

2) 엔터티를 구별할 수 있는 방법이 필요함

- 약한 엔터티의 판별자: 약한 엔터티를 구별하는 속성 집합

- 약한 엔터티 집합의 기본 키 = 강한 엔터티 집합의 기본 키 + 판별자

3) 예를 들어, section 엔터티는 course_id, semester, year, sec_id로 고유하게 식별됨 → section 엔터티는 course 엔터티와 관련됨
- sec_course 관계를 추가 정보를 제공하는 특별한 관계로 취급함
- 이 경우, section 엔터티를 고유하게 식별하기 위해 course_id가 필요함

3. 식별 엔터티

1) 모든 약한 엔터티는 식별 엔터티와 연결됨

- 즉, 약한 엔터티 집합은 식별 엔터티 집합에 의존하여 존재함

4. 식별 엔터티 집합은 약한 엔터티 집합을 소유함

1) 식별 엔터티 세트: 기본 키를 가진 엔터티 세트

2) 식별 엔터티 집합 = 강한 엔터티 집합

5. 식별 관계

1) 약한 엔터티 집합과 식별 엔터티 집합을 연결하는 관계

약한 엔터티 집합 표현

1. 약한 엔터티 집합은 이중 사각형(double rectangle)으로 표시됨

2. 약한 엔터티의 판별자는 점선 밑줄로 표시됨

3. 약한 엔터티 집합을 강한 엔터티 집합과 연결하는 관계 집합은 이중 다이아몬드(double diamond)로 표시됨

1) 예시: section의 기본 키 – (course_id, sec_id, semester, year)

대학 데이터베이스의 E-R 다이어그램

예시: 음반 가게

1. 엔터티 집합

1) customer

2) product (CD, 바이닐)

3) purchase

2. 관계 집합

1) contains (product와 purchase 간 관계)

2) buyer (customer와 purchase 간 관계)

3. 엔터티는 특정한 개체를 의미함, 예: BTS의 최신 CD

4. 관계는 특정한 두 개체 간의 연결을 의미함

5. 속성

1) customer : 이름, 주소, 전화번호, 이메일 등

2) product : 아티스트, 제목, 가격, 설명

3) purchase : 날짜, 결제 방식

4) 모든 엔터티 집합에 인공 기본 키 적용

6. 관계 유형

1) 1대1

2) 1대다 : buyer 관계 (customer와 purchase 간)

3) 다대다 : contains 관계 (purchase와 product 간)

E-R 다이어그램

예시: 항공편 데이터베이스

1. 엔터티 집합

1) airport : 코드, 이름, 도시

2) flight : 항공편 번호, 출발 예정 시간(STD), 도착 예정 시간(STA), 날짜 오프셋

3) departure : 출발 날짜, 정원

4) customer : ID, 이름, 주소, 마일리지 번호

2. 관계 집합

1) to, from (flight와 airport 간)

2) flight_dept (flight와 departure 간)

3) reserved_on (customer와 departure 간)

목차

1. SQL 데이터 정의 언어(DDL)

2. 데이터베이스 설계

3. E-R 다이어그램

- 매핑 카디널리티

- E-R 모델에서 기본 키

- 약한 엔터티 집합

- 관계 스키마로 변환

Reduction to Relation Schemas (관계 스키마로의 변환)

1. 개체 집합과 관계 집합은 관계 스키마로 균일하게 표현될 수 있다.

1) 각 개체 집합과 관계 집합에는 해당 개체 집합 또는 관계 집합의 이름이 할당된 고유한 스키마가 존재한다.

2) 각 스키마에는 (일반적으로 속성에 해당하는) 여러 개의 열이 있으며, 이들은 고유한 이름을 가진다.

Representing Entity Sets (개체 집합 표현)

1. 강한 개체 집합동일한 속성을 가진 스키마로 변환된다.

1) 예: student(ID, name, tot_cred)

2. 약한 개체 집합이를 식별하는 강한 개체 집합의 기본 키를 포함하는 테이블로 변환된다.

1) 예: section (course_id, sec_id, sem, year)

Representation of Entity Sets with Composite (복합 속성을 가진 개체 집합 표현)

1. 복합 속성은 각 구성 속성에 대해 개별 속성을 생성하여 전개된다.

1) 예

(1) first_name → name_first_name

(2) last_name → name_last_name

2) 모호성이 없는 경우 접두사를 생략할 수 있다.

3) 예: 다중값 속성(phone_number)을 무시할 경우, instructor 스키마는 다음과 같다.

Java
instructor(ID, first_name, middle_initial, last_name, street_number, 
street_name, apt_number, city, state, zip_code, date_of_birth)

Representation of Entity Sets with Multivalued Attributes (다중값 속성을 가진 개체 집합 표현)

1. 개체 E의 다중값 속성 M은 별도의 스키마 EM으로 표현된다.

1) 스키마 EM은 E의 기본 키에 해당하는 속성과 다중값 속성 M에 해당하는 속성을 가진다.

2) 예: instructor의 다중값 속성 phone_number -> inst_phone(ID, phone_number)

2. 다중값 속성의 각 값은 스키마 EM의 관계에서 별도의 튜플로 매핑된다.

1) 예: 기본 키가 22222이고 전화번호가 456-7890과 123-4567인 instructor 개체 → 두 개의 튜플로 매핑됨

Representing Relationship Sets (관계 집합 표현)

1. 강한 개체 집합 간의 관계 집합두 개체 집합의 기본 키 속성과 관계 집합의 설명 속성을 포함하는 스키마로 표현될 수 있다.

1) 예: 관계 집합 advisor의 스키마

(1) advisor = (s_id, i_id)

Redundancy of Schemas (스키마의 중복)

1. 이러한 "매핑 테이블"은 중복될 수 있다.

1) 다대일(Many-to-One) 및 일대다(One-to-Many) 관계 집합에서, 다(Many) 측이 전체 참여인 경우

2) "다(Many)" 측에 "일(One)" 측의 기본 키를 포함하는 추가 속성을 추가하여 표현할 수 있다.

- 예: 관계 집합 inst_dept에 대한 별도 스키마를 생성하는 대신, 개체 집합 instructor에서 생성된 스키마에 속성 dept_name을 추가할 수 있다.

3) 다(Many) 측의 참여가 부분적일 경우, "다(Many)" 측에 해당하는 스키마에 추가 속성을 넣는 방식은 null 값을 초래할 수 있다.

4) 일대일(One-to-One) 관계 집합의 경우, 어느 한 쪽을 "다(Many)" 측으로 선택할 수 있다.

(1) 두 엔티티 집합에 해당하는 테이블 중 하나에 추가 속성을 추가할 수 있다.

EOF

- Coming next : Normalization theory (정규화 이론)