2011년 6월 1일 수요일

데이터베이스 모델링

데이터베이스 모델링 이란 ?

현실 세계의 업무적인 프로세서를 물리적으로 데이터베이스화 하기 위한 과정으로 실체와 관계를 중심으로 체계적으로 표현하고 문서화 하는 기법이며 정보 시스템의 중심을 데이터의 관점에서 접근하는 데이터 중심의 분석방법.

데이터베이스 모델링 과정

과정

과정 주요 TASK

요구사항 정의 및 업무분석

- 정보화대상 업무의 문서를 이용하여 데이터로 관리되는 항목을 파악하고 세부적인 업무 프로세스 정의를 위해 현업 담당자의 인터뷰를 실시

- 사용자 요구분석은 기본적인 서류중심의 분석이 마무리된 후에 진행

개념적 모델링

- 개별 사용자의 뷰를 대상으로 분석 및 설계를 통해 엔티티, 속성을 정의하고 관계등을 표현하여 중복 및 불일치되는 점을 제거하여 최종 하나의 개념적 데이터 모델을 작성함

논리적 모델링

- 개념적 설계결과와 처리요구사항을 입력으로 하여 DBMS가 처리 가능한 스키마를 만드는 것으로 조직 전체의 입장에서 본 DB 구조로서DB내의 개체와 개체들간의 관계 그리고 제약조건 등에 대한 명세화(Specification)작업을 수행 함.

물리적 모델링

- 레코드 속성별 데이터 타입과 크기를 정의

- 정규화된 모델에 각 제약 조건을 정의(Check, Rule, Default, Null…)

- 데이터 사용량 분석을 통해 성능적 요소를 고려한 인텍스 및 역정규화

- 보안 및 무결성 확보를 위한 방안 강구


개념적 모델링

  • 개념 모델단계에서는 달성해야 할 목적에 맞게 무엇(What)을 해야 하는지에 초점을 두고 해야 하므로 적용할 DBMS를 고려해서 설계하지 않아야 함.

  • 업무 분석시 발견되는 업무처리 내용 중 명사 또는 개념적 명사 중심으로 용어를 정리하고 반드시 의미 설명을 하여 개념 설계가 이루어져야 함.

  • ERD는 확인 및 Review의 효율성을 위해 현업에서 사용되는 용어를 선택하도록 노력해야 함.

  • 개념모델 단계의 산출물은 논리모델의 입력물로서 추적성이 용이한 문서가 되고 무결성 규칙이 유지되도록 산출물이 정리되어야 함.

주요 TASK

TASK

내용

개체 정의(Entity Definition)

저장되고 관리되어야 할 정보(명사)로서 물리적으로 DBMS의Table하나에 해당된다.

Entity를 추출하기 위한 방법은 다음과 같다.

  • 업무에 있어서 관심사이며 관리의 필요성이 있는 정보

  • 명사, 단수형

  • 업무요구사항의 파악에 중요한 것

  • 모든 엔티티는 다수의 인스턴스(Instance; 사용건수)를 가져야 한다.

  • 모든 엔티티는 자신을 설명하는 속성들을 포함해야 한다.

속성 정의(Attribute Definition)

Entity 내에서 관리되는 정보들의 항목으로서 Entity를 설명하는데 사용되는 명사. Entity를 구성하는 요소가 되며, 하나의 Entity에는 고유식별자를 포함한 하나 이상의 속성이 포함된다.

속성의 명칭을 정의하는 방법

  • 의미가 명확하고 길지 않으며 내용을 함축성있게 표현

  • Entity명을 사용해서는 안됨

  • 단 하나의 Entity에만 속하도록 함

  • 가능한 한 최소단위까지 분할

  • 여러 값을 가지거나 반복되는 속성은 Entity로 분할

  • 추출값, 즉 Count값이거나 Total값, 최대, 최소, 평균 등의 계산 값 등은 포함시키는 것은 낭비

  • 속성이 자신의 속성을 가질 수 있으면 Entity로 분류

속성은 물리적 개발 단계에 앞서 각 속성의 값의 범위(Scope), 크기(Size), 형식(Format), Null 여부 등의 특성들을 기술해주어야 한다.

식별자 정의

한 Entity 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 단일속성 또는 속성그룹으로 중복을 배제함을 의미하며 실제 무결성(Entity Integration)이라 함

후보키(Candidate Key)

Entity 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 하나의 속성 또는 속성 그룹들로 구성

기본키(Primary Key)

Entity에서 각 인스턴스를 유일하게 식별하기에 적합한 Key를 말함

대체키(Alternate Key)

인덱스를 선정 활용하고자 할 때 후보키 중에 기본키로 선정되지 않은 속성을 가진 Key

복합키(Composite Key)

어떤 속성 기준으로 보다 더 많이 조회 또는 입력에 맞게 여러 개의 속성으로 구성된 Key


관계(Relational)

두 개의 Entity나 그 자신과의 특정관계를 연결하여 양방향으로 표현한 것을 의미한다. 관계선과 관계명, 카디널리티(Cardinality), 옵셔널리티(Optionality) 등으로 업무규칙(Business Rules)을 표현한다.

  • 관계선 위와 아래에 관계명을 표시한다. 관계명은 동사(verb) 형태로 표현된다.

  • 카디널리티는 양쪽의 엔티티의 관계가 1:n, n:1, 1:1, n:n 등 임을 나타낸다.

  • 옵셔널리티는 양쪽의 엔티티가 Mandatory(반드시 존재해야 함), Optional(존재하지 않을 수 있음) 중 하나로 표현된다.



논리 모델링

  • 개념적 데이터 모델을 특정 DBMS가 처리할 수 있는 논리적 모델 또는 스키마로 변환시킴

  • 논리적 모델은 데이터베이스 설계과정의 구현과 직접 관련되며 이는 성능, 무결성, 보안성 및 사용자에게 직접영향을 미치는 여러 요소를 결정하는 과정에 목적을 둠

논리적 모델 설계 요소

입력 요소

- 개념적 데이터 모델(E-R)이 매핑규칙으로 적용

- 업무의 운영요구 조건, 자료량과 사용용도

- 일관성 제약조건(무결성 확보방법)

- 사용할 DBMS의 논리적 구조와 데이터 정의어

출력 요소

- 특정 DBMS에 의하여 구현될 수 있는 데이터베이스 스키마

- 처리 가능한 뷰 및 뷰를 이용한 보안에 관한 제약사항

- 물리적 설계단계에서 적용될 매뉴얼

- 응용프로그램 설계 및 데이터베이스 운영지침



물리적 모델링

  • 논리적 모델링 단계에서 얻어진 데이터베이스 스키마를 좀더 효율적으로 구현하기 위한 작업과 함께 DBMS 제품 특성에 맞게 설계내용의 개체들을 정의하는 단계

  • 데이터의 저장관리 측면은 DBMS가 지원하는 방법 중에서 선택하는데 저장 구조 및 접근 경로가 간결하게 되어야 함 – 인덱스 및 탐색 기법

  • 저장 레코드 데이터들에 대하여 타입, 데이터 값의 분포, 사용될 응용, 접근빈도 고려, 데이터 표현, 압축 양식, 레코드 집중화에 따른 순차성 설계 등을 고려해야 한다.

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...