본문 바로가기

kosta_이론

25.04.01 데이터 모델링, 정규화

모델 - 특정 목적을 위해 실제 세계를 모방해 만든 것

현실의 복잡성을 컴퓨터에 담을 수 있는 방법론

 

DB 생명주기 - 요구사항 수집 및 분석 > 설계 > 구현 > 운영 > 감시 및 개선 > 요구사항 수집 및 분석 ...

요구사항 수집 및 분석 - 요구사항 분석해 데이터베이스 구축 범위 정함

설계 - 분석된 요구사항을 기초로 주요 개념과 업무 프로세스 등 식별(개념적 설계)

           사용하는 dbms 종류에 맞게 변환(논리적 설계), 데이터 베이스 스키마 도출(물리적 설계)

구현 - 설계 단계에서 생성한 스키마를 dbms에 적용해 테이블 및 관련 객체(뷰, 인덱스 등) 만듦

운영 - 구현된 데이터베이스를 기반으로 소프트웨어 구축해 서비스 제공

감시 및 개선 - 운영에 따른 시스템 문제 관찰 후 문제점 파악해 개선함

요구사항 수집 방법 

•실제 문서 수집 후 분석

•담당자와 인터뷰나 설문조사를 통해 직접 수렴

•비슷한 업무를 처리하는 데이터베이스 분석

•각 업무와 관련된 모든 부분을 살펴봄

 

개념적 모델링

• 요구사항 수집 및 분석한 결과를 토대로 업무의 핵심적인 개념을

구분하고 뼈대를 만듦

• 개체(엔티티)를 추출하고 각 개체들 간 관걔를 정의해

er 다이어그램 만드는 과정까지

 

논리적 모델링

• er다이어그램을 사용하는 dbms에 맞게 사상(매핑)해 실제 db로

구현하기 위한 모델을 만드는 과정

과정

• 개념적 모델링에서 상세 속성들 모두 추출  (엔티티 > 테이블)

• 정규화 수행 (attribute > column)

• 데이터 표준화 수행 (relation > pk, fk)

 

물리적 모델링

• 작성된 논리적 모델을 컴퓨터에 저장하기 위한 물리적 구조 정의 및 구현

dbms 특성에 맞게 저장 구조를 정의해야 ㅇb가 최적의 성능을 냄

고려사항

• 응답시간 최소화

• 트랜잭션을 동시에 얼마나 발생시킬 수 있는지 검토

• 데이터가 저장될 공간 효율적으로 배치

 

 

ER모델 - 세상의 사물을 개체(entitiy)와 개체 간 관계(relation)로 표현

개체 - 독립적인 의미를 지니고 있는 유무형의 사람 또는 사물

          개체의 특성을 나타내는 속성(attribute)에 의해 식별됨 > 개체끼리 관계 가짐

 

개체 타입의 er 다이어그램 표현

사각형 - 강한 개체 타입   / 이중 사각형 - 약한 개체 타입

강한 개체 - 다른 개체 도움 없이 독자적으로 존재 가능함

약한 개체 - 독자적으로 존재할 수 없고 반드시 상위 개체 타입 가짐

 

속성 - 개체가 가진 송질

기본적으로 타원으로 표시 > 개체를 나타내는 사각형과 실선으로 연결

이름은 타원 중앙에 표현

+ 속성의 기본키(유일하게 식별)는 이름에 밑줄

 

관계 - 개체 사이에 연관성을 나타냄

관계 타입 - 개체 타입 간 연결 가능한 관계 정의 

관계 집합 - 관계로 연결된 집합

1진관계 - 한 객체가 자기 자신과 관계 맺음

2진관계 - 두 객체가 관계 맺음

3진관계 - 세 객체가 관계 맺음

 

관계 대응수 - 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수

1:1 - 좌측 개체 타입에 포함된 개체가 우측 개체 타입에 포함된 개체와 일대일 대응

1:n / n:1 - 한쪽 타입 개체가 다른 쪽 개체 타입의 여러 개체와 관계 맺음

n:m - 각 개체 타입 객체들이 서로 임의의 개수의 개체들과 서로 복합적인 관게 맺음

최솟값 최댓값 - 1,n,m 이 각 개체가 관계에 참여하는 최댓값을 의미함

isa 관계 - 상위 개체 타입의 특성에 따라 하위 개체 타입 결정

 

참여 제약 조건 

개체 집합 내 모든 개체가 관계에 참여함 여부에 따라 전체 참여와 부분 참여로 구분

전체 - 개체 내 모든 개체  (최솟값 1이상 모두 참여)  // 부분 - 일부 (최솟값이 0 이상)

