2015년 7월 7일 화요일

DataBase Study_01

ㅇ ㅂㅇ

01. 정보 시스템

정보 시스템
 - 조직체에 필요한 Data를 수집, 저장해 두었다가 필요시에 처리해서 의사 결정에 유용한 정보를 생성하고 분배하는 수단이다.
 - 사용하는 목적에 따라 경영 정보 시스템, 군사 정보 시스템, 인사 행정 정보 시스템, 의사 결정 지원 시스템 등으로 사용된다.

정보와 자료
 - 자료(Data) : 현실 세계에서 관찰이나 측정을 통해 수집한 단순한 사실이나 결과 값으로, 가공되지 않은 상태
 - 정보(Information) : 의사 결정에 도움을 줄 수 있는 유용한 형태로, 자료를 가공(처리)해서 얻는 결과물


자료 처리 시스템 
자료 -> [ 가공(처리) ] -> 정보

 - 자료 처리 시스템 : 정보 시스템이 사용할 자료를 처리하는 정보 시스템의 서브 시스템으로, 처리 형태에 따라 일괄 처리 시스템, 온라인 실시간 처리 시스템, 분산 처리 시스템으로 분류
 - 데이터 웨어 하우스(DataWare House) : 조직이나 기업체의 중심이 되는 주요 업무 시스템에서 의사 결정 지원 시스템을 지원하는 주체적, 통합적, 시간적 데이터의 집합체

 > 정보자료(Data)를 처리해서 얻을 수 있는 결과물이다.
 > 현실 세계로 부터 단순한 관찰이나 측정을 통해 수집된 사실이나 값은 자료(Data)이다.
 > 한 조직체에 필요한 Data를 수집, 저장해 두었다가 필요시에 처리해서 의사 결정에 유용한 정보를 생성하고 분배하는 수단을 정보시스템이라고 한다.
 > 기간 업무 시스템에서 추출되어 새로이 새성된 데이터베이스로서 의사 결정 지원 시스템을 지원하는 주체적, 통합적, 시간적 데이터의 집합체는 데이터 웨어 하우스이다.

02. 데이터베이스의 정의

