데이터베이스 구축 1. 논리 데이터베이스 설계
1. 개체
- Entity
- 데이터 모델의 구성 요소 중 하나
- 데이터베이스에 표현하려는 것
- 사람이 생각하는 개념/정보 단위와 같은 현실 세계의 대상체
- 영속적(Persistence)으로 존재
- 유일한 식별자(Unique Identifier)로 식별 가능
- 다른 개체와 하나 이상의 관계(Relationship) 맺음
- 선정 방법
- 자료 흐름도(DFD; Data Flow Diagram)로 업무 분석한 경우 자료 흐름도(자료 흐름 그래프 혹은 버블 차트)의 자료 저장소(Data Store) 이용
- BPR(Business Process Reengineering, 업무 프로세스 재설계)로 업무 재정의한 경우 관련 개체 찾음
- 개체명 지정
2. 속성
- Attribute
- 데이터 모델 구성 요소
- 가장 작은 논리적 단위
- 파일 구조상 데이터 항목 혹은 데이터 필드
- 개체의 특성 기술
- 속성의 수를 디그리(Dgree) 혹은 차수라고 함
- 종류
- 특성에 따른 분류
- 기본 속성(Basic Attribute)
- 설계 속성(Designed Attribute)
- 파생 속성(Derived Attribute)
- 개체 구성 방식에 따른 분류
- 기본키 속성(Primary Key Attribute)
- 외래키 속성(Foreign Key Attribute)
- 일반 속성
- 후보 선정 원칙
- 원시(Source) 속성으로 판단
- 속성명 지정 원칙
- 웹 혹은 클라이언트/서버(Client/Server) 등 어떤 환경에서도 사용자 인터페이스에 나타나므로 정확하고 혼란이 없어야
3. 관계
- Relationship
- 데이터베이스의 기본 구성 요소
- 개체 간 관계 혹은 속성 간의 논리적 연결
- 형태
- 일 대 일(1:1)
- 일 대 다(1:N)
- 다 대 다(N:M)
- 종류
- 종속 관계(Dependent Relationship)
- 식별 관계(Identifying Relationship)
- 비식별 관계(Non-Identifying Relationship)
- 중복 관계(Redundant Relationship)
- 재귀 관계(Recursive Relationship)
- 배타 관계(Exclusive Relationship)
4. 튜플
- Tuple
- 관계형 데이터베이스에서 릴레이션을 구성하는 각 행
- 속성(Attrivute)의 모임
- 파일 구조에서 레코드와 같음
- 카디널리키(Cardinality): 튜블의 수(기수, 대응수)
5. 도메인
- Domain
- 애트리뷰트가 취하는 원자(Atomic)값의 집합
- 실제 애트리뷰트 값의 합법 여부를 시스템이 검사하는 데 이용
6. 키
- Key(제약 조건)
- 정확성 보장을 위해 입력되는 데이터에 제한을 줌
- 후보키(Candidate Key)
- 유일성(Uniqie): 하나의 키 값으로 하나의 튜플만 식별
- 최소성(Minimality): 유일 식별하는 데 필요한 속성으로만 구성
- 기본키(Primary Key)
- 후보키 중 특별선정된 주키(Main Key)
- 중복값 또는 NULL 값(Value) 못가짐
- 대체키(Alternate Key)
- 기본키가 아닌 후보키(보조키)
- 슈퍼키(Super Key)
- 유일성 만족하나 최소성에 반함
- 외래키(Foreign Key)
- 다른 릴레이션의 기본키 참조하는 속성(의 집합)
7. 무결성
- Integrity
- 데이터 값과 현실 세계의 값이 일치(정확성) 보장
- 부정확한 자료가 데이터베이스에 저장되는 것을 방지하는 제약조건
- 개체 무결성(Entity Integrity, 실체 무결성)
- 기본키의 구성 속성은 Null 값이나 중복값 못가짐
- 도메인 무결성(Domain Integrity, 영역 무결성)
- 속성 값이 정의된 도메인에 속해야
- 참조 무결성(Referential Integratiy)
- 외래키(Foreign Key) 값은 Null이거나 참조 릴레이션의 기본키 값과 동일하여야
- 외래키와 참조하는 테이블의 기본키는 도메인 및 속성 개수 같아야
- 사용자 정의 무결성(User-Defined Integiryty)
- 사용자가 정의한 제약 조건에 속성 값이 만족되어야
8. 관계대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보 검색 유도를 기술하는 절차적 언어
- 릴레이션 처리를 위해 연산자와 연산규칙 제공(피연산자와 결과가 릴레이션)
- 질의에 대한 해를 구하는 연산의 순서 명시
- 순수 관계 연산자: 관계 데이터베이스에 적용하기 위해 개발
- Select
- Project
- Join
- Division
- 일반 집합 연산자
- UNION(합집합)
- INTERSECTION(교집합)
- DIFFERENCE(차집합)
- CARTESIAN PRODUCT(교차곱)
9. 정규화
- Normalization
- 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 분해하는 과정
- 데이터 중복성 최소화와 일관성 등 보장하여 데이터베이스의 품질 및 성능 향상을 위해 수행
- 이상(Anomaly)
- 삽입 이상(Insertion Anomaly)
- 삭제 이상(Deletion Anomaly)
- 갱신 이상(Update Anomaly)
- 과정
- 제1정규형(1NF)
- 제2정규형(2NF)
- 제3정규형(3NF)
- BCNF형(Boyce-Codd 정규형)
- 제4정규형(4NF)
- 제5정규형(5NF, PJ/NF)
10. 시스템 카탈로그
- System Catalog
- 시스템과 관련 있는 다양한 객체에 관한 정보를 포함하는 데이터베이스
- 각 테이블은 사용자와 DBMS가 지원하는 모든 데이터 객체에 대한 정의 및 명세 정보를 유지 관리하는 시스템 테이블
- 카탈로그가 생성되면 데이터 사전(Data Dictionary)에 저장
- 저장 정보
- 메타 데이터 유형
- 데이터베이스 객체 정보
- 사용자 정보
- 테이블 무결성 제약 조건 정보
- 함수, 프로시저, 트리거 등
- 특징
- 카탈로그 갱신
- 분산 시스템에서의 카탈로그
- 카탈로그(데이터 사전) 참조 위한 DBMS 내 모듈 시스템
- 데이터 정의어 번역기(DDL Complier)
- 데이터 조작어 번역기(DML Complier)
- Data Directory
- 질의 최적화기
- 트랜잭션 처리기