📑 데이터베이스 기본
- 트랜잭션: 인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성,
데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본단위- 특성
- 원자성(Atomicity): 트랜잭션의 연산 전체가 성공 또는 실패
- 일관성(Consistency): 시스템이 가지는 고정요소는 수행 전과 후의 상태가 같아야함
- 격리성(=고립성)(Isolation): 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야함
- 영속성(Durability): 성공한 트랜잭션 결과는 영속적으로 데이터베이스에 저장
- 트랜잭션 제어
- COMMIT: 트랜잭션 확정
- ROLLBACK: 트랜잭션 취소
- CHECKPOINT: 저장 시기 설정(ROLLBACK을 위한 시점을 지정)
- 병행제어: 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법
- 로킹: 하나의 트랜잭션을 실행하는 동안 특정데이터 항목에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 상호배제 기능을 제공
(로킹 단위 작아지면 데이터베이스 공유도 증가, 로킹 오버헤드 증가) - 낙관적 검증: 트랜잭션이 어떠한 검증도 수행하지 않고 일단 트랜잭션을 수행하고 트랜잭션 종료 시 검증을 수행하여 데이터베이스 반영
- 타임 스탬프 순서
- 다중버전 동시성제어
- 2PC
- 로킹: 하나의 트랜잭션을 실행하는 동안 특정데이터 항목에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 상호배제 기능을 제공
- 특성
- 데이터 정의어(DDL): 테이블과 같은데이터 구조를 정의하는데 사용되는 명령어들로 특정 구조를 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조와 관련된 명령어
- 스키마: 데이터베이스의 구조, 제약조건
- 구성: 외부스키마(사용자나 개발자 관점), 개념스키마(전체적인 뷰), 내부스키마(물리적 저장 장치의 관점)
- 테이블: 필드로 구성된 데이터의 집합체(릴레이션, 엔터티)
- 튜플(=행), 속성(=열). 카디널리티(행의 수), 차수(열의 수), 도메인(원자들의 집합)
- 뷰
- 인덱스
- 명령어: CREATE, ATLER, DROP, TRUNCAT
- 스키마: 데이터베이스의 구조, 제약조건
- 데이터 조작어(DML): 데이터베이스에 저장된자료들을 입력, 수정, 삭제, 조회하는 언어
- 명령어: SELECT, INSERT, UPDATE, DELETE
- 조인
- 서브쿼리
- FROM 절 서브쿼리: 인라인 뷰
- WHERE 절 서브쿼리: 중첩 서브쿼리
- 데이터 제어어(DCL): 데이터베이스 관리자가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 관리자가 사용하는 제어용 언어
- 명령어: GRANT(권한 부여), REVOKE(권한 취소)
📑 응용 SQL
- 다중 행 연산자: 서브 쿼리의 결과가 여러개의 튜플을 반환하는 다중 행 서브쿼리에 사용되는 연산자
- IN: 리턴되는 값 중에서 조건에 해당하는 값이 있으면 참
- ANY(=SOME): 서브쿼리에 의해 리턴되는 각각의 값과 조건을 비교하여 하나 이상을 만족하면 참
- ALL: 값을 서브쿼리에 의해 리턴되는 모든 값과 조건 값을 비교하여 모든 값을 만족해야만 참
- EXISTS: 메인 쿼리의 비교 조건이 서브쿼리의 결과 중에서 만족하는 값이 하나라도 존재하면 참
- 집계 함수 구문
- GROUP BY
- HAVING
📑 SQL 활용 및 최적화
- 절차형 SQL: 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어
- 프로시저: 일련의쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 사용자 정의 함수: 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
- 트리거: 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
- 옵티마이저: SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부의 핵심엔진
- 규칙기반 옵티마이저(RBO): 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저
- 비용기반 옵티마이저(CBO): 통계 정보로부터 모든 접근 경로를 고려한 질의실행 계획을 선택하는 옵티마이저
'정보처리기사' 카테고리의 다른 글
정보처리기사(실기) - 소프트웨어 개발 보안 구축 (0) | 2024.04.17 |
---|---|
정보처리기사(실기) - 서버 프로그램 구현 (0) | 2024.04.17 |
C언어 - 포인터(Pointer) (0) | 2024.04.15 |
정보처리기사(실기) - 응용 SW 기초 기술 활용 (0) | 2024.04.13 |
정보처리기사(실기) - 데이터 저장소 (0) | 2024.04.07 |