Dico

정보처리기사 2020 필기 1,2회 41~60번 문제

정보처리기사 2020 필기 1,2회 41~60번 문제 해설
- 수제비 2020 정보처리기사 필기 도서와 수제비 카페 자료를 통해 작성

41,42,47,57,58. 데이터 언어

SQL 문법
분류설명명령어/유형
데이터 정의어
(DDL: Data Definition Language)
데이터를 정의하는 언어
데이터베이스 객체의 생성, 변경, 삭제
테이블이나 관계의 구조를 생성
대상: Domain, Schema, Table, View. Index
CREATE
ALTER
DROP
RENAME
TRUNCATE
데이터 조작어
(DML: Data Manipulation Language)
데이터베이스의 실제적인 조작을 위한 언어
데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어
테이블에 데이터를 검색, 삽입, 수정, 삭제하는 데 사용
SELECT
INSERT
UPDATE
DELETE
데이터 제어어
(DCL: Data Control Language)
데이터베이스 데이터의 제어 언어
데이터베이스 관리자가 데이터 보안, 무결성 유지, 병행 제어, 복구(회복)를 하기 위해 DBA가 사용하는 제어용 언어
데이터의 사용 권한을 관리하는 데 사용
기능: 데이터 보안, 무결성 유지, 회복, 병행수행제어
GRANT
REVOKE
COMMIT
ROLLBACK

43,56. 키(key)
데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성

키 종류
종류설명
기본 키
(Primary Key)
테이블의 각 튜플들을 고유하게 식별하는 컬럼
유일성과 최소성을 만족하는 후보키 중에서 대표성을 지닌 키
대체 키
(Alternate Key)
후보 키 중에서 기본 키로 선택되지 않은 키
후보 키
(Candidate Key)
릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 모두 만족하는 키
테이블에서 각 튜플들을 구별하는데 기준이 되는 컬럼
기본 키와 대체 키를 합친 키(기본 키⊆후보키, 대체 키⊆후보키)
슈퍼 키
(Super Key)
릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성을 만족하지 못하는 키
외래 키
(Foreign Key)
테이블 간의 참조 데이터 무결성을 위한 제약 조건
어떤 릴레이션에 속성된 속성 또는 집합이 다른 릴레이션의 기본키가 되는 키
연관 관계가 있는 다른 테이블의 기본 키를 참조하는 키
  • 유일성: 식별자에 의해 엔터티 타입 내에 모든 엔티티들이 유일하게 구분
  • 최소성: 최소한의 속성으로 식별자 구성

44,46. 데이터베이스 정규화(DB Normalization)
관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스
데이터의 중복을 제거, 삽입/삭제/갱신 이상을 제거하는 것이 핵심

  • 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 함
  • 데이터 삽입시 릴레이션을 재구성할 필요성을 줄임
  • 효과적인 검색 알고리즘 생성 가능
데이터베이스 정규화 단계
단계조건
1정규형(1NF)원자화. 원자값으로 구성
반복 속성/중복 제거가 필요함
2정규형(2NF)부분 함수 종족 제거 (완전 함수적 종속 관계)
3정규형(3NF)이행 함수 종속 제거
A→B이고 B→C일 떄, A→C를 만족하는 관계
보이스-코드 정규형(BCNF)결정자 함수 종족 제거
릴레이션 R의 모든 결정자가 후보키
4정규형(4NF)다치(다중 값) 종속성 제거
5정규형(5NF)조인 종속성 제거
  • 1NF → 2NF: 1NF를 만족하고 키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속 관계를 만족해야 한다.
  • 3NF → BCNF: 결정자가 후보키가 아닌 함수 종속 제거

이상 현상(Anomaly)

  • 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상
  • 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
현상설명
삽입 이상
(Insertion Anomaly)
데이터를 삽입하려면 불필요한 데이터도 함께 삽입해야만 하는 현상
삭제 이상
(Deletion Anomaly)
한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상
갱신 이상
(Update Anomaly)
중복된 데이터 중 일부만 수정되어 데이터 불일치/모순이 발생하는 현상

