1. DBMS 이해하기
1.1 DBMS란?
DBMS(Database Management System) : 데이터베이스 관리 시스템. DB 관리자, DB 사용자, 응용프로그램과 DB 사이의 중재자. 데이터베이스에 대한 모든 접근을 처리하는 소프트웨어적 시스템
DBMS의 목적 : 응용프로그램이 데이터에 족송되지 않는 '데이터 독립성'을 제공하는 것. DB의 구조를 변경해도 응용프로그램에 영향을 주지 않고, 그 역도 성립하도록 하는 것.
1.2 DBMS의 발전 배경
정보처리 시스템의 활용 분야가 다양해짐에 따라 '데이터 처리'위주의 파일 처리 시스템뿐만 아니라 '데이터 검색'을 위주로 하는 데이터베이스 시스템에 대한 요구가 등장하였다. 이에 다라 DB 구축 및 관리를 지원하는 DBMS가 등장하였다. 기술적으로 저렴한 고속 자기디스크의 실용화로 대량 정보의 저장과 검색이 가능해졌고 데이터의 동시 공유가 가능해졌다.
* 파일 처리 시스템 : 각 응용 프로그램이 데이터를 별도로 관리하여 데이터 종속성과 중복성이 유발됨.
* 파일 처리 시스템의 단점 - 일관성 유지 어려움, 보안 문제, 경제성 저하, 무결성 유지 어려움, 동시 공용 어려움
1.3 DBMS의 필수 기능과 장단점
DBMS의 필수 기능
- 데이터 정의(Data Definition) : 응용프로그램과 DB의 인터페이스 수단. DB의 구조 정의
- 데이터 조작(Data Manipulation) : 사용자와 DB의 인터페이스 수단. 데이터의 검색, 삽입, 삭제, 갱신 등의 연산 처리
- 데이터 제어(Data Control) : 데이터의 무결성 및 일관성 유지, 데이터에 대한 접근 권한 검사, 동시성 제어
DBMS의 장점
- 데이터의 동시 공유가 가능. - 동시성 제어(동시에 데이터 검색은 가능하지만 삭제 또는 갱신은 한 프로그램만 가능)
- 데이터의 중복 최소화 - 최소한의 중복(Minimal Redundancy)만 허용
- 데이터의 무결성 유지 용이 - 유효성 검사
- 데이터의 일관성 유지 용이 - 데이터들 간의 불일치성 없음
- 프로그램과 데이터 간의 독립성 유지
- 데이터의 보안 보장 - 중앙집중식 관리, 접근 권한 통제
- 데이터 표준화 달성 가능
DBMS의 단점
- 운영비 증가 - 추가적인 하드웨어 및 DBMS 운영 직원 필요
- 데이터 처리의 복잡성
- 백업과 복구의 복잡성
- 시스템 장애에 취약
1.4 DBMS의 역사
1세대 DBMS : 네트워크 데이터 모델과 계층 데이터 모델을 기반으로 한 DBMS
2세대 DBMS : 70년대 후반~ 80년대. 관계 데이터 모델을 기반으로 한 DBMS
3세대 DBMS : 80년대 후반~. 객체 DBMS, 객체 - 관계 DBMS
2. ANSI/SPARC 구조와 데이터 독립성
2.1 ANSI/SPARC 구조란?
ANSI/SPARC(American National Standards Institute, Standards Planning And Requirements Committee) : 미국의 컴퓨터 및 정보처리에 관한 표준화 위원회
ANSI/SPARC 구조(3단계 DB 구조) : DBMS의 구현을 위한 추장석인 설계 표준. ANSI/SPARC에 처음 제안됨. DB에 대한 사용자의 관점과 실제로 표현되는 방식(물리적 관점)을 분리하기 위하여 DB를 외부단계, 개념단계, 내부단계의 세 단계로 구분하였다. 사용자의 관점과 물리적 관점을 분리하여 데이터 독립성을 제공한다. 사용자는 DB 내부 구조를 몰라도 DB를 사용할 수 있고, DB는 응용프로그램에 영향을 주지 않고 구조를 바꿀 수 있다.
2.2 ANSI/SPARC 3단계 구조의 구성
외부단계
- DB에 관한 개별 사용자의 관점
- 사용자들은 DB의 일부에 관심이 있으며 각자 생각하는 DB 구조가 다를 수 있다
- 외부 스키마(External Schema) : 외부 단계에서 다양한 개별 사용자나 응용 프로그램이 필요로 하는 데이터 구조를 정의한 것으로 여러 개 존재할 수 있다.
개념단계
- DB에 관한 사용자 공동체의 관점
- 한 조직 전체를 위한 DB의 논리적인 구조이다.
- 개념 스키마(Conceptual Schema) : 개념 단계에서 기관의 입장에서 전체 DB를 정의한 것이다. 개념 스키마는 단 하나만 존재한다.
- 외부/개념 사상(응용 인터페이스 : Application Interface) : 외부 스키마와 개념 스키마 간의 대응관계를 정의한 것이다. 개념 스키마가 변경되어도 응용 인터페이스를 수정하면 외부 스키마에 영향을 주지 않기 때문에 응용프로그램을 변경할 필요가 없다.
내부단계
- DB에 관한 물리적 저장 장치의 관점
- DB에 어떤 데이터가 어떻게 저장되는지를 표현하는 저장 구조이다. 실제로 저장된 내부 레코드의 형식, 인덱스 유무, 저장 데이터 항목의 표현 방법 등을 포함한다.
- 내부 스키마(Internal Schema) : 내부 단계에서 DB의 물리적 데이터 구조를 정의한 것으로 단 하나만 존재한다.
- 개념/내부 사상(저장 인터페이스 : Storage Interface) : 개념 스키마와 내부 스키마의 대응 관계를 정의한 것이다. 내부 스키마가 변경되어도 저장 인터페이스를 수정하면 개념 스키마에 영향을 주지 않는다.
*스키마 : DB구조(Structure)와 제약조건(Constraints)를 기술한 것
*물리단계 : DBMS의 지시에 따라 운영체제가 관리하므로 DB구조에 포함되지 않음. 디스크에 데이터가 저장되는 기법을 다룸
2.3 ANSI/SPARC 구조와 스키마
스키마(Schema) : DB의 구조인 개체, 속성, 관계를 포함하는 논리적 정의와 제약조건(Constraints)을 기술한 것
- 외부스키마 : 사용자 개개인의 관점에서 정의. 여러개 존재. 서브스키마(Subschema)라고도 함
- 개념스키마 : 범 기관적 관점에서 정의. 모든 외부 스키마가 요구하는 전체적인 DB 구조와 제약조건. 하나만 존재, 그냥 스키마(Schema)라고도 함
- 내부스키마 : 저장 장치 관점에서 정의. 개념 스키마에 대한 저장구조를 정의. 단 하나만 존재
2.4 데이터 독립성
데이터 독립성 : 응용프로그램과 데이터가 서로 영향을 미치지 않는 것. DB의 논리적 구조나 물리적 구조가 변경되어도 응용프로그램에 영향을 주지 않는 것. 논리적 데이터 독립성과 물리적 데이터 독립성으로 구성된다.
논리적 데이터 독립성(Logical Data Independency) : 응용 프로그램에 영향을 주지 않고 DB의 논리적 구조(개념 스키마)를 변경할 수 있는 것. DB에 새로운 데이터 항목이나 레코드를 추가해도, 직접 관련되지 않은 사용자 관점과 응용프로그램은 영향을 받지 않는 것. 외부/개념 사상에 의해 보장된다(하나의 논리적 데이터 구조를 응용프로그램이 요구하는 다양한 데이터 구조로 대응).
물리적 데이터 독립성(Physical Data Independency) : 응용 프로그램이나 DB의 논리적 구조에 영향을 주지 않고 DB의 물리적 구조(파일 편성, 데이터 접근 방법 등)를 변경할 수 있는 것. 성능 개선을 위해 DB 물리적 구조를 변경하더라도 DB의 논리적 구조나 응용프로그램이 영향을 받지 않는 것. 개념/내부 사상에 의해 보장된다(하나의 논리적 데이터 구조를 상이한 물리적 구조와 대응).
e-koreatech 데이터베이스 강의 https://www.e-koreatech.ac.kr
'공부 > 데이터베이스' 카테고리의 다른 글
06. 관계 데이터 모델 (1) | 2017.11.27 |
---|---|
05. ER 모델 개요 (0) | 2017.11.22 |
04. 데이터 모델링 개요 (0) | 2017.11.21 |
03. DB 시스템의 개요 (0) | 2017.11.20 |
01. 데이터베이스 개요 (0) | 2017.11.14 |