데이터 모델
- 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 표현한 개념적 모형
- 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임
- 데이터베이스 설계 과정에서 데이터의 구조를 논리적으로 표현하기 위해 사용되는 도구
- 데이터의 구조(스키마)를 논리적으로 묘사하기 위해 사용되는 도구
개념적 데이터 모델
- 현실 세계를 추상적 개념으로 표현
- 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계 표현
- 정보 모델이라고도 하고 대표적으로 E-R모델이 있다.
논리적 데이터 모델
- 개념적 모델링으로 얻은 개념적 구조를 컴퓨터에 맞도록 변환하는 과정
- 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계 표현
- 데이터 모델이라고 하면 논리적 데이터 모델을 뜻함
- 하나의 DBMS는 하나의 논리적 데이터 모델
- 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분
개체(Entity)
DB에 표현하려는 것으로 현실 세계의 대상
실세계에 독립적으로 존재하는 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성
독립적으로 존재하거나 그 자체로서도 구별 가능
속성(Attribute)
데이터의 가장 작은 논리적 단위로 개체를 구성하는 항목
관계
개체 간의 관계 또는 속성 간의 관계이다.
교수가 학생을 지도하는 관계
피터 첸(P.Chen)이 제안한 개념적 모델로 개체 타입과 이들 간의 관계 타입을 이용해 현실세계를 개념적으로 표현
1:1, 1:N, N:M 등의 관계 유형을 젷나 없이 나타낼 수 있음
시스템 내에서 역할을 가진 모든 실체들을 시각적으로 표현
구성 형태
- 데이터의 논리적 구조도가 트리 형태이며, 개체가 Tree를 구성하는 노드 역할을 함
- 개체 집합에 대한 속성 관계를 표시하기 위해 개체를 노드로 표현하고 개체 집합들 사이의 관계를 링크로 연결
- 개체 간의 관계를 부모와 자식 간의 관계로 표현
관계 유형
- 속성 관계 : 세그먼트(개체)를 구성하는 속성들의 관계
- 개체 관계 : 개체와 개체 간의 관계를 링크로 표시
특징
- 개체 타입 간 상위와 하위 관계가 존재하고 1:N 관계만 존재
- 1:N 관계만 있으므로 링크의 이름이 없음
- 트리는 하나의 루트 개체 타입과 다수의 종속되는 개체 타입으로 구성도니 순서 트리
- 개체 삭제 시 연쇄 삭제
- 사이클 허용되지 않음
- 두 개체 간 하나의 관계만 허용
- 개체를 세그먼트라고 부름
ex) IMS
장점
- 간단한 구조, 판독 용이
- 구현, 수정, 검색 용이
- 데이터 독립성 보장
단점
- 데이터 상호 간의 유연성 부족
- 검색 경로 한정
- 삽입, 삭제 연산 복잡
- N:N 관계 처리 복잡
개요
- CODASYL이 제안
- 그래프를 이용해서 데이터 논리 구조 표현
- 상위(Owner)와 하위(Member) 레코드사이에서 N:M 대응 관계를 만족하는 구조
- 1:1, 1:N, N:M 관계 모두 가능
표현
- Entity군 : 동종의 Entity 그룹 ex) 학과, 교수, 학생
- Entity SET : 주종 관계에 있는 Entity군들의 그룹 ex) 아래의 그림
- SET Membership Type : 1:N 관계에 연관된 레코드 타입들을 각각 오너(Owner), 멤버(Member)라고 함 ex) 교수의 오너 : 학과, 교수의 멤버 : 학생
특징
- 레코드 타입과 링크들의 집합
- 상위 하나의 레코드에 대해 하위 레코드가 복수 대응, 하위 하나의 레코드에 대해 상위 레코드도 복수 대응
- 관계성 제한 없음
- 자기 자신으로 가는 링크는 없음
- 모든 링크는 적어도 한 방향으로 함수적
- 세트 이름은 링크로 표현
- 오너와 멤버 레코드 타입은 서로 동일 형태가 될 수 없음
사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 DB의 구조에 맞게 변형한 후 특정 DBMS로 DB를 구현하여 일반 사용자들이 사용하게 하는 것
고려사항
- 무결성 : 삽입, 삭제, 갱신 등의 연산 후에도 DB에 저장된 데이터가 정해진 제약 조건을 항상 만족
- 일관성 : DB에 저장된 데이터들 사이나, 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정
- 회복(Recovery) : 시스템에 장애가 발생했을 때 장애 발생 직전의 상태로 복구할 수 있어야 함
- 보안 : 불법적인 데이터의 노출 또는 변경, 손실로부터 보호
- 효율성 : 응답시간 단축, 생산성, 저장 공간 최적화
- DB 확장 : 운영에 영향 주지 않으면서 지속적으로 데이터 추가할 수 있어야 함
요구 조건 분석
- DB를 사용할 사람들로부터 필요한 용도 파악
- 수집된 정보를 바탕으로 요구 조건 명세 작성
개념적 설계(정보 모델링, 개념화)
- 정보의 구조를 얻기 위해 현실 세계의 무한성과 계속성을 이해하고, 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 개념 스키마 모델링과 트랜잭션 모델링 병행 수행
- 요구 분석 단계에서 나온 결과(요구 조건 명세)를 DBMS에 독립적인 E-R 다이어그램(개체 관계도)으로 작성
- DBMS에 독립적인 개념 스키마 설계
논리적 설계(데이터 모델링)
- 현실 세계의 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
- 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화
- 개념 스키마를 평가 및 정재하고 서로 다른 논리적 스키마를 설계하는 단계
- 트랜잭션의 인터페이스 설계
- 관계형 DB라면 테이블을 설계하는 단계
물리적 설계(데이터 구조화)
- 논리적 설꼐에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
- DB 파일의 저장 구조 및 엑세스 경로 결정
- 저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사
- 저장 레코드의 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계는 꼭 포함
- 저장 레코드의 양식을 설계할 때 데이터 타입, 데이터 값의 분포, 접근 빈도 고려
- 물리적 DB 구조의 기본적인 데이터 단위는 저장 레코드이고 여러 가지 타입의 저장 레코드 집합이라는 면에서 단순한 파일과 다르며 DB 시스템의 성능에 중대한 영향을 미친다.
- 물리적 설계 시 고려 사항
- 인덱스의 구조
- 레코드 크기
- 파일에 존재하는 레코드 개수
- 파일에 대한 트랜잭션의 갱신과 참조 성향
- 성능 향상을 위한 개념 스키마의 변경 여부 검토
- 빈번한 질의와 트랜잭션들의 수행속도를 높이기 위한 고려
- 시스템 운용 시 파일 크기의 변화 가능성
- 물리적 설계 옵션 선택 시 고려 사항
- 물리적 설계 옵션은 특정 DBMS에서 제공되는 것으로 DB 파일에 대한 저장 구조와 접근 경로에 대한 다양한 옵션을 말함
- 반응 시간 : 트랜잭션 수행을 요구한 시점부터 처리 결과를 얻을때까지의 경과 시간
- 공간 활용도 : DB 파일과 엑세스 경로 구조에 의해 사용되는 저장공간의 양
- 트랜잭션 처리량 : 단위시간 동안 DB 시스템에 의해 처리될 수 있는 트랜잭션의 평균 개수