2015년 7월 11일 토요일

DataBase Study_02

ㅇ ㅂㅇ

11. 데이터베이스 사용자
DBA(DataBase Administrator)
데이터베이스 시스템의 모든 관리와 운영에 대한 책임을 지고 있는 사람이나 그룹을 의미한다.
 - 데이터베이스 구성 요소 결정
 - 개념 스키마 및 내부 스키마 정의
 - 데이터베이스의 저장 구조 및 접근 방법 정의
 - 보안 및 데이터베이스의 접근 권한 부여 정책 수립
 - 장애에 대비한 예비(Back Up) 조치와 회복(Recovery)에 대한 전략 수립
 - 무결성을 위한 제약조건의 지정
 - 데이터 사전의 구성과 유지 관리
 - 사용자의 요구와 불평의 청취 및 해결
 - 변화 요구에 대한 적응과 성능 향상에 대한 감시
 - 시스템 감시 및 성능 분석
 - 데이터 사용 추세, 이용 형태 및 각종 통계 등을 종합, 분석

응용 프로그래머
 - 응용 프로그래머는 일반 호스트 언어로 프로그램을 작성할 때 데이터 조작어를 삽입해서 일반 사용자가 응용 프로그램을 사용할 수 있게, 인터페이스를 제공할 목적으로 데이터베이스를 접근하는 사람들이다.
 - 응용 프로그래머는 C, COBOL, PASCAL 등의 호스트 언어와 DBMS가 지원하는 데이터 조작어에 능숙한 컴퓨터 전문가이다.

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

 > 데이터베이스의 디자인과 관리, 그리고 데이터베이스 관리 시스템의 선택, 보완, 평가에 대해 책임을 지는 사람은 DBA 이다.
 > 응용 프로그램의 설계 및 구현은 데이터베이스 관리자(DataBase Administrator)의 역할이 아니라 응용 프로그래머의 역할이다.
 > 데이터베이스 조작어를 호스트 언어에 포함하여 데이터베이스를 접근하는 것은 DBA의 역할이 아니라 응용 프로그래머의 역할이다.
 > 데이터베이스 관리자는 주로 데이터 조작어(DML)를 사용하지 않고 데이터 제어어(DCL)를 사용하여 데이터베이스의 무결성을 유지한다.
 > 데이터 처리 및 데이터 값 관리는 DBA의 역할이 아니라 일반 사용자의 몫이다.
 > DBA가 아닌 일반 사용자는 데이터를 저장하고 저장된 데이터를 사용한다.

12. 데이터 모델의 정의
- 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화하여 체계적으로 표현한 개념적 모형이다.
- 현실 세계를 데이터베이스에 표현하는 중간 과정, 즉 데이터베이스 설계 과정에서 데이터의 구조를 표현하기 위해 사용되는 도구이다.
- 데이터 구조(Schema)를 논리적으로 묘사하기 위해 사용되는 지능적 도구이다.

 > 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 개념적인 도구를 데이터 모델이라고 한다.
 > 현실 세계를 데이터베이스에 표현하는 중간 과정으로 데이터 구조를 논리적으로 표현하는 것을 데이터 모델이라고 한다.

13. 데이터 모델의 종류
개념적 데이터 모델
 - 현실 세계에 대한 인간의 이해를 돕기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다.
 - 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
 - 현실 세계에 존재하는 개체를 인간이 이해 할 수 있는 정보 구조로 표현하기 때문에 정보 모델이라고도 한다.
 - 대표적으로 개체-관계(E-R) 모델이 있다.

