슬라이드 1 - ###### 컴퓨터과학과 홈페이지

Download Report

Transcript 슬라이드 1 - ###### 컴퓨터과학과 홈페이지

Chapter
3. 데이터베이스 모델링
소단원 소단원
:
학습목표
학습목표
안정적인 데이터베이스 시스템의 구현 및 유지관리를
위해서는 정확하고 명쾌한 데이터베이스 모델링이 무엇
보다도 중요 하다. 따라서 본 단원에서는 데이터베이스
를 설계할 때 반드시 거쳐야 하는 3단계 모델링인 개념
적, 논리적, 물리적 모델링에 대한 전반적인 개념 및 역
할에 대하여 학습한다.
1
Chapter
소단원 소단원
:
3. 데이터베이스 모델링
DB 모델링의 개념
1. 데이터베이스 모델링이란?
데이터베이스 모델링 (Database modeling)이란?
• 현실 세계의 데이터를 컴퓨터 세계의 물리적인 데이터베이스로
변경하는 중간과정을 말함
• 데이터베이스 설계 과정에서 데이터의 구조를 개념적으로 표현하는 과정
데이터베이스 모델링의 목적
• 안정적인 데이터베이스 구현 및 유지관리
데이터 모델링의 3가지 종류
개념적 모델링
개체타입, 속성, 값
논리적 모델링
레코드, 필드, 값
물리적 모델링
물리적 저장 데이터베이스
2
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
DB모델링의 범주
DB 모델링의 범주
3
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
DB모델링의 개념도
DB 모델링의 개념도
4
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
개념적 DB 모델링
2. 개념적 데이터베이스 모델링하기
개념적 데이터베이스 모델링이란?
• 엔티티와 엔티간의 관계(Relationship) 정의
• 현실세계의 데이터를 개념적으로 표현하고 그 구조를 형성하는 것
개체-관계 모델(E-R: Entity-Relationship model)
• 엔티티간의 관계를 표현하기 위한 가장 대표적인 모델
• 1976년 Peter Chen이 제안
• 개체 타입(Entity Type)과 관계 타입(Relationship Type)을 이용하여
현실 세계를 개념 세계로 표현하는 방법
• 관계 타입은 개체 타입들간의 관계를 정의한 것
E-R 다이어그램(E-R Diagram)
• 개체타입과 관계타입을 도식화한 것
• 개념적 모델링을 직관적으로 이해하는데 도움을 줌
E-R 다이어그램의 표현
• 사각형 : 개체타입을 표현
• 마름모 : 관계타입을 표현
• 타원 : 속성을 표현
5
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
E-R 다이어그램
쇼핑몰 E-R 다이어그램 표현
6
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
논리적 DB 모델링
3. 논리적 데이터베이스 모델링하기
논리적 데이터베이스 모델링이란?
• 개념적 모델링에 의해 만들어진 E-R 다이어그램을 바탕으로 모델링이 이루어짐
• 개념적 데이터 모델에 매핑 규칙을 적용
• 정규화 과정을 거쳐 특정 DBMS가 처리 가능한 관계 스키마를 형성
매핑규칙 (Mapping Rule) 적용
• 엔티티 → 테이블
• 어트리뷰트 → 컬럼
• 식별자 → 기본키
• 관계 → 왜래키
정규화를 수행하는 목적
• 릴레이션에 존재하는 각종 이상 현상을 제거하기 위해서 필요한 과정임
7
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
이상현상
3.1 이상(anomaly) 현상이란?
이상현상(anomaly)이란?
• 특정 릴레이션에 대한 데이터를 조작 함에 있어 원치 않는 현상이 발생하거나 조작
으로 인해 곤란한 현상이 발생 하는 것
이상현상의 종류
• 삭제 이상(Delete anomaly) : 보존해야 할 데이터까지 함께 삭제되는 경우가 발생
• 삽입 이상(Insert anomaly) : 원치 않는 데이터를 함께 삽입해야 하는 경우가 발생
하는 것을 말함
• 갱신 이상(Update anomaly) : 데이터의 일부만을 수정함으로 인해 동일한 데이터
에 서로 다른 값들이 존재하여 데이터 불일치 현상이 발생하는 것
8
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
이상현상
삭제 이상(Delete anomaly)
• 특정 레코드 삭제로 인해 보존해야 할 정보까지 함께 삭제된 현상
• 정보손실이 발생하는 현상
■ 예제 : 주문 릴레이션에 고객ID 'piggy' 회원의 주문 정보를 삭제 하시오.
9
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
이상현상
삽입 이상(Insert anomaly)
• 특정 데이터를 삽입하려고 하는 경우 불필요한 데이터도 함께 삽입해야만 삽입이 가
능한 경우 발생하는 현상
■ 예제 : 주문 릴레이션에서 새로운 고객인 ‘toya’ 의 고객등급 ‘실버’를 삽입하시오.
삽입불가
toya
실버
10
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
이상현상
갱신 이상(Update anomaly)
• 중복 저장된 데이터들 중에서 일부만 수정 함으로서 데이터의 불일치(inconsistency)
가 발생하는 현상
■ 예제 : 주문릴레이션에서 상품코드가 P2인 상품의 가격을 80000만원에서 65000으
로 수정하시오.
데이터 불일치
11
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
함수 종속성
3.2 함수 종속(Function Dependency)이란?
함수 종속성 (Function Dependency)이란?
• DB에서 나타내고자 하는 실 세계에 관한 사실(fact)을 표현 해주는 것
• 데이터베이스 설계가 잘된 것과 잘못된 것을 구분하는 척도
함수 종속 정의
• A ⊆ R, B ⊆ R이라 하자
• 어트뷰트 A의 값 각각에 대하여 시간에 관계없이 항상 어트리뷰트 B의 값이 오직하
나만 관련되어 있을 때 B는 A에 함수 종속이라 한다.
• 함수종속은 A → B 표기 함
함수 종속 의 종류
• 완전함수종속 (full function dependency)
• 부분함수 종속 (partial function dependency)
12
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
함수 종속성
함수종속 표현
고객ID → 성명
→ 주민번호
고객ID → 마일리지
고객ID
고객ID → 전화
고객ID → 고객등급
고객ID
→
주소
고객ID → (성명, 주민번호, 마일리지, 전화, 고객등급, 주소)
13
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
함수 종속성
주문 릴레이션
14
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
함수 종속성
함수 종속 다이어그램
함수 종속 다이어그램 (Function Dependency Diagram)
• 함수적 종속관계를 그림으로 표현한 것
■ 주문 릴레이션의 함수종속 다이어그램
15
Chapter
소단원 소단원
:
3. 데이터베이스 모델링
함수 종속성
함수 종속관련 추론규칙
이행규칙(Transitive rule)
•
α → β 가 보존되고 β → γ
가 보존되면, α
→γ
는 보존된다
증가규칙(Augmentation rule)
•
α → β 가 보존되고 γ
가 속성들의 집합이면, γ
α→γβ
는 보존된다
분해규칙(Decomposition rule)
•
α → β γ 가 보존되고 α → β 가
보존되면,
α → γ가 보존된다
결합규칙(Union rule)
• α → β 가 보존되고 α → γ 가 보존된다면, α → β γ가 보존된다
반사규칙(Union rule)
• α 가 속성들의 집합이고 β ⊆α 이면, α → β 가 보존된다
16
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
정규형
3.3 정규형(Normal Form)의 필요성
정규형 (Normal Form)의 필요성
• 데이터의 중복성이 제거됨
• 이상현상이 발생하지 않도록 하는 것
• 각 정규형은 특정 조건을 만족 시켜야 함
정규형 의 종류
• 제 1 정규형 (First Norm Form: 1NF)
• 제 2 정규형 (Second Normal Form :2NF)
• 제 3 정규형 (Third Normal Form : 3NF)
• 제 4 정규형 (Fourth Normal Form : 4NF)
• 제 5 정규형 (Fifth Normal Form : 5NF)
• 보이스코드-정규형(BCNF : Boyce/Codd Normal Form)
17
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
정규형
상품 릴레이션
18
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
정규형
제 1 정규형
• 릴레이션에 대해 매우 기본적인 조건만 요구
• 함수 종속성과 같은 부가 정보는 요구하지 않음
• 릴레이션에 속하는 도메인은 더 이상 분할 되지 않은 원자 값(atomic value)을
가짐
■ 예제 : 상품 릴레이션의 제 1 정규화를 수행해 보자
19
Chapter
3. 데이터베이스 모델링
■
소단원 소단원
:
정규형
상품 릴레이션이 제 1정규화
20
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
정규형
주문 릴레이션
21
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
정규형
제 2 정규형
• 어떤 릴레이션이 제1 정규형이면서 기본키에 속하지 않는 어트리뷰트 모두가
기본키에 완전함수 종속이면 제2정규형 임
• 복합키에 종속하지 않는 어트리뷰트들을 제거함
■ 주문 릴레이션의 함수 종속 다이어그램
22
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
정규형
■ 주문 릴레이션이 제 2 정규화
23
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
정규형
주문 릴레이션
24
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
정규형
제 3 정규형
• 어떤 릴레이션이 제 2 정규형이고 기본키에 속하지 않는 어트리뷰트 들이
이행적함수 종속이 아닐 때
• 기본키에 종속하지 않고 일반 어트리뷰트에 종속하는 어트리뷰트들을 제거 함
■ 주문 릴레이션의 함수 종속 다이어그램
25
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
정규형
■ 주문 릴레이션의 제 3 정규화
26
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
논리적 DB모델링의 예
3.4 논리적 데이터베이스 모델링의 예
• 관계형 데이터 모델을 이용
• 데이터베이스의 형태를 릴레이션(테이블)로 구성
• 개체(entity)와 관계(relationship) 모두를 테이블 형태로 표현
• 사용자는 데이터를 행과 열의 집합으로 구성된 테이블로 인식
■ 쇼핑몰의 E-R 다이어그램을 관계형 릴레이션으로 표현
27
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
물리적 DB 모델링
4. 물리적 데이터베이스 모델링하기
물리적 데이터베이스 모델링
• 논리적 데이터베이스 모델링에서 얻어진 DB스키마를 실제 DBMS의 특성에 맞게
실제 DB 내의 개체들을 정의하는 단계
• 사용하고자 하는 DBMS의 종류를 결정
• 논리적 모델링 단계에서 얻어진 정규화된 모델을 기반으로 이들의 어트리뷰트(컬럼
/필드)들의 데이터 타입과 크기를 정의
• 릴레이션(테이블)과 컬럼의 제약조건들을 정의
• 데이터 사용량 분석과 사용자의 업무 프로세스를 분석함(가장 주요한 부분임)
• 효율적인 DB관리를 위해 인덱스를 정의 함
• 저장레코드의 양식설계, 저장장치에 레코드들의 물리적인 집중화 접근경로
설계가 포함
28
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
인덱스의 의미
4.1 인덱스(Index)의 정의 및 유형
•
데이터의 위치 정보를 모아 놓은 데이터베이스 내의 객체(object)
•
원하는 데이터를 신속히 찾기 위해 사용
•
데이터베이스 시스템의 성능향상에 중요한 역할을 하게 됨
•
항상 정렬된 상태를 유지하고 있음
인덱스의 2가지 유형
•
순서 인덱스(Ordered indices) : 인덱스값을 정렬된 상태로유지, DB의 크기에로
그로 비례, 성능감소 예상
예) select * from 고객 where 포인트점수 >= 2000 and 포인트점수 <= 3000
•
해시 인덱스(Hash indices) : 버킷의 범위 안에 값이 일정하게 분배 됨, 해시함
수 사용으로 버킷을 결정, 입출력 연산오버헤드가 적음
예) select * from 고객 where 고객ID=‘joyful78’;
인덱스 구현시 고려사항
•
액세스의 형태, 액세스 시간, 삽입 시간, 삭제 시간, 공간 부담
29
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
인덱스의 원리 및 구조
4.2 인덱스의 기본원리 및 구조
•
인덱스를 이용한 데이터 접근 :
인덱스 찾기 → 해당 인덱스가 가리키는 포인터를 따라감
인덱스의 구성
•
인덱스 파일 : [키 값, 주소]
•
데이터 파일
인덱스 의 구조
•
계층형 구조
•
대부분의 사용 관계형 DBMS들은 B-트리로 구성 되어 있음
30
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
인덱스의 원리 및 구조
■ 인덱스 구조
31
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
인덱스의 사용 예
4.3 인덱스를 사용하는 경우와 사용하지 않는 경우의 차이점
■ 성명을 인덱스 필드로 사용하는 고객 릴레이션에서 ‘황현준’ 고객을 검색해 보자
인덱스를 사용하지 않은 경우 : 7번의 비교검색으로 원하는 정보를 얻음
인덱스를 사용하는 경우 : 단 2회만의 비교검색으로 원하는 정보를 얻음
32
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
객체지향 DB 모델링
5. 객체지향 데이터베이스 모델링
객체지향 데이터베이스의 등장 배경
•
현재 대부분의 DB개발 도구들이 객체지향 쪽으로 개발됨
•
인터넷과 멀티미디어 데이터의 확산
객체지향 데이터베이스 모델링의 방향
•
•
기존의 ERD방식에서 객체지향 모델링방식으로 전환
절차적 프로그래밍에서 벗어나 객체지향 프로그래밍으로 선회
객체지향 모델링을 위한 툴들
•
UML (Unified Modeling Language)
•
ORM (Object Role Modeling)
33
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
OODB의 객체들
5.1 객체 지향 데이터베이스 모델링의 객체들
객체와 식별자
•
객체는 실존하는 정보 또는 이를 사용하는 유,무형의 존재(사람,장소,사물,사건
등)
•
식별자는 동일한 객체내에 존재하는 인스턴스들을 구별하기 위한 키값을 말함
어트리뷰트
•
객체의 성질, 상태, 수량, 분류등
메서드
•
객체들이 수행하는 연산(동작)
클래스
•
슈퍼클래스, 서브클래스
클래스 계층과 계승
•
슈퍼클래스의 특성을 서브클래스가 상속 받을 수 있음
캡슐화
•
정보의 은닉
34
Chapter
소단원 소단원
:
OODB모델링 사례
3. 데이터베이스 모델링
5.2 객체 지향 데이터베이스 모델링 사례
객체지향 데이터 모델링 개념
 관계형 모델로 구성된 테이블
