[데이터베이스] #2 모델링 단계별 정리

September 09, 2023


데이터 추상화 단계

데이터베이스가 이런 좋은 기능들을 사용하기 위해서는 현실세계의 데이터를 추상화하는 과정이 필요합니다.

물리적 단계

  • 데이터가 실제로 저장되는 방법을 기술
  • 하위 단계의 복잡한 데이터 구조들을 상세하게 기술

논리적 단계

  • 저장된 데이터의 내용 및 데이터들간의 관계를 기술
  • 데이터베이스 전반에 걸친 데이터 구조관계를 기술
  • DBA는 논리적 단계에서 어떤 데이터를 데이터베이스에 저장할지를 결정

뷰 단계

  • 전체 데이터 베이스의 일부분
  • 실제 사용자가 보는 데이터베이스 관점, 사용자에게는 물리적/논리적 단계 은폐

3단계 스키마

하나의 데이터베이스는 데이터를 활용하는 각 개인의 시각, 이들의 시각이 통합되어 조직 수준의 시각, 그리고 물리적 저장 장치의 관점으로 나눠서 볼 때, 이러한 시각들 간의 상호관계를 정의한 것

  • ANSI/SPARC 구조라고도 함

내부 스키마

  • 물리적 스키마
  • DB가 물리적으로 저장된 형식(파일내 바이트)
  • 물리적 테이터 독립성에 의해 내부 스키마가 변경되더라도 개념/외부 스키마는 영향을 받지 않음

개념 스키마

  • 논리적 스키마
  • 개체 간의 관계와 제약 조건을 나타냄
  • 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마
  • 자세한 물리적 구조는 감추고 데이터베이스의 골격에만 관심을 둠

외부 스키마

  • 사용자 뷰
  • 복수 개의 스키마로 구성
  • DB의 사용자나 응용 프로그래머가 접근하는 DB 정의
  • SQL을 사용해 DB를 활용

메타 데이터

  • 스키마는 데이터 사전에 저장되며 메타 데이터라고도 함

데이터 독립성

  • Data independence

  • 데이터의 논리적 구조나 물리적 구조가 변경되더라도 응용 프로그램이 영향 받지 않도록 하는 성질

물리적 독립성

  • 물리적 스키마의 변경(e.g. 데이터 정렬)
  • 내부 스키마가 변경되더라도 개념/외부 스키마는 영향을 받지 않음
  • 응용 프로그램이나 데이터베이스의 논리적 구조에 영향을 미치지 않고 데이터의 물리적 구조를 변경할 수 있어야 함

논리적 독립성

  • 논리적 스카마의 변경(e.g. 테이블의 분리, SQL view)
  • 응용 프로그램에 영향을 주지 않고 데이터베이스 논리적 구조를 변경할 수 있어야 함

데이터 모델 설계 과정

데이터 모델은 데이터, 데이터들간의 관계, 의미, 제약 조건을 표현하는 개념적 도구입니다.

Database_modeling

1. 개념적 설계

  • 특정 체계의 정보, 요구사항을 구성하는 개체, 관계, 속성들을 인식

  • 도형화/명세화 <- Entity Relationship Diagram

  • 스키마의 표현력과 안정성을 추구

    필요성

    • 데이터 독립성 제공을 위한 안정된 자료 구조의 창출
    • 특정 DBMS에 적합한 데이터 모델로의 변환 용이
    • ER 모델과 관련 명세서를 통한 산출물의 이해도 증진

2. 논리적 설계

  • 개념적 스키마(ER 모델)을 DBMS에 맞는 논리적 스키마로 변환

  • 이전에 구현한 ER 모델을 특정 DBMS 모델에 맞게 논리적 모델을 구현

  • 논리적 모델이 제공하는 자료구조와 제약사항(DBMS)을 효율적으로 이용

    종류 특징
    관계형 모델 관계를 속성(값)으로 표현, 이를 표로 나타낼 수 있음
    네트워크 모델 그래프/엣지로 연결, 사이클이 생길 수도 있다는 단점
    계층형 모델 트리 형식
    객체 지향형 모델 객체 그대로 저장, SQL을 쓰지 못하며 사용하기 어렵다
    객체 관계형 모델 객체 지향 모델의 장점들이 SQL에 추가됨
  • ER 다이아그램을 단순한 ER 다이아그램으로 변환

  • 단순한 ER 다이아그램을 DBMS의 논리적인 모델로 변환

3. 물리적 설계

  • 논리적 스키마를 이용해서 효율적인 물리적 데이터베이스를 구헝하는 단계

  • DBMS의 지원 기술에 제약

    예시

    • 저장 레코드의 형식(e.g. 고정 길이 vs 가변 길이)
    • 저장 순서(정렬 여부)
    • 접근 경로(각 속성별 색인의 여부, 색인의 구성 방식(해시/트리))
    • 물리적 저장 장치의 할당

Profile picture

이재원

이해하기 쉬운 코드를 작성하려 고민합니다.


© 2024 Won's blog Built with Gatsby