DBMS 발전 배경
파일 시스템
-파일 시스템은 전통적인 파일 중심의 정보 처리 시스템이다.
-응용 프로그램별로 필요한 데이터를 별도의 파일로 관리한다.
-응용 프로그래머가 파일의 논리적인 구조 뿐만 아니라 물리적인 구조까지 정확히 파악해야 함
-프로그램이 따로따로 존재한다. 하지만 공통적인 부분 중복해서 존재
파일 시스템의 문제점
(`데이터 중복성`, `데이터 일관성 저해`, `데이터 무결성 저해`, `데이터 종속성`, `동시 공용 보안 회복 기능 부족`, `응용 프로그램 개발의 어려움`)
1.데이터 중복성 : Data redundancy
같은 데이터가 여러 파일에 중복 저장되 저장 공간의 낭비가 되고 데이터 일관성, 무결성이 저해된다.
2.데이터 일관성(data consistency) 저해
여러 데이터가 동일 사실을 나타낸다면 그 내용이 모두 똑같아야 함. 데이터가 중복되면 일관성 유지가 어려움 즉 데이터 불일치(data inconsistency)가 발생함.
3.데이터 무결성 (data integrity) 저해
DB에 저장된 데이터 값과 현실 세계의 실제 값이 일치하는 정확성이다. 데이터가 중복되면 데이터에 대한 제어가 분산되어 데이터의 정확성을 유지하기 어려워진다.
4.데이터 종속성(Data dependency)
-데이터 종속성은 응용 프로그램과 데이터 간의 상호 의존관계를 말한다.
-데이터의 구성 방법이나 접근 방법이 변경되면 관련 응용 프로그램도 동시에 변경해야 된다.
-응용 프로그램 관리가 곤란해진다.
-데이터 종속성이 있으면 안된다.(파일 시스템은 데이터 종속성이 있다.)
5.동시, 공용, 보안, 회복 기능 부족
-동시 사용이 불가하다. 응용 프로그램 하나가 사용 중인 파일을 다른 응용 프로그램이 접근하여 사용할 수 없음.
-보완성이(security) 저해된다. 파일 단위 권한 부여 및 접근 통제하는 보완성이 중복된 파일의 보안을 같은 수준으로 유지하기 어렵다.
-회복이 어렵다. 응용 프로그램이 파일을 사용하는 도중 장애 발생 시 데이터를 일관된 상태로 회복이 어렵다.
6.응용 프로그램 개발의 어려움
-파일 접근 및 데이터 관리의 모든 작업을 응용 프로그램이 담당해야한다.
DBMS
DBMS(Database Management System)
-데이터 베이스 관리 시스템이라 불린다.
-파일 시스템의 문제(중복성 종속성 등)를 해결하기 위해 제시된 소프트웨어이다.
-DBMS은 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리한다.
-DBMS은 응용 프로그램과 데이터 사이의 중재자로서 모든 응용 프로그램(사용자)들이 데이터베이스를 공용할 수 있게 관리해주는 범용 소프트웨어 시스템이다.(데이터베이스의 구성, 접근방법, 관리유지)
DBMS와 응용프로그램
-응용 프로그램은 원하는 데이터와 처리 작업을 명세하여 DBMS에게 요청한다.
-DBMS은 DB를 종합적으로 조직해서 접근하고 전체적으로 통제한다. 또한 응용 프로그램의 요구를 챔임지고 실행시킨다.
DBMS의 필수 기능
-정의 기능(definition) : 하나의 저장 구조로 여러 사용자의 요구를 지원할 수 있도록 데이터를 조직하는 기능(구조 정의, 구조 수정)
-조작 기능(manipulation) : 사용자와 데이터베이스 간의 인터페이스를 위한 수단이다. 즉 체계적 데이터베이스에 접근 및 조작하는 기능이다.(삽입, 삭제, 수정, 검색)
-제어 기능(Control) : 데이터의 정확성과 보안성을 유지하는 기능이다.(무결성 유지, 보안, 권한 검사, 병행수행 제어, 회복)
DBMS의 장점
-데이터 중복(redundancy)의 최소화 : DB는 데이터를 통합해서 구성함으로써 중복을 통제한다. 이것을 `Controlled redundancy`라고 한다.
-데이터의 동시 공용 : 같은 내용의 데이터를 여러 가지 구조로 지원해준다.
-데이터 일관성(consistency) 유지 : 데이터 중복을 제어하고 통제함으로써 일관성을 유지한다.
-데이터 무결성(integrity) 유지 : DB가 접근 처리될 때마다 제어 기능을 통해 유효성 검사를 해준다.
-데이터 보안(Security) 보장 : 정당한 사용자, 허용된 데이터 및 연산 등을 확인 검사해준다.
-표준화(Standardization) 용이 : 제어 기능을 통해 데이터의 형식, 내용 처리방식, 문서화 양식 등 표준화를 해준다.
-장애 발생 시 회복 가능 : 데이터 일관성과 무결성을 유지하면서 장애 발생 이전 상태로 복구해준다.
-응용 프로그램 개발 비용 감소 : 데이터에 대한 모든 관리를 DBMS가 담당하면 개발 비용이 감소하고 또한 DB 구조가 변경되어도 응용 프로그램을 변경할 필요가 없어서 유지보수 비용도 떨어진다.
DBMS의 단점
-운영비 증대 : DBMS 가격, 메모리, CPU 등
-복잡한 백업과 회복 : 장애 발생 시 정확한 이유 및 상태 파악이 어렵다.
-시스템의 취약성 : 데이터의 중앙 집중 관리로 인해 DB나 DBMS에 장애가 발생하면 전체 시스템의 업무 처리가 중단된다. 즉 시스템 신뢰성 및 가용성 저해의 단점이 존재한다.
데이터베이스 시스템
데이터베이스 시스템
-데이터베이스 시스템이란 데이터를 데이터베이스로 저장 관리하여 조직에 필요한 정보를 생성해주는 시스템이다.
-구성요소로는 데이터베이스, 데이터 언어, 사용자, 데이터베이스 관리자, DBMS, 데이터베이스 컴퓨터(하드웨어)로 구성되어있다.
데이터베이스
데이터베이스의 개념적 구성요소
데이터베이스는 개체와 관계로 이루어져있다.
개체
-개체란 데이터베이스에 표현하려는 유/무형의 객체이다.
-개체는 개념이나 정보의 단위이다.(예: 학생, 교수, 학과)
-개체는 개체의 특성이나 상태를 기술하는 하나 이상의 속성으로 구성되어있다.(예1: 학생(학번, 이름, 학과), 예2: 교수(교수번호, 이름, 학과))
관계
-데이터베이스의 관계는 개체 집합과 개체 집합 사이의 관계이다. (예:학생과 교수 사이의 지도 관계)
-또한 관계는 데이터베이스를 접근할 때 사용하는 중요한 도구이다.(예: “학번이 1234인 학생의 지도교수를 검색하라.”)
스키마(Schema)
스키마는 데이터베이스의 논리적 정의이다. 즉 데이터 구조와 제약조건을 정의한 것이며 개체, 속성, 관계, 제약조건 등을 포함한다.
인스턴스(Instance)
정의된 스키마에 따라 DB에 실제로 저장된 값을 의미한다.
3단계 데이터베이스 구조
-3단계 데이터베이스 구조란 DB를 쉽게 이해하고 이용할 수 있도록, 하나의 DB를 관점에 따라 세 단계로 나누어 정의하고 이들 간의 관계를 정립하는 것을 의미한다.
-DB를 세 부분으로 나누는 단계들은 외부 단계, 개념 단계, 내부 단계으로 구성된다.
-외부 단계(External level) : 데이터를 이용하는 개별 사용자의 관점이다. 이것을 외부 스키마라고도 한다.
-개념 단계(Conceptual level) : 개별 사용자의 관점이 종합된 기관 전체의 관점이다. 이것을 개념 스키마라고도 한다.
-내부 단계(Internal level) : 물리적 저장장치의 관점이다. 이것을 내부 스키마라고도 한다.
외부 스키마
-외부 스키마는 개별 사용자 관점에서 정의한 데이터베이스 스키마이다.
-외부 스키마는 개별 사용자나 응용 프로그램에 관련된 개체와 관계만을 포함한다.
-하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재한다.
-전체 데이터베이스의 한 논리적인 부분을 의미하며 서브 스키마라고도 부른다.
개념 스키마
-개념 스키마는 조직 전체의 관점에서 정의한 데이터베이스 스키마이다.
-개념 스키마는 모든 응용이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 스키마이다.
-개념 스키마에는 개체, 관계, 제약조건이 포함된다. 또한 관리에 필수적인 DB접근 권한, 보안정책, 무결성 규칙에 대한 정의도 포함된다.
-하나의 DB 시스템에는 하나의 개념 스키마가 존재한다.
-이 개념 스키마를 단순히 스키마(Schema)라고도 한다.(흔히 말하는 스키마는 이 개념 스키마를 의미한다.)
내부 스키마
-내부 스키마는 저장장치 관점에서 정의한 데이터베이스 스키마이다.
-내부 스키마는 개념 스키마에 대한 저장구조를 정의한다.
-저장구조에는 레코드의 구조, 필드 크기, 인덱스 유/무, 레코드의 물리적 순서 등이 있다.
-하나의 DB 시스템에는 하나의 내부 스키마가 존재한다.
스키마 간의 매핑
-실제 데이터는 물리적 저장 장치에 저장된 데이터베이스에 존재해서 사용자가 자신의 외부 스키마를 통해 원하는 데이터를 얻으려면 내부 스키마에 따라 저장된 데이터베이스에 접근해야 한다. 그러기 위해서 외부 스키마, 개념 스키마, 내부 스키마 이 3가지 스키마 사이에는 유기적인 대응 관계(매핑)가 성립해야 한다. DBMS는 3단계 스키마에 있는 모든 개체, 속성간의 대응 관계를 알아야만 응용 프로그램의 DB접근을 지원할 수 있다.
데이터 독립성(Data Independency)
-데이터 독립성이란 데이터의 논리적/물리적 구조가 변경되더라도 응용 프로그램에 영향을 미치지 않는 특성을 의미한다.(하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성)
-데이터베이스를 3단계 구조로 나누고 단계별로 스키마를 유지하며 스키마 사이의 대응 관게를 정의하는 궁극적인 목적은 이 데이터 독립성을 확보하기 위해서이다.
-데이터 독립성은 논리적 데이터 독립성, 물리적 데이터 독립성으로 나뉜다.
시스템 데이터베이스
-시스템 데이터베이스란 일반 사용자가 사용하는 사용자 데이터베이스 아닌 시스템이 사용하는 DB를 시스템 데이터베이스라고 한다.
-데이터 사전(Data dictionary)은 시스템 데이터베이스의 일부로서 데이터베이스에 저장된 데이터에 관한 정보를 저장하는 역할을 하는 시스템 카탈로그와 데이터에 대한 데이터로, 3가지 스키마와 스키마 간의 매핑 정보를 포함하는 메타 데이터로 구성되어있다.
-데이터 디렉토리(Data Directory)는 시스템 데이터베이스의 일부로서 데이터베이스의 데이터를 실제로 접근하는 데 필요한 위치 정보를 관리하며, 시스템만 접근할 수 있다.
데이터베이스 사용자
사용자
-일반 사용자(최종사용자, End User)는 주로 DML인 데이터의 삽입, 삭제, 수정, 검색을 통해서 DB를 접근한다.
-응용 프로그래머(Application Programmer)는 응용 프로그램(프로그래밍 언어 + DML)을 통해서 DB를 접근한다.
-DB 관리자(DataBase Administrator, DBA)는 DDL과 DCL을 통해 DB를 정의하고 제어하는 사람을 의미한다. 즉 DB 시스템을 운영 및 관리하는자를 말한다.
DBA 업무
-DB의 구성요소(개체, 속성, 관계 선정)를 결정, DB 스키마 정의, 물리적 저장 구조와 접근 방법 결정, 보안 및 권한부여 정책, 유효성 검사 방법 수립, 백업(backup), 회복(recovery) 절차의 수립, DB의 무결성 유지 대책 수립, 성능 향상과 새로운 요구에 대응한 DB의 재구성, 시스템 데이터베이스 관리와 같은 DB설계와 운영을 한다.
-자원의 이용도, 병목현상(bottleneck), 장비 및 시스템 성능 감시, 사용자 요구의 변화, 데이터 이용 추세, 각종 통계의 종합 분석과 같은 시스템 감시 및 성능 분석을 한다.
-데이터의 표현과 시스템의 문서화에 표준 설정과 같은 사용자의 요구 및 불평을 해결한다.
데이터 언어
데이터 언어(Data Language)
-데이터 언어란 데이터베이스를 정의, 조작, 제어하기 위한 DBMS와의 통신 수단이다.
-데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 구성된다.
데이터 제어어(DCL)
-데이터 제어어는 정확하고 유효한 데이터만 유지시키는 무결성(Integrity)과 허가 받지 않은 사용자는 데이터에 접근을 차단하고 허가된 사용자는 권한이 있는 데이터에만 접근을 허용시키는 보안(Security)의 기능 그리고 장애가 발생해도 데이터의 일관성을 유지시키는 회복(Recovery) 기능, 데이터를 동시 공용 지원하는 병행 수행(Concurrency) 기능을 수행하기 위해서 사용한다.
DBMS의 구성
DBMS의 구성
DBMS는 질의 처리기와 저장 데이터 관리자로 구성되어있다.
질의 처리기
-질의 처리기는 사용자의 데이터 처리 요구를 해석/처리한다.
-질의 처리기는 `DDL 컴파일러`, `DML 컴파일러`, `DML 프리 컴파일러`, `런타임 DB 처리기`, `트랜잭션 관리자`로 구성된다.
-DDL 컴파일러는 DDL로 작성된 스키마 정의를 해석하고 저장 데이터 관리자의 도움을 받아 새로운 DB를 구축한다. 그리고 스키마 정의를 데이터 사전에 저장한다.
-DML 컴파일러는 DML로 작성된 데이터 처리 요구를 분석하여 런타임 DB 처리기가 이해할 수 있도록 해석한다.
-DML 프리 컴파일러는 응용 프로그램에 삽입된 DML을 추출하여 DML 컴파일러에 전달한다.
-런타임 DB 처리기는 저장 데이터 관리자를 통해 DB에 접근하고 DML 컴파일러로부터 전달받은 데이터 처리 요구를 DB에서 실제로 실행한다.
-트랜잭션 관리자는 사용자의 접근 권한의 유효성 검사, 무결성 제약조건 위반 여부 확인, 회복/병행 수행을 수행한다.
저장 데이터 관리자
저장 데이터 관리자는 디스크에 저장된 DB와 데이터 사전 관리 및 실제로 접근하는 역할을 하며 운영체제의 도움을 받아 접근을 수행한다.
연습 문제
Q.DBMS이 왜 필요하며, 필수 기능은 무엇인지 작성하시오.
Q.스키마의 종류들과 각 스키마가 무엇인지 작성하시오.
Q.데이터 독립성이 무엇인지 작성하시오.
'💾 Database > DB' 카테고리의 다른 글
SQL, DB, DBMS의 의미와 필요성 (0) | 2024.08.16 |
---|