엔티티(Entity), 속성(Attribute), 인스턴스(Instance)
모델링
- 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정
- 데이터베이스의 구조와 관계를 정의하며, 이를 통해 데이터의 저장, 조작, 관리 방법을 명확하게 정의
- 예) 가계부 만들기 ≫ 날짜 등 어떤 컬럼을 만들지, 어떤 유형의 데이터를 넣을지 정의하기
모델링의 특징
- 단순화(Simplification)
- 현실을 단순화하여 핵심 요소에 집중하고 불필요한 세부 사항을 제거
- 추상화(Abstraction)
- 현실세계를 일정한 형식에 맞추어 간략하게 대략적으로 표현
- 다양한 현상을 일정한 양식인 표기법에 따라 표현
- 명확화(Clarity)
- 대상에 대한 애매모호함을 최대한 제거하고 정확하게 현상을 기술
- 이해가 쉽게 표현함
데이터 모델링 관점
- 데이터 관점
- 데이터가 어떻게 저장되고, 접근되고, 관리되는지를 정의하는 단계
- 프로세스 관점
- 시스템이 어떤 작업을 수행하며, 작업이 어떻게 조직되고 조정되는지 정의하는 단계
- 데이터가 시스템 내에서 어떻게 흐르고 변환되는지
- 데이터와 프로세스 관점 (상관 관점)
- 데이터 관점 + 프로세스 관점 ≫ 시스템의 전반적인 동작을 이해하는 단계
- 특정 프로세스가 어떤 데이터를 사용하고, 데이터는 어떻게 생성되고 변경되는지 명확하게 정의
데이터 모델링 유의점
- 중복
- 같은 정보를 저장하는 데이터 중복이 일어나지 않게 해야 함
- 중복 ≫ 저장공간 낭비
- 비유연성
- 사소한 업무 변화에도 잦은 모델 변경이 되지 않도록 주의
- 비유연성 ≫ 유지보수 비용이 많이 듦
- 데이터 정의를 프로세스와 분리
- 비일관성
- 데이터베이스 내의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미
- 비일관성 ≫ 데이터 연결 과정에서 오류가 발생
- 데이터의 중복이 없더라도 비일관성은 발생할 수 있음
데이터 모델링 요소
- 대상(Entity) : 관리하고자 하는 대상(객체)
- 예) 학생
- 속성(Attribute) : 대상들이 갖는 속성 (하나의 특징으로 정의될 수 있는 것)
- 예) 반, 번호, 수업, ...
- 관계(Relationship) : 대상들 간의 관계
- 예) 선생님 테이블 과의 관계, ...
데이터 모델링 3단계
- 개념적 모델링
- 업무를 분석한 뒤 업무의 핵심 엔티티(Entity)를 추출하는 단계
- 도출된 핵심 엔티티(Entity)들과의 관계들을 표현하기 위해 ERD 작성
- 추상화 수준이 가장 높음
- 예) 학교 ≫ 학생, 선생, ...등의 엔티티를 설정
- 논리적 모델링
- 개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 등을 표현하는 단계
- 데이터 정규화 수행 : "어떤 컬럼은 빼서 따로 테이블을 만들기" 등의 설계
- 데이터 구조를 정의하기 때문에 비슷한 업무에서 동일한 형태의 데이터 사용 시 재사용 가능
- 재사용성이 높은 논리적 모델은 유지보수가 용이해짐
- 물리적 모델링
- 논리 모델링이 끝나면 이를 직접 물리적으로 생성하는 과정 (논리적 단계의 설계도를 그대로 만드는 과정)
- 데이터베이스 성능, 디스크 저장구조, 하드웨어의 보안성, 가용성 등을 고려
- 가장 구체적인 데이터 모델링
- 추상화 수준은 가장 낮음 (가장 구체적)
스키마
- 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합
- 모든 객체들에 대한 정보
- 사용자의 관점과 실제 설계된 물리적인 방식을 구분하기 위해 고안됨
- 바라보는 관점에 따라 정의되는 형태가 다르기 때문
- 외부 스키마
- 사용자가 보는 관점에서 데이터베이스 스키마를 정의
- 사용자나 응용 프로그램이 필요한 데이터를 정의
- 사용자 관점의 스키마는 결국 논리, 물리 모델링을 통해 정의되어야 함 ≫ 개념/내부 스키마
- 개념 스키마
- 사용자 관점의 데이터베이스 스키마를 통합하여 데이터베이스의 전체 논리적 구조를 정의
- 전체 데이터베이스의 개체, 속성, 데이터 타입 등을 정의
- 내부 스키마
- 데이터가 물리적으로 어떻게 저장되는지를 정의
- 데이터의 저장 구조, 컬럼, 인덱스 등을 정의함
3단계 스키마의 독립성
: 물리적, 논리적 구조를 변경하더라도 사용자가 사용하는 응용 프로그램에 영향을 주지 않는 것
1) 논리적 독립성 : 논리적 데이터 구조가 변경되어도(개념 스키마 변경) 응용 프로그램에 영향을 주지 않음
- 데이터 타입, 속성, 관계 등이 달라져도 사용자의 업무 기능 수행에 영향 x
2) 물리적 독립성 : 물리적 데이터 구조가 변경되어도(내부 스키마 변경) 개념/외부 스키마에 영향을 주지 않음
- 컬럼 이름, 데이터의 저장 구조 등이 달라져도 외부/논리적 관점에 영향 x
ERD (데이터 모델의 표기법)
- 엔티티(Entity)와 엔티티 간의 관계(Relationship)를 시각적으로 표현한 다이어그램
ERD 작성 절차
- 엔티티 도출 후 그림
- 엔티티 배치
- 엔티티 간의 관계 설정
- 관계명 서술
- 관계의 참여도 기술
- 관계의 필수 여부 확인
'sqld' 카테고리의 다른 글
1-6) 정규화 (0) | 2024.08.18 |
---|---|
1-5) 식별자 (0) | 2024.08.08 |
1-4) 관계(Relationship) (0) | 2024.07.29 |
1-3) 속성(Attribute) (0) | 2024.07.28 |
1-2) 엔티티(Entity) (0) | 2024.07.24 |