45,59. 데이터베이스 무결성(Database Itegrity)

데이터베이스에 저장된 데이터 값과 그것이 표현하는 실제 값이 일치하는 정확성을 의미
권한이 있는 사용자로부터 데이터베이스를 보호

데이터베이스 무결성 종류
종류설명요소
개체 무결성기본키에 속해 있는 Attribute는 NULL이나 중복값을 가질 수 없다.
한 엔티티에서 같은 기본키(PK)를 가질 수 없거나, 기본키의 속성이 NULL을 허용할 수 없음
기본 키
(primary Key)
유니크 인덱스
(Unique Index)
참조 무결성릴레이션은 참조할 수 없는 외래 키 값을 가질 수 없다.
외래 키 값은 참조 릴레이션의 기본 키 값과 동일해야 한다.
외래 키가 잠조하는 다른 개체의 기본키에 해당하는 값이 기본 키 값이거나 NULL이어야 함
- CASECADE: 참조 무결성을 유지하기 위해 DROP문에서 부모 테이블의 항목 값을 삭제할 경우 자동적으로 자식 테이블의 해당 레코드를 삭제하기 위한 옵션
외래 키
(Foreign Key)
속성 무결성속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 함체크(CHECK)
NULL / NOT NULL
기본값(DEFAULT)
사용자 무결성사용자의 의미적 요구사항을 준수해야 함트리거(Trigger)
사용자 정의 데이터 타입(User Defined Data Type)
키 무결성한 릴레이션에 같은 키 값을 가진 튜플들을 허용할 수 없음유니크(Unique)

48. 절차형 SQL

용어
개념설명
트리거
(Trigger)
데이터베이스가 미리 정해 놓은 조건이 충족되거나, 특정 테이블에 삽입, 갱신, 삭제 등의 이벤트가 발생하면 DBMS에서 자동으로 실행되도록 구현된 프로그램
이벤트
(Event)
특정 시간에 특정한 쿼리, 프로시저, 함수 등을 실행시키는 기능
DBMS
(Database Management System)
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
데이터 무결성데이터베이스에 저장된 데이터 값과 그것이 표현하는 실제 값이 일치하는 정확성
사용자 정의 함수
(User-Defined Function)
사용자가 직접 함수를 정의하여 사용할 수 있는 기능
프로시저
(Procedure)
DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하는 쿼리의 집합

49. 데이터 모델링 수행 절차
요구조건 분석 단계 > 개념적 설계 단게 > 논리적 설계 단계 > 물리적 설계 단계 > 구현 단계

개념적 모델링

  • 개념: 업무 요건을 충족하기 위해서 주제 영역과 핵심 데이터 집합, 핵심 데이터 집합 간의 관계를 정의하는 상위 수준의 개략적 데이터 설계 작업
  • ERD(Entity Relationship Diagram) 작성: 주제 영역 도출, 핵심 데이터 집합 선정(Entity), 관계 설정(Cardinality), 핵심 속성 정의(Attribute), 식별자 정의(Identifier)
  • 개체-관계 모델 설정(Entity-Relationship Model)

논리적 모델링

  • 개념: 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 절차
  • 주요 Task: 엔티티 타입 도출, 관계 도출, 식별자 도출, 속성 도출, 세부사항 도출, 정규화, 통합/분할, 데이터 모델 검증
