정보처리기사

[정보처리기사] 데이터베이스 구축

hminor 2023. 7. 21. 20:44
반응형

강의를 들으면서 헷갈리는 것만 정리하기

아예 기억조차 안나면 헤드에 볼드체와 🔅로 정리

1회차

데이터베이스 구축

  • 데이터와 정보(저공통운)
    • 저장 데이터
    • 공유 데이터
    • 통합 데이터
    • 운영 데이터
  • DBMS의 종류
    • 계층형
    • 네트워크형: CODASYL, N:N 구성
    • 관계형
    • 객체 지향형
    • NewSQL: RDBMS의 SQL과 NoSQL의 장점을 결합한 관계형 모델
  • 데이터베이스 설계 단계 (요개논물)
    • 개념적 설계: ERD
    • 논리적 설계: 정규화, 트랜잭션 인터페이스
    • 물리적 설계: 성능, 반정규화
  • 데이터 모델
    • 개념
      • 현실세계의 요소를 인간과 컴퓨터가 이해할 수 있는 정보로 표현한 것
    • 데이터 모델에 표시해야할 요소
      • 구조
      • 연산
      • 제약조건
    • 데이터 모델의 품질 기준(정완준최일활)
      • 정확성
      • 완정성
      • 준거성
      • 최신성
      • 일관성
      • 활용성
  • 함수적 종속
    • 대략적 정리: 이상현상을 해결하기 위해 실행한 정규화는 함수적 종속을 바탕으로 둔다.
    • 종류
      • 완전 함수적 종속: 해당 키만 알면 하나를 특정할 수 있는 것
      • 부분 함수적 종속: 키가 두 개 일때 하나만 알아도 다른 특정 값을 알 수 있을 때
      • 이행 함수적 종속: x → y, y→z ⇒ x → z
  • 데이터 베이스 이중화의 분류
    • Eager 기법: 변경 즉시 반영
    • Lazy 기법: 트랜잭션 완료 후 반영
  • 데이터베이스 암호화 방식
    • API 방식
    • Plug-in 방식
    • TDE(Transparent Data Encryption) 방식
      • DBMS 내장 모듈을 이용해 암/복호화 수행
  • 파티셔닝
    • 데이터베이스를 여러 부분으로 분할하는 것
  • 샤딩(Sharding)
    • 하나의 거대한 데이터베이스나 네트워크 시스템을 여러 개의 작은 조각으로 나누어 분산 저장하여 관리하는 것
  • 파티셔닝 vs 샤딩
    • 공통점: 데이터베이스를 분할 하는 것
    • 차이점: 샤딩은 분산 저장하여 관리, 파티셔닝은 하나에 저장하며 관리
  • 인덱스의 종류
    • 클러스터 인덱스: 테이블 당 1개만 만들 수 있는 것, 원본
    • 넌클러스터 인덱스: 대략 240개 정도 만들 수 있는 것, 원본 저장 X
    • 밀집 인덱스
    • 희소 인덱스
  • 시스템 카탈로그
    • DBMS가 DB를 관리하기 위해 자동으로 만드는 것
  • 릴레이션
    • 구성
      • 릴레이션 스키마
        • 릴레이션 이름과 모든 속성의 이름으로 정의하는 릴레이션의 논리적인 구조
      • 릴레이션 인스턴스
        • 릴레이션 스키마에 실제로 저장된 데이터의 집합
    • 특징
      • 튜플의 유일성: 같은 튜플 x
      • 튜플의 무순서성: 튜플 사이의 순서 x
      • 속성의 무순서성: 속성 사이의 순서 x
      • 속성의 원자성
      • 릴레이션은 수시로 변한다
  • 관계 대수(절차적)
    • 개념
      • 원하는 데이터를 얻기 위해 데이터를 어떻게 찾는지에 대한 처리 과정을 명시하는 절차적인 언어
    • 순수 관계 연산자(셀프조디)
      • 셀렉트(시그마)
        • 시그마<조건>(R)
      • 프로젝트(파이)
        • 해당 값을 가지고 와라는 의미
        • 파이<리스트>(R)
      • 조인(보타이)
        • R 보타이<조건>S
      • 디비전(나누기)
        • R나누기S
    • 일반 집합 연산자(합교차카)
      • 합집합
      • 교집합
      • 차집합
      • 카티션 프로덕트: X
  • 관계 해석(비절차적)
    • 개념
      • E.F.Codd
      • 비절차적 특성
  • 데이터베이스 무결성 - 종류
    • 개체 무결성 제약조건: 모든 릴레이션은 기본 키를 가져야 한다와 기본키의 조건을 가짐
    • 참조 무결성 제약조건
      • 외래키 값은 NULL 이거나 참조하는 릴레이션의 기본키 값과 동일하다
      • 각 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다(NULL은 가능)
        • 종류
          • Restrict
          • Cascade
          • Nullify
          • Default
    • 도메인 무결성 제약조건
  • 옵티마이저
    • 개념
      • 사용자가 질의한 SQL 문에 대해 최적의 실행 방법을 결정하는 역할을 수행
    • 단계
      • 구문분석 단계
      • 실행 단계
      • 추출 단계 → select 만 수행
    • 종류
      • CBO(비용기반 옵티마이저): 통계 정보
      • RBO(규칙기반 옵티마이저): 연산자 우선순위
  • SQL 성능 튜닝 - Row Migration/ Row Chaining
    • Row Migration
      • 다른 블록에 데이터를 넣고, 링크를 남긴다.
    • Row Chaining
      • 두 개의 블록에 작성
  • 분산 데이터베이스 - 투명성 조건(위분할지중장병)
    • 위치 투명성
    • 분할 투명성
    • 지역사상 투명성
    • 중복 투명성
    • 장애 투명성
    • 병행 투명성
  • 분산 데이터베이스 - CAP 이론
    • 일관성, 가용성, 분단 허용성 중 두 가지만 가질 수 있다는 것
  • 트랜잭션
    • 트랜잭션의 성질(ACID)
      • 원자성: Commit, Rollback
      • 일관성: 실행 완료후 언제나 일관성 있는 DB 상태로 변환
      • 독립성: 하나의 트랜잭션 실행 중 다른 트랜잭션의 연산이 끼어들 수 없다.
      • 영속성(Durability): 트랜잭션의 결과는 시스템이 고장 나더라도 영구히 반영되어야 함
  • 저장 프로시저
    • 개념
      • 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
    • 저장 프로시저 구조
      • CREATE OR REPLACE PROCEDURE 프로시저명 (변수1 IN 변수타입, 변수2 OUT 변수타입, 변수3 IN OUT 변수타입) IS 변수 처리부 BEGIN 처리내용 EXCEPTION 예외처리부 END;
  • 트리거 유형
    • 행 트리거
      • FOR EACH ROW 옵션 사용
    • 문장 트리거
      • INSERT, UPDATE, DELETE 문에 대해 단 한 번만 실행
  • 사용자 정의 함수 구조
    • CREATE OR REPLACE FUNCTION 함수명 (매개변수1, 매개변수2, 매개변수3 …) RETURN 데이터 타입 IS 변수 처리부 BEGIN 처리내용 RETURN 반환값 EXCEPTION 예외처리부 END;
  • 병행제어
    • 병행제어를 하지 않았을 때의 문제점(갱현모연)
      • 갱신 분실
        • 두 개 이상의 트랜잭션이 같은 자료를 공유해 갱신시 결과의 일부가 없어지는 현상
      • 현황 파악 오류, 비완료 의존성
      • 모순성: 갱신 분실과 비슷해 보이지만 여러 데이터를 가져올 때 발생하는 문제
      • 연쇄복귀
    • 병행제어 기법 (로낙타다)
      • 로킹
        • 개념
          • 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹 수행
        • 로킹 단위에 따른 구분
          • 로킹 단위가 크면
            • 로크수: 적음
            • 병행성: 감소
            • 오버헤드: 줄어듬
          • 로킹 단위가 작다면
            • 로크수: 많아짐
            • 병행성: 향상
            • 오버헤드: 커짐
        • 2단계 로킹 규약
          • 확장 단계
            • 새로운 Lock은 가능하고 Unlock은 불가능하다.
          • 축소 단계
            • 새로운 Unlock은 가능하고 Lock은 불가능하다.
      • 타임스탬프
        • 데이터에 접근하는 시간을 미리 정해서 정해진 시간 순으로 데이터에 접근하여 수행
      • 낙관적 병행 제어
        • 잘하겠지 하며 검사하지 않고, 종료 시에 일괄적으로 검사
      • 다중 버전 병행제어
        • 여러 버전의 타임스탬프를 비교후 스케줄상 직렬가능성이 보장된 타임스탬프를 선택
  • 회복 - 로그 기반 회복 기법
    • 지연갱신 회복 기법
      • 커밋 말생 전까지 DB 기록 X
      • 실행 중 장애가 생기더라도 DB에 기록되지 않았기에 Undo 가 필요 없고 미실행된 로그는 폐기
      • Redo만 사용
    • 즉시갱신 회복 기법
      • 트랜잭션 수행 도중에도 변경 내용을 즉시 DB에 기록
      • 커밋 발생 이전의 갱신은 원자성이 보장되지 않는 미완료 갱신이기에 장애 발생 시 Undo가 필요하며, Redo와 같이 사용
    • 검사점 회복 기법
      • 검사점 이전은 제외하고 이후만 회복 작업 수행
    • 그림자 페이징 기법
      • 수행 시 복사본을 계속 뜨는 것.
    • 미디어 회복 기법
      • 디스크와 같은 비휘발성 저장 장치가 손상되는 장애 발생을 대비한 회복 기법
      • 디스크에 백업본을 뜬다고 함
    • ARIES 회복 기법
      • 어떠한 알고리즘을 사용한 회복 기법
  • ETL(Extraction, Transformation, Loading)
    • 개념
      • 기존의 원천 시스템에서 데이터를 추출(E)해 목적 시스템의 DB에 적합한 형식과 내용으로 변환(T)한 후, 목적 시스템에 적재(L)하는 일련의 과정
      • 보통 Migration이라고 한다.

