본문 바로가기
공부/SQLD

SQLD 자격증 1과목 데이터 모델링의 이해(개념 + 노랭이)2

by 원 이 _ 2024. 3. 4.

 

식별자

 

 

식별자

 

 

  • 엔터티를 대표하는 속성(하나의 엔터티는 반드시 유일한 식별자를 가짐)
  • 엔터티 내 각 인스턴스를 유일하게 구분할 수 있는 구분자
  • 다른 엔터티와 관계를 연결하는 식별자

 

 

주식별자 특징

 

 

최소성 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
존재성 주식별자가 지정되면 반드시 값이 존재
유일성 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분 할 수 있어야 함
분별성 주식별자가 특정 엔터티에 지정되면 그 식별자의 값은 (자주)변하지 않아야 함

 

 

식별자 분류

 

 

내부식별자 엔터티 내부에서 스스로 생성되는 식별자
외부식별자 다른 엔터티와 관계로 인하여 만들어지는 식별자
(상속되어 정의된 식별자)
단일식별자 하나의 속성으로 구성된 식별자
복합식별자 다수의 속성으로 구성된 식별자
ex) (학번+반+번호)로 식별자를 만들 수 있음 -> 복합식별자
본질식별자 비즈니스 프로세스에서 만들어지는 식별자
인조식별자 인위적으로 만들어지는 식별자 (중복 데이터 막기 어려워짐)
대체로 본질식별자가 복잡한 구성을 가질때 만들어짐
본질식별자를 사용할때와 비교해 추가적인 인덱스 필요

 

 

+추가) 식별자 분류체계

 

 

대표성 여부 주식별자 - 엔터티 내에서 각 어커런스로 구분할 수 있다
- 타 엔터티와 참조관계를 연결할 수 있다
보조식별자 엔터티내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결 못함
스스로 생성 여부 내부식별자  
외부식별자  
속성의 수로 구분 단일식별자  
다중식별자
(복합식별자)
 
대체여부로 구분 본질식별자  
인조식별자  

 

 

주식별자 도출방법

 

 

  • 주로 사용되는 속성
  • 이름/명명된 호칭/길이가 일정하지 않은 내용은 피한다
  • 복합키를 구성할 때 너무 많은 속성이 포함되지 않도록 주의

 

 

식별자/비식별자 비교

 

 

  식별자관계 비식별자관계
목적 강한 연결관계 약한 연결관계
자식 주식별자 영향 - 자식 주식별자의 구성에 포함
- 부모 엔터티의 주식별자가 자식 엔터티의 주식별자로 상속
- 자식 엔터티의 일반속성에 포함
- 부모 엔터티의 주식별자가 자식 엔터티의 일반 속성으로 상속
표기법 실선 점선
연결 고려사항 - 반드시 부모 엔터티에 종속
- 자식 식별자 구성에 부모 주식별자 포함 필요
- 상속받은 주식별자 속성을 타 엔터티에 이전 필요
- 조인문 최소화하려면 식별자 관계로 연결하는게 좋음
- 약한 종속관계
- 자식 주식별자 구성을 독립적으로 구성
- 자식 주식별자 구성에 부모 주식별자 부분 필요
- 상속받은 주식별자 속성을 타엔터티에 차단 필요
- 부모쪽의 관계 참여가 선택관계

 

 

키의 종류

 

 

기본키(Priamry Key) 후보키 중에서 엔터티를 대표할 수 있는 키
후보키(Candidate Key) 유일성과 최소성을 만족하는 키
슈퍼키(Super Key) 유일은 만족하지만 최소성은 만족하지 않는 키
ex) 복합식별자는 유일성을 만족하지만 최소성을 만족하지 못한다
대체키(Alternate Key) 여러개의 후보키 중에서 기본키를 선정하고 남은 키
외래키(Foreign Key) 타 테이블의 기본키 필드
참조 무결성 제약을 받을 수 있다(참조무결성 확인하기 위해 사용됨)
NULL 가능, 하나 이상 생성 가능

 

 

정규화 & 반정규화

 

 

정규화

 

 

  • 데이터의 일관성, 최소한의 중복, 최대한의 데이터 유연성을 위한 방법
  • 데이터를 분해, 엔터티를 상세화 하는 과정(데이터 모델링 독립성 확보)
  • 논리적 데이터 모델링 상세화 과정(논리데이터 모델링 수행 시점에서 고려)
  • 데이터 이상현상을 줄이기 위한 실제 기법

 

 

이상현상

 

 

삽입이상 행 삽입시 지정되지 않은 속성값이 NULL을 가지는 경우
갱신이상 데이터 갱신시 일부분의 데이터만 갱신되어 일관성 유지가 않되는 경우
삭제이상 행 삭제시 원하지 않은 연쇄 삭제가 발생하는 현상

 

 

정규화 단계

 

 

