정보처리기사

[정보처리기사 필기] 1과목 데이터베이스

반응형

정보처리기사 필기 정리


  1. 데이터베이스
  2. 전자계산기구조
  3. 운영체제
  4. 소프트웨어공학
  5. 데이터통신

1과목 - 데이터베이스

1) 데이터베이스의 개요
  • 자료 : 현실 세계로부터 단순한 관찰이나 측정을 통해 수집된 사실이나 값
  • 정보 : 자료를 처리하여 얻은 결과로써 의사 결정을 위한 값

정보 시스템

한 조직체의 데이터를 바탕으로 의사결정에 필요한 정보 추출 및 생성하는 시스템

자료 처리 시스템

정보 시스템이 사용하는 데이터를 처리하는 시스템

자료 처리 시스템의 종류

  • 일괄 처리 시스템
  • 온라인 처리 시스템
  • 분산 처리 시스템

데이터베이스의 정의

  • 통합
  • 저장
  • 운영
  • 공용

데이터베이스의 특성 - 동적으로 삽입,삭제 ,갱신

  • 실시간 접근성
  • 내용 참조
  • 동시 공유
  • 계속적 변화

DBMS - 데이터베이스 운용 소프트웨어

종속성과 중복성의 문제 해결을 위해 제안된 시스템

모든 응용 프로그램들이 데이터베이스 공유 관리

DBMS 필수 기능

  • 정의 - 생성, 제거, 수정
  • 조작 - 검색, 삽입, 삭제, 갱신
  • 제어 - 무결성, 보안 및 권한 검사, 병행 제어

DBMS 장단점

장점단점
중복 및 종속성 최소화예비와 회복 기법 어려움
공유전문가 부족
무결성 및 일관성 유지시스템 복잡
보안 보장 용이전산화 비용 증가

스키마 - 데이터베이스 구조 정의 (데이터 사전에 저장, = 메타 데이터)

  • 외부 : 사용자나 프로그래머가 접근할 수 있는 정의 기술
  • 개념 : 범기관적 입장 정의 / 관계와 제약 조건 나타냄 / 접근 권한, 보안 및 무결성 규칙 명세 있음
  • 내부 : 데이터 항목의 표현 방법, 물리적 순서 나타냄

데이터베이스 언어

  • 데이터 정의어(DDL) : 논리적, 물리적 구조 정의
  • 데이터 조작어(DML) : 사용자와 시스템 간 인터페이스 제공
  • 데이터 제어어(DCL) : 데이터 보호, 무결성 유지, 데이터 회복 및 병행

데이터베이스 관리자(DBA)

  • 데이터베이스 구축
  • DBMS 관리
  • 사용자 요구 정보 결정 및 효율적 관리
  • 백업 및 회복 전략 정의
2) 데이터 모델링 및 설계

데이터 모델

현실 세계를 데이터베이스에 표현하는 중간 과정

데이터베이스 구조를 표현하기 위해 사용되는 도구

데이터 모델의 구성 요소

  • 데이터 구조 : 구조 및 정적 성질 표현
  • 연산 : 인스턴스에 적용 가능한 연산 명세와 조작 기법 표현
  • 제약 조건 : 데이터의 논리적 제한 명시 및 조작의 규칙

데이터 모델 종류

1) 개념적 데이터 모델

개체 타입과 관계를 이용해 현실 세계 표현(간략화, 추상화)

E-R모델 - 대표적 개념적 모델

E-R 다이어그램

  • 사각형 - 개체
  • 마름모 - 관계
  • 타원 - 속성
  • 밑줄 타원 - 기본키 속성
  • 선,링크 - 연결

2) 논리적 데이터 모델

  • 관계형 - 테이블
  • 계층형 - 트리
  • 네트워크형 - 그래프 (오너-멤버 관계)
  • 객체지향형 - 객체

데이터베이스 설계

현실 세계 > 요구조건 분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 데이터베이스 구현

요구 분석 : 요구조건 명세서 작성

개념적 설계 : 독립적 개념 스키마 설계, 트랜잭션 모델링 병행 수행, ER 다이어그램 작성

논리적 설계 : 종속적 논리 스키마 설계, 트렌잭션 인터페이스 설계, 스키마 정제

물리적 설계 : 종속적 물리 구조 설계, 트랜잭션 세부설계, 접근 경로 설계

구현 : DDL로 스키마 작성, 트랜잭션 작성

