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


1장 데이터베이스의 개념


001 정보시스템


① 자료와 정보


· 자료(Data) : 현실 세계에서 관찰이나 측정을 통해 수집한 단순한 사실이나 결과값, 가공되지 않은 상태

· 정보(Information) : 의사 결정에 도움을 줄 수 있는 유용한 형태로, 자료를 가공(처리)해서 얻을 수 있는 결과


② 정보 시스템의 정의


· 조직체에 필요한 Data를 수집, 저장해 두었다가 필요 시에 처리해서 의사결정에 유용한 정보를 생성하고 분배하는 수단

· 사용하는 목적에 따라 경영 정보 시스템, 군사 정보 시스템, 인사 행정 정보 시스템, 의사 결정 지원 시스템 등으로 구분되어 사용


③ 자료 처리 시스템


정보 시스템이 사용할 자료를 처리하는 정보 시스템의 서브 시스템, 처리 형태에 따라 세 가지로 분류됨


- 일괄 처리 시스템

일괄 처리 시스템은 시스템의 효율성을 최대한 높이기 위해 일정 시간 또는 일정량의 데이터를 모아서 한 번에 처리하는 시스템


· 시스템 중심의 자료 처리 방법

· 반환 시간이 늦지만 하나의 작업이 모든 자원을 독점하므로 CPU 유효시간 감소

· 테이프와 같은 순차 접근 방법을 사용하는 업무에 적합

· 단위 시간당 처리하는 작어부가 많으므로 시스템 성능 높음

· 트랜잭션당 처리 비용 적음

· 급여 계산, 회계 마감 업무, 세무 처리, 수도/전기요금 처리, 연말 결산 등의 업무에 사용됨


- 온라인 실시간 처리 시스템(온라인 처리 시스템)

온라인 실시간 처리 시스템은 데이터 발생 즉시, 또는 데이터 처리 요구가 있는 즉시 처리하여 결과를 산출하도록 하는 방식


· 사용자 중심의 처리 방식

· 처리 시간 단축, 처리 비용 절감

· 우주선 운행, 레이더 추적기, 핵물리학 실험 및 데이터 수집, 은행의 On-Line 업무 등 시간에 제한을 두고 수행되어야 하는 작업에 사용


- 분산 처리 시스템

분산 처리 시스템은 지리적으로 분산되어 있는 여러 대의 컴퓨터(프로세서)를 통신 회선으로 연결하여 논리적으로 하나의 시스템을 사용하는 것처럼 운영하는 방식


· 각 단말기나 컴퓨터 시스템은 고유의 운영체제와 CPU, 메모리를 가지고 있음

· 시스템의 구축이나 운영이 복잡한 반면, 신뢰성이 높고 확장이 용이


※ 데이터웨어하우스(Data Warehouse)

데이터웨어하우스란 조직이나 기업체의 중심이 되는 주요 업무 시스템에서 추출되어 새로이 생성된 데이터베이스로서 의사결정지원 시스템을 지원하는 주체적, 통합적, 시간적 데이터의 집합체



002 데이터베이스의 개념


① 데이터베이스의 정의


· 통합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터의 모임

· 저장된 데이터(Stored Data) : 커뮤터가 접근할 수 있는 저장 매체에 저장된 자료

· 운영 데이터(Operational Data) : 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료

