sqld

SQLD 1과목 데이터 모델링의 이해 정리

svdjcuwg4638 2023. 5. 31. 21:26

제1장 데이터 모델링의 이해

 

발생시점에 따른 에터티 분류

기본/키엔터티, 중심엔터티, 행위앤터티

기중행

 

기본엔터티

  • 업무에 원래 존재하는 정보
  • 다른 엔터티와의 관계에 의해 생성되지 않고 독립적인 생성이 가능
  • 자신은 타 엔터티의 부모의 역할을 하게된다
  • 자신의 고유한 주식별자를 가진다.

ex) 사원, 부서, 고객, 상품, 자재

 

데이터모델링이란?

정보시스템을 구축하기위한 데이터 관점의 업무 분석

현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정

데이터베이스를 구축하기 위한 분석/설계의 과정

 

데이터 모델링 유의점(하면 안좋은것)

중복, 비유연성, 비일관성

 

비유연성

프로세스와 분리하는 과정에서 프로세스의 작은변화가 에플리케이션과 데이터 베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.

 

개념적 데이터 모델링

추상화 수준이 높고 업무중심적이고 포괄적인 수준의 데이터 모델링 진행

 

논리적 데이터 모델링

업무에 대해 key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음

 

데이터베이스 스카마 구조 3단계

외부스카마, 개념스카마, 내부스카마

 

개념스카마

모든 사용자 관점을 통합한 조직 전체 관점의 통합적 표현(통합관점)

 

관계차수 ( 필수 = | 선택  = O ) 

  • 1:1(ONE TO ONE)

 

  • 1:M(ONE TO MANY)

 

  • M:M(MANY TO MANY)

 

ERD작성 순서

  1. 엔터티 그린다
  2.     //      배치한다
  3.     //      관계설정
  4. 관계     명 기술
  5.     //      참여도 기술
  6.     //      필수여부 기술

엔터티 배치 

엔터티는 왼쪽 > 오른쪽, 위 > 아래 로배치된다.

(사람은 보통 왼쪽에서 오른쪽 위에서 아래를 보는 경향이있어서 그렇다.)

 

엔터티의 특징

반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.

유일한 식별자에 의해 식별이 가능해야 한다.

영속적으로 존재하는 인스턴스의 집합이어야 한다(한 개가 아닌 두 개이상)

엔터티는 업무 프로세스에 의해 이용되어야 한다

엔터티는 속성이 있어야한다.(두개 이상의 속성을 가지게 된다)

엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.

 

속성

인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위

한개의 속성에는 한개의 속성값을 갖는다 

 

속성의 특성에 따른 분류

기본, 설계, 파생

 

파생이란?

하나이상의 테이블에서 새로운 테이블 생성하는 프로세스를 의미한다.

원래 속성의 값을 계산하여 저장할 수 있도록 만들어진 속성을 파생속성이라고 한다.

 

도메인

각 속성의 값의 범위(데이터 타입, 제약사항)을 도메인이라 한다.

 

데이터 모델링의 관계

ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않는다

UML 클래스다이어그램에서는 연관관계와 의존관계로 구분하여 표현한다

 

관계의 표기법

관계명, 관계차수, 선택성(선택사양) 3가지의 개념으로 표현

 

엔터티 사이의 정의 관계 체크 사항

두 엔터티간의 연관규칙, 조합

관계연결을 가능하게하는 동사가있는가,규칙이 서술되어 있는지

 

식별자의 종류

  • 주식별자 / 보조식별자
    엔터티에서 대표성을 가지는가에 따라서 결정된다.

  • 외부식별자 / 내부식별자
    엔터티 내에서 스스로 생성되었는지 여부에 따라 결정된다.

  • 복합식별자 / 단일식별자
    단일 속성으로 식별이 되는가에 따라 결정된다.

  • 본질식별자 / 인조식별자
    원래 업무적으로 의미가 있던 식별자 속성을 대체하여 일련번호와 같이 새롭게 만든 식별자를 인조식별자라고 한다.

주식별자 지정시 고려사항 특징

  • 유일성
    모든 인스턴스들이 유일하게 구분이 되어야 한다.

  • 최소성
    주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되야함

  • 불변성
    값이 자주 변하지 않아야 한다.

  • 존재성
    반드시 값이 있어야한다.

 

제2 장 데이터 모델과 성능

 

성능데이터 모델링이란?

데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터모델링에 반영될 수 있도록 하는 것이다.

 

성능을 고려한 데이터 모델링의 순서

정규화 - DB용량산정 - 트잭유형파악 - 반정규화 - 조정 - 검증

 

1차 정규화 판별법

중복속성에 대한 분리가 1차 정규화의 대상이 되며 로우단위와 컬럼단위의 중복도 1차정규화의 대상이다.

PK에 반복되는 그룹이 없으며 함수종속의 규칙을 가지고 있다

 

반정규화 고려사항 과 레코드 탐색

  • 하나의 결과셋을 추출하기 위해  다량의 데이터를 탐색하는 처리가 반복적으로 번번하게 발생하다면 이때는 반정규화를 고려한다
  • 이전 또는 이후 위치의 레코드에 대한 탐색은 window function 으로 접근 가능
  • 집계 테이블 외에도 다양한 유형(다수 테이블의 키 연결 테이블 등)에 대하여 반정규화 테이블 적용이 필요할 수 있다.

부분테이블 추가란?

하나의 테이블 전체 칼럼 중 자주 이용하는 집중화된 칼럼들이 있을 때 디스크 i/o를 줄이기 위해 해당 칼럼들을 별도로 모아 놓는 반 정규화 기법을 부분 테이블추가라고 한다.

 

파티셔닝

논리적으로는 하나의 테이블이지만 물리적으로는 여러개의 테이블로 분리하여 데이터 엑세스도 향상시키고 데이터 관리방법도 개선할 수 있도록 테이블에 적용한 기법

 

pk순서에 따른 속도

where 거래일자 between 20140701 and 20140702

and 사무소코드 = 000368 명령문을 실행할때

"="에 사무소 코드가 왔으므로 pk 순서는  사무소코드 - 거래일자 순으로 하는게 조회속도가 빠르다