데이터 모델링 및 설계
데이터 모델의 개념
데이터 모델의 정의
- 현실 세계의 정보를 단순화, 추상화 하여 체계적으로 표현한 개념적 모형
- 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임
- Shema 를 논리적으로 묘사하기 위해 사용되는 지능적 도구
- DB 설계과정 에서 데이터 구조를 논리적으로 표현하기 위해 사용되는 도구
데이터 모델의 종류
개념적 데이터 모델
- 현실 세계의 것을 추상적 개념으로 표현하는 과정
- 속성 들로 기술된 개체 타입과 개체 타입들 간의 관계[^1]를 이용하여 현실 세계를 표현
[^1]: E-R 모델이 그 예시
- 정보 모델이라고 하기도 함(인간의 이해를 돕기 위함)
논리적 데이터 모델
- 개념적 구조(개념적 모델링 과정에서 얻음)를 컴퓨터 처리할 수 있도록 변환하는 과정
- 특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용한다.
- 단순 데이터 모델하면 논리적 데이터 모델을 의미한다.
- 필드 로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용해 현실세계 표현
데이터 모델에 표시할 요소 <구 연 제!>
구조(STRUCTURE)
- 논리적으로 표현된 개체 타입들 간의 관계로 데이터 구조 및 정적 성질 표현
연산(OPERATION)
- DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세, DB를 조작하는 기본 도구
연산조건(CONSTRAINT)
- DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
데이터 모델의 구성요소
개체(Entity)
- DB에 표현하려는 것, 대상체
- 속성으로 구성되어 있다
- File system의 레코드에 대응하는 것, 정보 제공하는 역할 수행
- 독립적으로 존재하거나 그 자체로 구별 가능
속성(Attribute)
- 데이터의 가장 작은 논리적 단위
- 파일 구조상의 데이터 항목 또는 데이터 필드에 해당
- 개체를 구성
관계(Relationship)
- 개체 간의 관계, 속성 간의 관계
개체 - 관계 모델
개체 - 관계 모델의 개요 feat E-R모델
- E-R 모델
- 개념적 데이터 모델의 가장 대표적인 것
- 1976년 피터 첸에 의해 제안됨
- 개체와 개체 간의 관계를 기본 요소로 이용
- 현실 세계의 무질서한 데이터 —> 개념적인 논리 데이터
- 개체 타입(Entity TYPE)과 이들 간의 관계 타입(Relation TYPE)을 이용해 현실 세계를 개념적으로 표현
- 객체 관계 속성으로 묘사
- 특정 DBMS를 고려한 것은 아님
망(네트워크)형 데이터 모델
망형 데이터 모델(Network Data Model) 개요
- CODASYL이 제안
- 그래프를 이용해 데이터 논리구조 표현
- 상위(Owner)과 하위(member) 레코드 사이에서 다 대 다 대응 관계를 만족하는 구조
- 대표적 DBMS : DBTG, EDBS,TOTAL
망형 데이터 모델의 표현
- Entity : 동종의 Entity 그룹
- Entity SET : 주종 관계에 있는 Entity군들의 그룹
- SET Membership Type : 일 대 다(1:N) 관계에 연관된 레코드
- OWNER : 트리 구조의 PARENT
- MEMEBER : 트리 구조의 Children
망형 데이터 모델의 특징
- 레코드 타입과 링크들의 집합으로 구성
- 레코드 타입의 집합
- 레코드 타입들을 연결하는 링크 집합이 존재
- 상위 하나의 레코드에 대하여 하위 레코드가 복수 대응 ,그 역도 마찬가지
- 링크들로 표현한 관계성에는 제한이 없다
- 한 레코드 타입에서 자기 자신으로 가는 링크 없다(재귀 X)
- 모든 링크는 함수적이다.
- 세트의 이름은 링크로 표현된다.
- owner와 membebr 레코드 타입은 서로 동일한 형태가 불가능
데이터베이스 설계
데이터베이스의 설계의 개념 및 고려사항
사용자의 요구 분석 - DB구조에 맞게 변형 - DBMS 통해 DB 구현 느낌임
DB 설계순서
- 요구 분석 - 개념적 설계 - 논리적 설계 - 물리적 설계 - 구현
데이터 베이스 설계시 고려사항
- 무결성 : 연산 후에도 저장된 데이터가 제약 조건 항상 만족
- 일관성 : 데이터 간, 특정 질의에 대한 응답이 일정
- 회복 : 시스템 장애 발생이 ROLL BACK가능
- 보안 : 불법적인 데이터 노출,변경,손실로부터 보호가능
- 효율성 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 가능
- 데이터베이스 확장 : DB운영에 영향을 주지 않으면서 지속적으로 데이터 추가 가능 해야함
요구 조건 분석
- DB 사용자에 따른 수행 업무와 필요한 데이터의 종류,용도,처리 형태,흐름, 제약 조건 등을 수집한다.
- 수집한 정보로 요구 조건 명세 작성
개념적 설계(정보 모델링, 개념화)
현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 개념 스키마 모델링, 트랜젝션 모델링 병행
- 요구 조건 명세로 DBMS에 E-R 다이어 그램 작성
- DBMS에 독립적인 개념 스키마 설계
논리적 설계(데이터 모델링)
- 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화
- 개념 스키마 평가 및 정재, DBMS에 따라 서로 다른 논리적 스키마 설계
- 트랜잭션의 인터페이스 설계
- 관계형 DB라면 테이블을 설계
물리적 설계(데이터 구조화)
- 데이터 베이스 파일의 저장 구조 및 액세스 경로를 결정한다.
- 저장 레코드의 형식, 순서, 접근 경로와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법 묘사
- 필수적 요소 : 저장 레코드의 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계
- 기본적인 데이터 단위 = 저장 레코드
- 저장 레코드의 집합
- DB 시스템 성능에 중대한 영향을 미침
물리적 설계 옵션 선택시 고려사항
- 반응 시간
- 트랜잭션을 수행을 요구한 시점부터 처리 결과를 얻을 때 까지의 경과 시간
- 공간 활용도
- 데이터베이스 파일과 액세스 경로 구조에 의해 사용되는 저장 공간의 양
- 트랜잭션 처리량
- 단위 시간 동안 데이터베이스 시스템에의해 처리될 수 있는 트랜잭션의 평균개수
데이터 베이스 구현
- 논리적 설계단계와 물리적 설계 단계에서 도출된 데이터베이스 스키마를 파일로 생성하는 단계
- 사용하려는 DBMS의 DDL이용하여 Schema 기술 후 컴파일 하여 빈 DB파일 생성
- 생성된 DB파일에 데이터 입력
- 응용프로그램을 위한 트랜잭션 작성
- 데이터베이스 접근을 위한 응용 프로그램 작성
Comment