논리적 데이터 모델
 - 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리 할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정이다.
 - 필드로 기술된 데이터 타입과 이 데이터 타입 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
 - 단순히 데티어 모델이라고 하면 논리적 데이터 모델을 의미한다.
 - 논리적 데이터 모델은 데이터 간의 관계를 어떻게 표현하느냐에 따라 관계 모델, 계층 모델, 네트워크 모델로 구분한다.

 > 개체-관계(E-R) 모델은 개념적 데이터 모델이다.
 > 데이터 모델은 현실 세계를 데이터베이스로 표현하는 과정에서 개념적인 구조, 논리적인 구조를 표현하기 위해서 사용하며 물리적인 구조를 표현하지는 않는다.
 > 개념적 데이터 모델은 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
 > 논리적 데이터 모델은 필드로 기술된 데이터 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
 > 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하는 과정을 정보 모델링이라고 한다.
 > 현실 세계에 존재하는 개체를 컴퓨터 세계의 환경에 맞게 표현하는 과정은 논리적 데이터 모델링인 데이터 모델링이고, 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하는 과정은 개념적 데이터 모델링에 해당하는 정보 모델링입니다.

14. 데티어 모델에 표시할 사항
- 구조(Structure) : 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질을 표현함.
- 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 방법을 표시하는 것으로서 데이터베이스를 조작하는 기본 도구임
- 제약 조건(Constraint) : 데이터 베이스에 저장될 수 있는 실제 데이터의 논리적인 제약조건을 표시함

 > 데이터 모델의 구성 요소 3가지는 구조(Structure), 연산(Operation), 제약 조건(Constraint)이다.
 > 데이터 모델의 구성 요소 중 데이터베이스에 표현된 개체 인스턴스를 처리하는 작업에 대한 명세서로 데이터베이스를 조작하는 기본 도구는 연산(Operation)이다.
 > 데이터 모델의 구성 요소 중 데이터베이스에 표현될 대상으로서의 개체 타입과 개체 타입들 간의 관계를 기술한 것은 구조(Structure)이다.
 > 데이터 모델은 일반적으로 3가지 구성 요소를 포함하고 있다. 첫째, 논리적으로 표현된 데이터 구조, 둘째, 이 구조에서 허용될 수 있는 연산(Operation), 셋째, 이 구조와 연산(Operation)에서의 제약조건(Constraint)에 대한 명세를 기술한 것이다.

15. 데이터 모델의 구성 요소
개체(Entitiy)
 - 데이터베이스에 표현하려는 것으로, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체이다.
 - 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 구성된다.
 - 파일 시스템의 레코드에 대응하는 것으로, 어떤 정보를 제공하는 역할을 수행한다.
 - 실세계에 독립적으로 존재하거나 그 자체로서 구별이 가능하다.
속성(Attribute)
 - 데이터의 가장 작은 논리적 단위로서 파일 구조의 데이터 항목 또는 데이터 필드에 해당된다.
 - 개체를 구성하는 항목이다.
관계(Relationship)
 - 개체 간의 관계 또는 속성 간의 관계
 개체의 구성요소
  > 속성 : 개체가 가지고 있는 특성
  > 개체 타입 : 속성으로만 기술된 개체의 정의
  > 개체 인스턴스 : 개체를 구성하고 있는 각 속성들이 값을 가져 하나의 개체를 나타내는 것으로 개체 어커런스(Occurence)라고도 함
  > 개체 세트 : 개체 인스턴스의 집합

 > 개체는 컴퓨터가 취급하는 파일의 레코드에 대응된다.
 > 데이터 모델 -> 스키마(DBMS로 생성) -> 인스턴스(스키마에 저장) 의 관계를 갖고 있다.
 > 데이터베이스의 구성 요소 중 데이터베이스가 표현하려고 하는 유형, 무형의 정보 대상으로 존재하면서 서로 구별될 수 있는 것을 개체라고 한다.
 > 데이터의 가장 작은 논리적 단위로서 파일 구조상의 데이터 항목 도는 데이터 필드에 해당하는 것은 속성이다.
 > 개체는 물리적(개인, 차, 집, 종업원 등) 혹은 개념적(회사, 직업, 대학 과정 등)이며, 실세계에 독립적으로 존재한다.