논리적 설계(Logical Design) 단계
단계설명
논리적 데이터 모델로 변화DBMS 독립적인 개념적 스키마(개념적 구조)를 목표 DBMS에 맞는 논리적 데이터 모델(관계/계층/네트워크/객체지향모델)로 변환하는 것
논리적 데이터베이스 구조로 매핑(Mapping)
논리 스키마(테이블) 생성 및 정규화 적용
트랜잭션 인터페이스 설계트랜잭션의 전체적인 골격(Skeleton)을 개발하고 인터페이스를 정의
스키마의 평가 및 정제정량적 정보와 성능 평가 기준에 따라 평가 및 정제
- 정략적 정보: 데이터의 양, 처리 빈도수, 처리 작업량
- 성능 평가기준: 논리적 레코드 접근, 데이터의 전송량, 데이터베이스의 크기 등

물리적 모델링

  • 개념: 논리 데이터 모델을 특정 DBMS에 맞는 물리적인 스키마를 만드는 일련의 과정
  • 주요 Task: Entity별 Table로의 전환, 식별자의 Primary Key 정의, 속성의 컬럼 전환, 관계의 컬럼 전환, 수퍼타입/서브타입 모델 전환, 성능을 고려한 반정규화

50. 개체-관계(E-R) 모델
현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델

E-R 다이어그램 기호
구성기호
개체□ 사각형
관계◇ 마름모
속성○ 타원
관계-속성 연결― 선
다중 값 속성◎ 이중타원

51. 데이터베이스 동시성 제어(병행제어)
여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 지원하는 기법

데이터베이스 동시성 제어 기법
기법설명
로킹(Locking) 기법트랜잭션이 사용하는 데이터 항목에 대하여 잠금(Lock)을 설정한 트랜잭션이 해제(unlock)할 때까지 독점적으로 사용할 수 있게 상호배제 기능을 제공하는 기법
- 로킹 단위: 한꺼번에 로킹할 수 있는 객체의 크기. 로킹의 대상이 되는 객체의 크기. 데이터베이스, 파일, 레코드 등
한 트랜잭션이 어떤 데이터에 대해서 액세스하는 동안 다른 트랜잭션 역시 이 데이터에 접근하기 위해서는 Lock을 소유하고 있어야만 액세스할 수 있도록 하는 방법
로킹 단위가 작을수록 병행 수준이 뛰어나고 데이터베이스 공유도가 증가하지만 관리가 어렵고 오버헤드가 증가함
2단계 로킹
(2PL: 2 Phase Locking)
모든 트랜잭션들이 잠금(Lock)과 해제(unlock) 연산을 확장 단계와 수축 단계로 구분하여 수행하는 기법
타임스탬프 오더링
(Timestamp Ordering)
시스템에서 생성하는 고유 번호인 시간스탬프를 트랜잭션에 부여하는 것으로 트랜잭션 간의 순서를 미리 선택하고 동시성 제어의 기준으로 사용하는 기법
낙관적 검증트랜잭션이 어떠한 검증도 수행하지 않고, 일단 트랜잭션을 수행하고 트랜잭션 종료시 검증을 수행하여 데이터베이스에 반영하는 기법
다중버전 동시성 제어
(MVCC: Multi Version Concurrency Control)
트랜잭션의 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교하여 직렬 가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법

52. 뷰(View)

  • 기본 테이블로부터 유도된 가상 테이블: 기본 테이블과 같은 형태의 구조. 물리적으로 구현되어 있지 않음
  • 데이터의 논리적 독립성을 제공
  • 사용자 데이터 관리가 용이하고 명령문이 간단해짐
  • 데이터를 안전하게 보호하는 효율적인 기법. 데이터 보안 용이
  • CREATE 로 생성하고 DROP 으로 제거
  • 뷰 위에 또 다른 뷰 정의 가능
  • 뷰에 대한 조작에서 삽입, 갱신, 삭제 연산에 제약 있음
  • 뷰가 정의된 기본 테이블이 제거되면 뷰도 자동적으로 제거됨

53,54. 논리데이터베이스 설계

관계 데이터 모델(Relation Data Model)

  • 실세계 데이터를 행과 열로 구성된 테이블 형태로 구성된 데이터 모델
