본문 바로가기

데이터베이스(Database)/Data Modeling

[DB] 데이터 모델링(7) - 성능 데이터 모델링과 관계형 모델

 

이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다.

추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요.

 


 

성능 데이터 모델링

  • 정의
    DB 성능을 고려해 데이터 모델링을 수행하는 것
    - 정규화, 반정규화, 테이블 통합 및 분할, 조인 구조, PK, FK 등 여러 성능과 관련된 사항을 모델링에 반영
    - 분석/설계 → 구현 → 테스트 → 운영의 과정을 거친 후 Backtracking 과정을 안 밟기 위해 수행

출처 : https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=4&mod=document&keyword=%EA%B4%80%EA%B3%84&uid=331

 

  • 수행시점
    빠를수록 좋음
    - 분석/설계 단계부터 수행 시 성능개선 비용 최소화 가능
    - 일반적으로 설계 → 성능 저하 발생 → 해당 SQL 튜닝 순으로 진행하는데, 바람직하지 않음

  • 성능 데이터 모델링 진행 순서
    정규화를 정확히 수행
    - 주요 관심사별로 테이블 분산

    DB 용량 산정
    - 각 엔티티에 어느 정도의 트랜잭션이 들어오는지 파악

    트랜잭션의 유형 파악
    - CRUD 매트릭스 활용

    용량과 트랜잭션에 따라 반정규화 수행
    - 테이블, 속성, 관계 변경

    이력 모델 조정, PK/FK 조정, 슈퍼타입/서브타입 조정
    - 성능 관점에서 데이터 모델 최종 검증

 

관계형 모델

  • DBMS의 발전
    1960년대
    - FlowChart 중심의 개발 방법 사용
    - 파일구조를 통해 데이터를 저장하고 관리

    1970년대
    - 데이터베이스 관리 기법의 첫 등장
    - 계층형, 망형 데이터베이스 제품 상용화

    1980년대
    관계형 데이터베이스 상용화
    - Oracle, Sybase, DB2 등의 제품

    1990년대
    객체 관계형 데이터베이스 발전
    - Oracle, Sybase, informix, DB2 Teradata, SQL Server 외 많은 제품 등장

  • 관계형 데이터베이스 모델
    데이터를 테이블로 관리하고, DB안에 복수의 테이블을 저장할 수 있는 DB 모델.
    - 1970년대 영국의 수학자인 E.F.Codd 박사의 논문에서 제안
    - 기업의 핵심 데이터는 대부분 RDB로 저장됨
    - RDB는 SQL 문장에 의해 관리됨

    테이블
    - RDB의 기본 단위
    - 행과 열의 2차원 구조를 가진 데이터 저장 객체

    열(Column)
    - 테이블에서 세로 방향으로 이루어진 개별 속성

    행(Row) 또는 레코드(Record)
    - 테이블에서 가로 방향으로 이루어진 연결된 데이터


  • 제약조건
    도메인 제약(Domain Constraints)
    - 속성(Attribute)에 대한 제약
    - 속성 값은 원자성(더 이상 쪼갤 수 없음)을 가짐
    - 도메인에서 정의된 값이어야 함
    - 복합 속성과 다중값 속성을 허용하지 않음
    - Not Null인 경우에만 Null 값을 허용

    키 제약(Key Constraints)
    - 릴레이션에 대한 제약
    - 릴레이션의 모든 튜플은 서로 식별 가능해야함
    - PK가 존재해야 함

    개체 무결성 제약(Entity Intergrity Constraints)
    - 기본키에 대한 제약
    - 기본키는 Not Null이면서 Unique여야 함

    참조 무결성 제약(Referential Intergrity Constraints)
    - 외래키에 대한 제약
    - 한 릴레이션 R1이 다른 릴레이션 R2를 참조한다면, 외래키가 Null이거나 R2에 존재하는 값으로 구성되어야 함