공부

정보처리기사 필기 공부하기 - [3과목] 데이터베이스 구축

besomilk 2023. 7. 8. 11:59

정규화

no 

→ 1NF

 2NF

 3NF

 BCNF

 

4NF

 

5NF

모든 조인 종속성의 만족이 R의 후보 키를 통해서만 만족될 때

 

 

 

분산 데이터베이스 시스템

분산 처리기: 지역별로 필요한 데이터를 처리할 수 있는 Local 컴퓨터

통신 네트워크 구조를 효율적으로 설계해야 함.

분산 투명성 (Transparency)

사용자는 데이터베이스의 분산을 포함해 다음과 같은 사실을 알 필요가 없다.

- 위치: 물리적 위치를 

- 중복: 시스템 안 자원의 복사를

- 병행: 다중 사용자들의 자원 자동 공유를

- 장애: 장애가 발생한 시스템의 위치를

 

 

SQL

DDL (Definition)

인덱스, 스키마, 도메인, 테이블, 뷰를

생성: CREATE

삭제: DROP

TABLE 정의 변경: ALTER

 

DCL (Control)

COMMIT: 물리적 디스크로 저장 (전에는 Partially commited 상태)

ROLLBACK: 원상복구

GRANT: 사용자에게 권한 부여

REVOKE: 사용자 권한 취소

 

DML (Manipulation)

SELECT

INSERT

DELETE

UPDATE

 

 

 

데이터베이스 설계 단계

1. 개념적 설계 

트랜잭션 모델링

- 트랜잭션 정의

- 입출력 기능, 형태 정의

- 검색, 갱신 등

 

개념스키마 설계 → ERD

 

2. 논리적 설계

DBMS에 따라 논리적 스키마 정의

정규화 과정을 이용해 속성 결정

논리적 데이터 모델로 변환

트랜잭션 인터페이스 설계

스키마의 평가 및 정제

 

3. 물리적 설계

물리적 구조 설계

- 저장 레코드 양식 설계

저장 레코드 양식 설계 시 고려 사항 - 데이터 타입, 데이터 값의 분포, 접근 빈도

- 접근 경로 설계

- 레코드 집중의 분석 및 설계

- 파일 저장 구조 및 탐색 기법

 

트랜잭션 세부 설계

- 응답 시간

- 저장 공간의 효율화

- 트랜잭션 처리량

 

고려 사항

- 어떤 인덱스를 만들 것인지

- 성능 향상을 위한 개념 스키마의 변경 여부 검토

- 레코드의 크기

- 파일 구조 저장을 위한 최소환의 공간

 

 

 

*내부 스키마: 설계자 및 개발자 관점의 스키마

*외부 시크마: 사용자 관점의 스키마

 

 

 

데이터 사전

- 시스템 카탈로그, 메타 데이터

- 시스템이 자동 갱신

- 사용자가 직접 갱신 불가

- 테이블로 구성, SQL문으로 내용 검색 가능

 

 

릴레이션의 특징

튜플

- 유일성

- 무순서성

 

속성

- 원자성

- 무순서성

 

 

- 논리적으로만 존재하는 가상 테이블

- 필요한 데이터만 처리할 수 있어 관리 용이, 명령문이 간단해짐

- 뷰에 나타나지 않는 데이터를 보호

- 기본 테이블의 기본키를 포함한 attribute 집합으로 뷰를 구성해야 연산 가능 (제약이 따름)

- 기본 테이블을 삭제하면 파생된 뷰도 삭제됨

- 뷰 정의를 변경할 수 없음. ALTER VIEW문 사용 불가

- 독립적인 인덱스를 가질 수 없음

 

 

super key

candidate key

primary key

alternative key

foreign key

 

 

Data Integrity

개체 무결성: 기본키 attribute는 NULL이나 중복된 값일 수 없음

참조 무결성: FK는 NULL이거나 기본키 값과 동일해야 함

도메인 무결성

고유 무결성

NULL 무결성

키 무결성: 각 relation은 최소 한 개 이상의 키가 존재해야 함

 

 

병행제어 기법

병행제어:동시에 여러 개 트랜잭션 수행 시 DB의 일관성 유지를 위한 제어

 

로킹 기법: 다른 트랜잭션이 접근하지 못하도록 잠금

- 2단계 로킹 규약

1) 확장 단계: 새로운 lock 연산만 수행 가능

2) 축호 단계: unlock 연산만 수행 가

- 교착 상태가 발생할 수 있다는 한계 (무한정 기다리는)


타임 스탬프 기법: 비직렬 트랜잭션을 타임스탬프 순서에 따라 직렬화 시키는 방법

타임스탬프 생성 방법

- 논리적 계수기 : 계수기를 사용하여 트랜잭션이 들어올 때마다 카운터를 하나씩 증가

- 시스템 클럭 : 시스템의 고유 시계 사용

장단점

- 교착 상태 발생 X

- Rollback 발생률이 높고 연쇄 복귀를 초래할 수 있는 단점


최적 병행 수행 기법

- 검증 기법

- 확인 기법

- 낙관적 기법: 트랜잭션 수행 동안은 어떠한 검사를 하지 않고, 트랜잭션이 종료된 이후에 일괄적으로 검사하는 방식


다중 버전 기법: 한 데이터에 대해 여러 버전의 값을 유지하며 관리하는 방식

- 타임스탬프의 개념 이용

- 직렬 가능성이 보장되는 타임스탬프 선택

- 연쇄 복귀 발생 가능성이 있음