구성 요소
구성요소설명
릴레이션행(Row)과 열(Column)로 구성된 테이블
튜플
(Tuple)
릴레이션의 행(Row)에 해당되는 요소
하나의 레코드를 나타내는 행(Row)
속성
(Attribute)
릴레이션의 열(Column)에 해당되는 요소
테이블의 열(Column). 테이블에서의 필드
카디널리티
(Cardinality)
튜플(Row)의 수
기수라고도 함
차수
(Degree)
속성(Attribute)의 수
스키마
(Schema)
릴레이션이 어떻게 구성되는지, 어떤 정보를 담고 있는지에 대한 기본적인 구조
인스턴스
(Instance)
정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합
도메인
(Domain)
속성이 취할 수 있는 값
하나의 속성(Attribute)이 취할 수 있는 같은 타입의 모든 원자 값들의 집합

관계 데이터 언어 - 관계대수

  • 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는 가를 기술하는 절차적 정형언어
  • 주어진 릴레이션 조작을 위한 연산의 집합
  • 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시
  • 일반 집합 연산과 순수 관계 연산으로 구분
순수 관계 연산자
연산자기호표현설명
셀렉트
(Select)
σσ조건(R)릴레이션 R에서 조건을 만족하는 튜플 반환
프로젝트
(Project)
ππ속성리스트(R)릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환
조인
(Join)
R⋈S공통 속성을 이용해 R와 S의 튜플들을 연결해 만들어진 튜플 반환
디비전
(Division)
÷R÷S릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환

55. 분산 데이터베이스(Distributed Database)

투명성(Transparency)
투명성설명
위치 투명성
(Location Transparency)
사용자나 응용 프로그램이 접근할 데이터의 물리적 위치(실제 위치)를 알아야 할 필요가 없는 성질
복제 투명성
(Replication Transparency)
사용자나 응용 프로그램이 접근할 데이터가 물리적으로 여러 곳에 복제/중복되어 있는지의 여부를 알 필요가 없는 성질
병행 투명성
(Concurrency Transparency)
여러 사용자나 응용 프로그램이 동시에 분산 데이터베이스에 대한 트랜잭션을 수행하는 경우에도 결과에 이상이 발생하지 않는 성질
로팅(Locking), 타임 스탬프(Time Stamp) 순서 기법 이용
분할 투명성
(Fragmentation Transparency)
사용자가 하나의 논리적인 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 장소에 저장되어 있음을 알 필요가 없는 성질
장애 투명성
(Failure Transparency)
데이터베이스가 분산되어 있는 각 지역의 시스템이나 통신망에 이상이 생기더라도, 데이터의 무결성을 보존할 수 있는 성질
2PC(Phase Commit) 활용

60. 트랜잭션(Transaction)
하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위

특성
특징설명주요기법
Atomicity
원자성)
트랜잭션 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 함
분해가 불가능한 작업의 최소 단위
연산 전체가 성공 또는 실패(All or Nothing)
하나라도 실패할 경우 전체가 취소되어야 함
Commit
Rollback
회복성 보장
Consistency
(일관성)
트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 보존함
무결성 제약조건
동시성 제어
Isolation
(격리성)
트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근할 수 없음Read Uncommit
Read Commit
Phantom Read
Serializable
Durability
(영속성)
성공적으로 완료된 트랜잭션의 결과는 시스템이 고장 나더라도 영구적/영속적으로 반영되어야 함회복 기법
상태 변화
상태설명
활동 상태
(Active)
초기 상태
트랜잭션이 실행 중일 때 가지는 상태
부분완료 상태
(Partially Committed)
마지막 명령문이 실행된 후에 가지는 상태
완료 상태
(Committed)
트랜잭션이 성공적으로 완료된 후 가지는 상태
부분완료 상태에서 Commit이 실행된 후 가지는 상태
실패 상태
(Failed)
정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태
철회 상태
(Aborted)
트랜잭션이 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태
실패 상태에서 Rollback이 실행된 후 가지는 상태