학습목표 학습목표 안정적인 데이터베이스 시스템의 구현 및 유지관리를 위해서는 정확하고 명쾌한 데이터베이스 모델링이 무엇보다도 중요 하다. 따라서 본 단원에서는 데이터베이스를 설계할 때 반드시 거쳐야 하는 3단계 모델링인 개념적, 논리적, 물리적 모델링에 대한 전반적인.

Slides:



Advertisements
Similar presentations
컴퓨터와 인터넷.
Advertisements

2장. 데이터 모델.
1. 관계 데이터베이스의 정규화 (1) 정규화 1) 이상(anomaly) ① 이상의 정의 • 관계 모델에서는 애트리뷰트들 간에 존재하는 여러 종속관계를 하나의 릴레이션에 표현하기 때문에 릴레이션 조작 시 이상 (anomaly) 발생 • 데이터의 중복으로 인하여 관계연산을.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
Entity Relationship Diagram
제 4 장 관계 학기 소프트웨어설계.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
학습목표 학습목표 이번 강좌에서는 ER-Win 툴을 사용하여 3주 강좌에서 E-R 다이어그램으로 표현하였던 쇼핑몰과 학사관리시스템에 대한 논리적/물리적 DB 모델링 설계과정을 단계별 실습을 통하여 상세히 학습한다. 또한 SQL Server 엔터프라이즈 관리자에서 관계.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
3. 데이타베이스 관리시스템.
08. 데이터 모델링.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
KHS JDBC Programming 4 KHS
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
5장 Mysql 데이터베이스 한빛미디어(주).
공학컴퓨터프로그래밍 Python 염익준 교수.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
함수적 종속과 정규화 함수적 종속 데이터 중복의 문제점 정규형.
자바 5.0 프로그래밍.
DataBase 김상훈 송예은 고미영 이경민.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
ER-관계 사상에 의한 관계 데이터베이스 설계
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
1. 데이터 모델 개념 (1) 정보 모델링과 데이터 모델링 1) 정보 모델링 (information modeling) ① 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조 (현실 세계에 대한 인식을 추상적 개념으로 표현)로 표현하는 과정 ② 정보 모델링을.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작.
Chapter 03. 관계 데이터베이스 설계.
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
Database Management System
을지대학교병원 직업환경의학과 김 수 영 시스템 설계와 데이터베이스 을지대학교병원 직업환경의학과 김 수 영
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
데이터 베이스 DB2 관계형 데이터 모델 권준영.
CHAP 21. 전화, SMS, 주소록.
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
DB 개요 1. 데이터베이스 정의 데이터의 중복성을 최소화하면서 조직 또는 기업에서 필요로 하는 상호 연관 있는 데이터들의 체계적인 집합 통합된 데이터(Integrated Data) : 자료 중복 최소화 저장된 데이터(Stored Data) : 저장 매체에 저장 운영 데이터(Operational.
문성우 SQL 실습 Part Ⅰ 문성우.
데이터 동적 할당 Collection class.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
14 뷰(View) 뷰의 개념 뷰 관리.
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
학습내용 프로토콜 계층화 OSI 모델의 용어 및 기능 개체 서비스 접근점 (N) 프로토콜과 (N) 서비스 서비스 프리미티브
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
4장. 데이터 모델링 데이터 모델링과 데이터 모델의 개념 개체-관계 모델 논리적 데이터 모델.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
.Net FrameWork for Web2.0 한석수
제 4 장 Record.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 2: Intro to Relational Model
ER-관계 사상에 의한 관계 데이터베이스 설계
CHAP 15. 데이터 스토리지.
 6장. SQL 쿼리.
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
7 생성자 함수.
6 객체.
데이터베이스 설계 데이터의 분석 개체 관계.
8장. 데이터베이스 설계 데이터베이스 설계 단계 요구 사항 분석 개념적 설계 논리적 설계 물리적 설계와 구현.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
제1강 데이터베이스의 기본개념(3).
Presentation transcript:

학습목표 학습목표 안정적인 데이터베이스 시스템의 구현 및 유지관리를 위해서는 정확하고 명쾌한 데이터베이스 모델링이 무엇보다도 중요 하다. 따라서 본 단원에서는 데이터베이스를 설계할 때 반드시 거쳐야 하는 3단계 모델링인 개념적, 논리적, 물리적 모델링에 대한 전반적인 개념 및 역할에 대하여 학습한다.

DB 모델링의 개념 1. 데이터베이스 모델링이란? 개체타입, 속성, 값 개념적 모델링 논리적 모델링 레코드, 필드, 값 데이터베이스 모델링 (Database modeling)이란? 현실 세계의 데이터를 컴퓨터 세계의 물리적인 데이터베이스로 변경하는 중간과정을 말함 데이터베이스 설계 과정에서 데이터의 구조를 개념적으로 표현하는 과정 데이터베이스 모델링의 목적 안정적인 데이터베이스 구현 및 유지관리 데이터 모델링의 3가지 종류 개체타입, 속성, 값 개념적 모델링 논리적 모델링 레코드, 필드, 값 물리적 모델링 물리적 저장 데이터베이스

DB모델링의 범주 DB 모델링의 범주

DB모델링의 개념도 DB 모델링의 개념도

개념적 DB 모델링 2. 개념적 데이터베이스 모델링하기 개념적 데이터베이스 모델링이란? 엔티티와 엔티간의 관계(Relationship) 정의 현실세계의 데이터를 개념적으로 표현하고 그 구조를 형성하는 것 개체-관계 모델(E-R: Entity-Relationship model) 엔티티간의 관계를 표현하기 위한 가장 대표적인 모델 1976년 Peter Chen이 제안 개체 타입(Entity Type)과 관계 타입(Relationship Type)을 이용하여 현실 세계를 개념 세계로 표현하는 방법 관계 타입은 개체 타입들간의 관계를 정의한 것 E-R 다이어그램(E-R Diagram) 개체타입과 관계타입을 도식화한 것 개념적 모델링을 직관적으로 이해하는데 도움을 줌 E-R 다이어그램의 표현 사각형 : 개체타입을 표현 마름모 : 관계타입을 표현 타원 : 속성을 표현

E-R 다이어그램 쇼핑몰 E-R 다이어그램 표현

논리적 DB 모델링 3. 논리적 데이터베이스 모델링하기 논리적 데이터베이스 모델링이란? 개념적 모델링에 의해 만들어진 E-R 다이어그램을 바탕으로 모델링이 이루어짐 개념적 데이터 모델에 매핑 규칙을 적용 정규화 과정을 거쳐 특정 DBMS가 처리 가능한 관계 스키마를 형성 매핑규칙 (Mapping Rule) 적용 엔티티 → 테이블 어트리뷰트 → 컬럼 식별자 → 기본키 관계 → 왜래키 정규화를 수행하는 목적 릴레이션에 존재하는 각종 이상 현상을 제거하기 위해서 필요한 과정임

이상현상 3.1 이상(anomaly) 현상이란? 이상현상(anomaly)이란? 특정 릴레이션에 대한 데이터를 조작 함에 있어 원치 않는 현상이 발생하거나 조작으로 인해 곤란한 현상이 발생 하는 것 이상현상의 종류 삭제 이상(Delete anomaly) : 보존해야 할 데이터까지 함께 삭제되는 경우가 발생 삽입 이상(Insert anomaly) : 원치 않는 데이터를 함께 삽입해야 하는 경우가 발생하는 것을 말함 갱신 이상(Update anomaly) : 데이터의 일부만을 수정함으로 인해 동일한 데이터에 서로 다른 값들이 존재하여 데이터 불일치 현상이 발생하는 것

이상현상 삭제 이상(Delete anomaly) 특정 레코드 삭제로 인해 보존해야 할 정보까지 함께 삭제된 현상 정보손실이 발생하는 현상 ■ 예제 : 주문 릴레이션에 고객ID 'piggy' 회원의 주문 정보를 삭제 하시오.

삽입불가 이상현상 삽입 이상(Insert anomaly) 특정 데이터를 삽입하려고 하는 경우 불필요한 데이터도 함께 삽입해야만 삽입이 가능한 경우 발생하는 현상 ■ 예제 : 주문 릴레이션에서 새로운 고객인 ‘toya’ 의 고객등급 ‘실버’를 삽입하시오. 삽입불가 toya 실버

데이터 불일치 이상현상 갱신 이상(Update anomaly) 중복 저장된 데이터들 중에서 일부만 수정 함으로서 데이터의 불일치(inconsistency)가 발생하는 현상 ■ 예제 : 주문릴레이션에서 상품코드가 P2인 상품의 가격을 80000만원에서 65000으로 수정하시오. 데이터 불일치

3.2 함수 종속(Function Dependency)이란? 함수 종속성 3.2 함수 종속(Function Dependency)이란? 함수 종속성 (Function Dependency)이란? DB에서 나타내고자 하는 실 세계에 관한 사실(fact)을 표현 해주는 것 데이터베이스 설계가 잘된 것과 잘못된 것을 구분하는 척도 함수 종속 정의 A ⊆ R, B ⊆ R이라 하자 어트뷰트 A의 값 각각에 대하여 시간에 관계없이 항상 어트리뷰트 B의 값이 오직하나만 관련되어 있을 때 B는 A에 함수 종속이라 한다. 함수종속은 A → B 표기 함 함수 종속 의 종류 완전함수종속 (full function dependency) 부분함수 종속 (partial function dependency)

함수종속 표현 함수 종속성 고객ID → 성명 고객ID → 주민번호 고객ID → 마일리지 고객ID → 전화 고객ID → 고객등급

함수 종속성 주문 릴레이션

함수 종속성 함수 종속 다이어그램 함수 종속 다이어그램 (Function Dependency Diagram) 함수적 종속관계를 그림으로 표현한 것 ■ 주문 릴레이션의 함수종속 다이어그램

함수 종속성 함수 종속관련 추론규칙 이행규칙(Transitive rule) α → β 가 보존되고 β → γ 가 보존되면, α → γ 는 보존된다 증가규칙(Augmentation rule) α → β 가 보존되고 γ 가 속성들의 집합이면, γ α → γ β 는 보존된다 분해규칙(Decomposition rule) α → β γ 가 보존되고 α → β 가 보존되면, α → γ가 보존된다 결합규칙(Union rule) α → β 가 보존되고 α → γ 가 보존된다면, α → β γ가 보존된다 반사규칙(Union rule) α 가 속성들의 집합이고 β ⊆α 이면, α → β 가 보존된다

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)

