ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DB] 데이터 모델 (Data Model)
    DB 2020. 7. 12. 21:10
    728x90
    • 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
    • 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임
    • 데이터베이스 설계 과정에서 데이터의 구조를 논리적으로 표현하기 위해 사용되는 지능적 도구

    구성 요소

    • 개체(Entity)
      • 데이터베이스에 표현하려는 것으로 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
    • 속성(Attribute)
      • 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 또는 데이터 필드에 해당
    • 관계(Relationship)
      • 개체 간의 관계 또는 속성 간의 논리적인 연결을 의미

    개념적 데이터 모델

    • 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
    • 개념적 데이터 모델은 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실세계를 표현
    • 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하기 때문에 정보 모델이라고도함
    • 대표적인 개념적 데이터 모델은 E-R 모델

    논리적 데이터 모델

    • 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정
    • 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현
    • 특정 DBMS는 특정 논리적 데이터 모델 하나만 선정하여 사용
    • 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분

    논리적 데이터 모델의 품질 검증

    • 개체 품질 검증
    • 속성 품질 검증
    • 관계 품질 검증
    • 식별자 품질 검증
    • 전반적인 품질 검증

    데이터 모델에 표시할 요소

    • 구조(Structure)
      • 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현
    • 연산(Operation)
      • 데이터베이스에 저장된 실제 데이터를 처리하는 작업에대한 명세로서 데이터베이스를 조작하는 기본 도구
    • 제약조건(Constraint)
      • 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

    논리 데이터 모델 -> 물리 데이터 모델 변환

    테이블

    • 테이블은 데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트

    테이블의 구성요소

    • 로우(Row)
      • 튜플, 인스턴스, 어커런스라고도함
    • 컬럼(Column)
      • 각 속성 항목에 대한 값을 저장
    • 기본키(Primary Key)
      • 기본키는 후보키 중에서 선택한 주키
      • 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
    • 외래키(Foreign Key)
      • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
      • 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의 되었을 때의 속성 A를 외래키라고함

    엔티티 -> 테이블 변환

    • 논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환
    • 엔티티를 테이블로 변환한 후 테이블 목록 정의서 작성
      • 테이블 목록 정의서 : 전체 테이블을 목록으로 요약 관리하는 문서로, 테이블 목록이라고도함

    변환 규칙

    • 엔티티 -> 테이블
    • 속성 -> 컬럼
    • 주 식별자 -> 기본키
    • 외부 식별자 -> 외래키
    • 관계 -> 관계

    변환시 고려사항

    • 일반적으로 테이블과 엔티티 명칭은 동일하게 하는 것을 권고
    • 엔티티는 주로 한글명을 사용하지만 테이블은 소스 코드의 가독성을 위해 영문명 사용
    • 메타 데이터 관리 시스템에 표준화된 용어가 있을 때는 메타에 등록된 단어를 사용하여 명명

    슈퍼타입/서브타입 -> 테이블 변환

    슈퍼타입 기준 테이블 변환

    • 서브타입을 슈퍼타입에 통합하여 하나의 테이블로 만드는 것
    • 장점
      • 데이터의 액세스가 상대적으로 용이
      • 뷰를 이용하여 각각의 서브타입만을 액세스하거나 수정할 수 있음
      • 서브타입 구분이 없는 임의 집합에 대한 처리가 용이
      • 여러 테이블을 조인하지 않아도 되므로 수행 속도가 빠름
      • SQL 문장 구성이 단순해짐
    • 단점
      • 테이블의 컬럼수가 증가하므로 디스크 저장 공간이 증가
      • 처리마다 서브타입에 대한 구분이 필요한 경우가 발생
      • 인덱스 크기의 증가로 인덱스의 효율이 떨어짐

    서브타입 기준 테이블 변환

    • 슈퍼타입의 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만드는 것
    • 장점
      • 각 서브타입 속성들의 선택 사양이 명확한 경우에 유리
      • 처리할 때마다 서브타입 유형을 구분할 필요 없음
      • 여러 개의 테이블로 통합하므로 테이블당 크기가 감소하여 전체 테이블 스캔시 유리
    • 단점
      • 수행 속도가 비교적 느림
      • 복잡한 처리를 하는 SQL의 통합이 어려움
      • 부분 범위에 대한 처리가 곤란
      • 여러 테이블을 통합한 뷰는 조회만 가능
      • UID의 유지 관리가 어려움

    개별타입 기준 테이블 변환

    • 슈퍼타입과 서브타입들을 각각의 개별적인 테이블로 변환하는 것
    • 장점
      • 저장 공간이 상대적으로 작음
      • 슈퍼타입 또는 서브타입 각각의 테이블에 속한 정보만 조회하는 경우 문장 작성이 용이
    • 단점
      • 슈퍼타입 또는 서브타입의 정보를 같이 처리하면 항상 조인이 발생하여 성능이 저하됨

    속성 -> 컬럼 변환

    • 일반 속성 변환
    • Primary UID를 기본키로 변환
    • Primary UID(관계의 UID Bar)를 기본키로 변환
    • Secondary UID를 유니크 키로 변환

    관계 -> 외래키 변환

    1:1 관계

    • 개체 A의 기본키를 개체 B의 외래키로 추가

    N:M 관계

    • 릴레이션 A와 B의 기본키를 모두 포함한 별도의 릴레이션으로 표현
    • 생성된 별도의 릴레이션은 교차 릴레이션 또는 교차 엔티티라고 부름

    1:M 순환 관계

    • 개체 A에 개체 A의 기본키를 참조하는 외래키 컬럼을 추가하여 표현
    • 데이터의 계층 구조를 표현하기 위해 주로 사용
    728x90

    'DB' 카테고리의 다른 글

    [DB] 뷰 (View)  (0) 2020.07.15
    [DB] 반정규화(Denormalization)  (0) 2020.07.14
    [DB] 정규화 (Normalization)  (0) 2020.07.02
    [DB] 트랜잭션이란?  (0) 2020.03.02
    [DB] ACID란?  (0) 2020.03.02
Designed by Tistory.