16. 개체-관계(Entity-Relationship) 모델
- 개념적 데이터 모델의 가장 대표적인 것으로, 1976년 Peter Chen에 의해 제안됬다.
- 개체 타입(Entity Type)과 이들 간의 관계 타입(Relationship)을 이용해 현실 세계를 개념적으로 표현한다.
- 데이터를 객체(Entity), 관계(Relationship), 속성(Attribute)으로 묘사한다.
- E-R 다이어그램으로 표현한다.
- 특정 DBMS를 고려한 것이 아니기 때문에 관계 표현에 제한이 없다.

 > 개체-관계(Entity-Relationship) 모델을 최초로 제안한 사람은 Peter Chen이다.
 > 개체-관계 모델은 일 대 일(1:1) 관계 유형만을 표현하는 것이 아닌 1:1, 1:N, N:M으로 제한이 없다.
 > E-R 모델은 데이터를 엔티티, 관계, 속성으로 묘사한다.
 > E-R 모델에서 관계는 속성들에 대한 관계가 아닌 개체 간의 관계를 표현한다.
 > 1976년 P.Chen이 제안한 것으로, 개체 타입(Entity Type)과 이들 간의 관계 타입(Relationship)을 이용해 현실 세계를 개념적으로 표현한 것은 E-R 모델이다.
 > 개체-관계 모델을 오너-멤버(Owner-Member)라고 하지 않는다.
 > 정보 시스템 설계에서, 실체 간의 관계는 물론 시스템 내의 역할을 하는 모든 실체들, 즉 조직, 부서, 사용자, 프로그램, 데이터를 표시하는 다이어 그램은 E-R 다이어그램이다.

17. E-R 다이어그램
- E-R 모델의 기본적인 아이디어를 시각적으로 표현하기 위한 도구이다.
- 개체 간의 관계는 물론 시스템 내의 역할을 하는 모든 개체들, 즉 조직, 부서, 사용자, 프로그램, 데이터를 모두 표시한다.

개체 타입 - 사각형
관계 타입 - 마름모(다이아몬드)
속성 - 타원
링크 - 선
복합 속성 - 복수 타원
기본키 속성 - 밑줄 타원

18. 관계형 데이터 모델
- 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델이다.
- 표(Table)를 이용해서 데이터 상호 관계를 정의하는 DB 구조를 말한다.
- 데이터 간의 관계를 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)로 표현한다.
- 대표적인 DBMS : Oracle, MS-SQL, Informix 등
- 1:1, 1:N, M:N 관계를 자유롭게 표현한다.
- 장점 : 간결하고, 보기 편리하며, 다른 데이터베이스로의 변환이 용이함
- 단점 : 성능이 다소 떨어짐

 > 논리적인 데이터 모델에서 데이터 간의 관계를 기본키(Primary Key)와 이를 참조하는 외래키(Foreign Key)로 표현하는 데이터 모델은 관계형 데이터 모델이다.

19. 계층형 데이터 모델
- 데이터의 논리적 구조도가 트리 형태이며, 개체가 트리를 구성하는 노드 역할을 한다.
- 개체 집합에 대한 속성 관계를 표시하기 위해 개체를 노드로 표현하고 개체 집합 들 사이의 관계를 링크로 연결한다.
- 개체 간의 관계를 부모와 자식 간의 관계로 표현한다.
- 개체 타입 간에는 상위와 하위 관계가 존재하며, 일대다(1:N) 대응 관계만 존재한다.
- 레코드 삭제 시 연쇄 삭제(Triggered Delete)가 된다.
- 개체 타입들 간에는 사이클(Cycle)이 허용되지 않는다.
- 계층형 모델에서는 개체(Entity)를 세그먼트(Segment)라 부른다.
- 대표적인 DBMS는 IMS이다.

20. 망(그래프, 네트워크)형 데이터 모델
- CODASYL이 제안한 것으로, CODASYL DBTG 모델이라고도 한다.
- 그래프를 이용해서 데이터 논리 구조를 표현한 데이터 모델이다.
- 상위와 하위 레코드 사이에서 다 대 다 (N:M) 대응 관계를 만족하는 구조이다.
- 상위의 레코드를 Owner, 하위의 레코드를 Member라하여 Owner-Member 관계라고도 한다.
- 레코드 타입 간의 관계는 1:1, 1:N, N:M이 될 수 있다.
- 대표적인 DBMS : DBTG, EDBS, TOTAL 등




















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