Transcript PPT - DKE


논리적 구성요소
◦ 사용자의 입장
◦ 데이타베이스 = {개체, 관계}

개체
◦ 표현하려는 유무형 정보의 객체(object)
◦ 정보의 단위
◦ 하나 이상의 속성(attribute)으로 구성
 데이타의 가장 작은 논리적 단위
◦ 개체 집합(entity set)
 entity type vs. entity instance
◦ 레코드와 대응
 record type vs. record instance
현실 세계(개체)
개체
개념 세계(개념)
컴퓨터 세계(데이타)
개체 타입
레코드 타입
개체
특성
속성
필드
값
값
값
값
사실
추상화
개념적
모델링
추상적
개념적 표현
변환
데이타
모델링
데이타 구조의
논리적 표현

데이타 모델 : D
D = <S, O, C>
◦ S : 데이타의 구조(structure)
 정적 성질 (추상적 개념)
 개체타입과 이들 간의 관계를 명세
◦ O : 연산(operation)
 동적 성질
 개체 인스턴스를 처리하는 작업에 대한 명세
 데이타의 조작 기법
◦ C : 제약 조건(constraint)
 데이타의 논리적 제약
- 개체 인스턴스의 허용 조건
:구조(S)로부터 파생
:의미상 제약
 데이타 조작의 한계를 표현한 규정


현실세계의 개념적 표현
개체 타입과 관계 타입을 기본 개념으로 현실 세계를 개
념적으로 표현하는 방법

개체 집합 : 한 개체 타입에 속하는 모든 개체 인스턴스

관계 집합 : 한 관계 타입에 속하는 모든 관계 인스턴스

개체 (entity)
◦ 단독으로 존재하며 다른 것과 구별되는 객체

개체 타입(entity type)
◦ 이름과 애트리뷰트들로 정의됨
◦ 개체 집합(entity set) : 특정 개체 타입에 대한 인스턴스 집합

애트리뷰트의 유형
i. 복합 애트리뷰트와 단순 애트리뷰트
ii. 단일값 애트리뷰트와 다중값 애트리뷰트
iii. 유도 애트리뷰트와 저장 애트리뷰트 : 평균 과 값들
iv. 널 애트리뷰트

관계 타입(relationship type)
◦ 개체 집합들 사이의 대응성(correspondence)
◦ 사상(mapping)
학생
등록
과목
등록 관계 타입
1대1
1대 N
관계성
N대M

사상 원소수 – 관계의 분류 기준
◦ 1 : 1 (일 대 일)
fx : x → y
and fy : y → x
marriage : bridegroom ↔ bride
◦ 1 : n (일 대 다)
not fx : x → y
but fy : y → x
mothership : mother → children
◦ n : 1 ( 다 대 일)
fx : x → y
not fy : y → x
position : professor → department
◦ n : m (다 대 다)
not fx : x → y
not fy : y → x
enrollment : student ↔ course
☞ Note : 사상의 함수성(functionality)

전체 참여
◦ 개체 집합A에 속한 모든 개체들이 해당 관계에 참여하는
경우
◦ 모든 사원은 회사에 소속되어 있다

부분 참여
◦ 객체 집합에 속한 몇몇 개체만이 해당 관계에 참여한다.
◦ 모든 남자가 결혼하는 것은 아니다.

1976. Peter Chen

E-R 모델의 그래픽 표현
◦ 개체 타입 (entity type)
◦ 관계 타입 (relationship type)
◦ 속성(attribute)
◦ 링크(link)
◦ 레이블(label) : 관계의 사상,원소수를 표현 일대일(1:1), 일대다
(1:n), 다대일(n:1), 다대다(n:m)

특징
◦ 다 대 다(m : n) 관계 표현
◦ 다원 관계(n-ary relationship) 표현
 두개 이상의 개체 타입이 하나의 관계에 관련 가능
◦ 다중 관계(multiple relationship) 표현
 두 개체 타입 사이에 둘 이상의 관계가 존재 가능
◦ 관계 타입도 속성(attribute)을 가질 수 있음

ER모델

개체 타입을 하나의 테이블로 변환
◦ 제품테이블(제품번호, 제품명) 기본키: 제품번호

고려사항
◦ 다중값
 고객테이블(고객번호, 고객명, 전화번호) 기본키: 고객번호
 하나의 고객에 여러 개의 전화번호 기본키의 유일성 위반
◦ 다중값 속성은 하나의 분리된 테이블로
 고객테이블(고객번호, 고객명) 기본키:고객번호
 고객전화테이블(고객번호, 전화번호)
 기본키: 고객번호, 전화번호
 외래키: 고객번호


경우 관계에 참여하는 개체 타입의 기본키 속성들을 이용하
여 테이블로 변환
생산관계 타입
◦ 생산테이블: (제품번호, 공장번호)
 기본키: (제품번호, 공장번호),
 외래키: 제품번호, 공장번호
◦ 생산 관계 타입과 같이 1 대 N 관계일
 관계 타입을 하나의 테이블로 생성하지 않고 다음과 같이 N측인 공장
테이블에 추가하여 생성할 수도 있다
 제품생산테이블: (공장번호,공장주소, 제품번호,)
 기본키: 공장번호
 외래키: 제품번호


