학습목표 학습목표 안정적인 데이터베이스 시스템의 구현 및 유지관리를 위해서는 정확하고 명쾌한 데이터베이스 모델링이 무엇보다도 중요 하다. 따라서 본 단원에서는 데이터베이스를 설계할 때 반드시 거쳐야 하는 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)이 있다 ?