정규화

잘못 설계된 관계형 스키마를 더 작은 속성으로 쪼개서 바람직한 스키마 만드는 과정

불필요한 데이터 중복 방지, 정보 검색 용이

정규화의 목적

  • 데이터 구조 안정성 최대화
  • 중복 데이터 최소화
  • 수정 삭제시 이상 현상 최소화
  • 테이블 불일치 위험 간소화

이상( Anomaly)

  • 삽입 이상 : 불필요한 데이터가 함께 삽입되는 현상
  • 삭제 이상 : 튜플을 삭제하다가 연쇄 삭제로 정보 손실 발생 현상
  • 갱신 이상 : 부분 수정으로 정보의 모순성 발생 현상

정규화 과정

1차 - 도메인이 원자값

2차 : 부분적 함수 종속 제거

3차 : 이행적 함수 종속 제거

BCNF : 결정자면서 후보키가 아닌 함수 종속 제거

4차 : 다치 종속 제거

5차 조인 종속성 이용

Y가 X에 함수 종속일 때 표기

종속자를 뒤에다가 표시 ( X(결정자) -> Y(종속자) )

3) 관계형 데이터베이스 모델

관계형 데이터베이스 모델

개체나 관계를 릴레이션(테이블)로 표현하는 것

모델 용어

  • 표 - 릴레이션
  • 행, 레코드, 줄 - 튜플
  • 열, 필드, 차수 - 속성

튜플

행과 레코드를 말함

튜플의 수 : 카디널리티

한 릴레이션에서 튜플은 모두 상이하고, 튜플 간 순서 없음

속성

열, 항목, 필드를 말함

속성의 수 : 차수

한 릴레이션의 속성은 원자값, 속성 간 순서 없음

도메인

속성이 취할 수 있는 값들의 집합

릴레이션의 특징

  • 튜플의 유일성(중복X)
  • 튜플의 무순서성
  • 속성의 무순서성
  • 속성의 원자성(유일한 값)

키의 종류

  1. 슈퍼키
    • 두 개 이상의 속성으로 구성된 키
    • 유일성O 최소성X
  2. 후보키
    • 유일하게 식별할 수 있는 하나 또는 그 이상의 속성 집합
    • 유일성O, 최소성O
  3. 기본키
    • 후보키 중에서 ‘대표’로 선정된 키
    • NULL값 못 가짐 (NULL : 아직 모르는 값. 0이나 공백이 아님)
  4. 대체키
    • 후보키가 둘 이상일 때, 기본키 지정하고 남은 키
  5. 외래키
    • 다른 테이블의 기본키로 사용되는 속성
    • 참조하는 테이블의 기본키 또는 NULL값

무결성

  1. 개체 무결성 - 기본키의 값은 널 값이나 중복값 가질 수 없음
  2. 참조 무결성 - 참조할 수 없는 외래키 값을 가질 수 없음
  3. 도메인 무결성 - 각 속성 값을 정해진 도메인에 속한 값만 허용

관계 데이터 연산

  1. 관계 대수(절차 - how)
    • 어떻게 유도하는지 절차적 기술
    • 일반 집합 연산(합,차,교집합)과 순수 관계 연산(Select<튜플-수평>, Project<속성-수직>, Join, Division)
    • 연산 순서 명시
  2. 관계 해석(비절차 - what)
    • 무엇을 정의하는지 비절차적 기술
    • Predicate Calculus 기반
    • 튜플 관계, 도메인 관계 해석
4) SQL

SQL

관계형 데이터베이스 표준 질의어

종류 : DDL(정의), DML(조작), DCL(제어)

  1. DDL (데이터 정의어)

    • 데이터베이스의 정의/변경/삭제에 사용
    • 논리적/물리적 데이터 구조 정의, 구조 간 사상(매핑) 정의
    • 데이터 사전에 저장

    정의 - CREATE TABLE

    변경- ALTER TABLE

    삭제 - DROP TABLE

  2. DML (데이터 조작어)

    • 데이터의 검색/삽입/삭제/변경에 사용
    • 사용자와 DBMS 간 인터페이스 제공

    검색 - SELECT (FROM ~ WHERE ~)

    삽입 - INSERT (INTO ~ VALUES ~)

    삭제 - DELETE (FROM ~ WHERE ~)

    변경 - UPDATE (SET ~ WHERE ~)

    오름차순 - ASC

    내림차순 - DESC

    모든 튜플 검색 - ALL

    중복 생략 - DISTINCT

    그룹 탐색 조건 - GROUB BY ~ HAVING

  3. DCL (데이터 제어어)

    • 데이터 제어 정의 및 기술 사용
    • 데이터 보호
    • 무결성 유지
    • 복구 및 병행 제어

    COMMIT - 명령어 수행 완료

    ROLLBAK - 수행 실패 알리고 다시 원상복구

    GRANT - 사용 권한 부여

    REVOKE - 사용 권한 취소

