ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터베이스 모델링(Database Modeling)
    DataBase/Modeling 2022. 1. 12. 14:29
    728x90
    반응형
    좋은 모델이란?

     좋은 모델이란 단순하고 명확한 모델이다. 경험상 단순한 모델이 좋은 모델이 될 가능성이 크다. 복잡한 것을 단순하게 만드는 것은 데이터베이스 모델링의 핵심이라고 봐도 된다. 하지만 단순하게 모델링한다고 데이터를 보고 성격을 한눈에 판단할 수 있는 명확성을 놓치면 안된다.

     

     데이터 무결성(Integrity)이 보장되는 모델이 좋은 모델이다. 무결성은 모델링의 핵심 요소라 보면 되겠다. 무결성이 훼손된 데이터는 아무리 비즈니스 요구 사항을 충족하고 빠른 성능이 보장된다 해도 좋은 모델이 될 수 없다. 그러므로 데이터 모델링의 최우선 목표는 데이터 무결성을 보장하도록 데이터 모델을 구축하는 것이다.

     

     데이터 무결성 다음으로 고려해야 하는 부분이 성능이다. 무결성 원칙을 다소 포기해서라도 성능이 중요시 되는 경우가 있다. 사용자나 고객은 빠른 결과를 원하므로 성능을 무시할 수 없게된다.

     

     좋은 모델은 기본적으로 모델 표현이 정확해야 한다. ERD(Entity Relationship Diagram)의 표기법에 맞게 정확하게 표현돼야 좋은 모델이라고 할 수 있다. 

     

     

    관계형 데이터 모델링(Relational Data Modeling)

     간단하게 정의하자면 함수 종속(Functional Dependency)에 의해 정규화된 모델이라고 할 수 있다. 관계형 모델에서 기초가 되는 개념이 바로 릴레이션(Relation)이다. 릴레이션은 가로와 세로로 이루어진 테이블 형태의 2차원 데이터로 머리 부분인 어트리뷰트(Attribute)와 몸통 부분인 튜플(Tuple)로 구분된다.

     

     

    관계형 모델링의 특징
    • 릴레이션에서 각 튜플은 유일해야 한다.
    • 어트리뷰트는 유일한 값이 사용돼야 하며 다중 값이나 복합 값이 존재해서는 안된다.
    • 릴레이션의 이름은 유일해야 한다.
    • 릴레이션 내에서 어트리뷰트의 이름도 유일해야 한다.
    • 한 릴레이션에는 하나의 데이터 주제만을 포함한다.

     

    여기서 테이블을 엔터티
    튜플이라는 용어대신 인스턴스라고 표현할 것이다.

     

     

    무결성(Intefrity)

     무결성은 데이터가 정확하고 완전해야 한다는 의미이다. 사용되는 데이터가 유효하고 정확할 수 있도록 노력해야한다. 

    • 엔터티 무결성(Entity Integrity)
      - 한 엔터티에는 동일한 주 식별자가 존재할 수 없으면 주 식별자 속성은 NULL값을 허용하지 않는다.
    • 참조 무결성(Referential Integrity)
      - 외래 식별자 속성 값이 상위 엔터티의 인스턴스에 반드시 존재하거나 NULL이어야 한다.
      - 두 엔터티의 연관된 인스턴스 사이에 일관성을 유지하기 위한 제약이다.
    • 도메인 무결성(Domain Intergrity)
      - 속성 값의 데이터형, 길이, 널 여부 등 동일한 범주의 값만이 존재해야한다.
    • 업무 무결성(Business Integrity)
      - 기업에서 업무를 수행하는 방법이나 데이터를 처리하는 규칙을 말한다.

     

     

    무결성 제약조건의 종류
    제약 주요 무결성 특징
    Primary Key 엔터티 무결성  엔터티에서 PK로 지정된 속성에는 동일한 값을 가질 수 없다.
     PK로 지정된 속성에는 널(Null) 값을 가지면 안 된다.
    Unique 엔터티 무결성  엔터티에서 Unique로 지정된 속성에는 동일한 값을 가질 수 없다.
     Unique로 지정된 속성에는 널(Null) 값을 가질 수 있다.
     엔터티에 여러 개의 Unique 속성이 지정될 수 있다.
    Foreign Key 참조 무결성  관계 속성의 FK 값은 참조 엔터티의 PK 속성에 존재하거나 널(Null)이어야 한다.
     참조 엔터티의 PK 값이 수정, 삭제되면 참조한 모든 값은 수정, 삭제되어야 한다.
    Check 도메인 무결성  속성 값에는 특정한 범위의 값이나 특정 규칙을 따르는 값만이 존재할 수 있다.
    Default 도메인 무결성  속성의 값이 지정되지 않을 경우 대체할 수 있는 기본 값을 설정한다.
    Data Type 도메인 무결성  속성에 데이터 타입을 지정해 특정 형식을 유지할 수 있다.
    Null/Not Null 도메인 무결성  속성 값이 널(Null)일 수 있는지, 값이 반드시 존재해야 하는지 지정한다.
    Trigger 업무 무결성  속성 값이 입력되거나 수정, 삭제될 때 자동적으로 데이터를 처리할 수 있도록 지정한다.

     

     

     

    데이터 베이스의 라이프 사이클

    • 요구 사항 분석
      - 데이터베이스에서 관리해야 하는 데이터를 도출하고 분석하는 단계
      - 사용자의 의견을 적극 반영
    • 개념 모델링
      - 개념 모델은 요구 사항을 개념적으로 반영한 결과물
      - 컴퓨터로 관리할 정보, 데이터를 개체 타입or 관계 타입으로 도출
      - ERD(Entity Relationship Diagram)을 주로 사용한다.
    • 논리 모델링(정규화)
      - 핵심 데이터를 포함한 모든 데이터를 대상으로 모델링을 수행하는 단계
      - 엔터티를 최대한 분해한 모델링
      - 논리 스키마 도출
    • 물리 설계
      - 도출된 여러 객체를 생성하는 단계
      - 논리 모델을 물리 모델로 매핑하고 목적에 따라 테이블을 분해하거나 합치는 작업
      - 성능을 최적화하는 단계, 이단계에서 비정규화 작업이 시행
    • 데이터베이스 구축
      - 데이터베이스 설계 결과물을 토대로 DDL로 데이터베이스 객체들을 생성하는 과정

     


     

     

    ERD 작성법

    [데이터베이스] ERD 표기법 설명 (tistory.com)

     

    [데이터베이스] ERD 표기법 설명

    1. ERD(Entity Relationship Diagram)란? 개체 속성과 개체 간 관계를 도표로 표현한 것을 의미한다. 2. ERD 관계 표현법 1) 일대 일 (식별 관계) 주민과 상세 주소 간 관계를 표현한 ERD 이다. 상세 주소 테..

    bamdule.tistory.com

     

     

     

     

     

     

    728x90
    반응형

    댓글

Designed by Tistory.