7. 반정규화
1) 정의
시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정, 의도적으로 정규화 원칙을 위배하는 행위
반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만, 데이터의 일관성 및 정합성이 저하될 수 있음
과도한 반 정규화는 오히려 성능을 저하시킬 수가 있음
사전에 데이터의 일관성과 무결성을 우선으로 할지, 데이터베이스의 성능과 단순화를 우선으로 할지 결정
방법 : 테이블 통합, 테이블 분할, 중복 테이블 추가, 중복 속성 추가 등
2) 테이블 통합
고려 사항
데이터 검색은 간편하지만 레코드 증가로 처리량이 증가
입력, 수정, 삭제 규칙이 복잡해질 수 있음
Not Null, Default, Check 등의 제약조건을 설계하기 어려움
3) 테이블 분할
고려 사항
기본키의 유일성 관리가 어려워짐
데이터 양이 적거나 사용 빈도가 낮은 경우 테이블 분할이 필요한지를 고려해야 한다.
분할된 테이블로 인해 수행속도가 저하됨
데이터 검색에 중점을 두어 테이블 분할 여부 결정
4) 중복 속성 추가
중복 속성을 추가하는 경우
- 조인이 자주 발생하는 속성인 경우
- 접근 경로가 복잡한 속성인 경우
- 액세스의 조건으로 자주 사용되는 속성인 경우
- 기본키의 형태가 적절하지 않거나 여러 개의 속성으로 구성된 경우
중복 속성 추가 시 고려사항
- 테이블 중복과 속성의 중복을 고려한다.
- 데이터 일관성 및 무결성에 유의해야 한다.
- SQL 그룹 함수를 이용해 처리해야 한다.
- 저장 공간의 지나친 낭비를 고려한다.
8. 시스템 카탈로그
1) 정의
시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
카탈로그 내의 각 테이블은 사용자를 포함해 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지관리하는 시스템 테이블
카탈로그들이 생성되면 데이터 사전에 저장되기 때문에 좁은 의미로는 카탈로그를 데이터 사전이라고 함.
2) 시스템 카탈로그 저장정보
시스템 카탈로그에 저장된 정보를 메타 데이터라고 함.
메타 데이터 유형
- 데이터베이스 객체 정보 : 테이블, 인덱스, 뷰 등의 구조 및 통계 정보
- 사용자 정보 : 아이디, 패스워드, 접근 권한 등
- 테이블의 무결성 제약 조건 정보 : 기본키, 외래키, NULL 등
- 함수, 프로시저, 트리거 등에 대한 정보
3) 카탈로그의 특징
시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용해 내용 검색 가능 / 직접 갱신 X
INSERT, DELETE, UPDATE로 카탈로그 갱신 허용 X
데이터베이스 시스템에 따라 상이한 구조를 가짐
카탈로그는 DBMS가 스스로 생성하고 유지함
사용자는 일반 질의어를 사용해 시스템 카탈로그의 내용을 검색할 수는 있지만 직접 갱신은 할 수 없다.
카탈로그의 갱신 : 사용자가 SQL문을 실행시키면 시스템이 자동으로 갱신함
분산 시스템에서의 카탈로그 : 보통의 릴레이션, 인덱스, 사용자 등의 정보를 포함할 뿐 아니라 위치 투명성 및 중복 투명성을 제공하기 위해 필요한 모든 제어 정보를 가져야함.
4) DBMS 모듈 시스템
데이터 정의어 번역기 : DDL을 메타 데이터를 갖는 테이블로 변환 -> 데이터사전에 저장
데이터 조작어 번역기 : 응용 프로그램에 삽입된 DML문을 주 언어로 표현한 프로시저 호출로 변환해 질의 처리기와 상호 통신
Data Directory : 데이터 사전에 수록된 데이터를 실제로 접근하는데 필요한 정보를 관리 유지하는 시스템. 시스템 카탈로그는 사용자와 시스템 모두 접근 가능. 데이터 디렉터리는 시스템만 접근 가능
질의 최적화기 : 사용자의 요구를 효율적인 형태로 변환하고 질의를 처리하기 좋은 전략을 모색
트랜잭션 처리기 : 각각의 사용자가 데이터베이스 자원을 배타적으로 이용할 수 있도록 한다.
'2020 정보처리기사 필기 > 3과목 - 데이터베이스 구축' 카테고리의 다른 글
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(물리 데이터베이스 설계_2) (0) | 2020.08.21 |
---|---|
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(물리 데이터베이스 설계_1) (0) | 2020.08.21 |
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_4) (0) | 2020.08.19 |
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_3) (0) | 2020.08.01 |
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_2) (0) | 2020.07.30 |