공값(Null Value)

Download Report

Transcript 공값(Null Value)

Essentials of
Systems Analysis and Design
Third Edition
Joseph S. Valacich
Joey F. George
Jeffrey A. Hoffer
Chapter 9
데이터베이스 설계
9.1
Copyright 2006 Prentice-Hall, Inc.
학습목표
 다음의 데이터베이스 용어들을 정의할 수
있다.












9.2
관계(Relation)
주키(Primary key)
함수적 종속(Functional dependency)
외래키(Foreign key)
참조키(Referential integrity)
필드(Field)
데이터유형(Data type)
공값(Null value)
비정규화(Denormalization)
파일구성(File organization)
인덱스(Index)
보조키(Secondary key)
Copyright 2006 Prentice-Hall, Inc.
학습목표 (계속)
정보시스템에 대한 분석 및 설계에 있어
데이터베이스 설계의 역할을 설명할 수
있다.
ERD를 잘-구조화된 관계들로 변환할 수
있다.
각기 다른 사용자 뷰(view)로부터 도출된
정규화된 관계들을 합쳐서 하나의
통합된 형태로 만들 수 있다.
9.3
Copyright 2006 Prentice-Hall, Inc.
학습목표 (계속)
 데이터베이스 테이블들에 대한 저장 포멧을
결정을 설명할 수 있다.
 잘-구조화된 관계들을 효율적인 데이터베이스
테이블로 변환할 수 있다.
 데이터베이스 파일들로 저장할 수 있는
상이한 파일구성 유형들을 설명할 수 있다.
 인덱스와 인덱스의 목적을 설명할 수 있다.
9.4
Copyright 2006 Prentice-Hall, Inc.
데이터베이스 설계 과정
논리적 설계


개념적 데이터 모델을 기반으로 작성됨
4가지 주요 단계:
1. 정규화 이론을 활용하여 사용자 인터페이스 각각에
대한 논리적 데이터 모델을 작성한다.
2. 모든 사용자 인터페이스들을 기반으로 설계된
정규화된 데이터 요구사항들을 하나의 논리적
데이터베이스 모델로 통합시킨다.
3. 사용자 인터페이스에 대한 명확한 고려 없이 개발된
개념적 ER 데이터 모델을 정규화된 데이터
요구사항으로 변환시킨다.
4. 통합된 논리적 데이터베이스 설계를 변환된 ER 모델과
비교하여 하나의 최종적인 논리적 데이터베이스
모델을 작성한다.
9.5
Copyright 2006 Prentice-Hall, Inc.
9.6
Copyright 2006 Prentice-Hall, Inc.
Copyright 2006 Prentice-Hall, Inc.
데이터베이스 설계 과정 (계속)
물리적 설계


논리적 설계의 결과를 기반으로 작성됨
핵심적인 결정사항들:
1. 논리적 데이터베이스 모델에 나타난 각각의 속성들에
대한 저장 형식을 결정한다.
2. 논리적 데이터베이스 모델의 속성들을 물리적
레코드(record)들로 집단화(grouping)한다.
3. 레코드들이 개별적으로 또는 집단적으로 신속하게
저장되고, 조회되고, 갱신될 수 있도록, 2차
메모리(하드디스크와 마그네틱테입)에 연관된
레코드들을 할당한다.
4. 보다 효율적인 데이터 접근을 가능케 하는 데이터 저장
매체와 구조를 결정한다.
9.8
Copyright 2006 Prentice-Hall, Inc.
데이터베이스 설계 과정 (계속)
주키(Primary Key)

9.9
관계에서 모든 인스턴스들을 고유하게 구분해줄
수 있는 속성
Copyright 2006 Prentice-Hall, Inc.
산출물
논리적 데이터베이스 설계는 모든
데이터 요소들, 시스템 입력물 또는
출력물들을 고려해야 한다.
주요 산출물은 정규화된 관계들이다.
물리적 데이터베이스 설계는 관계들을
파일들로 변환하는 결과를 가져온다.
9.10
Copyright 2006 Prentice-Hall, Inc.
관계형 데이터베이스 모델
연관된 테이블들 또는 관계들의 집합으로 데이터를
표현하는 모델
관계(Relation)
 2차원으로 구성되고 이름을 가지는 데이터 테이블. 하나의
