슬라이드 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