본문 바로가기

컴퓨터공부/정보처리기사

[정보처리기사] 정규화 과정 정리, 반정규화, 중복 테이블 추가, 시스템 카탈로그, 트랜잭션

by Life & study 2023. 7. 18.
반응형

[정보처리기사] 정규화 과정 정리, 반정규화, 중복 테이블 추가, 시스템 카탈로그, 트랜잭션

[정보처리기사] 정규화 과정 정리

 

[정보처리기사] 정규화 과정 정리



정규화(Normalization) 과정은 다음과 같습니다.
도메인(Domain) 분석: 데이터베이스에서 사용될 속성들을 식별하고, 각 속성의 도메인을 정의합니다.
부분 함수 종속(Partial Functional Dependency) 제거: 테이블에서 일부 속성이 기본키에 대해 종속되는 경우, 이를 분리하여 별도의 테이블로 만듭니다.
이행적 함수 종속(Transitive Dependency) 제거: 테이블에서 A -> B, B -> C와 같은 종속 관계가 있을 때, A -> C와 같은 이행적 함수 종속을 제거합니다.
결정자(Determinant) 식별: 테이블에서 결정자를 식별하고, 결정자가 아닌 속성을 별도의 테이블로 분리합니다.
조인 종속(Join Dependency) 제거: 테이블에서 조인 종속을 제거하여 별도의 테이블로 분리합니다.
다중값 종속(Multi-Valued Dependency) 제거: 테이블에서 다중값 종속을 제거하여 별도의 테이블로 분리합니다.
정규화 수준: 위의 과정을 거쳐 테이블이 1차 정규화, 2차 정규화, 3차 정규화, BCNF, 4차 정규화, 5차 정규화 등의 정규화 수준을 만족하도록 합니다.

 

[정보처리기사] 반정규화

 

[정보처리기사] 반정규화

시스템의  성능을 향상하고 개발 및 운영의 
편의성들을 높이기 위해 
정규화된 데이터 모델 의도적으로 통합, 중복, 분리
하여 정규화 원칙을 위배하는 행위

장점
시스템 성능 향상

단점
과도한 반정규화는 오히려 성능을 저하시킨다.
관리 효율성 증가하지만 데이터의 일관성 및 정합성 
저하된다.

실무
1~3 정규화를 쓰는 것이 보통 대부분이다.

반정규화의 방법과 종류
- 테이블 통합
- 테이블 분할
- 중복 테이블 추가
- 중복 속성 추가


 

[정보처리기사] 중복 테이블 추가

[정보처리기사] 중복 테이블 추가



작업의 효율성을 향상하기 위해 테이블을 추가하는 것

중복 테이블을 추가하는 경우
- 여러 테이블에서 데이터를 추출해서 사용해야 할 경우
- 다른 서버에 저장된 테이블을 이용해야 하는 경우


집계 테이블의 추가,
집계 테이블을 위한 테이블을 생성하고,
각 원본 테이블에 트리거를 설정하여,
사용하는 것
대량의 데이터를 집계하거나, 복잡한 쿼리를 수행할 때 성능을 향상하기 위해 집계 테이블을 추가합니다. 집계 테이블은 원본 테이블에서 집계된 데이터를 저장하는 테이블로, 집계된 데이터를 빠르게 조회할 수 있습니다.


진행 테이블의 추가,
이력 관리 등의 목적으로 추가하는 테이블
대량의 데이터를 처리하는 작업에서 성능을 향상시키기 위해 진행 테이블을 추가합니다. 진행 테이블은 작업이 진행되는 동안 중간 결과를 저장하는 테이블로, 작업이 완료되기 전에 중간 결과를 조회할 수 있습니다.


특정 부분만을 포함하는 테이블의 추가,
데이터가 많은 부분만 특정 부분만을 사용하는 경우
해당부부만 새로운 테이블을 만든다.
대량의 데이터를 처리하는 작업에서 성능을 향상시키기 위해 특정 부분만을 포함하는 테이블을 추가합니다. 이를 통해 작업에 필요한 데이터만을 조회하여 처리할 수 있습니다

-중복 테이블 추가 3가지

집계 테이블의 추가
진행 테이블의 추가
특정 부분만을 포함하는 테이블의 추가


 

[정보처리기사] 시스템 카탈로그 

[정보처리기사] 시스템 카탈로그 
= 매뉴얼이랑 비슷



시스템에 자체에 관련 있는
다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스

사용자를 포함하여
DBMS에서 지원하는 모든 데이터 객체에 대한
정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블임

카탈로그들이 생성되면 데이터 사전에 저장된다.

 

[정보처리기사] 트랜잭션

 

[정보처리기사] 트랜잭션

=작업단위



트랜잭션
데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위
또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미

 

[정보처리기사] 트랜잭션의  특성

 

[정보처리기사]트랜잭션의  특성



원자성, 
데이터베이스에 반영이 되든지, 
전혀 반영이 안 되는지 복구되어야 한다.


일관성,
실행을 성공적으로 완료하면 언제나 일관성 있는
데이터베이스 상태로 변환함


격리성,
둘 이상의 트랜잭션이 동시에 병행 실행되는 경우
하나의 트랜잭션 실행 중에 다른 트랜잭션이 끼어들 수 없다.

영속성
성공적으로 완료된 트랜잭션의 결과는
시스템이 고장 나더라도 영구적으로 반영되어야 한다.

원자성(Atomicity): 트랜잭션은 작업의 일부만 수행되지 않고, 전체가 수행되거나 전혀 수행되지 않아야 합니다. 즉, 트랜잭션은 원자적인 작업 단위로 수행되어야 합니다.
일관성(Consistency): 트랜잭션이 수행된 후에도 데이터베이스는 일관된 상태를 유지해야 합니다. 즉, 트랜잭션이 수행되기 전과 후의 데이터베이스 상태가 일치해야 합니다.
격리성(Isolation): 트랜잭션은 다른 트랜잭션에 영향을 받지 않도록 격리되어야 합니다. 즉, 트랜잭션은 다른 트랜잭션의 작업 결과를 참조하지 않고, 독립적으로 수행되어야 합니다.
영속성(Durability): 트랜잭션이 성공적으로 완료된 후에는 그 결과가 영구적으로 유지되어야 합니다. 즉, 트랜잭션이 수행된 결과는 시스템 장애 등의 상황에서도 유지되어야 합니다.

원일격영



 


 

반응형

댓글