관계는 이름이 있는 열(column)들과 이름이 붙여지지 않은
임의의 개수의 행(row)들로 구성된다.
 특성들
1.
2.
3.
4.
5.
9.11
셀(cell)에 입력되는 것은 하나의 값이다.
열에 입력되는 값들은 동일한 형태를 가진다.
각 행은 고유하다.
열의 순서는 관계의 의미나 활용의 변경 없이 교체될 수 있다.
행들은 순서에 상관 없이 교체되거나 저장될 수 있다.
Copyright 2006 Prentice-Hall, Inc.
관계형 데이터베이스 모델 (계속)
잘-구조화된(Well-Structured) 관계

9.12
데이터의 중복이 최소화되고 사용자가
오류나 불일치 없이 행을 삽입, 수정, 삭제할
수 있는 관계
Copyright 2006 Prentice-Hall, Inc.
정규화(Normalization)
복잡한 데이터 구조를 단순하고
안정적인 데이터 구조로 변환하는 과정
중복 제거 (그림 9-6 -> 9-7).
2차정규형(Second Normal Form: 2NF)

9.13
하나의 관계에서 주키가 아닌 모든
속성들이 주키 전체에 함수적으로 종속인
관계(완전한 함수적 종속이라고 불림).
Copyright 2006 Prentice-Hall, Inc.
Figure 9.7
9.14
Copyright 2006 Prentice-Hall, Inc.
정규화(Normalization) (계속)
3차 정규형(Third Normal Form: 3NF)

주키가 아닌 속성들 간의 함수적
종속(이행적 종속(transitive
dependencies))이 없음.
정규화의 결과는 주키가 아닌 모든 키
속성들이 주키 전체에 종속되는 상태가
되는 것이다.
9.15
Copyright 2006 Prentice-Hall, Inc.
9.16
Copyright 2006 Prentice-Hall, Inc.
함수적 종속과 주키
함수적 종속(Functional Dependency)



9.17
2개의 속성 간의 특별한 관계성. 어떤 관계에서,
속성 A의 모든 값이 속성 B의 값들을 고유하게
결정하는 경우, 속성 B는 속성 A에 대해
함수적으로 종속이라고 할 수 있다.
하나의 관계에 있어서 인스턴스들(또는 샘플
데이터들)이 함수적 종속의 존재를 증명하는 것은
아니다.
문제 범위에 대한 지식이 함수적 종속을 정의하는
가장 안정적인 근거이다.
Copyright 2006 Prentice-Hall, Inc.
함수적 종속과 주키 (계속)
2차 정규형(Second Normal Form: 2NF)

다음 조건들을 만족하면 2차정규형에
속한 관계이다:
1. 주키가 오직 하나의 속성으로 구성되는 경우
2. 관계에 주키가 아닌 속성들이 존재하지 않는
경우
3. 주키가 아닌 모든 속성들이 주키를 이루는
속성들 전체에 함수적으로 종속되는 경우
9.18
Copyright 2006 Prentice-Hall, Inc.
함수적 종속과 주키 (계속)
2차정규형으로의 변환


9.19
하나의 관계를 2NF으로 변환시키기
위해서는, 그 관계를 소위
결정자(determinant)라 불리우는 속성들을
이용하여 새로운 관계로 분할해야 한다
이러한 결정자들은 분할된 관계들의 주키가
된다
Copyright 2006 Prentice-Hall, Inc.
함수적 종속과 주키 (계속)
3차정규형(Third Normal Form: 3NF)


9.20
하나의 관계형이 2차정규형이며, 2개(또는
그 이상)의 주키가 아닌 속성들의
함수적(이행적) 종속이 없으면,
3차정규형(3NF)이다
관계를 2차정규형으로 변환하기 위해
결정자를 이용하여 관계를 새로운 관계들로
분할한다.
Copyright 2006 Prentice-Hall, Inc.
함수적 종속과 주키 (계속)
외래키(Foreign Key)

다른 관계에서 주키인 속성(또는 그 일부
속성)이 해당 관계에서 주키가 아닌
속성으로 포함된 속성
참조무결성(Referential Integrity)

