반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- defcon.mem
- C
- DEFCON
- c언어
- 코드업
- 보안
- C 프로그래밍
- 리버싱 핵심원리
- Defcon DFIR CTF 2019
- 보안동향
- Memory Forensics
- Code Up
- 오늘의 영어
- ctf
- 설치
- 악성코드
- codeup
- Volatility
- 랜섬웨어
- cmd
- 오늘의 보안
- 멀웨어
- C language
- sql
- SQLD
- 리버싱
- 다운로드
- 오늘의 보안동향
- 정보보안기사
- 코딩
Archives
- Today
- Total
오브의 빛나는 별
[SQL] 과목Ⅰ. 데이터 모델과 성능(1) 본문
반응형
<정규화의 의미>
정규화: 자료 저장 공간을 최소화하고 데이터베이스 내의 데이터가 불일치 되는 위험을 최소화하여 좋은 데이터베이스 스키마를 설계하는 것을 목적
데이터베이스 스키마가 잘못 설계된 경우
- 100번 학생이 전자계산기구조와 운영체제라는 두 과목을 신청했기에 이 학생의 이름은 두 번 저장되는 문제 발행
- 중복된 데이터의 저장으로 인해 저장 공간이 낭비된다는 문제점 이외에도 중복되어 저장된 데이터 때문에 릴레이션의 수정, 삽입, 삭제와 같은 조작을 할 때 여러가지 이상 현상 발생
수정 이상
- 중복 데이터 중에서 일부만 갱신되어 정보의 모순 발생
삽입 이상
- 불필요한 정보를 함꼐 저장하지 않음
- 어떤 정보를 저장하는 것이 불가능하기에 원하지 않는 정보를 강제로 삽입해야 하는 것
- 기본키에는 널(Null) 값을 지정할 수 없기 때문에 새로운 학생을 수강 릴레이션에 삽입하려고 한다면 수강 신청하지도 않은 가상의 과목명을 임시로라도 삽입해야 함
삭제 이상
- 유용한 정보를 함꼐 삭제하지 않고는 어떤 정보를 삭제하는 것이 불가능한 것
- 102번 학생의 이름이 이선균이라는 정보까지도 연쇄적으로 삭제되어 이 학생의 정보 모두 손실
정규화: 갱신 이상이 생기지 않도록 불필요한 데이터가 중복되어 저장되지 않게 방지하여 바람직한 릴레이션 스키마로 만들어 가는 과정
정규화의 목적: 반복적인 자료를 제거하여 다음과 같은 상태를 만들기 위한 것
1. 어떤 관계라도 데이터베이스 내에서 표현이 가능하도록 만드는 것
2. 관계에서 바람직하지 않은 삽입, 삭제, 갱신 이상이 발생하지 않도록 함
3. 새로운 형태의 데이터가 삽입될 때 관계를 재구성할 필요성을 줄일 수 있음
4. 보다 간단한 관계 연산에 기초하여 검색을 보다 효율적으로 할 수 있음
<함수 종속>
함수적 종속 정의: X -> Y
결정자: 주어진 릴레이션에서 다른 속성(또는 속성들의 집합)을 고유하게 결정하는 하나 이상의 속성
ex) A, B, C 컬럼이 있을 때 C가 A에 의해 결정학번 -> 이름
A B C
(학번, 과목명) -> 성적
- 성적은 학번과 과목명에 의해 결정됨 -> 완전 함수 종속
- 이름은 기본키인 학번과 과목명 중에 학번에 의해 결정 -> 부분 함수 종속
함수적 종속의 성질
- 완전 함수 종속(FFD)
- 부분 함수 종속(PFD)
함수 종속 다이어그램
- 릴레이션 내의 속성들의 종속 관계를 보다 쉽게 이해하기 위해서는 이를 도식적으로 표현
- 완전 함수 종속으로만 테이블이 구성되야 정규화된 테이블이라고 볼 수 있음
- 부분 함수 종속을 없애고 완전 함수 종속으로만 테이블을 구성하는 것을 제2정규화라고 함
정규화: 주어진 릴레이션 스키마를 함수적 종속성 등의 종속 이론을 이용하여 잘못된 릴레이션 스키마를 보다 더 작은 속성의 세트로 나누어서 갱신 이상이 발생하지 않는 바람직한 릴레이션 스키마로 만들어 가는 과정
정규형: 테이블의 정규화된 정도
<정규화 과정>
제1정규형에 만족하는 릴레이션
- 어떤 릴레이션 R에 속한 모든 도메인이 원자값
- 릴레이션의 속성값이 반복 집단이 없는. 즉, 더 이상 분해될 수 없는 원자값으로만 구성
- 각 속성(셀)에는 데이터가 하나만 들어가야 한다는 것이 제1정규형
반복 집합이 있는 비정규 릴레이션
- 반복 집합은 한 개의 기본키 값에 대해서 두 개 이상의 값을 가질 수 있는 속성
제1정규화 과정의 개념
- 반복 집합이 있는 비정규 릴레이션 -> 반복 집합을 제거 -> 모든 속성값이 원자값으로 구성된 제 1정규형 릴레이션
제1정규화 과정
제2정규형
- 어떤 릴레이션 R이 제1정규형이고, 키에 속하지 않는 속성 모두가 키에 완전 함수 종속
제2정규화 과정의 개념
- 모든 속성값이 원자값으로 구성된 제1정규형 릴레이션 -> 부분 함수의 종속성 제거 -> 모든 속성이 키에 완전 함수 종속인 제2정규형 릴레이션
제3정규형
- 어떤 릴레이션 R이 2NF이고, 모든 속성들이 기본키에 이행적 함수 종속을 제외
이행적 함수 종속성: 3개의 속성에 존재하는 함수의 종속성을 의미
이행적 함수 종속하는 지도 릴레이션
ex) 학번 -> 지도교수 ^ 지도교수 -> 학과 => 학번 -> 학과
제3정규화의 개념
- 모든 속성값이 원자값으로 종속된 제2정규형 릴레이션 -> 이행적 함수 종속 제거 -> 키에 대해서 직접적으로 함수 종속하는 제3정규형 릴레이션
보이스/코드 정규형
- 복잡한 식별자 관계에 의해 발생하는 문제를 해결하기 위해 제3정규형을 보완한 것
- 릴레이션 R이 제3정규형을 만족하고, 모든 결정자가 후보키
보이스/코드 정규화 과정 개념
- 키에 대해서 직접적으로 함수 종속하는 제3정규형 릴레이션 -> 후보키가 아닌 결정자 제거 -> 모든 결정자가 후보키인 BCNF 릴레이션
4차 정규화의 목적: 다가 종속 속성 분리
5차 정규화의 목적: 결합 종속일 경우, 두 개 이상의 N개로 분리
<요약>
이상 현상
- 속성 간에 존재하는 여러 종속 관계를 하나의 릴레이션에 표현함으로써 데이터의 중복으로 인해 발생하는 여러 가지 현상
1. 삭제 이상: 연쇄 삭제에 의한 정보 손실
2. 삽입 이상: 원하지 않는 정보 강제 삽입
3. 갱신 이상: 중복 데이터의 일부 갱신으로 정보의 모순성 발생
정규화: 이상 문제를 해결하기 위해 어트리뷰트 간의 종속 관계를 분석하여 여러 개의 릴레이션으로 분해하는 과정
함수 종송: 어떤 릴레이션에서 속성들의 부분 집합을 X, Y라 할 때, 임의 튜플에서 X의 값이 Y의 값을 함수적으로 결정한다면, Y가 X에 종속되었다고 하고, 기호는 X->Y로 표기
함수 종속 다이어그램: 릴레이션 내의 속성들의 종속 관계를 보다 쉽게 이해하기 위해서 이를 도식적으로 표현
정규형 과정
반응형
'SQL' 카테고리의 다른 글
[SQL] Oracle 다운로드 및 설치 방법 (0) | 2023.11.04 |
---|---|
[SQL] 과목Ⅱ. SQL 기본 및 활용(1) (0) | 2023.11.04 |
[SQL] 과목Ⅰ. 데이터 모델과 성능(2) (1) | 2023.11.01 |
[SQL] 과목Ⅰ. 데이터 모델링의 이해 (0) | 2023.10.18 |
[SQL] SQLD 시험 구성 (0) | 2023.10.16 |