- 병행 제어 미보장 시
- 갱신 손실: 트랜잭션 결과를 덮어씀
- 현황 파악 오류: 중간 결과를 다른 트랜잭션이 참조
- 모순성: 동시에 실행되어 관성이 결여
- 연쇄복귀: 롤백 시에 이미 처리된 트랜잭션을 롤백하지 못함.
- 정규형
- 1: 원잣값으로 구성
- 2: 부분 함수 종속 제거
- 3: 이행함수 종속 제거
- BCNF: 결정자 함수이면서 후보 키가 아닌 것 제거
- 4: 다치 종속성 제거
- 5: 조인 종속성 제거
- 테이블 용어 정리
- 내포: 릴레이션 스키마
- 외연: 릴레이션 인스턴스
- 튜플: 로우, 레코드
- 애트리뷰트: 컬럼
- 카디널리티: 튜플의 개수
- 디그리(차수): 컬럼의 개수
- 윈도우 함수(OLAP 함수): 온라인 분석 처리 용도
- RANK 함수: SELECT RANK() OVER (PARTITION BY <컬럼> ORDER BY <컬럼> {DESC})
- RANK: 1 2 2 4
- DENSE_RANK: 1 2 2 3
- ROW_NUMBER: 1 2 3 4
- DML
- INSERT INTO <테이블>(<컬럼>) VALUES(<값>)
- DELETE FROM <테이블> WHERE ~
- UPDATE <테이블> SET <컬럼> = <값> WHERE ~
- DDL
- ALTER TABLE <테이블> MODIFY <컬럼> <데이터타입> <제약조건>
- ALTER TABLE <테이블> DROP COLUMN <컬럼>
- ALTER TABLE <테이블> ADD <컬럼> <데이터타입> <제약조건>
- DROP TABLE <테이블> {CASCADE | RESTRICT}
- DCL
- REVOKE <권한 or 옵션> ON <테이블> FROM <사용자>
- GRANT <권한> ON <테이블> TO <사용자> {WITH GRANT OPTION}
- TCL
- COMMIT
- ROLLBACK {TO <체크포인트>}
- SAVEPOINT <체크포인트>
- 집합
- UNION
- UNION ALL
- INTERSECT
- MINUS
- VIEW
- DROP VIEW <뷰>
- CREATE VIEW <뷰> AS SELECT ~
- 인덱스
- CREATE INDEX <인덱스> ON <테이블>(<컬럼>)
- DROP INDEX <인덱스>
- 모델링 순서
- 요구사항 분석
- 개념 모델링: E-R 다이어그램 설계 (추상화)
- 논리 모델링: 관계형 스키마 설계
- 물리 모델링: 실제 DBMS에 맞게 물리적 설계
- 이상 현상
- 삽입 이상: 불필요한 정보 삽입 (NOT NULL인 경우)
- 삭제 이상: 원하지 않는 정보 삭제 (튜플처럼)
- 갱신 이상: 중복된 데이터를 다 고쳐야 하는데 하나만 고침
- 병행 제어
- 로킹: 읽기는 허용하는 공유 로킹, 읽기조차 안되는 배타 로킹
- 낙관적 검증: 일단 저지르고 문제가 되면 수습
- 타임 스탬프 순서 기법: 타임스탬프를 찍어줘서 병행 제어.
- 다중버전 동시성 제어(MVCC): 타임스탬프를 n개 찍어줘서 최선의 선택지를 고름
- 절차형 SQL 종류
- 프로시저: 하나의 함수처럼 실행하는 쿼리 집합
- 사용자 정의함수: 단일 반환값이 존재하는 하나의 함수처럼 실행하는 쿼리 집합
- 트리거: 이벤트 발생 시마다 자동으로 수행
- 체크 포인트 기법
- 로그 기반 회복 기법: 로그에 쌓고 DB에 적용 (바로 쌓으면 즉각 갱신, 커밋하고 쌓으면 지연 갱신)
- 체크 포인트 회복 기법: 체크포인트로 복원
- 그림자 페이징 회복 기법: 트랜잭션 수행 시 복제본 생성하여 복구
- 무결성
- 개체: PK 중복 및 NULL 불허
- 참조: 외래 키가 참조하는 값이 존재해야 함.
- 속성: 속성의 값이 이상할 수 없다.
- 사용자: 의미적 요구사항 준수
- 키: 같은 키값을 가진 튜플 없어야 함.
- 고립화 수준
- Read Uncommitted: 연산 중인 데이터를 읽는 것까지는 허용
- Read Committed: 연산 중에는 읽는 것도 허용하지 않음
- Repeatable Read: 선형 트랜잭션의 종료 시까지 읽고 있는 데이터 갱신/삭제 제한
- Serializable Read: 선형 트랜잭션이 읽고 있는 영역 전체 제한
- DBMS 특징
- 무결성
- 일관성
- 회복성
- 보안성
- 효율성
- 데이터베이스 특징
- 통합된 데이터: 중복 배제
- 저장된 데이터: 저장 매체에 존재
- 운영 데이터: 업무 수행에 사용
- 공용 데이터: 시스템들이 공동으로 사용
- 데이터베이스 장애
- 실행 장애: 연산 실패
- 트랜잭션 장애: 트랜잭션 오류
- 시스템 장애: 하드웨어 오류
- 미디어 장애: 저장장치 DB 손상
- 트랜잭션 상태
- 활동 상태: 트랜잭션 실행 중
- 부분 완료 상태: 마지막 명령까진 끝난 상태
- 완료 상태: 트랜잭션 성공적
- 실패 상태: 정상적 실행이 불가능한 상태
- 철회 상태: 롤백
- 파티셔닝
- 범위 분할: 분할 키값이 범위 내에 있는지 구분
- 해시 분할: 해시 함수의 값에 따라 파티셔닝 결정
- 목록 분할: 값 목록에 파티션 할당, 분할 키를 목록에 맞게 구분
- 조합 분할: 2개 이상의 분할 기법 적용
- 순수 관계 연산자
- Select: WHERE과 같음
- Project: SELECT와 같음
- Join
- Division: 관련된 모든 튜플 반환
- 키
- 기본 키: PK
- 후보 키: 구별이 가능한 모든 컬럼
- 대체 키: 후보 키지만 PK는 아님
- 슈퍼 키: 유일하지만 단위가 큼
- 외래 키: 참조를 위함
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 보안 (0) | 2024.10.14 |
---|---|
[정보처리기사] 소프트웨어 공학 (0) | 2024.10.14 |
[정보처리기사] 네트워크, 통신 (0) | 2024.10.14 |
[정보처리기사] 운영체제 (0) | 2024.10.14 |
[정보처리기사] 아키텍처 (0) | 2024.10.14 |