내장 SQL(삽입 SQL)

응용 프로그램에 삽입되어 사용되는 SQL

호스트 실행문이 나타나는 곳은 어디든 사용 가능

EXEC SQL을 붙여 다른 실행문과 구분

호스트 변수는 콜론(:)을 앞에 붙임

내장 SQL문 호스트 변수 데이터 타입과 데이터베이스 필드 SQL 데이터 타입 일치해야 함

뷰(View)

접근이 허용된 자료만 보여주기 위한 기본 테이블에서 유도되는 가상 테이블

뷰의 특징

  • 생성 CREATE, 검색 SELECT, 제거 DROP문 이용
  • 뷰를 이용해 또 다른 뷰 생성 가능
  • 뷰를 제거할 때, 이 뷰를 기초로 정의된 다른 뷰도 모두 삭제
  • 뷰 위에 또 다른 뷰 정의 가능
  • DBA는 보안 측면으로 뷰 활용

RESTRICT - 삭제하려는 뷰를 다른 곳에서 참조하고 있으면 삭제를 취소하라는 의미

뷰의 장단점

1) 장점

  • 논리적 데이터 독립성 제공
  • 사용자 데이터 관리 편의성 제공
  • 접근 제어를 통한 보안 제공

2) 단점

  • ALTER VIEW문으로 뷰 정의 변경 불가
  • 삽입, 갱신, 삭제 연산에 제약이 따름

시스템 카탈로그( = 데이터 사전)

시스템이 필요로 하는 여러가지 객체 정보를 포함하고 있는 시스템 데이터베이스

시스템 카탈로그 특징

  • SQL문을 사용해 내부 검색 가능
  • 사용자가 직접 갱신 불가능, SQL문으로 여러가지 변화를 주어야 시스템이 자동으로 갱신
5) 데이터베이스의 고급 기능

트랜잭션

하나의 논리적 기능을 수행하기 위한 작업 단위

데이터베이스 응용에서 하나의 ‘논리적 기능’을 수행하는 연산의 집합

트랜잭션 특성

  • 원자성

    완전하게 수행 완료되지 않으면, 전혀 수행되지 않아야 함

  • 일관성

    시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함

  • 격리성(고립성)

    트랜잭션 실행 시, 다른 트랜잭션의 간섭을 받지 않아야 함

  • 영속성(지속성)

    트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨

트랜잭션의 연산 - ‘원자성’

  • Commit 연산

    트랜잭션 실행이 성공적 종료됨을 선언

  • Rollback 연산

    트랜잭션 실행이 실패하였음을 선언

병행 제어

동시에 수행되는 트랜잭션들을 일관성 있게 처리하기 위해 제어하는 것

병행 제어 목적

  • 데이터베이스 공유 최대화
  • 데이터베이스 일관성 최대화
  • 시스템 활용도 최대화
  • 사용자에 대한 응답시간 최소화

병행 수행 문제점

  • 갱신 분실
  • 비완료 의존성
  • 모순성
  • 연쇄 복귀

로킹

하나의 트랜잭션이 데이터를 액세스하는 동안, 다른 트랜잭션이 그 데이터 항목을 엑세스 하지 못하도록 하는 병행제어 기법

로킹 단위가 커지면?

로크 수 적어서 관리 용이

병행성 수준 낮아짐

로킹 단위

로킹의 대상이 되는 객체의 크기

데이터베이스, 파일, 레코드가 해당

2단계 로킹

  • 직렬성 보장
  • 확장과 축소 두 단계가 존재
  • 로크 요청과 해제 요청을 두 단계로 실시

보안

권한이 없는 사용자로부터 데이터베이스를 보호하는 것

암호화 과정

평문 -> (암호키를 이용한 암호화) -> 암호문 -> (복호키를 이용한 복호화) -> 평문