9.21
어떤 관계의 속성 값이 다른 관계의 같은
속성의 값과 동일해야 하는 것을 규정하는
무결성 제약
Copyright 2006 Prentice-Hall, Inc.
ERD 관계로의 변형
개념적 데이터 모델을 정규화된
관계들의 집합으로 변환하는 것은
유용하다.
단계:
1.
2.
3.
4.
9.22
개체들을 표현
관계성들을 표현
관계들을 정규화
관계들을 결합
Copyright 2006 Prentice-Hall, Inc.
ERD 관계로의 변형 (계속)
1. 개체들을 표현



하나의 개체는 하나의 관계로 변환됨
개체유형의 식별자(identifier)는 대응되는
관계의 주키(primary key)가 됨
주키는 다음의 2가지 조건을 만족시켜야
함
a. 키 값은 모든 행들을 각기 고유할 수 있도록
해야 한다.
b. 키 값은 중복될 수 없다.
9.23
Copyright 2006 Prentice-Hall, Inc.
9.24
Copyright 2006 Prentice-Hall, Inc.
ERD 관계로의 변형 (계속)
2. 관계성들을 표현

이진(Binary) 1:N 관계성
일(1)쪽 관계의 주키 속성(또는 속성들)을
다(N)쪽 관계의 끝 열에다 외래키로 추가
 일(1)쪽이 다(N)쪽으로 이동

9.25
Copyright 2006 Prentice-Hall, Inc.
9.26
Copyright 2006 Prentice-Hall, Inc.
ERD 관계로의 변형 (계속)

이진(Binary) 또는 일진(Unary)의 1:1
 3가지의 가능한 방법
a.A의 주키를 B의 외래키로 추가
b.B의 주키를 A의 외래키로 추가
c. 위의 사항 모두
9.27
Copyright 2006 Prentice-Hall, Inc.
ERD 관계로의 변형 (계속)
2. 관계성들을 표현 (계속)

이진 및 그 이상의 차수에 대한 M:N
관계성

9.28
또 하나의 관계를 만들고 관련된 관계들의
주키를 새로운 관계의 주키로 포함시켜라
Copyright 2006 Prentice-Hall, Inc.
9.29
Copyright 2006 Prentice-Hall, Inc.
Shipment(Customer_ID,
Vendor_ID, Date, Amount)
Copyright 2006 Prentice-Hall, Inc.
ERD 관계로의 변형 (계속)

일진 1:N 관계성
 하나의 개체유형의 인스턴스들 간의 관계성
 순환외래키(recursive foreign key)를 이용하여라


하나의 관계에서 외래키가 같은 관계의 주키를 참조하는
경우, 그 외래키를 순환외래키라 한다
일진 M:N 관계성
 별도의 분리된 관계를 하나 생성하여라
 새로운 관계의 주키는 같은 주키의 값들을 취하는 2개의
속성으로 구성되는데, 이러한 속성들은 서로 다른
이름으로 표현된다
9.31
Copyright 2006 Prentice-Hall, Inc.
9.32
Copyright 2006 Prentice-Hall, Inc.
9.33
Copyright 2006 Prentice-Hall, Inc.
ERD 관계로의 변형 (계속)
4. 관계들을 결합 (뷰통합: View Integration)


목적: 중복된 관계들을 제거
뷰통합의 문제점들

이음동의어(Synonyms)



동음이의어(Homonyms)



2개 이상의 의미가 다른 속성들에 대해 서로 같게 붙여진
이름들
새로운 이름들을 만드는 방식으로 해결
키가 아닌 속성들 간의 종속성


