1. 관계 데이터베이스 개요와 설계 절차
가. 데이터 모델링
1) 데이터 모델
현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 모형
복잡한 실 세계를 단순화하여, 실 세계에 존재하는 개체들을 식별하고 개체와 개체 사이의 관계를 정의함으로써 컴퓨터 상의 데이터베이스를 추상화된 개념으로 이해하기 쉽게 할 뿐만 아니라 사용자들 사이의 의사소통을 원활히 할 수 있도록 도와주는 도구
2) 데이터 모델의 예
나. 데이터 모델의 분류
1) 물리적 데이터 모델(저수준 데이터 모델)
어떻게 데이터가 컴퓨터에 저장되는지의 세부 사항을 명시하는 개념을 제공
2) 개념적 데이터 모델(고수준 데이터 모델)
사용자들이 데이터를 인식하는 방식에 대한 개념을 제공
3) 표현적 데이터 모델(구현 데이터 모델)
일반 사용자들이 이해할 수 있는 개념을 제공
데이터 저장 구조의 세부 사항을 은폐하지만 컴퓨터 상에서 직접 구현 가능
상용 DBMS에서 주로 사용함.
https://ko.wikipedia.org/wiki/데이터_모델
다. 3단계-스키마 아키텍처
1) 외부 단계 또는 뷰 단계
특정 사용자 그룹이 관심을 갖는 부분을 나타내고 나머지는 은폐함.
2) 개념 단계
전체 사용자를 위한 데이터베이스의 구조를 기술함.
엔티티, 관계, 연산, 제약 조건들에 중점
3) 내부 단계
저장구조의 세부 사항과 접근 경로를 기술
https://ko.wikipedia.org/wiki/데이터베이스_스키마
4) 3단계-스키마 아키텍처 목적
논리적 데이터 독립성(외부 스키마나 응용 프로그램을 변경하지 않으면서 개념 스키마를 변경할 수 있는 성질)
물리적 데이터 독립성(개념 스키마를 변경하지 않으면서 내부 스키마를 변경할 수 있는 성질)
라. 관계형 데이터베이스 설계 절차 개요
1) 요구사항 수집 및 분석
2) 개념적 설계(Conceptual design)
객체-관계 모델
3) 논리적 설계(Logical design)
관계 모델
4) 물리적 설계(Physical design)
물리적 저장구조, 인덱스(해쉬, B+ 트리)
2. 고수준의 개념적 데이터 모델
가. 데이터베이스 설계의 주요 단계
1) 요구사항 수집 및 분석(Requirement Analysis)
2) 개념적 설계(Conceptual design)
개념적 스키마, ER Model
3) 논리적 설계(Logical design)
논리적(개념적) 스키마, Relational Model
4) 물리적 설계(Physical design)
3. 엔티티, 엔티티타입, 애트리뷰트, 키
가. 엔티티와 애트리뷰트
엔티티는 데이터베이스 내에 표현된 작은 세계에 존재하는 객체 또는 실체
애트리뷰트는 엔티티를 기술하기 위한 속성
엔티티는 자신의 각 애트리뷰트에 대해 값을 가짐
각 애트리뷰트는 정수, 실수, 문자열과 같이 자신에게 연계된 값 집합(데이터 타입, 도메인)을 가짐.
나. 애트리뷰트 타입
일반적으로 복합 및 다치 애트리뷰트는 몇 단계로 내포될 수 있지만 그런 경우는 흔하지 않음.
1) 단순 애트리뷰트(Simple Attribute)
하나의 요소만으로 구성되는 애트리뷰트
2) 복합 애트리뷰트(Composite Attribute)
복수 개의 요소들로 구성되는 애트리뷰트
3) 다치 애트리뷰트(Multi-valued Attribute)
여러 값을 가질 수 있는 애트리뷰트
다. 앤티티타입과 키 애트리뷰트
1) 앤티티타입
동일한 애트리뷰트들을 갖는 엔티티들의 집합으로 정의함.
2) 키 애트리뷰트
한 엔티티 타입에서 각 엔티티가 유일한 값을 가지는 애트리뷰트를 그 엔티티타입의 키 애트리뷰트라 함.
보통은 단일 키(Single Key) 형태
3) 복합 키(Composite Key) 형태
두 개 이상의 애트리뷰트를 묶어서 키 애트리뷰트로 사용하는 경우
엔티티타입은 한 개 이상의 키를 가질 수 있음.
4) 요구사항으로부터 엔티티 식별
데이터베이스의 요구사항을 토대로 엔티티타입을 찾을 수 있음.
속성 중 일부 속성은 관계로 재정의
4. 관계, 관계타입, 관계집합, 구조적 제약조건
가. 관계, 관계타입, 관계집합
관계(relationship)는 두 개 또는 그 이상의 엔티티들을 특정한 의미로 연관 짓는 것
같은 형의 관계들은 관계타입으로 그룹화됨.
데이터베이스에 표현되어 있는 관계 인스턴스의 집합 또는 관계타입의 현재 상태를 관계집합이라고 함.
관계타입의 차수(Degree)는 참여하는 엔티티타입의 개수임.
두 엔티티타입들에 대한 한 개 이상의 관계타입이 있을 수 있음.
엔티티타입처럼 관계타입도 애트리뷰트들을 가질 수 있음.
나. 구조적 제약조건(관계타입에서의 제약조건)
1) 카디낼러티 제약조건(Cardinality Constraints)
엔티티가 참여할 수 있는 최대 관계 인스턴스들의 수를 명시함.
이진 관계에서 가능한 카디낼러티 비율은 1:1, 1:N, N:M
2) 참여 제약조건(Participation Constraints)
관계타입에서 한 엔티티의 존재가 연관되어 있는 다른 엔티티에 의존하는지의 여부를 명시
각 엔티티가 참여할 수 있는 최소 카디낼러티 제약조건이라고도 함.
전체 참여(Total Participation)와 부분 참여(Partial Participation)가 있음.