· 공용 데이터(Shared Data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료


② 데이터베이스의 특징


· 실시간 접근성(Real-Time Accessibility) : 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 함

· 계속적인 변화(Continuous Evolution) : 데이터베이스의 상태는 동적이다. 즉 새로운 데이터의 삽입(Insertion), 삭제(Deletion), 갱신(Update)으로 항상 최신의 데이터를 유지해야 함

· 동시 공용(Concurrent Sharing) : 데이터베이스는 서로 다른 목적을 가진 여러 응용자들을 위한 것이므로 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 함

· 내용에 의한 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조할 때, 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 찾음


③ 데이터베이스 시스템


- 데이터베이스 시스템의 정의

데이터베이스를 이용하여 자료를 저장하고 관리하여 정보를 얻어내는 데 필요한 커뮤터 중심의 시스템


- 데이터베이스 시스템의 구성 요소


· 데이터베이스

· 스키마

· DBMS(데이터베이스 관리 시스템)

· 데이터베이스 언어

· 데이터베이스 컴퓨터

· 데이터베이스 사용자



003 DBMS의 기능


① DBMS(DataBase Management System)의 정의


· 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어

· 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로, 모든 응용 프로그램들이 데이터베이스를 고용할 수 있도록 관리

· 데이터베이스의 구성, 접근 방법, 유지관리에 대한 모든 책임


② DBMS의 발전 배경


- 종래의 파일 처리 방식에서의 데이터 구성


· 처리 업무 하나하나마다 데이터 파일을 독립적으로 구성

· 같은 내용의 데이터가 서로 다른 업무의 파일에서 중복 저장되어 관리되는 데이터 중복성을 초래

· 응용 프로그램과 데이터 간의 상호 의존 관계에 따른 데이터 종속성을 초래


- 중복성으로 인한 문제점

· 일관성 : 중복된 데이터 간에 내용이 일치하지 않는 상황이 발생해 일관성 없어짐

· 보안성 : 중복되어 있는 모든 데이터에 동등한 보안수준을 유지하기 어려움

· 경제성 : 저장공간의 낭비와 동일한 데이터의 반복 작업으로 비용이 증가함

· 무결성 : 제어의 분산으로 데이터의 정확성을 유지할 수 없음


- 종속성으로 인한 문제점 : 응용 프로그램과 데이터 파일이 상호 의존적인 관계에서는 데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 때 응용 프로그램도 같이 변경해야 함


- 데이터베이스 도입에서의 데이터 구성

데이터베이스를 이용하는 방식에서는 각 업무 처리에 필요한 자료들의 중복을 최소화하여 한 곳에 모아서 구성함


③ DBMS의 필수 기능


· 정의(조직)(Definition) 기능

- 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터 형(Type)과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능

- 데이터와 데이터의 관계를 명확하게 명세할 수 있어야 하며, 원하는 데이터 연산은 무엇이든 명세할 수 있어야 함

· 조작(Manipulation) 기능

- 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능

· 제어(Control) 기능

- 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어해야 함

- 정당한 사용자가 허가된 데이터만 접그날 수 있도록 보안을 유지하고 권한을 검사할 수 있어야 함

- 여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리할 때 처리 결과가 항상 정확성을 유지하도록 병행 제어(Concurrency Control)을 할 수 있어야 함


④ DBMS의 장·단점


 장점

단점 

  · 데이터의 논리적, 물리적 독립성 보장

  · 데이터의 중복을 피할 수 있어 기억공간 절약됨

  · 저장된 자료를 공동으로 이용 가능

  · 데이터 일관성 유지 가능

  · 데이터 무결성 유지 가능

  · 보안 유지 가능

  · 데이터 표준화 가능

  · 데이터 통합하여 관리 가능

  · 항상 최신의 데이터 유지

  · 데이터의 실시간 처리 가능

  · 데이터베이스의 전문가 부족

  · 전산화 비용 증가

  · 대용량 디스크로 집중적인 Access로 과부하(Overhead) 발생

  · 파일의 예비(Backup)과 회복이 어려움

  · 시스템 복잡



※ 데이터의 독립성 : 종속성에 대비되는 말로 DBMS의 궁긍적 목표

· 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴

데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 변경되지 않음

· 물리적 독립성 : 응용 프로그램과 보조기억장치 같은 물리적 장치를 독립시킴

데이터베이스 시스템의 성능 향상을 위해 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만을 변경함



004 스키마(Schema)


① 스키마의 정의


· 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터(Meta-Data)의 집합

· 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의

· 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나누어짐

[그림1] 스키마





② 스키마의 특징


· 데이터 사전에 저장되며, 다른 이름으로 메타데이터라고 부름

· 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어짐

· 시간에 따라 불변인 특성 가짐

· 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정됨


③ 스키마의 3계층


데이터베이스 관리 시스템은 외부적 스키마에 따라 명시된 사용자의 요구를 개념적 스키마에 적합한 형태로 변경하고 이를 다시 내부적 스키마에 적합한 형탤 변환함


- 외부 스키마(External Schema) = 서브 스키마 = 사용자 뷰(View)


· 사용자나 응용프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것

· 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 함

· 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수도 있음

· 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용함

· 일반 사용자는 질의어(SQL)를 이용하여 DB를 쉽게 사용할 수 있음

· 응용 프로그래머는 COBOL, C 등의 언어를 사용하여 DB에 접근


- 개념 스키마(Conceptual Schema) = 전체적인 뷰(View)


· 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재

· 개체 간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의

· 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마라고 하면 개념 스키마를 의미함

· 기관이나 조직체의 관점에서 데이터베이스를 정의한 것

· 데이터베이스 관리자(DBA)에 의해서 구성됨


- 내부 스키마(Internal Schema) = 저장 스키마(Storage Schema)


· 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층

· 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄

· 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마


 

005 데이터베이스 언어


· 데이터베이스 언어(Database Language)는 데이터베이스를 구축하고 이용하기 위한 데이터베이스 시스템과의 통신 수단

· DBMS를 통해 사용하며, 기능과 사용 목적에 따라 데이터 정의 언어, 데이터 조작 언어, 데이터 제어 언어로 구분됨


① 데이터 정의 언어(DDL; Data Definition Language)


· 데이터 정의 언어는 DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어

· 번역한 결과가 데이터 사전이라는 특별한 파일에 여러 개의 테이블로서 저장됨


- 데이터 정의 언어의 기능

· 외부 스키마 명세를 정의

· 데이터베이스의 논리적, 물리적 구조 및 구조 사상을 정의

· 스키마에 사용되는 제약 조건에 대한 명세를 정의

· 데이터의 물리적 순서를 규정


② 데이터 조작 언어(DML; Data Manipulation Language) = 서브 언어


· 데이터 조작 언어는 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로서, 사용자(응용 프로그램)와 DBMS간의 인터페이스를 제공

· 응용 프로그램을 통하여 사용자가 DB의 데이터를 실질적을 조작할 수 있도록 하기 위해 FORTRAN, COBOL등의 호스트 언어에 DB 기능을 추가해서 만든 언어

· 대표적인 데이터 조작 언어에는 질의어가 있으며, 질의어는 터미널에서 주로 이용하는 비절차적(Non Procedural) 데이터 언어


- 데이터 조작어의 형태

· 절차적 조작 언어 : 사용자가 어떤 데이터가 필요하면, 필요한 데이터를 어떻게 구하는지 절차에 맞게 구체적으로 명시하는 언어

· 비절차적 조작 언어 : 사용자가 어떤 데이터가 필요한지만을 명시하고 어떻게 구하는지 명시하지 않는 언어로서, 배우기 쉽고 사용하기 쉬우나 코드의 효율성 면에서 비효율적이다.


- 데이터 조작어의 조건

· 사용하기 쉽고 자연 언어에 가까워야 함

· 데이터에 대한 연산 뿐만 아니라 뷰 내의 데이터나 데이터 간의 관계를 정확하고 완전하게 명시할 수 있어야 함

· 데이터 언어의 효율적인 구현을 지원해야 함(즉, 데이터 언어의 구문이 DBMS가 제공하는 기본적인 연산과 관련을 갖도록 해야 함)


※질의어(Query Language)

· 단말 사용자가 쉽게 DB를 액세스할 수 있도록 대화식의 자연어로 만든 비절차적 조작 언어

· 독자적이고 상호 작용 형태로 터미널에서 많이 사용하는 고급 명령어 형태의 독립적 데이터 조작 언어

· 질의어의 종류 : SQL, IMS, DBTG, TOTAL 등



③ 데이터 제어 언어(DCL; Data Control Language)


· 데이터 제어 언어는 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어

· 데이터를 보호하고 데이터를 관리하는 목적으로 사용됨


- 데이터 제어 언어의 기능

· 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안

· 데이터 정확성을 위한 무결성 유지

· 시스템 장애에 대비한 데이터 회복과 병행수행 제어



006 데이터베이스 사용자


① DBA(DataBase Administrator)


데이터베이스 시스템의 모든 관리와 운영에 대한 책임을 지고 있는 사람이나 그룹으로 다음과 같은 역할을 함


데이터베이스 설계와 조작에 대한 책임

  · 데이터베이스 구성 요소 결정

  · 개념 스키마 및 내부 스키마 정의

  · 데이터베이스의 저장 구조 및 접근 방법 정의

  · 보안 및 데이터베이스의 접근 권한 부여 정책 수립

  · 장애에 대비한 예비 조치와 회복에 대한 전략 수립

  · 무결성을 위한 제약 조건의 지정

  · 데이터 사전의 구성과 유지 관리

  · 사용자의 변화 요구와 성능 향상을 위한 데이터 베이스의 재구성

행정 책임

  · 사용자의 요구와 불평의 청취 및 해결

  · 데이터 표현 방법의 표준화

  · 문서화에 대한 기준 설정

  ·  데이터베이스 사용에 관한 교육

시스템 감시 및 성능 분석

  · 변화 요구에 대한 적응과 성능 향상에 대한 감시

  · 시스템 감시 및 성능 분석

  · 자원의 사용도와 병목 현상 조사

  · 데이터 사용 추세, 이용 형태 및 각종 통계 등을 종합, 분석



② 응용 프로그래머


· 응용 프로그래머는 일반 호스트 언어로 프로그램을 작성할 때 데이터 조작어(DML)를 삽입해서 일반 사용자가 응용 프로그램을 사용할 수 있게, 인터페이스를 제공할 목적으로 데이터베이스에 접근하는 사람들

· 응용 프로그래머는 C, COBOL, PASCAL 등의 호스트 언어와 DBMS가 지원하는 데이터 조작어에 능숙한 컴퓨터 전문가


③ 일반 사용자


일반 사용자는 보통 터미널을 이용하여 데이터베이스에 있는 자원을 활용할 목적으로 질의어나 응용 프로그램을 사용하여 데이터베이스에 접근하는 사람들




출처 : 2017 시나공 정보처리기사 필기

+ Recent posts