728x90
반응형
정규화(Normalization)
함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만드는 과정
- 하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해 가는 과정
- 종류 - 제1~5 정규형
- 차수가 높아질수록 만족시켜야 할 제약 조건이 늘어남
- 데이터베이스의 논리적 설계 단계에서 수행
- 논리적 처리 및 품질에 큰 영향을 미침
- 정규화된 모델은 일관성, 정확성, 단순성, 비중복성, 안정성 등을 보장
목적
- 데이터 구조의 안정성 및 무결성을 유지
- 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만듦
- 효과적인 검색 알고리즘을 생성할 수 있음
- 데이터 중복을 배제하여 이상(Anomaly)의 발생 방지 및 자료 저장 공간의 최소화가 가능
- 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임
- 데이터 모형의 단수화가 가능
- 속성의 배열 상태 검증 가능
- 개체와 속성의 누락 여부 확인이 가능
- 자료 검색과 추출의 효율성을 추구
정규화 과정
이상(Anomaly)
정규화를 거치지 않은 데이터들은 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생함, 이를 이상이라 하며 삽입 이상, 삭제 이상, 갱신 이상이 존재함
삽입 이상 (Insertion Anomaly) |
릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상 |
삭제 이상 (Deletion Anomaly) |
릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄가 일어나는 현상 |
갱신 이상 (Update Anomaly) |
릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상 |
이행적 종속 / 함수적 종속
이행적 종속(Transitive Dependency)
- A -> B이고 B -> C일 때 A -> C를 만족하는 관계를 의미
함수적 종속(Functional Dependency)
- 함수적 종속은 데이터들이 어떤 기준값에 의해 종속되는 것을 의미
- 예 - <수강> 릴레이션의 (학번, 이름, 과목명)
- '학번'이 결정되면 '과목명'에 상관없이 '학번'에는 항상 같은 '이름'이 대응
- '학번'에 따라 '이름'이 결정될 때 '이름'을 '학번'에 함수 종속적이라고 하며 '학번 -> 이름'과 같이 씀
반정규화(De-Normalization)
시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정
의도적으로 정규화 원칙을 위배하는 행위
- 시스템 성능이 향상되고 관리의 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있음
- 과도한 반정규화는 오히려 성능을 저하시킬 수 있음
- 사전에 데이터의 일관성과 무결성을 우선으로 할지, 데이터베이스의 성능과 단순화를 우선으로 할지를 결정해야 함
- 방법
테이블 통합 | - 두 개의 테이블이 조인(Join)되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능향상에 도움이 될 경우 수행 - 두 개의 테이블에서 발생하는 프로세스가 동일하게 자주 처리되는 경우, 두 개의 테이블을 이용하여 항상 조회를 수행하는 경우 테이블 통합을 고려함 |
테이블 분할 | - 테이블을 수직 또는 수평으로 분할하는 것 - 수평 분할(Horizontal Partitioning) : 레코드를 기준으로 테이블을 분리 - 수직 분할(Vertical Partitioning) : 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블을 분할하는 것 |
중복 테이블 추가 | - 여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 중복 테이블을 추가하여 작업의 효율성을 향상시킬 수 있음 - 중복 테이블 추가 방법 : 집계 테이블의 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블의 추가 |
중복 속성 추가 | - 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가하는 것 |
시스템 카탈로그(System Catalog)
시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
- 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블
- 카탈로그들이 생성되면 데이터 사전(Data Dictionary)에 저장되기 때문에 좁은 의미로는 카탈로그를 데이터 사전이라고도 함
- 시스템 카탈로그에 저장된 정보 = 메타 데이터(Meta-Data)
- 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있음
- INSERT, DELETE, UPDATE문으로 카탈로그 갱신하는 것은 허용되지 않음
- 데이터베이스 시스템에 따라 다른 구조를 가짐
- DBMS가 스스로 생성하고 유지
카탈로그의 갱신
- 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신
🥑 Data Directory
- 데이터 사전에 수록된 데이터를 실제로 접근하는 데 필요한 정보를 관리 유지하는 시스템
- 시스템 카탈로그는 사용자와 시스템 모두 접근할 수 잇지만 데이터 디렉터리는 시스템만 접근할 수 있음
728x90
반응형
'자격증 준비 > 정보처리기사필기 - 3과목(데이터베이스 구축)' 카테고리의 다른 글
[정보처리기사 필기] 3과목 - DDL, DML, DCL (0) | 2023.01.15 |
---|---|
[정보처리기사 필기] 3과목 - 분산 데이터베이스, 암호화 (0) | 2023.01.15 |
[정보처리기사 필기] 3과목 - 트랜잭션, 인덱스, 뷰 (0) | 2023.01.13 |
[정보처리기사 필기] 3과목 - 관계대수 (0) | 2023.01.13 |
[정보처리기사 필기] 3과목 - 데이터베이스 설계 (0) | 2023.01.13 |