데이터 모델링
데이터 모델링을 하는 주요한 이유는 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것이 첫 번째 목적입니다.
두 번째는 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이 두 번째 목적입니다.
다시 말하면, 데이터모델링이라는 것은 단지 데이터베이스만을 구축 하기 위한 용도로 쓰이는 것이 아니라 데이터모델링 자체로서 업무를 설명하고 분석하는 부분에서도 매우 중요한 의미를 가지고 있다고 할 수 있습니다.
데이터 모델링을 할 때 유의할 사항은 중복성, 비유연성, 비일관성 등 입니다.
1. 중복 (Duplication)
데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 줌으로써 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 합니다.
(여러 장소의 데이터베이스에 같은 정보를 저장하지 않도록 하여 중복성을 최소화 한다.)
2. 비유연성 (Inflexibility)
데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있습니다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄입니다.
( 데이터의 정의를 데이터의 사용 프로세스와 분리하여 유연성을 높인다.)
3. 비일관성 (Inconsistency)
데이터의 중복이 없더라도 비일관성은 발생할 수 있는데, 예를 들면 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신하는 경우입니다. 개발자가 서로 연관된 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문에 이와 같은 문제가 발생할 수 있습니다.
데이터 모델링을 할 때 데이터와 데이터 간의 상호 연관 관계에 사용자가 처리하는 프로세스 혹은 이와 관련된 프로그램과 테이블의 연계성을 높이는 것은 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점에 해당합니다.
( 데이터간의 상호 연관관계를 명확하게 정의하여 일관성 있게 데이터가 유지되도록 한다.)
데이터 모델링 개념
1. 개념적 데이터 모델링
추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행,
전사적 데이터 모델링, EA수립시 많이 이용
2. 논리적 데이터 모델링
시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음
3. 물리적 데이터 모델링
실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
데이터베이스 스키마 구조 3단계
스키마 ?
데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것
(속성, 개체, 관계 에 대한 정의와 제약조건들을 기술한 것)
- 데이터 사전에 저장된다.
- 현실세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어짐
- 시간에 따라 불변인 특성
- 데이터의 구조적 특성을 의미
- 인스턴스에 의해 규정됨
1. 외부 스키마(External Schema)
서브 스키마(전체 데이터베이스의 한 논리적 부분) - 사용자 뷰
실세계에 존재하는 데이터들을 어떤 형식, 구조, 배치 화면을 통해 사용자에게 보여 줄 것인가
같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용
2. 개념 스키마(Conceptual Schema) (스키마)
조직체 전체를 관장하는 입장에서 DB를 정의한 것.
모든 사용자 관점을 통합한 조직 전체 관점의 통합적 표현
모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마
3. 내부 스키마(Internal Schema)
데이터베이스의 물리적 저장구조를 정의
데이터의 실제 저장방법을 기술, 물리적인 저장장치와 밀접한 계층
시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
데이터모델링이 필요한 이유로 가장 부적절한 것은?
> 데이터베이스를 구축하기 위한 용도를 위해 데이터모델링을 수행하고 업무에 대한 설명은 별도의 표기법을 이용한다.
데이터모델링을 할 때 유의해야 할 사항으로 가장 부적절한 것은?
> 사용자가 처리하는 프로세스나 장표 등에 따라 매핑이 될 수 있도록 프로그램과 테이블간의 연계성을 높인다.
'database > SQLD' 카테고리의 다른 글
[SQLD] 정규화(Normalization) (0) | 2022.02.11 |
---|---|
[SQLD] 식별자 (0) | 2022.02.11 |
[SQLD] 관계형 데이터베이스, DML, DDL, TCL (0) | 2022.02.10 |
[SQLD] SQL 문장들의 종류 - DML, DDL, DCL, TCL (0) | 2022.02.04 |
[SQLD] 엔터티(Entity), 속성(Attribute), 관계(Relation) (0) | 2022.02.02 |
댓글