2회차

  • 데이터베이스 특징
    • 저공통운
  • DDL
    • CREATE
      • 테이블
        • CREATE OR REPLACE TABLE 테이블명
      • 인덱스
        • CREATE INDEX 인덱스명
        • CREATE VIEW 뷰명 AS 쿼리문
      • 트리거
        • CREATE TRIGGER 트리거명 AFTER INSERT ON 테이블명 FOR EACH ROW BEGIN SET 조건 END
      • 프로시저
        • CREATE OR REPLACE PROCEDURE 프로시저명 (변수1 IN 변수타입, 변수2 OUT 변수타입, 변수3 IN OUT 변수타입) IS BEGIN EXCEPTION END
      • 파티션
        • PARTITION BY RANGE PARTITION U1 VALUES LESS THEN 2000
    • ALTER
      • 속성 추가
        • ALTER TABLE 테이블명 ADD ADDR
      • 속성 변경
        • ALTER TABLE 테이블명 MODIFY ADDR
      • 속성 삭제
        • ALTER TABLE 테이블명 DROP COLUMN ADDR
      • 이름 변경
        • ALTER TABLE 테이블명 RENAME TO 변경테이블명
  • DML
    • INSERT
      • INSERT INTO 테이블명(컬럼) VALUES (추가값)
    • UPDATE
      • UPDATE 테이블명 SET 변경식 WHERE 조건
    • DELETE
      • DELETE FROM 테이블명 WHERE 조건
  • DCL
    • GRANT TO
    • REVOKE FROM
  • TCL
  • 데이터베이스 관리 시스템
    • DBMS의 종류
      • 계층형
      • 네트워크형
        • CODASYL DBTG모델
      • 관계형
      • 객체 지향형
      • NoSQL
      • NewSQL
        • RDBMS + NoSQL
  • 데이터베이스 설계
    • 요구 분석
    • 개념적 설계: ERD
    • 논리적 설계: 정규화, 트랜잭션 인터페이스
    • 물리적 설계: 성능, 반정규화
  • 데이터 모델 개념
    • 데이터 모델 표시해야 할 요소
      • 구조
      • 연산
      • 제약조건
    • 데이터 모델의 품질 기준(정완준최일활)
      • 정확성
      • 완전성
      • 준거성
      • 최신성
      • 일관성
      • 활용성
  • 데이터베이스의 이중화의 분류
    • Eager 기법: 변경 즉시 반영
    • Lazy 기법: 트랜잭션 완료 후 반영
  • 데이터베이스 암호화 방식
    • API
    • Plug-in
    • TDE(Transparent Data Encryption)
    • 파일 암호화 방식
    • 하드웨어 방식
  • 파티셔닝
    • 샤딩
      • 하나의 거대한 DB나 네트워크 시스템을 여러 개의 작은 조각으로 나누어 분산 저장하여 관리
  • 클러스터
    • 개념
      • 디스크로부터 데이터를 읽어오는 시간을 줄이기 위해 디스크의 같은 위치에 저장시키는 방법
  • 인덱스
    • 종류
      • 클러스트 인덱스: 테이블 당 1개
      • 넌클러스트 인덱스: 대략 240개
      • 밀집 인덱스: 각각에 인덱스
      • 희소 인덱스: 뜨문뜨문 인덱스
  • 관계 데이터 모델
    • 릴레이션
      • 구성
        • 릴레이션 스키마
          • 릴레이션 이름과 모든 속성의 이름으로 정의하는 논리적인 구조
        • 릴레이션 인스턴스
          • 릴레이션 스키마에 실제로 저장된 데이터의 집합
      • 특징
        • 튜플의 유일성
        • 튜플의 무순서성
        • 속성의 무순서성
        • 속성의 원자성
  • 관계 데이터 언어(관계 대수, 관계 해석)
    • 관계 대수
      • 특징: 절차적 언어
      • 순수 관계 연산(셀프조디)
        • 셀렉트(시그마): 검색
        • 프로젝트(파이): 가져오기
        • 조인(보타이): T1 보타이 T1.NAME = T2.NAME T2
          • T1 보타이 ON절 T2
        • 디비전(% 가로)
      • 일반 집합 관계
    • 관계 해석
      • 특징: 비절차적 언어
  • 데이터베이스 무결성 종류
    • 참조 무결성
      • 참조 무결성 제약조건
        • 제한
        • 연쇄
        • 널값
        • 기본값
  • 옵티마이저
    • 개념
      • 사용자가 질의한 SQL 문에 대해 최적의 실행 방법을 결정하는 역할을 수행
      • 최적으로 수행할 수 있게 도와주는 것.
    • 구분
      • CBO: 연산자, 비용 우선순위
      • RBO: 통계 정보를 활용
  • SQL 성능 튜닝
    • Row Migration: 다른 블록에 데이터를 넣고, 링크를 남긴다.
    • Row Chanining: 두 개의 블록에 작성
  • 분산 데이터베이스
    • 개념
      • 여러 곳에 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스
    • 분산 데이터베이스 구성 요소
      • 분산 데이터베이스
      • 분산 처리기
      • 통신 네트워크
    • 분산 데이터베이스 투명성 조건 (위분할지중장병)
      • 위치 투명성
      • 분할 투명성
      • 지역 사상 투명성: 각 지역 시스템 이름과 무관한 이름 사용 가능
      • 중복 투명성
      • 장애 투명성
      • 병행 투명성
  • CAP 이론
    • 일관성, 가용성, 분단 허용성 중 2개만 만족할 수 있다.
  • 트랜잭션
    • 개념: 하나의 일 처리 단위
    • 원칙(ACID)
      • 원자성
      • 일관성
      • 독립성
      • 영속성
    • 교착상태가
      • 상호배제
      • 점유와 대기
      • 비선점
      • 환형대기
  • 병행제어
    • 병행제어를 하지 않을 시 문제점
      • 갱신 오류
      • 현황 파악 오류
      • 모순성
      • 연쇄 복귀
    • 기법(로낙타다)
      • 로킹
      • 2단계 로킹 규약
        • 확장단계: 새롭게 Lock은 가능하지만 unLock은 불가능
        • 축소단계: unLock은 가능하지만 새롭게 Lock은 불가능하다
    • 타임스탬프: 시간을 미리 정해 접근하도록 하는 방법
    • 낙관적 병행제어: 트랜잭션 수행 중엔 어떠한 검사도 하지 않고, 종료 후에 일괄적으로 검사
    • 다중버전 병행제어: 여러 버전의 타임스탬프를 비교해 직렬가능성이 보장되는 타임스탬프를 선택
  • ETL(Etraction, Transformation Loading)
    • 개념
      • 기존의 원천 시스템에서 데이터를 추출하여 목적 시스템의 데이터베이스에 적합한 형식과 내용으로 변환한 후, 목적 시스템에 적재하는 일련의 과정
      • 보통 Migration과 유사