제1정규화 테이블 내 속성의 원자성 확보(속성 중복값 제거), 기본키 설정
제2정규화 기본키가 2개 이상의 속성들로 이루어진 경우 부분 함수 종속성 제거
-> 일반 속성은 주식별자 전체에 종속되어야 한다
제3정규화 이행적 함수 종속성 제거
-> 기본키를 제외한 컬럼간 종속성 제거(일반 속성들간에는 서로 종속적이지 않음)
BCNF(강한 제3정규화) 기본키를 제외하고 후보키가 있는 경우 후보키가 기본키를 종속시키면 분해, 결정자 함수 제거
제4정규화 여러 컬럼들이 하나의 칼럼을 종속시키는 경우 분해하여 다중값 종속 제거
제5정규화 조인에 의한 종속성이 발생되는 경우 분해

 

 

더보기
* 진부분집합
집합 {1,2} 있을때 진부분 집합은 {}, {1}, {2}, {1,2}

* 완전 함수적 종속
속성 x가 집합 A의 기본키에 종속이지만 집합 A의 일반 속성에는 종속이 아니다

* 부분 함수적 종속
속성 x가 집합 A의 기본키에 종속, 기본키의 진부분 집합의 한 부분에서도 종속
>ex) 집합 A의 기본키: (주문번호, 제품번호)일 때 속성 x가 기본키에 종속이면서 (주문번호)에도 종속

 

 

정규화 주의사항

 

 

  • 이전 정규화 만족해야함
  • 조인이 많아져 조회 성능 저하로 이어질 수 있다 (단일 테이블 조회시엔 중복이 제거되어 조회 성능이 향상됨)

 

 

반정규화 (역정규화)

 

 

  • 데이터 베이스 성능 향상을 위해 데이터 중복을 허용하고 조인을 줄이는 방법
  • 정규화된 데이터 모델을 중복, 통합, 분리하는 모델링 기법
  • 조회 속도는 향상시킬 수 있지만 데이터 모델의 유연성은 낮다 (항상 성능을 보장하는 건 아님)

 

 

반정규화 필요한 경우

 

 

  • 조회속도 느려진 경우
  • 다량의 범위를 자주 처리해야 하는 경우
  • 특정 범위의 데이터만 자주 조회하는 경우
  • 요약/집계를 자주 사용하는 경우

 

 

반정규화 절차

 

 

  1. 대상파악 및 검토(문제파악): 대량의 범위 처리 및 빈도수, 통계성 프로세스, 테이블 조인수
  2. 다른 방법 검토: 클리스터링/뷰/인덱스/응용 프로그램/파티셔닝....
  3. 반정규화 수행: 테이블 반정규화 또는 속성의 반정규화 또는 관계의 반정규화 수행

 

 

반정규화 기법

 

 

테이블의 반정규화 - 테이블 병합(1:1, 1:M, 서브/슈퍼타입)
- 테이블 분할(수직, 수평)
- 테이블 추가(중복, 통계, 이력, 부분)
컬럼의 반정규화 중복칼럼 추가, 파생칼럼 추가, 이력 테이블 칼럼 추가
관계의 반정규화 중복관계 추가

 

 

분산 데이터 베이스

 

 

데이터 베이스 구조

 

 

  • 중앙 집중형 데이터 베이스: 한대의 물리적 시스템에 여러 사용자가 접속
  • 분산 데이터 베이스: 네트워크로 연결된 달일 데이터 베이스 이미지를 보여주고 분산된 작업

 

 

분산 데이터 베이스 투명성

 

 

분할 투명성 고객은 하나의 논리적 관계가 여러 단편으로 분할되어 각 사본이 여러 시스템에 저장되어 있음을 알 필요가 없다
위치 투명성 고객이 사용하는 데이터 베이스의 위치를 알릴 필요는 없다
지역사상 투명성 각 시스템 이름과 무관한 이름을 사용할 수 없다
중복 투명성 데이터 베이스 객체가 여러 시스템에 중복되어 존재함에도 고객과는 무관하게 데이터 일관성이 유지되어야 한다
장애 투명성 데이터 베이스가 분산되어있는 각 지역의 시스템이나 통신망에 이상이 발생해도 데이터의 무결성은 유지되어야한다
병행 투명성 여러 고객의 응용 프로그램이 동시에 분산 데이터 베이스에 대한 트랜잭션을 수행하는 경우에도 결과에 이상이 없어야한다

 

 

분산 데이터 베이스 설계 방식

 

 

  • 상향식: 지역 스키마 작성 후 해당 지역 사상 스키마 작성
  • 하향식: 전역 스키마를 생성한 후 지역별로 지역 스키마 생성

 

 

분산 데이터 베이스 장/단점

 

 

  • 장점: 신뢰성, 가용성, 빠르다(병렬처리 수행), 시스템 용량 확장이 쉽다
  • 단점: 여러 네트워크를 통해 분리되어 있기 때문에 관리 및 통제가 어렵다, 데이터 무결성 관리 어렵다, 설계 복잡

최근댓글

최근글

skin by © 2024 ttuttak