데이터 모델링 : 현실 세계를 개념 세계를 통해 컴퓨터 세계로 만드는 것
(현실) -- 추상화/개념적모델링 --> (개념적 구조) -- 변환/데이터 모델링 --> (논리적 구조)
개념적 구조를 거지치 않고 바로 모델링을 하려면 어렵다
개념적 모델링 : 현실 세계를 추상적 개념인 개체와 관계로 표현, E-R 모델
논리적 모델링 : 개념적 구조를 논리적 개념, 레코드 타입으로 표현, 관계 데이터 모델
데이터 구조화 : 논리적 구조를 물리적 구조로 표현, 물리적 설계
D = <S, O, C>
S : 구조
데이터의 정적 성질
개체 타입과 관계 명세
O :연산
데이터의 동적 성질
데이터의 조작기법
C : 제약 조건
데이터의 논리적 제약
데이터 조작의 한계를 표현
논리적 데터 모델 중 가장 많이 사용되고 있는 모델은 관계 데이터 모델
이전에는 네트워크, 계층 데이터 모델이 사용됐고 최근에서 OO 데이터 모델과 OR 데이터 모델 사용
DBMS는 하나의 논리적 데이터 모델만을 구현, 모델 간 차이점은 데이터 요소 간 관계 표현 방식에 있음
개체 : 단독으로 존재할 수 있으며 다른 것과 구별되는 객체
개체 타입 : 이름과 애트리뷰트로 정의, 개체의 집합(개체는 개체 타입에 대한 인스턴스)
애트리뷰트 유형 : 단순/복합, 단일/다중 값, 유도/저장, null
ex) 주소 = 복합, 도/시/동 = 단순
ex) 취미 = 다중, 이름 = 단일
다중값 애트리뷰트는 E-R 모델에서는 허용되지만 RDB에서는 분해해야한다
ex) 유도 = 평균 성적, 저장 = 성적
개체 타입들 사이의 대응, 즉 사상
전체 참여 (total participation) : A-B에서 A의 모든 개체가 A-B 관계에 참여
ex) 교수 - (소속) - 학과
부분 참여 (partial participation) : A-B에서 A의 일부 개체만 A-B 관게에 참여
ex) 학생 - (수강) -과목
개체 타입과 관계 타입을 기본 개념으로 현실 세계를 개념적으로 표현하는 방법
다 대 다 관계 표현
다원 관계 표현 (n-ary relationship) : 두개 이상의 개체 타입이 하나의 관계 타입에 관련 가능
>> 대부분 2원 관계이지만 가끔 3원 관계도 존재하고, 4원 관계는 쓰지 않는다
다중 관계표현 : 두 개체 타입 사에 둘 이상의 관계 존재 가능
관계 타입도 애트리뷰트를 가질 수 있음
자신의 애트리뷰트만으로는 키를 명세할 수 없는 개체 타입
주 개체 = 강한 개체 타입, 종속 개체 = 약한 개체 타입
구별자 (discriminator) : 약한 개체 집합 내에서만 인스턴스를 식별할 수 있는 애트리뷰트
식별 관계 타입 : 약한 개체를 강한 개체에 연결시켜 개체를 유일하게 식별하게 하는 관계
개념적 구조를 데이터베이스로 구현하기 위한 중간 단계, 개체 타입과 관계로 표현
DB : 릴레이션(개체, 관계)의 집합
릴레이션 스키마 : 개체와 관계성을 모두 릴레이션으로 정의