데이터베이스 모델링
데이터베이스 모델링 이란 ?
현실 세계의 업무적인 프로세서를 물리적으로 데이터베이스화 하기 위한 과정으로 실체와 관계를 중심으로 체계적으로 표현하고 문서화 하는 기법이며 정보 시스템의 중심을 데이터의 관점에서 접근하는 데이터 중심의 분석방법.
데이터베이스 모델링 과정
과정 |
과정 주요 TASK |
요구사항 정의 및 업무분석 |
- 정보화대상 업무의 문서를 이용하여 데이터로 관리되는 항목을 파악하고 세부적인 업무 프로세스 정의를 위해 현업 담당자의 인터뷰를 실시
- 사용자 요구분석은 기본적인 서류중심의 분석이 마무리된 후에 진행 |
개념적 모델링 |
- 개별 사용자의 뷰를 대상으로 분석 및 설계를 통해 엔티티, 속성을 정의하고 관계등을 표현하여 중복 및 불일치되는 점을 제거하여 최종 하나의 개념적 데이터 모델을 작성함 |
논리적 모델링 |
- 개념적 설계결과와 처리요구사항을 입력으로 하여 DBMS가 처리 가능한 스키마를 만드는 것으로 조직 전체의 입장에서 본 DB 구조로서 DB내의 개체와 개체들간의 관계 그리고 제약조건 등에 대한 명세화(Specification)작업을 수행 함. |
물리적 모델링 |
- 레코드 속성별 데이터 타입과 크기를 정의
- 정규화된 모델에 각 제약 조건을 정의(Check, Rule, Default, Null…)
- 데이터 사용량 분석을 통해 성능적 요소를 고려한 인텍스 및 역정규화
- 보안 및 무결성 확보를 위한 방안 강구 |
개념적 모델링
l 개념 모델단계에서는 달성해야 할 목적에 맞게 무엇(What)을 해야 하는지에 초점을 두고 해야 하므로 적용할 DBMS를 고려해서 설계하지 않아야 함.
l 업무 분석시 발견되는 업무처리 내용 중 명사 또는 개념적 명사 중심으로 용어를 정리하고 반드시 의미 설명을 하여 개념 설계가 이루어져야 함.
l ERD는 확인 및 Review의 효율성을 위해 현업에서 사용되는 용어를 선택하도록 노력해야 함.
l 개념모델 단계의 산출물은 논리모델의 입력물로서 추적성이 용이한 문서가 되고 무결성 규칙이 유지되도록 산출물이 정리되어야 함.
주요 TASK
TASK |
내용 | ||||||||
개체 정의(Entity Definition) |
저장되고 관리되어야 할 정보(명사)로서 물리적으로 DBMS의 Table하나에 해당된다.
Entity를 추출하기 위한 방법은 다음과 같다.
l 업무에 있어서 관심사이며 관리의 필요성이 있는 정보
l 명사, 단수형
l 업무요구사항의 파악에 중요한 것
l 모든 엔티티는 다수의 인스턴스(Instance; 사용건수)를 가져야 한다.
l 모든 엔티티는 자신을 설명하는 속성들을 포함해야 한다. | ||||||||
속성 정의(Attribute Definition) |
Entity 내에서 관리되는 정보들의 항목으로서 Entity를 설명하는데 사용되는 명사. Entity를 구성하는 요소가 되며, 하나의 Entity에는 고유식별자를 포함한 하나 이상의 속성이 포함된다.
속성의 명칭을 정의하는 방법
l 의미가 명확하고 길지 않으며 내용을 함축성있게 표현
l Entity명을 사용해서는 안됨
l 단 하나의 Entity에만 속하도록 함
l 가능한 한 최소단위까지 분할
l 여러 값을 가지거나 반복되는 속성은 Entity로 분할
l 추출값, 즉 Count값이거나 Total값, 최대, 최소, 평균 등의 계산 값 등은 포함시키는 것은 낭비
l 속성이 자신의 속성을 가질 수 있으면 Entity로 분류
속성은 물리적 개발 단계에 앞서 각 속성의 값의 범위(Scope), 크기(Size), 형식(Format), Null 여부 등의 특성들을 기술해주어야 한다. | ||||||||
식별자 정의 |
한 Entity 내에서 각각의 인스턴스를 유일하게 구분할 수 있는 단일속성 또는 속성그룹으로 중복을 배제함을 의미하며 실제 무결성(Entity Integration)이라 함
| ||||||||
관계(Relational) |
두 개의 Entity나 그 자신과의 특정관계를 연결하여 양방향으로 표현한 것을 의미한다. 관계선과 관계명, 카디널리티(Cardinality), 옵셔널리티(Optionality) 등으로 업무규칙(Business Rules)을 표현한다.
l 관계선 위와 아래에 관계명을 표시한다. 관계명은 동사(verb) 형태로 표현된다.
l 카디널리티는 양쪽의 엔티티의 관계가 1:n, n:1, 1:1, n:n 등 임을 나타낸다.
l 옵셔널리티는 양쪽의 엔티티가 Mandatory(반드시 존재해야 함), Optional(존재하지 않을 수 있음) 중 하나로 표현된다. |
논리 모델링
l 개념적 데이터 모델을 특정 DBMS가 처리할 수 있는 논리적 모델 또는 스키마로 변환시킴
l 논리적 모델은 데이터베이스 설계과정의 구현과 직접 관련되며 이는 성능, 무결성, 보안성 및 사용자에게 직접영향을 미치는 여러 요소를 결정하는 과정에 목적을 둠
논리적 모델 설계 요소
입력 요소 |
- 개념적 데이터 모델(E-R)이 매핑규칙으로 적용
- 업무의 운영요구 조건, 자료량과 사용용도
- 일관성 제약조건(무결성 확보방법)
- 사용할 DBMS의 논리적 구조와 데이터 정의어 |
출력 요소 |
- 특정 DBMS에 의하여 구현될 수 있는 데이터베이스 스키마
- 처리 가능한 뷰 및 뷰를 이용한 보안에 관한 제약사항
- 물리적 설계단계에서 적용될 매뉴얼
- 응용프로그램 설계 및 데이터베이스 운영지침 |
물리적 모델링
l 논리적 모델링 단계에서 얻어진 데이터베이스 스키마를 좀더 효율적으로 구현하기 위한 작업과 함께 DBMS 제품 특성에 맞게 설계내용의 개체들을 정의하는 단계
l 데이터의 저장관리 측면은 DBMS가 지원하는 방법 중에서 선택하는데 저장 구조 및 접근 경로가 간결하게 되어야 함 – 인덱스 및 탐색 기법
l 저장 레코드 데이터들에 대하여 타입, 데이터 값의 분포, 사용될 응용, 접근빈도 고려, 데이터 표현, 압축 양식, 레코드 집중화에 따른 순차성 설계 등을 고려해야 한다.
[출처] 데이터베이스 모델링|작성자 후루꾸
'DataBase > Oracle' 카테고리의 다른 글
Oracle TABLE 정보관련 및 VIEW (0) | 2008.04.28 |
---|---|
ROWNUM의 동작 원리와 활용 방법 (0) | 2008.04.28 |
ANSI/X3/SPARC (0) | 2008.04.17 |
Hashing (0) | 2008.04.17 |
데이터 저장기술 (0) | 2008.04.17 |