Presentation is loading. Please wait.

Presentation is loading. Please wait.

07. DB 설계 명지대학교 ICT 융합대학 김정호.

Similar presentations


Presentation on theme: "07. DB 설계 명지대학교 ICT 융합대학 김정호."— Presentation transcript:

1 07. DB 설계 명지대학교 ICT 융합대학 김정호

2 데이터 정규화 수강 테이블 예제 기본 키: {학번, 과목 번호} 수강 학번 과목번호 성적 학년 100 C413 A 4 100
E412 A 4 200 C123 B 3 300 C312 A 1 300 C324 C 1 300 C413 A 1 400 C312 A 4 400 C324 A 4 400 C413 B 4 400 E412 C 4 500 C312 B 2 기본 키: {학번, 과목 번호}

3 데이터 정규화 삭제 이상(deletion anomaly) 삽입 이상(insertion anomaly)
200번 학생이 'C123'의 등록을 취소 ⇒ 3학년이라는 정보도 함께 삭제됨 연쇄 삭제(triggered deletion)에 의한 정보 손실(loss of information) 삽입 이상(insertion anomaly) 600번 학생이 2학년이라는 사실을 삽입 ⇒ 어떤 과목을 등록하지 않는 한 삽입이 불가능 (∵ 과목 번호가 기본 키) 원하지 않는 정보의 강제 삽입 갱신 이상(update anomaly) 400번 학생의 학년을 4에서 3으로 변경 ⇒ 학번 400에 대한 4개의 투플 모두를 변경해야 함 중복 데이타의 일부 갱신으로 정보의 모순성(inconsistency)이 발생

4 데이터 정규화 이상의 원인 하나의 개체에 속한 애트리뷰트들 간에 존재하는 여러 개의 종속관계 (dependency)를 하나의 릴레이션으로 표현하기 때문 이상의 해결 애트리뷰트들 간의 여러 종속관계를 분해(decomposition) 하여 각각 하나의 릴레이션으로 표현 하나의 종속성은 하나의 릴레이션으로 표현 ⇒ 정규화(normalization) 과정

5 데이터 정규화 과목번호 학년 성적 학번 함수 관계로 표현 수강 릴레이션: 수강(학번, 과목번호, 학년, 성적)
기본 키: { 학번, 과목번호 } {학번, 과목번호}  성적 학번  학년 과목번호 학년 성적 학번

6 데이터 정규화 학번 과목번호 성적 학과 100 C413 A 컴퓨터 E412 200 C123 B 전기 300 C312 C324
400 수강 지도 지도교수 P1 P2 P3

7 데이터 정규화 학번 학과 100 컴퓨터 200 전기 300 400 지도 지도교수 P1 P2 P3 과목번호 성적 C413 A
E412 C123 B C312 C324 C 학번 100 200 300 400 수강

8 데이터 정규화 지도 ⇒ 학생 지도와 지도교수 학과로 분해 학생지도 (학번, 지도교수) 기본 키: {학번}
외래 키: {지도교수} 참조: 지도교수학과 지도교수학과 (지도교수, 학과) 기본 키: {지도교수} 지도교수 학과 학번 학번 100 200 300 400 학생지도 지도교수 P1 P2 P3 학과 컴퓨터 전기 지도교수 P1 P2 P3 지도교수학과

9 데이터 정규화 수강과목(학번,과목,교수) 릴레이션 제약조건 수강과목 (학번,과목,교수)
한 학생은 각 과목에 대해 오직 한 교수의 강의만 수강 각 교수는 한 과목만 담당 같은 과목을 여러 교수가 담당할 수 있음 수강과목 (학번,과목,교수) 후보 키 : {학번,과목}, {학번,교수} 기본 키 : {학번,과목} 함수종속 : {학번,과목}  교수 교수  과목 수강과목 학번 과목 교수 100 프로그래밍 P1 100 자료구조 P2 학번 200 프로그래밍 P1 교수 200 자료구조 P3 과목 300 자료구조 P3 300 프로그래밍 P4

10 데이터 정규화 수강과목 ⇒ 수강교수, 과목교수 교수 과목 학번 수강교수(학번, 교수) 기본 키 : {학번, 교수}
외래 키 : {교수} 참조 : 과목교수 과목교수(교수, 과목) 기본 키 : {교수} 학번 100 200 수강교수 교수 P1 P2 P3 300 P4 과목 프로그래밍 자료구조 교수 P1 P2 P3 P4 과목교수 교수 과목 학번

11 데이터 관계 관계 타입(relationship type) “등록” relationship type
개체 집합(타입)들 사이의 대응(correspondence), 즉 사상(mapping)을 의미 등록 학생 과목 “등록” relationship type

12 데이터 관계 “학생”개체 집합 “등록”관계 집합 “과목”개체 집합
“등록” 관계 인스턴스(relationship instance)

13 데이터 관계 강의 교수 과목 시간 장소 attributes를 가진 relationship type

14 Entity-Relationship model(E-R model)
개념적 데이타 모델(conceptual data model) 현실 세계의 개념적 표현 개체 타입(집합)과 관계 타입(집합)을 기본 개념으로 현실 세계를 개념적으로 표현하는 방법 개체 집합(entity set) 한 개체 타입에 속하는 모든 개체 인스턴스(entity instance) 관계 집합(relationship set) 한 관계 타입에 속하는 모든 관계 인스턴스(relationship instance)

15 ERD (E-R Diagram) 1976. Peter Chen E-R 모델의 그래픽 표현 개체 타입 (entity type)
관계 타입 (relationship type) 속성(attribute) 링크(link) 레이블(label) : 관계의 사상 원소 수를 표현 일대일(1:1), 일대다(1:n), 다대일(n:1), 다대다(n:m)

16 ERD Example 교수 시간 1 1 지도 교수 번호 교수 이름 강의 전공 학과 n n 장소 등록 n m 학생 과목 과목
학점 학번 이름 주소 학년 성적

17 DB Schema 독립된 릴레이션으로 관계(relationship)를 표현 교수번호 교수이름 전공 학과 교수 학번 이름 주소
학년 학생 과목번호 과목이름 학점 과목 entity 릴레이션 지도 시간 장소 강의 성적 등록 relationship 릴레이션

18 교수와 학생간의 지도 관계의 표현 공통 애트리뷰트로 관계(relationship)를 표현 (a) (b) 교수번호 교수이름 전공
학과 교수 학번 이름 주소 학년 학생 (a) (b)

19 Question ?


Download ppt "07. DB 설계 명지대학교 ICT 융합대학 김정호."

Similar presentations


Ads by Google