정규형 상품 릴레이션

제 1 정규형 정규형 릴레이션에 대해 매우 기본적인 조건만 요구 함수 종속성과 같은 부가 정보는 요구하지 않음 릴레이션에 속하는 도메인은 더 이상 분할 되지 않은 원자 값(atomic value)을 가짐 ■ 예제 : 상품 릴레이션의 제 1 정규화를 수행해 보자

정규형 ■ 상품 릴레이션이 제 1정규화

정규형 주문 릴레이션

정규형 제 2 정규형 어떤 릴레이션이 제1 정규형이면서 기본키에 속하지 않는 어트리뷰트 모두가 기본키에 완전함수 종속이면 제2정규형 임 복합키에 종속하지 않는 어트리뷰트들을 제거함 ■ 주문 릴레이션의 함수 종속 다이어그램

정규형 ■ 주문 릴레이션이 제 2 정규화

정규형 주문 릴레이션

제 3 정규형 정규형 어떤 릴레이션이 제 2 정규형이고 기본키에 속하지 않는 어트리뷰트 들이 이행적함수 종속이 아닐 때 어떤 릴레이션이 제 2 정규형이고 기본키에 속하지 않는 어트리뷰트 들이 이행적함수 종속이 아닐 때 기본키에 종속하지 않고 일반 어트리뷰트에 종속하는 어트리뷰트들을 제거 함 ■ 주문 릴레이션의 함수 종속 다이어그램

