<데이터 모델이란?>
- 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화, 명확화 하여 체계적으로 표현한 것.
- 데이터 모델의 목적은 데이터베이스를 구축하고, 일정한 표기법에 의해 업무 정보를 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 분석하는 것.
▶ 데이터 모델에 표시할 요소
: 개체(Entity), 속성(Attribute), 관계(Relationship)
▶ 데이터 모델에 표시할 요소
: 구조(Structure), 연산(Operation), 제약조건(Constraint)
▶ 데이터 모델의 종류
: 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델
<데이터베이스 설계 순서>
요구 조건 분석 -> 개념적 설계(개념적 데이터 모델링) -> 논리적 설계(논리적 데이터 모델링) -> 물리적 설계(물리적 데이터 모델링) -> 구현
1. 요구 조건 분석
사용자의 데이터 요구사항을 찾고 분석한다. 필요한 데이터의 종류, 용도, 처리 형태, 흐름, 제약조건 등을 수집하여 요구 조건 명세를 작성한다.
2. 개념적 데이터 모델링(Conceptual Data Modeling)
개념적 데이터 모델링은 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다. 추상화 수준이 높기 때문에 포괄적인 수준으로 모델링을 진행한다. 그래서 데이터베이스의 전체적인 논리적 구조를 나타내는 개념 스키마를 설계하며, 요구 조건 명세를 통해 핵심 개체(Entity)들과 그 개체 간의 관계(Relationship)를 기본 요소로 한 E-R 다이어그램을 작성한다. 이 과정을 통해 상위의 문제에 대한 구조화를 쉽게 하며, 사용자와 개발자가 시스템 기능에 대해 논의할 수 있는 기반을 형성한다.
3. 논리적 데이터 모델링(Logical Data Modeling)
논리적 데이터 모델링은 현실 세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 매핑시키는 과정이다. 이는 개념 스키마를 평가 및 정제하여 DBMS에 종속적인 논리적 스키마를 설계하는 것이다. 이 과정에서 트랜잭션의 인터페이스 설계와 정규화 과정 등을 수행한다. 데이터 모델링에서 가장 핵심이 되는 단계로 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다.
4. 물리적 데이터 모델링(Physical Data Modeling)
논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장 장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정(데이터 구조화)이다. 저장 레코드의 형식, 순서, 접근 경로, 조회가 집중되는 레코드 등의 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사하며 테이블 정의서 등을 작성한다.
5. 데이터베이스 구현
논리적 설계 단계와 물리적 설계 단계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정이다. 목표 DBMS의 DDL(데이터 정의어)로 데이터베이스를 생성하고 트랜잭션을 작성한다.
이렇게 데이터베이스의 설계 과정을 살펴보았다. 보통 소프트웨어의 개발의 계획 단계에서 개념적 데이터 모델링, 분석 단계에서 논리적 데이터 모델링, 설계 단계에서 물리적 데이터 모델링이 수행된다.
<스키마(Schema)>
▶ 스키마란?
스키마는 데이터베이스의 구조와 제약조건 등의 전반적인 정보를 정의한 것으로, 관점에 따라 외부 스키마(사용자 관점), 개념 스키마(전체적 관점), 내부 스키마(물리적 저장장치 관점) 3단계로 구성된다. 참고로 위에서 살펴본 데이터 모델링은 전체적인 관점인 개념 스키마를 만들어가는 과정으로 볼 수 있다.
외부 스키마 (External Schema) |
각 개인(사용자나 개발자)의 입장에서 필요로하는 데이터베이스의 논리적 구조를 정의한 것. 서브 스키마라고도 함. | |
개념 스키마 (Conceptual Schema) |
데이터베이스의 전체적인 논리적 구조로 개체간의 관계, 제약조건, 접근 권한, 무결성, 보안 등에 대해 정의한 것. 모든 응용 프로그램이나 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스로 하나만 존재함. | |
내부 스키마 (Internal Schema) |
물리적 저장장치의 입장에서 본 데이터베이스 구조를 정의한 것. 실제 데이터베이스에 저장될 레코드 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄. |
▶ 데이터 독립성/ 데이터 종속성
스키마가 이렇게 3단계 구조로 표현된 것은 사용자 요구사항에 대해 화면과 데이터베이스 간의 독립성을 유지하기 위함(데이터 독립성)이다. 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않으며(논리적 구조가 변경되어도 응용 프로그램에 영향 없음 - 논리적 독립성), 내부 스키마가 변경되어도 외부/개념 스키마에 영향을 미치지 않는다(저장 장치의 구조 변경이 응용 프로그램과 논리적 구조에 영향 없음 - 물리적 독립성).
만약 이와 반대로 데이터와 응용 프로그램이 의존 관계(데이터 종속성)에 있을 경우, 사용자의 접근에 따라 데이터를 구성하는 방법이 영향을 받아 사용자 요구사항에 대응하기 힘들어질 것이다. 데이터 독립성은 데이터 종속성의 문제를 해결하고 데이터 중복 등으로 인한 데이터 복잡도 증가에 따른 유지보수 비용을 절감하는 목적을 가진다.
정보처리기사와 SQLD를 준비하면서 키워드를 중점으로 외우다 보니 데이터 모델링과 스키마의 용어와 개념이 조금 헷갈렸다. 시나공의 정보처리기사 필기 책과 한국데이터산업진흥원의 SQL 가이드 책을 함께 보며 정리·요약을 해봤는데 머릿속에 확실히 들어온 느낌이다.
'DataBase' 카테고리의 다른 글
[Oracle] JOIN (2) - OUTER JOIN, SELF JOIN(오라클, ANSI 문법) (2) | 2022.08.10 |
---|---|
[Oracle] JOIN (1) - CROSS JOIN, INNER JOIN(오라클, ANSI 문법) (2) | 2022.08.03 |
[Oracle] 테이블 복사/ 테이블의 데이터 복사 (0) | 2022.05.19 |
[Oracle] 제약 조건(Constraint) 추가, 변경, 조회, 삭제 (0) | 2022.04.14 |
댓글