CREATE TABLE 직원
(이름
char(20),
직업
char(20),
봉급
float,
기술
char(20),
부서
char(20) );
KIM
KIM
Programmer
Programmar
80K CPA
80K CPA
R&D
R&D
35
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
OODB모델링 사례
36
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
OODB모델링 사례
37
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
OODB모델링 사례
38
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
OODB모델링 사례
객체지향 데이터 모델링 개념
 확장4 : Inheritance
 테이블은 계승을 통해 specialize 또는 generalize 될 수 있다.
 한 테이블은 한 개 이상의 상위 테이블을 가질 수 있다.
 하위 테이블은 상위 테이블의 어트리뷰트와 메소드를 계승받을 수 있다.
CREATE TABLE 판매담당자 AS CHILD OF 직원
(quota
MONETARY,
METHOD
retirement(): monetary FUNCTION r_2
);
39
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
OODB모델링 사례
40
Chapter
3. 데이터베이스 모델링
소단원 소단원
:
단원 정리
단원정리 1
★ 데이터베이스 모델링 (database modeling)이란 현실세계
의 데이터를 컴퓨터 세계의 물리적인 데이터베이스로 변경하
는 중간 과정을 말하며, 데이터 모델링은 분류는 개념적, 논리
적,
모델링등의 3가지로 나누어진다.
?
단원정리 2
물리적
이상
★
? 현상은 특정 릴레이션에 중복된 데이터가 존재할
때 조작에 있어서 원치 않는 혹은 곤란한 현상이 일어나는 것
을 말한다. 이상현상의 종류에는 삭제이상(delete anomaly)과
삽입이상(Insertion anomaly), 갱신이상(update anomaly)이
있다.
41
Chapter
3. 데이터베이스 모델링
단원정리 3
소단원 소단원
:
단원 정리
제약조건
★ 함수 종속은 잘된 데이터베이스 설계와 잘못된 데이터베이
스 설계를 구분하는 핵심 척도가 되며, 적법한 릴레이션의 집합
에서의
이다. 또한 함수 종속은 데이터베이스에서 나타
?
내고자 하는 실세계에 관한 사실들을 표현하도록 해주고 있다.
이상
단원정리 4
★ 관계형 릴레이션에 데이터를 삽입 또는 삭제, 갱신연산을 수
행할
화의
에서
N o
때
현상이 발생하지 않도록 하는 것이 정규
?
목적이다. 정규형의 종류는 제 1 정규형(Normal Form:NF)
제5 정규형까지 그리고 보이스-코드 정규형(Boyce/Codd
r m a l
F o r m :
B C N F ) 이
있 다
42