역할 - 개체 타입 간 관계 표현 시 각 개채는 고유한 역할 담당

 

순환적 관계 - 하나의 개체 타입이 동일한 개체 타입(자기 자신)과

순환적으로 관계 가짐

 

식별자 - 약한 개체 타입의 개별 개체를 고유하게 식별하는 속성 (부분키)

 

IE 표기법

개체 타입 사상(매핑) - 실제 DB로 구축하기 위해 모델링 단계 거침

1 - 강한 개체 타입 - 한 객체에 대응하는 관계 생성

2 - 약한 개체 타입 - 자신의 키와 함께 강한 개체를 외래키로 사상해 기본키 구성

3 - 1:1 일 경우 모든 유형으로 매핑 가능(개체가 가진 정보 유형에 따라 판단)

4 - 1:N 일 경우 N의 위치에 따라 판단 

5 - N:M일 경우  방법 4 >

 

 

 


이상현상

삭제이상 - 투플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상

수정이상 - 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터 불일치 발생

삽입이상- 투플 삽입 시 특정 속성에 해당하는 값이 없어 null로 입력하는 현상

 

함수 종석성

종속관계 - a 속성의 값을 알면 b 속성의 값이 유일하게 정해지는 의존관계

   b는 a 에 종속함 / a는 b를 결정함 > a->b    a는 b의 결정자

함수 종속성 - 데이터베이서에서 항상 유지되어야 할 필수조건

 

함수 종속성 다이어그램 

릴레이션 - 직사각형

속성 간 함수 종속성 - 화살표

복합 속성 - 직사각형으로 묶어 그림

 

완전 함수 종속 - 중복키가 pk일 경우 둘 다 알아야 하며 한쪽만 알아서는 값을 알 수 없는 경우

부분 함수 종속 - 중복키인 pk일부만 알아도 알 수 있는 경우 > 후에 제2정규화 필요

 

기본규칙

부분집합 규칙  > if ⊆ x , then x→ y

증가 규칙 > if  x→ y , then xz → yz

이행 규칙 > if x→ y and y → z, then x → z

부수적 규칙

결합 규칙 > if x → y and x → z, then x →yz

분해 규칙 > if x → yz, then x → y and x → z

유사이행 규칙 > if x v y and wy → z, then wx → z

 

함수 종속성 파악 > 기본키 찾기

기본키는 릴레이션의 모든 속성에 대한 결정자

 

 

이상현상은 한 개의 릴레이션에 두개 이상의 정보가 포함되어 있을 경우 발생

> 기본키가 아니면서 결정자인 속성이 존재

 

이상현상 제거

릴레이션 분리 - 분해할 부분 릴레이션의 결정자는 원래 릴레이션에 두기 > 관계형성 위함

 

 

정규화 - 관계형 데이터베이스 설계에서 중복 최소화해 데이터를 구조화 하는 프로세스

(테이블을 정규형에 부합하게 만들어감)

이상이 있는 릴레이션을 분해해 이상현상 제거

함수 종속성에 따라 등급 구분 > 정규형이 높을 수록 이상현상 적음

 

제 1정규형 - 릴레이션 r의 모든 속성 값이 원자값을 가짐

> 한 속성에 값이 2개 이상 있으면 분해 (복수 > 단수)

 

제 2정규형 - 릴레이션 r이 제1정규형이고 기본키가 아닌 속성이 기본키에 완전 함수 종속일 경우

>a와 b가 r의 속성이고 a>b종속성이 성립

+ b가 a의 속성 전체에 함수 종속하고 부분 집합 속성에 종속x

 

제 3정규형 - 릴레이션 r이 제2정규형이고 기본키가 아닌 속성이 기본키에 비이행적 종속할 때

이행적 종속 - a>b이고 b>c 일때 a>c성립

 

bcnf (boyce codd normal form)

3정규형을 만족하는 릴레이션에 후보키가 여럿인 경우 bcnf 불만족

릴레이션 r에 함수종속성 x>y성립 시 모든 결정자 x가 후보키일 경우 bcnf 만족

무손실 분해 - r을 r1과 r2로 분해할 때 r1 ▷◁ r2 = r인경우

'kosta_이론' 카테고리의 다른 글

25.04.03 Mung 프로젝트 db 연결  (0) 2025.04.03
25.04.02 트랜잭션  (0) 2025.04.02
25.03.31 뷰, 인덱스  (1) 2025.03.31
25.03.28 sql 고급  (0) 2025.03.28
25.03.27 sql + 연습문제  (1) 2025.03.27