✔️데이터 모델링의 개념을 이해해 봅시다.

📌데이터 모델링

현실 세계를 데이터베이스로 표현하기 위해 추상화하는 작업

📌데이터 모델링의 특징

특징설명
추상화현실 세계를 간략하게 표현한다.
단순화누구나 쉽게 이해할 수 있게 표현한다.
명확성명확하게 해석되어야 하고 한 가지 의미를 가져야 한다.

📌데이터 모델링 단계

✔️개-논-물로 기억해 보자.

데이터 모델링 단계설명
념적 모델링- 전사적(회사 전체) 관점에서 기업의 데이터를 모델링한다.
- 모델에 관계없이 업무관점에서 모델링하며, 기술적인 용어는 가급적 사용하지 않는다.
- 엔터티의 속성을 도출하고 개념적 ERD(Entity Relationship Diagram)를 작성한다.
- 추상화 수준이 가장 높은 수준의 모델링이다.
- 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링 하는 단계이다.
리적 모델링- 개념적 모델링을 논리적 모델링으로 변환하는 작업이다.
- 특정 데이터베이스 모델에 종속한다.
- 식별자를 정의하고 관계, 속성 등을 정의한다.
- 정규화를 수행해서 데이터 모델의 독립성을 확보하고 재사용성을 높인다.
리적 모델링- 데이터베이스를 실제로 구축하고 테이블, 인덱스, 함수 등을 생성한다.
- 이때 성능, 보안, 가용성 등을 고려한다.

📌데이터 모델링 관점

관점설명
데이터- 비즈니스 프로세스에서 사용하는 데이터
- 구조분석, 정적 분석
프로세스- 비즈니스 프로세스에서 수행하는 작업
- 시나리오 분석, 도메인 분석, 동적 분석
데이터와 프로세스- 프로세스와 데이터 간의 관계
- CRUD(Create, Read, Update, Delete) 분석

📌데이터 모델링을 위한 ERD(Entity Relationship Diagram)

엔터티와 엔터티 간의 관계를 정의하는 모델링 방법
✔️엔터티는 다음 글에서 더 자세히 다룰 예정이기에 간단히 설명하자면, 업무에서 저장되고 관리 되어야 하는 데이터의 집합으로, 개념·사건·장소 등의 명사 형태를 갖는다.

ERD 작성 절차

  1. 엔터티를 도출하고 그린다.
  2. 엔터티를 배치한다.
    *중요한 엔터티는 왼쪽 상단에 배치한다.
  3. 엔터티 간의 관계를 설정한다.
  4. 관계명을 서술한다.
  5. 관계 참여도를 표현한다.
  6. 관계의 필수 여부를 표현한다.

고려사항

  • 중요한 엔터티를 가급적 왼쪽 상단에 배치한다.
  • ERD는 이해가 쉬워야 하고 너무 복잡하지 않아야 한다.

📌데이터 모델링 고려사항

1. 데이터 모델의 독립성

  • 데이터 중복을 제거하는 정규화를 통해 독립성을 확보한다.
  • 독립성이 확보된 모델은 고객의 업무 변화에 능동적으로 대응할 수 있다.

2. 고객 요구사항의 표현

  • 데이터 모델링으로 고객과 데이터 모델러 간에 의사소통을 할 수 있어야 하므로 간결하고 명확하게 표현해야 한다.

3. 데이터 품질 확보

  • 데이터 표준을 확보해야 데이터 품질을 향상시킬 수 있다.
  • 데이터베이스 구축 시에 데이터 표준을 정의하고 표준 준수율을 관리해야 한다.

📌3층 스키마

  • 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 이들 간의 관계를 정의한 ANSI 표준이다.
  • 3단계 계층으로 분리해서 독립성을 확보하는 방법으로 각 계층을 View라고도 한다.
  • 데이터베이스의 독립성을 확보하면 데이터 복잡도 증가, 데이터 중복 제거, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용 절감 등의 장점을 갖는다.

📌3층 스키마의 독립성

독립성설명
리적
독립성
저장구조가 변경되어도 응용 프로그램 및 개념 스키마에 영향이 없다.
리적
독립성
데이터베이스 논리적 구조가 변경되어도 응용 프로그램에 변화가 없다.

📌3층 스키마의 구조

구조설명
외부 스키마- 사용자 관점 / 업무상 관련이 있는 데이터 접근
- 관련 데이터베이스의 뷰(View)를 표시
- 응용 프로그램이 접근하는 데이터베이스를 정의
개념 스키마- 설계자 관점 / 사용자 전체 집단의 데이터베이스 구조
- 전체 데이터베이스 내의 규칙과 구조를 표현
- 통합 데이터베이스 구조
내부 스키마- 개발자관점 / 데이터베이스의 물리적 저장구조
- 데이터 저장구조, 레코드 구조, 필드 정의, 인덱스 등을 의미

📖'영진닷컴'의 이기적 SQLD 교재를 참고하여 작성하였습니다.

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN