DB설계정의
스키마정의, DB구현을 위해 전반적인 과정
요구조건분석 > 개념적설계 > 논리적설계 > 물리적설계 > 구현 > 운형/개선
요구조건분석: DB정의, 명세서(Specification)작성
개념적설계: 구성요소 결정후 수행할 잡업/관계 설계과정
논리적설계: 사용자가 알아볼수있는 형태로 변환, 스키마정의 과정
물리적설계: 내부저장장치구조, 접근경로 설계과정
구현: 실제 DB만드는 과정, DB언어사용
운영/개선: DB를 실제로 운영, 문제점/개전섬 파악
E-R모델(Entity-Relation Diagram)
개념적 설계단계에서 사용하며 개체/관계 타입간의 구조/개체를 구성하는 속성들을약속된 기호를 이용하여 표현, P.Chen박사가 최초로 제안
DB모델
논리적 설계단계에서사용하며 Data모델로 변환하기 위해사용
-관계 데이터모델(표 데이터모델): 2차원 구조의 표형태로 표현(n:m관계 표현)
-네트워크 데이터모델(망 데이터모델): 레코드 타입(개체타입x)관계 표현
-계층 데이터모델(트리 데이터모델): 트리구조로 표현(1:n관계 표현)
관계데이터모델
E-R모델을 2차원구조의 표로 표현
용어
-릴레이션(Relation): 해당표(테이블)
-튜플(Tuple): 릴레이션의 행(Record, Row)
-도메인(Domain): 속성값의 범위
-릴레이션 스키마: 릴레이션의 이름,속성명들의 집합
-릴레이션 인스턴스: 현재 릴레이션에 존재하는 튜플들의 집합
-차수(Degree): 속성 수
-카디널리티(Cardinality): 튜플 수
E-R모델 에서 관계데이터모델로 표현
Mapping Rule
개체(Entity) > 릴레이션(Table/Relation)
속성(Attribute) > 항목(Field/Column)
식별자(키속성) > 기본키(Primary Key)
관계(Relation) > 외래키(Foreign Key)
교차엔티티(Intersection Entity)
보다 정확한 상호참조를 위해 하나의 릴레이션을 추가, n:m일 경우 관계를 릴레이션으로 표현후 속성은 다른 개체들의 릴레이션에서의 기본키들로 구성
키
튜플의 식별을 위한 속성/속성집합, 참조/검색시 사용
-후보키(Candidate Key): 튜플을 식별할수 있는 속성/속성집합
*조건: 유일성, 최소성을 모두만족
-기본키(Primary Key): 후보키(Candidate Key)들중 선택된 키
*조건: 유일성, 최소성을 모두만족, NULL값이 올수없다
-대체키(Alternate Key): 후보키중 기본키를 제외한 속성/속성집합
-외래키(Foreign Key): 다른 테이블을 참조하기위해 사용되는 속성/속성집합
*조건: 참조테이블의 기본키와 외래키는 같아야한다, NULL값이
올수있고 외래키의 속성명과 참조테이블의 기본키 속성명은 같지않아도된다.
*식별관계: 외래키가 기본키일경우 A,B테이블은 식별관계
*비식별관계: 외래키가 기본키가아닐경우 A,B테이블은 비식별관계
-슈퍼키(Super Key): 후보키(Candidate Key)와 다른 속성/속성들과의 모든 조합
*조건: 유일성은 만족하나 최소성은 만족하지 않는다.
무결성과 제약조건
무결성: 자료의 오류없는 정확성/안정성을 나타내는것
제약조건: 정확성/안정성을 유지하기위한 제약조건
-개체무결성: 기본키는 NULL값이 올수없으며, 중복될수 없다.
개체를 식별하기위해 오류가없음을 위한 제약조건
-참조무결성: 외래키는 NULL값이 올수없으며, 참조테이블의 기본키와
같아야한다.
테이블참조시 오류없음을위한 제약조건
-도메인무결성: 속성값은 정해진 범위이내의 값이여야 하는 제약조건
-고유 무결성: 속성에 대해 고유한 값이 와야하면, 속성값은 모두 달라야한다
-NULL 무결성: NULL값이 올수없는 조건일시, 속성값은 NULL값을 가질수없다
-키 무결성: 한 테이블엔 최소한 하나이상의 키가 존재해야만한다
관계 데이터연산
DB구조에서 사용되는 연산, 관계대수/해석이 존재한다
관계대수(Relational Algebra): 결과를 얻기위해 연산자를 표현하는 방법
절차적 언어이다
순수관계 연산자
-Select: 수평적 부분집합을 구하는 연산(행,튜플)
*중복되는 튜플도 모두표현
-Project: 수직적 부분집합을 구하는 연산(열, 속성)
*중복되는 값은 한번만표현
-Join: 두테이블을 조건에 맞게 하나의 테이블로 표현하는 연산
동일조인(Equi Join): '='연산자만을 사용, 두테이블의 모든
속성을 합하여 표현(중복도 표현)
자연조인(Natural Join): 동일조인결과의 중복속성 제거
외부조인(Outer Join): 조건에 맞지않는 튜플도 포함해서 표현
(중복속성제거, data없는 속성값은 NULL로표현)
세타조인(Theta Join): '='외의 연산자 모두사용
(중복도 모두표현)
-Division: 'A Division B'> 테이블B 조건에 맞는(모든 속성값)튜플
들을 테이블A에서 추출후 표현
(연산에서 사용된 속성제외)
일반집합 연산자
-합집합: 두개의 테이블 속성값 모두표현(중복 속성값은 한번만 표현)
-교집합: 두개의 테이블의 공통된 속성값만 표현
-차집합: 두개의 테이블의 공통된 속성값을뺀 첫번째 테이블표현
-카티션프로덕트: 두개의 테이블 곱셈
x테이블 차수 + y테이블차수 = 결과물의 차수
x테이블의 카디널리티 x y테이블의 카디널리티 =
결과물의 카디널리티
관계해석(Relational Calculus): 연산자 없이 표현하는법, 비절차적 언어이다
'Database > Theory' 카테고리의 다른 글
#05. 보안(Security) & 개체,속성,관계의 종류 (0) | 2012.10.05 |
---|---|
#04. 인덱스(Index) & 객체지향DB(Object-Oriented DB) (0) | 2012.10.05 |
#03. 트랜잭션(Transaction) & 병행제어(Concurrency Control) (0) | 2012.10.05 |
#02. 이상(Anomaly)현상과 정규화(Normalization) (0) | 2012.10.05 |
#00. Database(DB)란? (0) | 2012.10.04 |