본문 바로가기

sqld

1-1) 데이터 모델의 이해

엔티티(Entity), 속성(Attribute), 인스턴스(Instance)

 

 

모델링
  • 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정
  • 데이터베이스의 구조와 관계를 정의하며, 이를 통해 데이터의 저장, 조작, 관리 방법을 명확하게 정의
  • 예) 가계부 만들기 ≫ 날짜 등 어떤 컬럼을 만들지, 어떤 유형의 데이터를 넣을지 정의하기

 

모델링의 특징
  • 단순화(Simplification)
    • 현실을 단순화하여 핵심 요소에 집중하고 불필요한 세부 사항을 제거
  • 추상화(Abstraction)
    • 현실세계를 일정한 형식에 맞추어 간략하게 대략적으로 표현
    • 다양한 현상을 일정한 양식인 표기법에 따라 표현
  • 명확화(Clarity)
    • 대상에 대한 애매모호함을 최대한 제거하고 정확하게 현상을 기술
    • 이해가 쉽게 표현함

 

데이터 모델링 관점
  1. 데이터 관점
    • 데이터가 어떻게 저장되고, 접근되고, 관리되는지를 정의하는 단계
  2. 프로세스 관점
    • 시스템이 어떤 작업을 수행하며, 작업이 어떻게 조직되고 조정되는지 정의하는 단계
    • 데이터가 시스템 내에서 어떻게 흐르고 변환되는지
  3. 데이터와 프로세스 관점 (상관 관점)
    • 데이터 관점 + 프로세스 관점 ≫ 시스템의 전반적인 동작을 이해하는 단계
    • 특정 프로세스가 어떤 데이터를 사용하고, 데이터는 어떻게 생성되고 변경되는지 명확하게 정의

 

데이터 모델링 유의점
  1. 중복
    • 같은 정보를 저장하는 데이터 중복이 일어나지 않게 해야 함
    • 중복 ≫ 저장공간 낭비
  2. 비유연성
    • 사소한 업무 변화에도 잦은 모델 변경이 되지 않도록 주의
    • 비유연성 ≫ 유지보수 비용이 많이 듦
    • 데이터 정의를 프로세스와 분리
  3. 비일관성
    • 데이터베이스 내의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미
    • 비일관성 ≫ 데이터 연결 과정에서 오류가 발생
    • 데이터의 중복이 없더라도 비일관성은 발생할 수 있음

 

데이터 모델링 요소
  • 대상(Entity) : 관리하고자 하는 대상(객체)
    • 예) 학생
  • 속성(Attribute) : 대상들이 갖는 속성 (하나의 특징으로 정의될 수 있는 것)
    • 예) 반, 번호, 수업, ...
  • 관계(Relationship) : 대상들 간의 관계
    • 예) 선생님 테이블 과의 관계, ...

 

데이터 모델링 3단계
  1. 개념적 모델링
    • 업무를 분석한 뒤 업무의 핵심 엔티티(Entity)를 추출하는 단계
    • 도출된 핵심 엔티티(Entity)들과의 관계들을 표현하기 위해 ERD 작성
    • 추상화 수준이 가장 높음
    • 예) 학교 ≫ 학생, 선생, ...등의 엔티티를 설정
  2. 논리적 모델링
    • 개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 등을 표현하는 단계
    • 데이터 정규화 수행 : "어떤 컬럼은 빼서 따로 테이블을 만들기" 등의 설계
    • 데이터 구조를 정의하기 때문에 비슷한 업무에서 동일한 형태의 데이터 사용 시 재사용 가능
    • 재사용성이 높은 논리적 모델은 유지보수가 용이해짐
  3. 물리적 모델링
    1. 논리 모델링이 끝나면 이를 직접 물리적으로 생성하는 과정 (논리적 단계의 설계도를 그대로 만드는 과정)
    2. 데이터베이스 성능, 디스크 저장구조, 하드웨어의 보안성, 가용성 등을 고려
    3. 가장 구체적인 데이터 모델링
    4. 추상화 수준은 가장 낮음 (가장 구체적)

 

스키마
  • 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합
  • 모든 객체들에 대한 정보
  • 사용자의 관점과 실제 설계된 물리적인 방식을 구분하기 위해 고안됨
  • 바라보는 관점에 따라 정의되는 형태가 다르기 때문

 

  1. 외부 스키마
    • 사용자가 보는 관점에서 데이터베이스 스키마를 정의
    • 사용자나 응용 프로그램이 필요한 데이터를 정의
    • 사용자 관점의 스키마는 결국 논리, 물리 모델링을 통해 정의되어야 함 ≫ 개념/내부 스키마
  2. 개념 스키마
    • 사용자 관점의 데이터베이스 스키마를 통합하여 데이터베이스의 전체 논리적 구조를 정의
    • 전체 데이터베이스의 개체, 속성, 데이터 타입 등을 정의
  3. 내부 스키마
    • 데이터가 물리적으로 어떻게 저장되는지를 정의
    • 데이터의 저장 구조, 컬럼, 인덱스 등을 정의함
3단계 스키마의 독립성
: 물리적, 논리적 구조를 변경하더라도 사용자가 사용하는 응용 프로그램에 영향을 주지 않는 것

1) 논리적 독립성 : 논리적 데이터 구조가 변경되어도(개념 스키마 변경) 응용 프로그램에 영향을 주지 않음
- 데이터 타입, 속성, 관계 등이 달라져도 사용자의 업무 기능 수행에 영향 x
2) 물리적 독립성 : 물리적 데이터 구조가 변경되어도(내부 스키마 변경) 개념/외부 스키마에 영향을 주지 않음
- 컬럼 이름, 데이터의 저장 구조 등이 달라져도 외부/논리적 관점에 영향 x

 

 

ERD (데이터 모델의 표기법)
  • 엔티티(Entity)와 엔티티 간의 관계(Relationship)를 시각적으로 표현한 다이어그램

 

ERD 작성 절차
  1. 엔티티 도출 후 그림
  2. 엔티티 배치
  3. 엔티티 간의 관계 설정
  4. 관계명 서술
  5. 관계의 참여도 기술
  6. 관계의 필수 여부 확인

 

 

 

'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