전공 과목 이수2👨‍💻/데이터베이스

[데이터베이스] 07.데이터베이스 설계

천숭이 2021. 5. 31. 21:59

< 데이터 베이스 스키마 설계 시 두 가지 위험성 >

1. 중복성

2. 불완전성

 

< 데이터베이스 작업과정 >

ISP(정보전략짜기) / BPR(업무처리재구성) -> ER Modeling (개체관계 모델링)

* 비전공자 교직원들이 ER-diagram(설계도)를 보고 이해해야한다. 따라서 설계도는 쉽게 작성되어야 한다.

 

## 7.2 개체-관계 모델 ER-Modeling

개체(Entity)

실세계에서 다른 모든 객체와 구별되는 유, 무형의 사물

예 : 각 개인, 수업, 비행기 예약

 

속성(Attributes)

각 개체 집합의 각 구성원들이 가지는 기술적 특성

예 : instructor 개체 집합의 속성은 ID, name, dept_name, salary

 

개체 집합(Entity set)

같은 속성을 공유하는 같은 유형의 개체들의 집합

예 : 교수인 모든 사람들의 집합, 대학에 속한 모든 학생들의 집합

 

관계 (Relationship)

여러 객체들 사이의 연관성

 

관계 집합 (Relationship set)

같은 유형의 관계들의 집합

관계 집합은 n  2 개의 개체 집합 사이의 수학적 관계

{(e1, e2, … en) | e1E1, e2E2, …, enEn}
(e1, e2, …, en) 은 관계

예 : (44553,22222)  advisor

관계집합 advisor
관계집합 설명속성

# 속성

단순 속성 복합 속성 simple & composite attribute

예 : Address, name, 김갑동, …

 

단일값 속성 다중값 속성 single-valued & multivalued attributes

예 : phone_numbers, dependent_name

 

유도된 속성 Derived attributes (파생)

다른 관련된 속성들이나 객체들의 값들로부터 유도됨

예 : age 는 date_of_birth 로부터 유도됨

 

# 이진 관계 집합(Binary relationship)

두 개체 집합이 관련된 관계 집합

데이터베이스 내의 대부분의 관계 집합은 이진 관계 집합임

예 : 대학에서 수행된 모든 연구 과제를 표현하는 project라는 개체 집합 ,

  어느 특정 과제에 있어서 어느 교수가 어느 학생을 지도하고 있는 지에 대한 정보를 저장하는 관계 집합 proj_guide

 

* 관계 집합에 참가하는 개체 집합의 수를 관계 집합의 차수라고 함

# 대응수 mapping cardinalities

관계 집합을 통하여 다른 개체와 관련될 수 있는 개체의 수

이진 관계 집합에서 대응수 :

   일대일

   일대다

   다대일

   다대다

대응수

(b)의 경우 B집합의 개체들은 여러개로 뻗지 않고 A의 개체 하나로만 뻗는다. 따라서 일 대 다

(a) many to one  (b) many to many

 

# keys

개체들을 유일하게 구별해주는 속성들의 집합

수퍼키

유일성, 1개 이상

후보키

최소한의 수퍼키

유일성, 최소성, 1개 이상

IDinstructor 의 후보키

course_idcourse의 후보키

주키

후보키 중 한 개

 

# E-R Diagrams

e-r diagrams 그리는 방법

사각형 개체 집합
첫 번째 부분은 개체 집합의 이름
두 번째 부분은 개체 집합의 모든 속성, 주 키는 밑줄
다이아몬드 관계 집합
개체 집합을 관계 집합에 연결
-> 화살표 : "one"
막대기 : "many"
참가 이중선 : 전체적인 참가
참가 단일선 : 부분적인 참가
점선 어떤 관계 집합의 속성들을 그 관계 집합에 연결
이중선 개체의 관계 집합에의 전체적 참가를 나타냄
이중 다이아몬드 약성 개체 집합으로 연결된 식별 관계 집합을 나타냄

관계 집합에 부여된 속성 (점선)
복합, 다중값, 유도된 속성이 있는 E-R 다이어그램

# 역할 roles

- 다이아몬드를 사각형에 연결하는 선에 이름을 붙여 역할 표시

- 1항 관계

- course_idprereq_id 역할 표시자

# 일대일

교수는 최대 한 명, 학생은 최대 한 명의 지도교수 가짐

 

# 일대다

교수는 많은 학생, 학생은 최대 한 명의 지도교수 가짐

# 다대일

교수는 반드시 한 명의 학생, 학생은 많은 지도교수 가짐

# 다대다

교수는 많은 학생, 학생은 많은 지도교수 가짐

# 참가 one to many

교과목<-sec_course=강좌

모든 강좌는 sec_course에 참여한다.(모든 수업과 연관됨)

교과목중에는 sec_course에 부분적으로 참여한다.

 

# 삼진 관계 Ternary relationship

터널 릴레이션이 존재할때만 삼진관계를 잡는다.

어떤 학생이 프로젝트에 참여하는 동안 어떤 교수가 프로젝트를 가이딩한다.

어떤 교수가 어떤 프로젝트에 대해서 어떤 학생을 가이딩했다.

어떤 학생이 어떤 교수에게 가이딩 받을때 어떤 프로젝트에 대해서 받았다.

* 주어와 목적어를 개체와 관계만 번갈아가면서 표현가능

 

# 약성 개체 집합 Weak Entity sets

약성 개체의 구별자는 점선으로 밑줄

약성 개체 집합을 식별 강성 집합과 연결하는 관계 집합은 이중 다이아몬드로 표현

약성 개체 집합 : section

  • 주 키를 형성하기 위한 충분한 속성들을 지니고 있지 않는 개체 집합
  • 식별, 지배 개체 집합이라 불리는 다른 개체 집합과 관련되어야 함
  • 식별 개체 집합에 존재 종속 관계

강성 개체 집합 : course

  • 주 키를 가지고 있는 개체 집합
  • 식별 개체 집합

식별 관계 : 약성 개체 집합과 식별 개체 집합을 연관 짓는 관계

  • 약성 관계 집합으로부터 식별 관계 집합으로의 다대일
  • 약성 관계 집합의 참가는 전체적

구별자

  • 개체 집합의 부분 키
  • 약성 개체 집합 내의 모든 개체들을 서로 구별하게 하는 속성들의 집합

약성 개체 집합의 주 키는 식별 개체 집합의 주 키와 약성 개체 집합의 구별자를 합하여 만듦

 

# 대학 조직을 위한 E-R Diagram