정보처리기사

정보처리기사 필기 3과목

Daekyue 2023. 3. 29. 18:17

키 종류 : 기본 키(테이블의 각 튜플을 고유하게 식별하는 컬럼), 대체키(후보 키 중 기본 키로 선택되지 않은 키)

후보키(테이블에서 각 튜플들을 구별하는데 기준이 되는 컬럼, 기본 키 + 대체키), 외래키(한 컬럼이 다른것의 기본키)

슈퍼키(릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족 최소성은X)

 

(View) : 논리 테이블, 하나의 물리 테이블로부터 생성 가능, 다수의 테이블 또는 다른 뷰를 이용해 생성 가능

조인 기능 활용 가능, 장점(논리적 독립성 제공, 데이터 조작 연산 간소화, 보안 기능 제공)

단점(뷰 자체 인덱스 불가, 뷰 변경 불가, 데이터 변경 제약 존재)

 

파티셔닝 종류:범위 분할(분할 키값이 범위 내 있는지 여부로 구분),해시 분할(해시 값에 따라 파티션 포함 여부 결정), 목록 분할(값 목록에 파티션을 할당, 분할 키 값을 목록에 비추어 파티션을 선택하는 기법), 조합 분할(분할 2개 이상), 라운드 로빈(라운드 로빈으로 회전하면서 새로운 행을 파티션에 할당하는 방식, 기본키가 반드시 필요하진 않음)

 

인덱스 : 테이블 안에서 데이터 번호, 자동으로 생성되지 않음, 기본 키 컬럼은 자동으로 인덱스 생성

종류 : 순서 인덱스, 해시 인덱스, 비트맵 인덱스, 함수기반 인덱스, 단일 인덱스, 결합 인덱스, 클러스터드 인덱스

 

- 순위 함수

Rank : 특정 항목에 대한 순위를 구하는 함수, 동일 순위 레코드 존재 시 후 순위는 넘어감 ex) 11145

DENSE_RANK : 레코드의 순위를 계산하는 함수, 동일 순위 레코드가 존재해도 후순위로 넘어가지 않음ex)1 1 1 2 3

ROW_NUMBER : 레코드의 순위를 계산하는 함수, 동일 순위 값이 존재해도 무시하고 연속번호 부여) 1 2 3 4 5

 

스키마

외부 스키마 : 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조, 서브 스키마라고도 불림

개념 스키마 : 데이터 베이스의 전채적인 논리적 구조, 객체간의 관계, 제약조건, 접근 권한, 무결성, 보안에 대해 정의

내부 스키마 : 물리적 저장장치의 관점에서 보는 데이터베이스 구조, 데이터 항목의 표현 방법, 내부 물리적 순서 표현

 

고립화 수준 종류

Read Uncommitted : 한 트랜잭션에서 연산(갱신) 중인 데이터(uncommited된거)를 다른 트랜잭션이 읽는 것을 허용

Read Committed : 연산이 완료될때까지 연산 대상 데이터에 대한 읽기를 제한하는 수준

Repeatable Read : 선행 트랜잭션이 특정 데이터를 읽을 때, 트랜잭션 종료 시까지 해당 데이터의 갱신 삭제 제한

Serializable Read : 선형 트랜잭션이 데이터를 순차적으로 읽을 때, 해당 데이터 영역 전체에 대한 접근을 제한

 

트랜잭션의 특징 : 원자성(트랜잭션을 구성하는 연산 전체가 모두 정상 실행 or 모두 취소되어야 하는 성질)

일관성(시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 하는 성질)

격리성 = 고립성 (동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질)

영속성 (성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장되어야 하는 성질)

 

병행제어 목적 : 데이터베이스의 공유 최대화, 시스템의 활용도 최대화, 데이터베이스의 일관성 유지, 응답시간 최소화

로킹 : 하나의 트랜잭션이 실행하는 동안 특정 데이터 항목에 대해서 다른 트랜잭션이 동시에 접근 못하도록 상호배제

데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있음, 한꺼번에 로킹할 수 있는 객체의 크기 = 로킹 단위

로킹 단위가 작아지면 데이터베이스 공유도 증가, 로킹 오베헤드 증가 커지면 병행성 수준이 낮아짐

 

