SQLD 01 : 데이터 모델링의 이해

LeeWonjin·2022년 8월 26일
0

자격증

목록 보기
1/7

데이터 모델링

데이터를 제한된 공간에 효과적으로 저장하는 방법을 추상화 하는 것
** 모델링 대상 데이터 : 현실에 존재하는 모든 것

  • 특징 : 추상화 단순화 명확화
  • 핵심 개념 : 개체(엔티티) 속성 관계
  • 관점
    • 데이터 관점 : 어떤 목적의 데이터? 데이터간 관계는?
    • 프로세스 관점 : 데이터로 어떤 작업?
    • 데이터-프로세스 연계 관점 : 작업시 데이터 영향?
  • 좋은 모델 : 완전성/중복 배제/업무 규칙/데이터 재사용/의사소통/통합성

RDB

실 세계의 정보를 2차원의 테이블로 표현 --> 행(레코드)/열(컬럼,속성)
관계 대수, 관계 해석 개념에 기초

테이블의 특징 : 레코드의 유일성 / 레코드의 무순서성 / 컬럼의 무순서성 / 속성의 원자성

모델링 종류

  • 개념적 모델링 : 엔티티 속성 관계 식별자 정의
    • 개체를 중심으로
  • 논리적 모델링 : 테이블 컬럼 외래키 기본키 정의
    • 개념적 모델링 결과를 실제 스키마로 매핑 및 정규화 수행
    • 정규화 : 삭제/삽입/갱신 이상을 최소화하기 위한 작업 (1~5 정규화)
    • 재사용성 가장 높은 모델링
  • 물리적 모델링 :
    • 스키마를 DBMS에 맞게 변환/정의
    • DBMS 결정 / 제약조건 설정 / 컬럼의 타입 및 크기 결정
    • 사용량, 프로세스, DBMS성능 고려

Entity-Relationship 다이어그램

( E-R 모델 ) itwiki

약속된 기호에 따라 엔티티간 관계 정의/표현. RDB 모델링 과정에 활용.
개념적 모델의 이해에 도움.

  • 도형
    • 직사각형 : 엔티티
    • 이중 직사각형 : 약한 엔티티
    • 다이아몬드 : 관계(Relationship)
    • 원 : 속성(Attribute)
    • 밑줄을 포함하는 원 : 키(key) 속성
  • 작성 순서
    1. 엔티티 생성
    2. 엔티티 배치 (관계 고려)
    3. 관계 설정
    4. 관계 설명 기술
    5. 식별 관계, 필수 여부 확인

엔티티 및 속성

인스턴스는 속성에 의해 설명될 수 있다.

  • 인스턴스 : 현실에 실재하는 각각의 대상
  • 엔티티 : 현실 개체를 저장 할 수 있는 변별력 있는 것. 인스턴스의 집합.
  • 속성 : 현실 개체의, 엔티티 내의 공통된 특성.
  • 도메인 : 속성이 가질 수 있는 값의 특정범위 (자료형, 크기, 제약사항 포함)
  • 식별자 : 인스턴스를 유일하게 식별할 수 있는 속성
    • 모든 엔티티에 존재.
    • (논리적 모델링에서 기본키로 매핑)
    • 유일성 / 최소성 / 불변성 / 존재성

엔티티 분류

  • 형태 : 유형 엔티티 / 개념 엔티티 / 사건 엔티티
  • 발생 시점 : 기본 엔티티 / 중심 엔티티 / 행위 엔티티

부모-자식 엔티티(테이블)

어떤 엔티티의 식별자가 다른 엔티티의 속성으로 사용되면 부모-자식 관계가 형성된다.

  • 부모 테이블 : 속성(주로 PK)을 상속해주는 테이블
  • 자식 테이블 : 속성(주로 FK)을 상속 받는 테이블

식별 관계

부모-자식 관계에서 자식의 FK가 식별자인지에 따라 식별/비식별 관계로 구분한다.

  • 식별 관계 : 부모의 속성이 자식에서 주 식별자로 사용되는 경우
  • 비식별 관계 : 식별자가 아닌 일반 속성으로 사용되는 경우

식별관계 표기법
IE표기법 : 점선-비식별, 실선-식별 / 원-0, 수직선-1, 까마귀발-2 이상
Barker표기법 : 수직선-식별 / 점선-반대쪽 선택관계, 실선-반대쪽 필수

정규화

목적 : 중복저장 최소화 및 검색 효율화
성능 향상여부 : 삽입/수정/삭제 향상. 검색은 조건에 따라 다름

이상현상(anomaly)

정규화 처리가 되지 않은 엔티티(테이블)에서 나타나는 문제

  • 삭제 이상 : 대상 아닌 것도 같이 삭제
  • 입력(삽입) 이상 : 불필요한 것도 함께 삽입
  • 수정(갱신) 이상 : 대상 아닌 것도 수정

단계

  • 제 1 정규화(1NF) : 엔티티에 저장되는 정보가 원자값이 되도록 처리
  • 제 2 정규화(2NF)
    • 1NF 만족
    • 부분 종속 처리 (기본키에 속하지 않는 속성이 기본키에 완전히 종속되도록 처리)
  • 제 3 정규화(3NF)
    • 2NF 만족
    • 이행 종속 처리 (기본키에 완전히 종속되지 않는 속성을 분리 또는 제거)

반정규화

수행하는 이유

  • 검색시 입출력량이 많아 성능 저하 예상
  • 테이블간 거리가 멀어 조인으로 인한 성능 저하 예상
  • 속성값 연산 조회시 성능 저하 예상

문제

반정규화의 진행으로 데이터 무결성이 훼손될 수 있음

기법

  • 테이블 반정규화 : 병합 / 분할 / 추가
  • 컬럼 반정규화 : 중복 컬럼 추가 / 파생 컬럼 추가 / 이력 테이블 컬럼 추가
  • 관계 반졍규화 : 중복 관계 추가

분산 데이터베이스

다른 공간에 배치된 2개 이상의 물리적 DB를 가상 시스템을 통해 논리적으로 묶은 DB
(하나의 DB로 인식, 물리적인 공간은 네트워크로 연결)

구축시 고려사항

  • DB물리적 분할,
  • 처리 성능
  • 네트웍 부하, 속도 고려
  • 사용자 접근에 따른 성능 문제 최소화

기법

테이블 위치 분산 / 테이블 분할 분산 / 테이블 복제 분산 / 테이블 요약 분산

profile
노는게 제일 좋습니다.

3개의 댓글

comment-user-thumbnail
2022년 8월 30일

저도 같은 책으로 공부중입니다. 궁금한게 있는데, p31의 연습문제 4번 정답이 1번이 아니라 4번이라 생각되는데
맞는지 궁금합니다..!

1개의 답글

관련 채용 정보