테이블의 수를 줄임.데이터 중복을 제거하여 디스크 사용량
도 줄임
생산 테이블을 만들지 또는 제품생산 테이블로 만들지는 데
이터베이스 설계자가 데이터베이스 사용 환경들을 종합적
으로 고려하여 결정할 문제이다

판매 관계 타입과 같이 3개 이상의 개체 타입들이
관련된 관계 타입
◦ 개체 타입의 기본키들을 이용하여 테이블로 변환
◦ 판매: (제품번호, 판매소번호, 고객번호, 판매일시)
 기본키:{제품번호,판매소번호,고객번호}
 외래키: 제품번호, 판매소번호, 고객번호
◦ 다중 관계 타입의 경우 다음과 같이 여러 개의 이진 관계
타입으로 분할하여 표현할 수도 있음


데이터 베이스의 속성들간의 종속성 및 중복성으
로 생긴 문제들을 최소화하는 방법
함수적 종속(Functional Depandency)
◦ 어떤 릴레이션 R에서, 애트리뷰트 X의 값 각각에 대해
애트리뷰트 Y의 값이 하나만 연관
애트리뷰트 Y는 애트리뷰트 X에 함수 종속 X  Y
- X를 결정자(Determinant)라 한다.
ex) 학번 이름 ,
사번 이름




함수 종속의 가장 대표적인 예는 한 릴레이션 내의 기본키 속성
과 다른 속성들 간의 관계이다.
예를 들어 학생 테이블이 존재할 때, 학생 테이블의 기본키는 학
번일 것이다. 이 때 학번 00001에 대응되는 이름은 하나만 존재
할 것이다 (즉 서로 다른 두 개의 이름들이 나오지 않음).
주의 할 사항은 기본키가 아닌 속성들 간에도 함수 종속관계가
나타날 수 있다는 것
함수 종속을 고려할 때 주의할 사항은
◦ 테이블의 현 상태만을 고려해서 함수 종속을 결정하는 것이 아님
◦ 속성들 간의 의미를 고려해서 함수 종속을 결정해야함.
◦ 예를 들어, 자녀관계 테이블에서 특정 시점에 우연하게 한 어머니에 대하
여 하나의 자식만이 대응되더라도 함수 종속관계가 있고 할 수는 없는 것
이다. 이는 한 어머니는 여러 자식들을 가질 수 있다는 의미가 존재하기
때문이다.

정의
◦ 모든 도메인이 원자값(atomic value)만으로 된 릴레이션
◦ 사원관리(사번, 과제번호, 상여금, 부서장, 부서번호)
◦ 기본키: {사번,과제번호}
◦ 함수종속




{사번, 과제번호} -> 상여금
사번->부서장
사번->부서번호
부서장->부서번호
사번
부서장
상여금
과제번호
부서번호

사번 1000인 사원의 부서장이 “홍길동”이란 정보
삽입 불가
◦ 기본키 {사번,과제번호}
◦ 기본키는 NULL 값일 수 없음

이상생태 발생이유
◦ 기본키에 부분함수 종속인 속성들이 존재
 부서장, 부서 번호는 사번에만 함수 종속
 기본키와 무관한 정보가 하나의 테이블에 공존하고 있음

정의
◦ 1NF이고, 키에 속하지 않는 애트리뷰트들은 모두 기본키에 완전
함수 종속

무손실 분해(nonloss decomposition)
◦ 프로젝션하여 분해된 릴레이션들은 자연 조인을 통해 원래의 릴
레이션으로 복귀 가능
◦ 원래의 릴레이션에서 얻을 수 있는 정보는 분해된 릴레이션들로
부터도 얻을 수 있음 그러나, 그 역은 성립하지 않음

“홍길동”부서장이 3번 부서에 속한다는 것을 넣을
수 없음
Note :
◦ 이행적 함수 종속 (TD, Transitive Dependency)
A  B와 BC
⇒AC
(즉, 애트리뷰트 C는 애트리뷰트 A에 이행적 함수 종속)
◦ 위의 사원 부서 테이블의 경우 사번-> 부서장 과 부서장-> 부
서번호 에 대하여 사번->부서번호라는 이행적 함수 종속이 존
재한다

2NF 이상의 해결
◦ 프로젝션으로 릴레이션 분해 (이행적 함수 종속을 제거)
⇒ 3NF

정의(3NF)
◦ 2NF이고, 키가 아닌 모든 애트리뷰트들은 기본키에 이
행적 함수 종속되지 않음

무손실 분해
◦ 원래의 릴레이션에서 얻을 수 있는 정보는 분해된 릴레이
션들로부터도 얻을 수 있으나 그 역은 성립하지 않음

모든 이진 릴레이션 – 속성이 2개로만 이루어진 릴
레이션-은 항상 제 3 정규형에 속한다
◦ 이행적 함수 종속은 기본적으로 3개의 속성으로 구성됨



정규화는 데이터의 삽입 삭제, 갱신 시에 발생되는
문제점을 해결
데이터 검색 시 많은 조인 연산이 필요
예)
◦ 특정 사원의 부서 번호를 파악하라
◦ 사원부서장테이블 JOIN 부서장부서번호테이블