- 트랜잭션(DB에서 하나의 논리적 기능을 수행하기 위한 작업의 단위, 한번에 모두 수행되어야 할 일련의 연산들)상태

Active(활동 상태) : 초기 상태, 트랜잭션이 실행 중 / Committed(완료 상태) : 트랜잭션이 성공적으로 완료된 후

Partially Committed(부분 완료 상태) : 마지막 명령문이 실행된 후, 모든 연산은 끝났지만 데이터베이스에 반영X

Aborted(철회 상태) : 트랜잭션이 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태, Rollback연산

-데이터 모델 절차

개념적 설계 : 사용자 요구에 대한 트랜잭션을 모델링 하는 단계 객체관계 다이어그램(E-R다이어그램)

논리적 설계 : 트랜잭션의 인터페이스를 설계, 논리적 스키마 설계, 스키마 평가 및 정제, 테이블 설계, 정규화

물리적 설계 : 물리적인 스키마를 만드는 단계, 객체 생성, 반 정규화 수행, 레코드 분석 및 설계, 접근 경로 설계

 

시스템 카탈로그

자료 사전(Data Dictionary), 저장된 정보 = 메타 데이터(Meta Data), 테이블로 구성되어 있어 SQL을 이용 내용검색

Insert, Delete, Update문 사용하여 시스템 카탈로그를 갱신하는 것은 허용X, DBMS가 스스로 생성하고 유지

사용자가 SQL문을 실행시켜 기본 테이블, , 인덱스 등 변화주면 시스템이 자동으로 갱신, 위치/중복 투명성 제공

 

데이터베이스 정규화 : 중복 데이터를 최소화해 테이블 불일치 위험을 최소화, 수정 삭제 시 이상 현상을 최소화함

데이터 구조의 안정성 최대화, 어떤 릴레이션이라도 데이터베이스 내에서 표현 가능케 만듬, 효과적인 검색 알고리즘

 

SQLDelete(테이블내의 튜플들만 삭제), DROP(테이블 자체를 삭제), DISTINCT(중복값제거), BETWEEN(이상,이하)

UNION ALL(모든 결과 값, 중복제거X)

 

-정규형 (원부이결다조)

1정규형 : 릴레이션에 속한 모든 속성의 도메인이 원자값으로만 구성 2정규형 : 부분 함수 종속 제거

3정규형 : 기본키가 아닌 모든 속성이 기본키에 이행적 함수종속이 되지 않으면

BCNF 정규형 : 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키이면

4정규형 : 다치 종속을 제거 5정규형 : 조인 종속을

문제ex) 함수 종속이 AB 이고 BC 일 때 AC인 관계를 제거하는 단계 : 2NF -> 3NF(3정규형 변환과정)

 

릴레이션 Degree(차수) : Cardinality(카디널리티) :

 

DDL(Data Define Language, 데이터 정의어) : 스키마, 도메인, 테이블, , 인덱스를 정의, 변경, 삭제할 때 사용

Create : 위의 것들을 정의 ALTER : 테이블에 대한 정의 변경 DROP : 위의 것들을 삭제

DML(Data Manipulation Language, 데이터 조작어) : 데이터베이스 사용자가 저장된 데이터를 실질적 처리할 때

SELECT : 테이블에서 조건에 맞는 튜플 검색 Insert : 새로운거 삽입 Delete : 조건에 맞는거 삭제 UPDATE : 수정

DCL(Data Control Language, 데이터 제어어) : 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의할 때

Commit : 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장, 데이터 베이스 조작 작업 완료됨을 알려줌

ROLLBACK : 작업이 비정상 종료시 원래 상태로 복구 GRANT : 사용자에게 권한 부여 REVOKE : 사용자 권한 취소

 

분산 데이터베이스 시스템 : 논리적으로는 하나의 시스템에 속하지만 물리적으로는 여러 개의 컴퓨터 사이트에 분산

단점 : 설계가 비교적 어렵고, 개발 비용, 처리비용이 증가 구성요소 : 분산 데이터베이스, 분산처리기, 통신 네트워크

 

함수종속 : X의 값에 의해 Y의 값이 달라질 경우 YX에 함수 종속이라 하고 영향을 준다는 의미로 XY로 표현