정규형 ■ 주문 릴레이션의 제 3 정규화

■ 쇼핑몰의 E-R 다이어그램을 관계형 릴레이션으로 표현 논리적 DB모델링의 예 3.4 논리적 데이터베이스 모델링의 예 관계형 데이터 모델을 이용 데이터베이스의 형태를 릴레이션(테이블)로 구성 개체(entity)와 관계(relationship) 모두를 테이블 형태로 표현 사용자는 데이터를 행과 열의 집합으로 구성된 테이블로 인식 ■ 쇼핑몰의 E-R 다이어그램을 관계형 릴레이션으로 표현

4. 물리적 데이터베이스 모델링하기 물리적 DB 모델링 물리적 데이터베이스 모델링 논리적 데이터베이스 모델링에서 얻어진 DB스키마를 실제 DBMS의 특성에 맞게 실제 DB 내의 개체들을 정의하는 단계 사용하고자 하는 DBMS의 종류를 결정 논리적 모델링 단계에서 얻어진 정규화된 모델을 기반으로 이들의 어트리뷰트(컬럼/필드)들의 데이터 타입과 크기를 정의 릴레이션(테이블)과 컬럼의 제약조건들을 정의 데이터 사용량 분석과 사용자의 업무 프로세스를 분석함(가장 주요한 부분임) 효율적인 DB관리를 위해 인덱스를 정의 함 저장레코드의 양식설계, 저장장치에 레코드들의 물리적인 집중화 접근경로 설계가 포함