암호화 기법

  • 비밀키 암호화 기법

    암호키=복호키

    대표 방식 : DES

  • 공개키 암호화 기법

    암호키는 복호키가 X, 암호키(공중키)와 해독키를 별도로 사용

    대표 방식 : RSA

권한 부여 기법

  • GRANT

    데이터베이스 사용자에게 사용 권한 부여

    GRANT 권한 ON 데이터 객체 TO 사용자 [WITH GRANT OPTION];

    WITH GRANT OPTION : 사용자 권한을 다른 사용자에게 다시 부여할 수 있는 권한

  • REVOKE

    데이터베이스 사용자로부터 사용 권한 취소

    REVOKE [GRAND OPTION FOR] 권한 ON 데이터 객체 FROM 사용자 [CASCADE];

    GRAND OPTION FOR : 다른 사용자에게 권한을 부여할 수 있는 권한 취소

    CASCADE : 다른 사용자에게 부여한 권한도 연쇄 취소

분산 데이터베이스

네트워크를 통해 연결된 여러 개의 컴퓨터에 분산된 데이터베이스

분산 데이터베이스 목표

  • 위치 투명성 - 위치에 관계없이 사용을 보장
  • 중복 투명성 - 중복 개수나 사실 모르고도 데이터 처리 가능
  • 병행 투명성 - 다수의 트랜잭션들이 동시에 실현되도 결과는 영향 안 받음
  • 장애 투명성 - 여러 장애에도 트랜잭션을 정확하게 처리

분산 데이터베이스 장단점

  1. 장점
    • 질의 처리 시간 단축
    • 데이터 공유성 향상
    • 신뢰성 및 가용성 향상
    • 점진적 시스템 용량 확장 용이
  2. 단점
    • 소프트웨어 개발 비용 증가
    • 오류 발생 가능성 증가
6) 자료 구조