통합된 데이터(Integrated Data) : 자료의 중복을 배제한 데이터의 모임
저장된 데이터(Stored Data) : 컴퓨터가 접근 할 수 있는 저장 매체에 저장된 자료
운영 데이터(Operational Data) : 조직의 업무를 수행하는 데 있어서 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료
공용 데이터(Shared Data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료

 > 데이터베이스에 저장된 데이터는 여러 프로그램을 위한 공유 데이터이다.
 > 데이터베이스는 통합된 데이터(Integrated Data), 저장된 데이터(Stored Data), 운영 데이터(Operational Data), 공용데이터(Shared Data)로 정의 할 수 있다.
 > 데이터베이스의 정의 중 '조직의 존재 목적이나 기능을 수행하는데 없어서는 안 될 데이터의 집합이다'는 운영 데이터(Operational Data)를 의미한다.

03. 데이터베이스의 특징

실시간 접근성(Real Time Accessibility) : 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리(Real-Time-Processing)에 의한 응답이 가능함
계속적인 변화(Continuous Evolution) : 새로운 데이터의 삽입(Insertion), 삭제(Deletion), 갱신(Update)으로 항상 최신의 데이터를 유지함
동시 공유(동시 공용)(Concurrent Sharing) : 여러 사용자가 동시에 자기가 원하는 데이터를 이용 할 수 있음
내용에 의한 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조할 때 데이터 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 데이터를 찾음

 > 데이터베이스의 특징에는 실시간 접근성(Real Time Accessibility), 계속적인 변화(Continuous Evolution), 동시 공유(Concurrent Sharing), 내용에 의한 참조(Content Reerence)가 있다.
 > 데이터베이스는 데이터 참조시 위치나 주소에 의하지 않고 데이터 값에 의해서 참조 된다. (내용에 의한 참조)
 > 데이터베이스의 특성 중 '데이터베이스 내의 데이터 참조는 데이터베이스에 저장된 레코들의 위치나 주소에 의해서가 아니라 사용자가 요구하는 데이터의 내용, 즉 데이터 값에 따라 참조된다'는 내용에 의한참조(Content Reference)를 의미한다.
 > 데이터베이스의 특성 중 '데이터베이스의 상태는 정적이 ㅏ니라 동적이다. 즉 데이터베이스는 새로운 데이터의 삽입, 삭제, 갱신을 통해 현재의 정확한 자료를 유지하면서 변환한다.'는 것은 계속적인 변화(Continuous Evolution)를 의미한다.
 > 데이터베이스는 서로 다른 목적을 가진 여러 응용자들을 위한 것이기 때문에 다수의 사용자가 동시에 데이터베이스에 접근하여 이용할 수 있어야 한다는 데이터베이스의 특성은 동시공유(Concurrent Sharing)이다.
 > 데이터베이스의 특성
 질의에 대하여 실시간 처리 및 응답이 가능하도록 지원해 준다.
 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지한다.
 다수의 사용자가 동시에 이용할 수 있다.
 데이터베이스의 데이터는 주소나 위치가 아닌 내용에 의해 참조된다.
 데이터베이스는 자료의 중복을 배제한 데이터의 모임이다.

04. DBMS(DataBase Management System)의 정의
 - 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어이다.
 - 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로, 모든 응용 프로그래들이 데이터베이스를 공용할 수 있도록 관리해 준다.
 - 데이터베이스의 구성, 접근 방법, 유지관리에 대한 모든 책임을 진다.

 > DBMS는 데이터베이스를 관리하기 위한 검색 프로그램과 저장소의 모임으로 데이터베이스를 조직, 처리하고, 사용자의 질의에 대한 응답으로 데이터베이스를 검색하여 결과를 보여준다.
 > DBMS(DataBase Management System)의 설명
  종속성중복성의 문제를 해결하기 위해서 제안된 시스템이다.
  응용프로그램과 데이터의 중재자로서 모든 응용프로그램들이 데이터베이스를 공유할 수 있도록 관리한다.
  데이터베이스와 구성, 접근 방법, 관리 유지에 대한 모든 책임을 지고 있다.

05. 기존 파일 처리 방식에서의 문제점
종속성으로 인한 문제점
 - 종속성이란 응용 프로그램과 데이터 파일이 상호 의존적인 관계를 말한다.
 - 데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 때는 응용 프로그램도 같이 변경해야 한다.
중복성으로 인한 문제점
 - 일관성 : 중복된 데이터 간에 내용이 일치하지 않는 상황이 발생하여 일관성이 없어짐
 - 보안성 : 중복되어 있는 모든 데이터에 동등한 보안 수준을 유지하기가 어려움
 - 경제성 : 저장공간의 낭비와 동일한 데이터의 반복 작업으로 인한 비용의 증가
 - 무결성 : 제어의 분산으로 인해 데이터의 정확성을 유지 할 수 없음

 > 데이터베이스의 등장 이유는 데이터의 가용성 증가를 위해 종속성과 중복성을 배제하기 위해서이다.
 > 데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터의 접근 방법이 각 응용 프로그램의 논리에 명시되어 있어서 데이터의 구성 방법이나 접근 방법을 변경할 때는 자연히 이것을 기초로 한 응용 프로그램도 같이 변경시켜야 한다. 이와 같은 성질을 데이터의 종속성이라고 한다.

06. DBMS의 필수 기능
정의(조직)(Definition)
 - 데이터의 형(Type)과 구조, 데이터가 DB에 저장 할 때의 제약조건 등을 명시하는 기능이다.
 - 데이터와 데이터의 관계를 명확하게 명세할 수 있어야 하며, 원하는 데이터 연산은 무엇이든 명세할 수 있어야 한다.
조작(Manipulation) : 데이터 검색(요청), 갱신(변경), 삽입, 삭제 등을 체계적으로 처리하기 위해 데이터 접근 수단 등을 정하는 기능
제어(Control)
 - 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어해야 한다.
 - 정당한 사용자가 허가된 데이터만 접근할 수 있도록 보안(Security)을 유지하고 권한(Autoority)을 검사 할 수 있어야 한다.
 - 여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리할 때 처리 결과가 항상 정확성을 유지하도록 병행 제어(Concurrency Control)를 할 수 있어야 한다.

 > 데이터베이스 관리 시스템의 필수 기능 3가지는 정의(Definition), 조작(Manipulation), 제어(Control)이다.
 > 데이터베이스의 갱신, 삽입, 삭제 등의 연산은 DBMS의 필수 기능 중 제어(Control) 기능이다.
 > 데이터의 형, 구조, 데이터가 데이터베이스에 저장될 때의 제약조건 등을 명시하는 기능정의(Definition)기능 이다.
 > 데이터베이스에 대해 데이터 요청, 변경 등을 위한 질의를 수행하는 기능조작(Manipulation)기능이다.
 > 데이터베이스를 접근하여 데이터의 검색, 삽입, 삭제, 갱신 등의 연산작업을 위한 사용자의 데이터베이스 사이의 인터페이스 수단을 제공하는 기능조작(Manipulation)기능이다.
 > 데이터 무결성(Integrity) 유지, 보안(Security)과 권한(Authority)검사, 병행수행 제어(Concurrency Control) 등의 기능을 정하는 기능제어(Control)기능이다.
 > 데이터의 논리적 구조와 물리적 구조 사이의 변환이 가능하도록 두 구조 사이의 사상(Mapping)을 명세하여 하나의 물리적 구조로 여러 응용 프로그램이 요구하는 데이터 구조를 지원하게 하는 기능정의(Definition)기능이다.
 >
 > 정의 기능은 데이터와 데이터의 관계를 명확하게 명세할 수 있어야 하며,, 원하는 데이터 연산은 무엇이든 명세할 수 있어야 한다.

07. DBMS의 장단점


논리적 독립성과 물리적 독립성
 - 논리적 독립성 : 응용 프로그램과 데이터베이스를 독립시킴으로써, 데이터의 논리 구조를 변경시키더라도 응용 프로그램은 변경되지 않음
 - 물리적 독립성 : 응용 프로그램과 보조기어장치 같은 물리적 장치를 독립시킴으로써, 데이터베이스 시스템의 성능 향상을 위해 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만을 변경함

 > 데이터베이스 관리 시스템(DBMS)의 단점 중 하나는 예비(Backup)와 회복(Recovery) 기법이 간단하다는 것이다.
 > 데이터베이스 구성의 장점 중 하나는 데이터간의 종속성 유지가 아니라, 데이터의 논리적 물리적 독립성이 보장 된다는 것이다.
 > 기존 응용 프로그램에 영향을 주지 않고 데이터의 물리적 구조를 변경할 수 있는 것을 물리적 독립성이라고 한다.
 > 개별 사용자나 응용 프로그램의 데이터 관점을 변경하지 않고 전체 데이터베이스의 논리적 구조를 변경시킬 수 있는 것을 논리적 독립성이라고 한다.

08. 스키마(Schema)의 정의
 - 데이터베이스의 구조와 제약조건에 관한 전반적인 명세(Specification)를 기술(Description)한다.
 - 데이터베이스를 구성하는데 데이터 개체(Entitiy), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의한다.
 - 스키마는 사용자의 관점에 따라 외부(External) 스키마, 개념(Conceptual) 스키마, 내부(Internal) 스키마로 나뉜다.
 - 스키마(Schema)는 데이터 사전에 저장되며, 다른 이름으로 메타 데이터(Meta-Data)라고도 한다.

 > 데이터베이스 구조에 대해 전반적으로 기술한 것을 스키마라고 한다. 3계층 스키마는 개념(Conceptual) 스키마, 내부(Internal) 스키마, 외부(External) 스키마이다.
 > 데이터베이스를 구성하는 데이터 객체, 이들의 성질, 이들 간에 존재하는 관계 그리고 데이터의 조작 또는 이들 데이터 값들이 갖는 제약조건에 관한 정의를 총칭하는 용어는 스키마(Schema)이다.
 > 스키마(Schema)는 데이터 사전에 정의되며, 다른이름으로는 메타 데이터(Meta-Data)라고도 한다.
 > 스키마(Schema)는 데이터베이스의 구조와 제약사항이 묘사된 메타 데이터의 집합으로서 데이터 개체, 속성, 관계와 데이터를 조작할 때의 제약사항들을 정의한다.

09. 스키마의 3계층
외부 스키마(External Schema) = 서브 스키마 = 사용자 뷰(View)
 - 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 사용하는 데이터베이스의 논리적 구조를 정의한다.
 - 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 한다.
 - 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재 할 수 있으며, 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용 할 수 있다.
 - 같은 데이터베이스에 대해서도 서로 다른 관점을 정의 할 수 있도록 허용한다.
 - 일반 사용자는 질의어(SQL)를 사용하여 DB를 사용한다.

개념 스키마(Conceptual Schema) = 전체적인 뷰(View)
 - 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.
 - 개념 스키마는 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안  및 무결성 규칙에 관한 명세를 정의한다.
 - 단순히 스키마(Schema)라고 하면 개념 스키마를 의미한다.
 - 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.
 - 데이터베이스 관리자에 의해서 구성된다.

내부 스키마(Internal Schema)
 - 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.
 - 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
 - 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
 - 데이터베이스의 물리적 구조를 정의한다.
 - 데이터의 실제 저장 방법을 기술한다.
 - 물리적인 저장장치와 밀접한 계층이다.

 > 모든 응용에 관하여 전체적으로 통합된 데이터 구조로서, 접근 권한, 제약조건, 보안 정책, 무결성 규칙을 명세한다. => 개념 스키마.
 > 단순히 스키마라고도 하며, 조직이나 기관 전체에 필요로 하는 데이터베이스의 전체적인 논리적 구조이다. => 개념 스키마.
 > 공용의 의미보다는 어느 개인이나 특정 응용에 한정된 논리적 데이터 구조이며, 데이터베이스의 개별 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한다. => 외부 스키마.
 > 데이터베이스의 전체적인논리적 구조로서 모든 응용 시스템과 사용자가 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스로 하나만 존재한다. => 개념 스키마.
 > 데이터베이스 시스템 구조에서 데이터가 실제로 저장되는 것과 관계있는 레벨이다. => 내부 스키마.
 > 데이터베이스 사용자의 관점을 기술한다. => 외부 스키마.
 > 물리적 저장장치의 입장에서 본 데이터베이스 구조로서 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다. => 내부 스키마.
 > 데이터가 기억장치에 배치되는 방법을 정의한다. 시스템 프로그래머나 시스템 디자이너 관점에서 데이터베이스의 물리적인 저장 구조를 묘사한다. => 내부 스키마.
 > 범 기관적 입장에서 본 데이터베이스의 정의를 기술한 것으로, 개체간의 관계와 유지해야 할 제약 조건을 나타낸다. => 외부 스키마.

10. 데이터베이스 언어(Database Language)
데이터 정의 언어(DDL : Data Definition Language)
 - DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다.
 - 번역한 결과가 데이터 사전(Data-Dictionary)이라는 특별한 파일에 여러 개의 테이블로 저장된다.
 - 데이터 정의 언어의 기능
  > 외부 스키마 명세 정의
  > 데이터베이스의 논리적 데이터 구조와 물리적 데이터 구조의 정의 및 수정
  > 논리적 데이터 구조와 물리적 데이터 구조 간의 사상 정의
  > 스키마에 사용되는 제약조건에 대한 명세 정의
  > 데이터의 물리적 순서 규정

데이터 조작 언어(DML : Data Mainpulation Language) = 서브언어
 - 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로서 사용자(응용 프로그램)와 DBMS 간의 인터페이스를 제공한다.
 - 응용 프로그램을 통하여 사용자가 DB의 데이터를 실질적으로 조작할 수 있도록 하기 위해 C, COBOL 등의 호스트 언어에 DB 기능을 추가시켜 만든 언어이다.
 - 대표적인 데이터 조작어(DML)에는 질의어가 있으며, 질의어는 터미널에서 주로 이용하는 비절차적(NonProcedural) 데이터 언어이다.

데이터 제어 언어(DCL : Data Control Language)
 - 무결성, 보안 및 권한 제어, 회복 등을 하기 위한 언어이다.
 - 데이터를 보호하고 데이터를 관리하는 목적으로 사용된다.
 - 데이터 제어 언어
  > 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안(Security)
  > 데이터의 정확성을 위한 무결성(Intergrity) 유지
  > 시스템 장애에 대비한 데이터 회복과 병행수행 제어

 > DDL은 번역한 결과가 데이터 사전(Data-Dictionary)이라는 특별한 파일에 여러 개의 테이블로서 저장된다.
 > 데이터베이스, 테이블, 인덱스를 생성 및 삭제한다. => DDL
 > 데이터 처리를 위하여 응용 프로그램과 DBMS 사이의 인터페이스 제공의 역할을 한다. => DML
 > 데이터의 보안, 무결성, 회복과 복구 및 병행 제어와 밀접한 관련이 있다. => DCL
 > 데이터베이스의 논리적 데이터 구조와 물리적 데이터 구조를 정의하거나 그 정의를 수정할 목적으로 사용한다. => DDL
 > 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술한다. => DCL












댓글 없음:

댓글 쓰기