반응형
강의를 들으면서 헷갈리는 것만 정리하기
아예 기억조차 안나면 헤드에 볼드체와 🔅로 정리
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
- 두 개의 블록에 작성
- Row Migration
- 분산 데이터베이스 - 투명성 조건(위분할지중장병)
- 위치 투명성
- 분할 투명성
- 지역사상 투명성
- 중복 투명성
- 장애 투명성
- 병행 투명성
- 분산 데이터베이스 - CAP 이론
- 일관성, 가용성, 분단 허용성 중 두 가지만 가질 수 있다는 것
- 트랜잭션
- 트랜잭션의 성질(ACID)
- 원자성: Commit, Rollback
- 일관성: 실행 완료후 언제나 일관성 있는 DB 상태로 변환
- 독립성: 하나의 트랜잭션 실행 중 다른 트랜잭션의 연산이 끼어들 수 없다.
- 영속성(Durability): 트랜잭션의 결과는 시스템이 고장 나더라도 영구히 반영되어야 함
- 트랜잭션의 성질(ACID)
- 저장 프로시저
- 개념
- 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 저장 프로시저 구조
- 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 변경테이블명
- 속성 추가
- CREATE
- DML
- INSERT
- INSERT INTO 테이블명(컬럼) VALUES (추가값)
- UPDATE
- UPDATE 테이블명 SET 변경식 WHERE 조건
- DELETE
- DELETE FROM 테이블명 WHERE 조건
- INSERT
- DCL
- GRANT TO
- REVOKE FROM
- TCL
- 데이터베이스 관리 시스템
- DBMS의 종류
- 계층형
- 네트워크형
- CODASYL DBTG모델
- 관계형
- 객체 지향형
- NoSQL
- NewSQL
- RDBMS + NoSQL
- DBMS의 종류
- 데이터베이스 설계
- 요구 분석
- 개념적 설계: ERD
- 논리적 설계: 정규화, 트랜잭션 인터페이스
- 물리적 설계: 성능, 반정규화
- 데이터 모델 개념
- 데이터 모델 표시해야 할 요소
- 구조
- 연산
- 제약조건
- 데이터 모델의 품질 기준(정완준최일활)
- 정확성
- 완전성
- 준거성
- 최신성
- 일관성
- 활용성
- 데이터 모델 표시해야 할 요소
- 데이터베이스의 이중화의 분류
- Eager 기법: 변경 즉시 반영
- Lazy 기법: 트랜잭션 완료 후 반영
- 데이터베이스 암호화 방식
- API
- Plug-in
- TDE(Transparent Data Encryption)
- 파일 암호화 방식
- 하드웨어 방식
- 파티셔닝
- 샤딩
- 하나의 거대한 DB나 네트워크 시스템을 여러 개의 작은 조각으로 나누어 분산 저장하여 관리
- 샤딩
- 클러스터
- 개념
- 디스크로부터 데이터를 읽어오는 시간을 줄이기 위해 디스크의 같은 위치에 저장시키는 방법
- 개념
- 인덱스
- 종류
- 클러스트 인덱스: 테이블 당 1개
- 넌클러스트 인덱스: 대략 240개
- 밀집 인덱스: 각각에 인덱스
- 희소 인덱스: 뜨문뜨문 인덱스
- 종류
- 관계 데이터 모델
- 릴레이션
- 구성
- 릴레이션 스키마
- 릴레이션 이름과 모든 속성의 이름으로 정의하는 논리적인 구조
- 릴레이션 인스턴스
- 릴레이션 스키마에 실제로 저장된 데이터의 집합
- 릴레이션 스키마
- 특징
- 튜플의 유일성
- 튜플의 무순서성
- 속성의 무순서성
- 속성의 원자성
- 구성
- 릴레이션
- 관계 데이터 언어(관계 대수, 관계 해석)
- 데이터베이스 무결성 종류
- 참조 무결성
- 참조 무결성 제약조건
- 제한
- 연쇄
- 널값
- 기본값
- 참조 무결성 제약조건
- 참조 무결성
- 옵티마이저
- 개념
- 사용자가 질의한 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 기법
- 트랜잭션 완료 후 반영
- Eager 기법
- 데이터베이스 백업 방식 - 트랜잭션 로그 백업
- 모든 SQL문을 기록한 로그를 기반으로 백업
- 데이터베이스 백업 방식 - 합성 백업
- 전체 백업 + 증분 백업
- 데이터베이스 암호화 방식 - TDE
- Transparent Data Encryption → DBMS 내장 모듈 사용해 암/복호화
- 샤딩
- 파티셔닝처럼 거대한 DB나 네트워크 시스템을 여러 개의 작은 조각으로 나누어 분산 저장 후 관리
- 분산 데이터 베이스
- 구성요소
- 분산 데이터베이스
- 분산 처리기
- 통신 네트워크
- 투명성 조건(위분할지중장병)
- 구성요소
- 병행제어 기법(로낙타다)
- 로킹, 2단계 로킹 규약
- 낙관적 병행 제어
- 트랜잭션 수행 시엔 검사X, 종료 후 일괄적으로 검사
- 타임스탬프
- 다중 버전 병행 제어
- 여러개의 타임스탬프로 비교
- 미디어 회복 기법
- ARIES 회복 기법: 알고리즘을 사용한다
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 정보보안 (0) | 2023.07.21 |
---|---|
[정보처리기사] 네트워크 (0) | 2023.07.21 |
[정보처리기사] 운영체제 (0) | 2023.07.21 |
[정보처리기사] 소프트웨어 구축 (2) (0) | 2023.07.21 |
[정보처리기사] 소프트웨어 구축 (1) (1) | 2023.07.21 |