9.34
같은 속성에 대해 서로 다르게 붙여진 이름들
결합 시, 하나의 이름을 표준으로 정하는 데 있어 사용자의
동의를 얻어야 함
뷰통합의 결과로 종속성이 생겨날 수 있음
이를 해결하기 위해서는, 정규화를 수행함
Copyright 2006 Prentice-Hall, Inc.
Hoosier Burger 논리적
데이터베이스 설계
Copyright 2006 Prentice-Hall, Inc.
SALE(Receipt_Number, Sale_Date)
PRODUCT(Product_ID, Product_Description
INVOICE(Vendor_ID, Invoice_Number, Invoice_Date, Paid?)
INVENTORYITEM(Item_Number, Item_Description, Quantity_in_Stock,
Minimum_Order_Quantity, Type_of_Item)
ITEMSALE(Receipt_Number, Product_ID, Quantity_Sold)
INVOICEITEM(Vendor_ID, Invoice_Number, Item_Number, Quantity_Added)
2006 Prentice-Hall, Inc.
RECIPE(Product_ID, Item_Number,Copyright
Quantity_Used)
VENDOR(Vendor_ID, Vendor_Name)
물리적 파일 및 데이터베이스
설계
다음과 같은 정보들이 필요함





9.37
정규화된 관계들과 저장 용량 추정치
각 속성들에 대한 정의들
데이터가 사용되는 장소와 시간에 대한 설명들:
입력, 조회, 삭제, 그리고 갱신 (빈도수 포함)
응답 시간과 데이터 무결성에 대한 기대수준 또는
요구사항
기술들에 대한 결정 및 선택사항들의 범주 파악을
목적으로 한 파일과 데이터베이스 구현에
사용되는 기술들에 대한 설명
Copyright 2006 Prentice-Hall, Inc.
필드 설계
필드(Field)


시스템 소프트웨어에 의해 인식되는 응용 데이터의 가장 작은 단위
각 관계의 속성 하나는 여러 개의 필드들로 표현될 수도 있다.
데이터유형 선택



9.38
데이터 유형(Data Type)
 시스템 소프트웨어에 의해 인식되는 코딩 체계
4가지 목적:
 저장 공간의 최소화
 필드의 모든 값들에 대한 표현 가능
 필드에 대한 데이터 무결성 증진
 필드의 모든 데이터에 대한 조작 지원
연산필드(Calculated fields)
 다른 데이터베이스 필드들로부터 연산될 수 있는 필드
Copyright 2006 Prentice-Hall, Inc.
데이터 무결성 통제
기본값(Default Value)

확실한 값이 필드에 입력되지 않은 경우 그 필드가 가지고
있는 것으로 간주하는 값
입력마스크(Input Mask)

필드 내에서 데이터 위치에 대한 넓이와 가능한 값들을
제한하는 코드의 패턴
범위 통제(Range Control)

필드에 입력될 수 있는 값의 범위를 한정함
참조무결성(Referential Integrity)

어떤 관계의 속성 값이 다른 관계의 같은 속성의 값과
동일해야 하는 것을 규정하는 무결성 제약
공값(Null Value)

9.39
0과는 다른 특별한 값으로서, 필드의 값이 실수로 누락된
경우나 그렇지 않으면 알 수 없는 값
Copyright 2006 Prentice-Hall, Inc.
9.40
Copyright 2006 Prentice-Hall, Inc.
물리적 테이블 설계
관계형 데이터베이스는 연관된 테이블들의
집합
물리적 테이블(Physical Table)

행과 이름 붙여진 필드들로 구성된 테이블
설계 목적

보조 저장장치(또는 디스크 공간)의 효율적 사용
 디스크는 하나의 기계적 작동을 통해 읽을 수 있는 단위로
분할됨
 저장공간은 테이블 행의 물리적 길이가 저장 단위로 거의
균등하게 나누어질 때 효율적으로 활용됨
9.41
Copyright 2006 Prentice-Hall, Inc.
물리적 테이블 설계 (계속)
설계 목적 (계속)

효율적인 데이터 처리

데이터는 보조기억장치에서 서로 가까이 저장될 때,
가장 효율적인 처리가 가능
비정규화(Denormalization)



정규화된 관계들을 행과 열에 대한 사용의
유사성에 기반하여 분할하거나 결합하는 과정
데이터 처리과정을 최적화
비정규화를 수행하는 3가지 일반적 경우



9.42
2개의 개체가 일대일 관계성을 가질 때
키가 아닌 속성을 가지는 다대다 관계성이 있을 때
참조 데이터가 있을 때
Copyright 2006 Prentice-Hall, Inc.
9.43
Copyright 2006 Prentice-Hall, Inc.
9.44
Copyright 2006 Prentice-Hall, Inc.
9.45
Copyright 2006 Prentice-Hall, Inc.
9.46
Copyright 2006 Prentice-Hall, Inc.
물리적 테이블 설계 (계속)
테이블 행들의 조정

물리적 파일(Physical File)
 보조 기억장치에 연이어 저장된 테이블 행들의
집합

9.47
데이터베이스 관리 소프트웨어에 따라, 각
테이블은 하나의 파일이 될 수도 있고 또는
데이터베이스 전체가 하나의 파일이 될
수도 있음
Copyright 2006 Prentice-Hall, Inc.
물리적 테이블 설계 (계속)
파일 구성(File Organization)


파일의 레코드들을 물리적으로 정렬하는 방식
파일구성 선정 목적
1.
2.
3.
4.
5.
6.
7.
9.48
빠른 데이터 조회
거래처리에 대한 고성능
저장공간의 효율적 사용
데이터 처리의 실패 또는 데이터 손실에 대한 보호
재구성 필요 제기에 대한 최소화
데이터 양의 증가에 대한 대비
인가되지 않은 사용에 대한 보안
Copyright 2006 Prentice-Hall, Inc.
물리적 테이블 설계 (계속)
파일구성의 유형

순차형(Sequential)
 파일의 행들이 주키의 값에 따라 순차적으로 저장됨
 레코드를 갱신하거나 추가하는 경우 파일전체를 다시 써야
하는 경우가 생길 수 있음
 레코드를 삭제하는 것은 공간의 낭비를 초래할 수 있음

인덱스형(Indexed)
 행들이 순차적으로 또는 비순차적으로 저장되고, 인덱스는
응용 소프트웨어가 각 행들을 찾을 수 있도록 생성됨
 인덱스(Index)

어떤 조건들을 만족하는 행들을 찾는 데 사용되는 테이블
 보조 인덱스(Secondary Index)

9.49
하나 이상의 행들을 가리킬 수 있는 하나의 필드 또는 여러
필드들의 결합에 기반한 인덱스
Copyright 2006 Prentice-Hall, Inc.
9.50
Copyright 2006 Prentice-Hall, Inc.
9.51
Copyright 2006 Prentice-Hall, Inc.
9.52
Copyright 2006 Prentice-Hall, Inc.
물리적 테이블 설계 (계속)
인덱스 결정 가이드라인
1. 각 파일(또는 테이블)의 주키에 대한 인덱스를
규정하여라
2. 외래키에 대한 인덱스를 규정하여라
3. 키가 아닌 필드들에 대한 인덱스를 규정하여라. 이
필드들은 데이터 조회 목적을 위해, 조건 또는
정렬명령에 따라 참조될 수 있는 것이어야 한다
해쉬형(Hashed) 파일구성

9.53
알고리듬에 의해 결정되는 각 행에 대한 주소
Copyright 2006 Prentice-Hall, Inc.
파일 통제 설계
백업(Backup) 기법



파일에 대한 주기적 백업
트랜잭션 로그 또는 감사 추적
변화 로그
데이터 보안(Security) 기법



9.54
코딩(coding) 또는 암호화(encrypting)
사용자 계정 관리
사용자가 직접 파일의 데이터를 조작하는 것을
금지. 사용자들은 데이터의 복사본을 가지고
작업하도록 함.
Copyright 2006 Prentice-Hall, Inc.
PVF WebStore:
데이터베이스 설계
9.55
Copyright 2006 Prentice-Hall, Inc.
Copyright 2006 Prentice-Hall, Inc.
요약
핵심 용어(Key Terms)











9.57
관계(Relation)
주키(Primary key)
함수적 종속(Functional dependency)
외래키(Foreign key)
참조키(Referential integrity)
필드(Field)
데이터유형(Data type)
비정규화(Denormalization)
파일구성(File organization)
인덱스(Index)
보조키(Secondary key)
Copyright 2006 Prentice-Hall, Inc.
요약 (계속)
ERD를 잘-구조화된 관계들로 변환
뷰통합(View integration)
데이터베이스 필드들에 대한 저장 형식
효율적인 데이터베이스 테이블 설계


보조 저장장치의 효율적인 사용
데이터 처리 속도
파일구성
인덱스
전자상거래 응용시스템
9.58
Copyright 2006 Prentice-Hall, Inc.