▶ 082 정규화(Normalization)
정규화
잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
- 분해하는 과정
- 논리적 설계 단계에서 수행
- 데이터 중복성 최소, 이상의 발생 방지, 저장 공간의 최소화, 일관성 보장, 테이터 정확성 증가
- 조회 성능 저하
이상(Anomaly)의 개념 및 종류
정규화를 거치지 않으면 DB 내에 데이터들이 불필요하게 중복되어 의도와 상관없이 삽입, 삭제, 갱신이 일어나는 현상
- 이상의 종류 : 삽입 이상, 삭제 이상, 갱신 이상
정규화 과정 / 중요★
*이행적 종속 : A→B이고 B→C일 때 A→C를 만족하는 관계
▶ 083 반정규화(역정규화; Denormalization)
반정규화
정규화된 데이터 모델을 통합, 중복, 분리하는 과정
- 정규화 규칙을 위배하는 행위
- 성능 향상, 효율성 증가
- 일관성 및 정합성 저하
- 반정규화 방법 : 테이블 통합, 테이블 분할, 테이블 추가, 중복 속성 추가
1. 테이블 통합
두 테이블이 조인되는 경우가 많아 하나의 테이블로 합침
- Not Null, Default, Check 등의 제약조건을 설계하기 어려움
2. 테이블 분할
테이블을 수직 또는 수평으로 분할
3. 중복 테이블 추가
여러 다른 테이블을 사용해야 하는 경우 중복 테이블 추가
4. 중복 속성 추가
조인해서 데이터를 처리할 때 자주 사용하는 속성 추가
▶ 084 시스템 카탈로그
시스템 카탈로그(System Catalog)
시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템DB
- 시스템 카탈로그 내의 각 테이블은 사용자를 포함해 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지, 관리하는 시스템
- 카탈로그가 생성되면 데이터 사전(Data Dictionary)에 저장되기 때문에 카탈로그를 데이터 사전이라고도 함
시스템 카탈로그 저장 정보
시스템 카탈로그에 저장된 정보를 메타 데이터(Meta-Data)라고 함
⦁ 메타 데이터의 유형
- 데이터 베이스 객체 정보 : 테이블, 인덱스, 뷰 등
- 사용자 정보 : 아이디, 패스워드, 접근권한 등
- 테이블의 무결성 제약 조건 정보 : 기본키, 외래키, NULL 값 허용 여부
- 함수, 프로시저, 트리거 등에 대한 정보
카탈로그의 특징
- 일반 이용자도 SQL을 이용해 내용을 검색해 볼 수 있음
- DBMS가 스스로 생성하고 유지
- 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신
카탈로그/데이터 사전을 참조하기 위한 DBMS 내의 모듈 시스템
- 데이터 정의어 번역기
- 데이터 조작어 번역기
- Data Directory : 사용자 접근X, 시스템만 접근 가능
- 질의 최적화기
- 트랜잭션 처리기