이번시간에는 DBMS와 내부구조에 대해 알아보는 시간을 가졌다
OS가 지원
1. 각 응용 프로그램이 논리적 파일 구조를 정의하고 직접 물리적 파일 구조로 구현 [File (이름, 주소 학번 등)]
2. 각 응용 프로그램은 물리적 데이터 구조에 대한 접근 방법을 구현해야 함
3. 각 사용자가 데이터와 이를 처리하는 프로그램을 모두 관리 유지
4. 응용 간의 데이터 공용이 불가능함
데이터의 종속성과 데이터의 중복성 문제가 야기됨
응용프로그램과 데이터 간 상호 의존관계
데이터의 구성밥법이나 접근 방법의 변경 시 관련 응용 프로그램도 동시 변경이 이루어 져야 하는데 이럴 경우 응용 프로그램 관리가 곤란해진다.
한 시스템 내에 같은 내용의 데이터가 여러 파일에 중복저장되어 관리
문제점
이러한 문제들을 해결 하기 위해서 나온것이 바로 DBMS이다
DBMS: 응용프로그램들의 중제자로서 데이터를 공유할 수 있게 관리해주는 소프트웨어 시스템
Locical Structure, Physical Structure, Locial/Physical mapping을 명세
Query language를 이용해서 데이터베이스에 질의함
제어기능의 조건
단점
데이터 독립성
논리적 데이터 독립성
논리적구조의 변경에 응용프로그램이 영향을 받지 않음, 논리적 구조를 사상하는곳에서 변경을 기록해두면 다시 mapping을 통해 논리적 구조의 변경이 이루어지더라도 응용프로그램은 변경할 필요가 없다. 따라서, 응용프로그램의 효율적 개발 가능
물리적 데이터 독립성
물리적 구조가 변경이 되더라도 응용프로그램은 영향을 받지 않음, 물리적 변경으로부터도 독립적으로 존재 할 수 있다
이는 물리적 구조를 사상하는 물리적 구조 사상이 DBMS안에 있기때문. 저장장치가 계속 바뀌어 나가도 문제없어서 저장장치의 효율적 개발이 가능 하지만 파일구조에서는 물리적 구조의 변경은 모든 응용 프로그램을 바꿔야함을 의미함
General Electric과 IBM에서 제시
IDS라는 최조의 범용 DBMS를 개발함
네트워크 데이터 모델의 기초 노드와 노드간을 엣지로 연결한 것
Infornation Management System
1960 후반 IBM이 개발
1970에는 대형 컴퓨터 회사들이 DBMS를 자체 제작 판매
관계 데이터 모델 (Relational Database)
SQL을 사용
비 절차적 언어 : 어떤것을 하라는 것은 있는데 어떻게 찾아라 라는 내용은 없음
절차적 언어 : 어떻게 찾아라 하는 절차를 다 기술해서 명령을 내리는 언어
IBM이 관계 DMBS의 일부로 개발
세계 표준 DB Language
주요 상용 DBMS
오픈소스
PC기반 DBMS
사용자의 DB응용에 대한 복잡성 증대
사용자의 요구에 대처하기 위한 새로운 Data Model을 기반으로 시스템 개발
외부스키마 n을 가지고 접근하면 이것은 개념스키마로 사상되어야 함.
Why? 외부스키마는 내부에 존재하는 것이 아니라 외부에 가상적으로 존재하는것이기 때문.
개념스키마는 실제적으로 디스크에 기록된 내부 스키마로 변환도어 개념 / 내부 사상을 거쳐야 함 (저장인터페이스)
외부스키마 <외부단계
----- 외부 개념 사상 (응용인터페이스)
개념스키마 < 개념단계
---- 개념/내부 사상(저장 인터페이스)
내부스키마 < 내부 단계
저장DB
DBMS는 DataBase를 관리하고 사용자가 요구하는 모든 연산
수행
SQL – DB에 질의하는 언어
질의처리기가 이 질문을 DB내부구조로 바꾸고 런타임 DB처리기로 보냄
그리고 저장DB, catalog 접근하면서 질의 해결
C, java 같은 언어로 응용 프로그램 만들면 DML 예비 컴파일러와 DML 컴파일러가 컴파일하고 런타임 DB처리기에서 처리함
Host Program속에 삽입되어 사용되는 DML
비절차적 혹은 절차적
공용 DB관리를 위한 데이터 제어를 정의하고 기술
보안, 무결성, 회복, 병렬, 수행
DB관리 목적으로 DB Admin이 사용
데이타베이스를 이용하기 위해 접근하는 사람
• 비절차적 DML을 통해서 데이타베이스를 접근
• menu, form, graphics
• 데이터의 insertion, deletion, update, retrieval
• 응용 프로그램(host 언어 + DML(DSL))을 통해서 DB를 접근
• host 언어: PL/I, COBOL, PASCAL, C, Java
• DDL과 DCL을 통해 DB를 정의하고 제어하는 사람
• DB 시스템의 관리, 운영에 대한 모든 책임을 지는 사람
• DB 설계와 운영
• DB의 구성요소(components)를 결정
• 스키마 정의
• 저장 구조와 접근 방법 설정
• 보안 정책 수립, 권한부여, 유효성 검사
• 백업(backup), 회복(recovery) 절차의 수립
• DB의 무결성 유지
• 성능 향상과 새로운 요구에 대응한 DB의 재구성
• Catalog의 유지 관리
• 행정 및 불평 해결
• 데이터의 표현과 시스템의 문서화에 표준 설정
• 사용자의 요구 및 불평 해결
• 시스템 감시(monitoring) 및 성능 분석
• 시스템 성능의 청취
• 자원의 이용도, 병목현상(bottleneck), 장비 성능 등
• 사용자 요구의 변화, 데이터 사용 추세, 각종 통계의 종합 분석