4.1 인덱스(Index)의 정의 및 유형 인덱스의 의미 데이터의 위치 정보를 모아 놓은 데이터베이스 내의 객체(object) 원하는 데이터를 신속히 찾기 위해 사용 데이터베이스 시스템의 성능향상에 중요한 역할을 하게 됨 항상 정렬된 상태를 유지하고 있음 인덱스의 2가지 유형 순서 인덱스(Ordered indices) : 인덱스값을 정렬된 상태로유지, DB의 크기에로그로 비례, 성능감소 예상 예) select * from 고객 where 포인트점수 >= 2000 and 포인트점수 <= 3000 해시 인덱스(Hash indices) : 버킷의 범위 안에 값이 일정하게 분배 됨, 해시함수 사용으로 버킷을 결정, 입출력 연산오버헤드가 적음 예) select * from 고객 where 고객ID=‘joyful78’; 인덱스 구현시 고려사항 액세스의 형태, 액세스 시간, 삽입 시간, 삭제 시간, 공간 부담

4.2 인덱스의 기본원리 및 구조 인덱스의 원리 및 구조 4.2 인덱스의 기본원리 및 구조 인덱스를 이용한 데이터 접근 : 인덱스 찾기 → 해당 인덱스가 가리키는 포인터를 따라감 인덱스의 구성 인덱스 파일 : [키 값, 주소] 데이터 파일 인덱스 의 구조 계층형 구조 대부분의 사용 관계형 DBMS들은 B-트리로 구성 되어 있음

인덱스의 원리 및 구조 ■ 인덱스 구조

4.3 인덱스를 사용하는 경우와 사용하지 않는 경우의 차이점 인덱스의 사용 예 4.3 인덱스를 사용하는 경우와 사용하지 않는 경우의 차이점 ■ 성명을 인덱스 필드로 사용하는 고객 릴레이션에서 ‘황현준’ 고객을 검색해 보자 인덱스를 사용하지 않은 경우 : 7번의 비교검색으로 원하는 정보를 얻음 인덱스를 사용하는 경우 : 단 2회만의 비교검색으로 원하는 정보를 얻음

5. 객체지향 데이터베이스 모델링 객체지향 DB 모델링 객체지향 데이터베이스의 등장 배경 인터넷과 멀티미디어 데이터의 확산 객체지향 데이터베이스 모델링의 방향 기존의 ERD방식에서 객체지향 모델링방식으로 전환 절차적 프로그래밍에서 벗어나 객체지향 프로그래밍으로 선회 객체지향 모델링을 위한 툴들 UML (Unified Modeling Language) ORM (Object Role Modeling)

5.1 객체 지향 데이터베이스 모델링의 객체들 OODB의 객체들 객체와 식별자 객체는 실존하는 정보 또는 이를 사용하는 유,무형의 존재(사람,장소,사물,사건 등) 식별자는 동일한 객체내에 존재하는 인스턴스들을 구별하기 위한 키값을 말함 어트리뷰트 객체의 성질, 상태, 수량, 분류등 메서드 객체들이 수행하는 연산(동작) 클래스 슈퍼클래스, 서브클래스 클래스 계층과 계승 슈퍼클래스의 특성을 서브클래스가 상속 받을 수 있음 캡슐화 정보의 은닉

OODB모델링 사례 5.2 객체 지향 데이터베이스 모델링 사례

OODB모델링 사례

OODB모델링 사례

OODB모델링 사례

OODB모델링 사례

OODB모델링 사례

단원 정리 단원정리 1 ★ 데이터베이스 모델링 (database modeling)이란 현실세계의 데이터를 컴퓨터 세계의 물리적인 데이터베이스로 변경하는 중간 과정을 말하며, 데이터 모델링은 분류는 개념적, 논리적, 모델링등의 3가지로 나누어진다. ? 물리적 단원정리 2 이상 ★ 현상은 특정 릴레이션에 중복된 데이터가 존재할 때 조작에 있어서 원치 않는 혹은 곤란한 현상이 일어나는 것을 말한다. 이상현상의 종류에는 삭제이상(delete anomaly)과 삽입이상(Insertion anomaly), 갱신이상(update anomaly)이 있다. ?

단원 정리 단원정리 3 제약조건 ★ 함수 종속은 잘된 데이터베이스 설계와 잘못된 데이터베이스 설계를 구분하는 핵심 척도가 되며, 적법한 릴레이션의 집합에서의 이다. 또한 함수 종속은 데이터베이스에서 나타내고자 하는 실세계에 관한 사실들을 표현하도록 해주고 있다. ? 이상 단원정리 4 ★ 관계형 릴레이션에 데이터를 삽입 또는 삭제, 갱신연산을 수행할 때 현상이 발생하지 않도록 하는 것이 정규화의 목적이다. 정규형의 종류는 제 1 정규형(Normal Form:NF)에서 제5 정규형까지 그리고 보이스-코드 정규형(Boyce/Codd Normal Form: BCNF)이 있다 ?