3회차

  • DBMS 종류
    • 계층형
      • 트리형
    • 네트워크형
      • N:N, CODASYL
    • 관계형
    • 객체지향형
    • NoSQL
    • NewSQL
      • RDBMS + NoSQL
  • 데이터베이스 이중화 분류
    • Eager 기법
      • 변경 즉시 반영
    • Lazy 기법
      • 트랜잭션 완료 후 반영
  • 데이터베이스 백업 방식 - 트랜잭션 로그 백업
    • 모든 SQL문을 기록한 로그를 기반으로 백업
  • 데이터베이스 백업 방식 - 합성 백업
    • 전체 백업 + 증분 백업
  • 데이터베이스 암호화 방식 - TDE
    • Transparent Data Encryption → DBMS 내장 모듈 사용해 암/복호화
  • 샤딩
    • 파티셔닝처럼 거대한 DB나 네트워크 시스템을 여러 개의 작은 조각으로 나누어 분산 저장 후 관리
  • 분산 데이터 베이스
    • 구성요소
      • 분산 데이터베이스
      • 분산 처리기
      • 통신 네트워크
    • 투명성 조건(위분할지중장병)
  • 병행제어 기법(로낙타다)
    • 로킹, 2단계 로킹 규약
    • 낙관적 병행 제어
      • 트랜잭션 수행 시엔 검사X, 종료 후 일괄적으로 검사
    • 타임스탬프
    • 다중 버전 병행 제어
      • 여러개의 타임스탬프로 비교
  • 미디어 회복 기법
    • ARIES 회복 기법: 알고리즘을 사용한다