자료구조는 선형구조와 비선형 구조로 나누어짐

  1. 선형 구조 1) 리스트

    • 선형 리스트
      • 배열처럼 연속되는 기억 장소에 저장되는 리스트
      • 가장 간단한 데이터 구조 중 하나 이며, 데이터 추가 삭제 불편
    • 연결 리스트
      • 노드의 포인터 부분으로 서로 연결시킨 리스트
      • 연속적인 기억공간이 없어도 저장 가능하며 노드의 삽입과 삭제가 용이
      • 포인터를 위한 추가 공간이 필요해 기억공간 많이 소요

    2) 스택

    리스트의 한쪽 끝에서만 자료의 삽입(push)과 삭제(pop)가 이루어지는 자료 구조

    후입선출(LIFO) : 나중에 삽입된 자료가 가장 먼저 삭제

    가장 나중에 삽입된 자료의 위치 : top / 가장 먼저 삽입된 자료의 위치 : Bottom

    • 스택의 응용 분야
      • 인터럽트 처리
      • 수식의 계산
      • 서브루틴의 복귀 번지 저장
      • 주소지정 방식

    3) 큐

    자료의 삽입 작업은 선형 리스트의 한쪽 끝, 제거 작업은 다른 쪽 끝에서 수행

    선입선출(FIFO) : 가장 먼저 삽입된 자료가 가장 먼저 삭제

    • 큐의 응용 분야
      • 운영체제의 작업 스케줄링

    4) 데크

    자료의 삽입과 삭제가 리스트 양쪽 끝에서 이루어지므로 두 개의 포인트를 사용

    스택과 큐를 복합한 형태

    입력 제한 데크 : Scroll

    출력 제한 데크 : Shelf

  2. 비선형 구조 ​

    1) 트리

    그래프의 특수한 형태로, 노드와 가지를 이용해 사이클을 이루지 않도록 구성함

    • 노드 : 트리 기본 구성 요소
    • 근노드(루트노드) : 가장 상위에 위치한 노드
    • 단말노드 : 트리의 제일 마지막에 위치한 노드(차수=0)
    • 트리의 차수 : 트리의 노드 중 가장 큰 차수(자식 노드가 가장 많은 노드의 차수)
    • 레벨 : 근노드 기준 특정 노드까지의 경로 길이
    • 깊이 : 트리의 최대 레벨

    이진트리란?

    차수가 2 이하인 노드들로만 구성된 트리

    이진 트리 레벨 k에서 최대 노드의 수 : 2^(k-1)

    깊이가 i인 이진 트리의 최대 노드의 수 : 2^i - 1

    이진 트리 운행법(루트 기준)

    • 전위 운행 (Root L R)
    • 중위 운행 (L Root R)
    • 후위 운행 (L R Root)

    수식 표기법

    • 전위 표기법 (+AB)
    • 중위 표기법 (A+B)
    • 후위 표기법 (AB+) ​

    2) 그래프

    정점과 간선의 집합으로 이루어진 자료구조

    신장 트리 : 간선들이 사이클을 이루지 않도록 정점들을 연결시킨 그래프

    ​ 신장 트리 종류

    • 방향/무방향 그래프
    • 완전 그래프
    • 부 그래프

  3. 정렬

    데이터를 어떤 기준 항목에 따라 순서대로 배열하는 것

    정렬 알고리즘 (내부 정렬, 외부 정렬)

    선택 시 고려사항

    • 데이터 양
    • 초기 데이터 배열 상태
    • 키 값 분포 상태
    • 컴퓨터 시스템의 특성

    내부 정렬

    주기억 장치에서 이루어짐

    • 삽입 정렬
    • 셸 정렬
    • 버블 정렬
    • 선택 정렬
    • 퀵 정렬
    • 히프 정렬
    • 2 Way 병합 정렬
    • 기수 정렬

    외부 정렬

    보조기억 장치에서 이루어짐

    • 밸런스 병합 정렬

    • 캐스캐이드 병합 정렬

    • 폴리파즈 병합 정렬

    • 오실레이팅 병합 정렬

  4. 검색과 해싱 1) 검색

    기억공간 내 기억된 자료 중에서 주어진 조건을 만족하는 자료를 찾는 것

    검색 종류

    • 선형 검색(순차)
    • 이분 검색(제어)
    • 피보나치 검색(제어)
    • 보간 검색(제어) ​

    2) 해싱

    해싱 함수를 이용해 레코드 키에 대한 해시 테이블 내의 홈 주소를 계산하여 주어진 레코드에 접근하는 방식

    직접 접근 파일을 구성할 때 사용

    속도는 가장 빠르지만 충돌 현상 시 오버플로우 해결 부담 가중, 많은 기억공간 요구

    해싱 함수 종류

    • 제산 방법
    • 중간 제곱 방법
    • 중첩 방법(XOR)
    • 기수 변환 방법
    • 무작위 방법
    • 계수 분석 방법 ​
  5. 인덱스와 파일 편성 ​ 1) 인덱스

    인덱스를 통해 레코드 빠르게 접근 가능

    데이터베이스의 물리적 구조와 밀접한 관계

    레코드 삽입/삭제가 자주 발생 시, 인덱스 개수를 최소화하는 것이 효율적

    인덱스 구성 방법

    • B 트리 : 모든 노드(근노드,단말노드 제외)가 최소 m/2, 최대 m개 서브트리 가지는 구조
    • B+ 트리 : B트리 추가, 삭제 시 발생하는 노드 분열 및 합병 연상 과정 줄이는 구조

    트라이 색인

    키 탐색을 위해 키를 구성하는 문자나 숫자 자체의 순서로 키 값을 구성하는 구조

    2) 파일 편성

    • 순차 파일

      논리적 순서에 따라 물리적으로 연속된 위치에 순차적으로 기록하는 방식 처리 속도 빠르고, 공간 효율이 좋음

      검색 효율이 낮음

    • 색인 순차 파일

      레코드를 키 값 순으로 정렬하여 기록하고 키 항목만을 모든 색읜 구성하는 방식

      색인 탐색 후 색인이 가리키는 포인터를 이용해 직접 참조

      기억 장소의 낭비 초래하며 속도가 느림

      • 구성 : 기본 영역, 색인 영역(트랙/실린더/마스터), 오버플로우 영역(실린더,독립)
    • VSAM 파일

      동적 인덱스 방법을 이용한 색인 순차 파일

      기본 영역과 오버플로우 영역 구분X

      레코드 삭제 시 그 공간 재사용 가능

    • 직접 파일

      특정 레코드에 접근하기 위해 해싱 함수를 사용하는 방식

      속도가 빠르고 랜덤 처리에 적합

      기억공간 효율 떨어짐

    • 역 파일

      파일, 데이터베이스에서 레코드를 빨리 검색하기 위해 별도 인덱스 파일 생성 방식

      데이터 파일에 접근X

      인덱스 각 항목 길이가 가변적


반응형