정규화
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 발생률이 높고 연쇄 복귀를 초래할 수 있는 단점
최적 병행 수행 기법
- 검증 기법
- 확인 기법
- 낙관적 기법: 트랜잭션 수행 동안은 어떠한 검사를 하지 않고, 트랜잭션이 종료된 이후에 일괄적으로 검사하는 방식
다중 버전 기법: 한 데이터에 대해 여러 버전의 값을 유지하며 관리하는 방식
- 타임스탬프의 개념 이용
- 직렬 가능성이 보장되는 타임스탬프 선택
- 연쇄 복귀 발생 가능성이 있음
ㅣ
'공부' 카테고리의 다른 글
정보처리기사 필기 공부하기 - [5과목] 정보시스템 구축관리 (0) | 2023.07.08 |
---|---|
정보처리기사 필기 공부하기 - [4과목] 프로그래밍 언어 활용 (0) | 2023.07.08 |
정보처리기사 필기 공부하기 - [2과목] 소프트웨어 개발 (0) | 2023.07.08 |
정보처리기사 필기 공부하기 - [1과목] 소프트웨어 설계 (0) | 2023.07.08 |