데이터베이스 시스템(DBS)
데이터베이스에 데이터를 저장하고 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 컴퓨터 중심의 시스템
데이터베이스 시스템 3단계 구조
데이터 베이스에서 데이터 구조와 제약조건에 대한 명세를 기술한 메타 데이터를 스키마라고 한다.
스키마에는 데이터 구조를 표현하는 데이터 객체(data object or entity)와 특성을 표현하는 속성(Attribute) 그리고 관계에 대한 정의(relationship), 유지해야할 제약조건(constraint)이 포함되어 있다.
스키마는 사용자 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나뉘어진다.
데이터베이스 관리 측면에서 데이터를 이용하는 개인 뷰, 뷰가 종합된 전체 뷰 그리고 시스템, 저장 장치의 뷰 등 세단계로 구별하여 데이터베이스를 기술한다.
이 세 단계를 외부 단계, 개념 단계, 내부 단계라고 하고 3단계 데이터베이스 구조라고 한다.
1. 외부 단계 external level
개별 사용자 관점에서 데이터베이스를 이해하고 표현한다. 외부 단계에서 사요자에게 필요한 데이터베이스를 정의한 것을 외부 스키마라고 한다.
ex) 대여 관리를 위한 스키마: 데이터 대여 명부, 일자, 책 제목 등
ex) 도서 관리를 위한 스키마: 책 제목, 대출 여부, 구입 일자 등
데이터베이스 하나에는 외부 스키마가 여러 개 존재할 수 있고 외부 스키마 하나를 사용 목적이 같은 사용자들이 공유할 수 있다. 외부 스키마는 전체 데이터베이스 중 사용자가 관심을 가지는 일부분으로 볼 수 있어 서브 스키마라고도 한다.
2. 개념 단계 conceptual level
데이터베이스를 이용하는 사용자들의 관점을 통합하여 데이터베이스를 조직 전체의 관점에서 이해하고 표현한다. 데이터베이스 관리 시스템이나 관리자의 관저메서 모든 사용자에게 필요한 데이터를 통합한 전체 데이터베이스의 논리적 구조를 정의한다.
3. 내부 단계 internal level
데이터베이스를 디스크나 테이프 같은 저장 장치의 관점에서 이해하고 표현한다.
내부 스키마는 데이터베이스의 개념 스키마에 대한 물리적인 저장 구조를 표현하므로 하나의 데이터베이스에 하나만 존재한다.
데이터베이스 관리 시스템
DBMS의 역사
1) 순차 파일 Sequential Access Method
- 입력되는 데이터들을 논리적인 순서에 따라 물리적 연속 공간에 순차적으로 기록하는 방식으로 주로 순차 접근이 가능한 자기 테이프에 사용된다.
2) 직접 파일
데이터 레코드가 순차적으로 저장되지 않고 데이터 레코드를 직접 액세스 할 수 있는데, 각 레코드에 주소가 부여되어 있어 검색없이 주소로 액세스 한다.
3) 색인 순차 파일 Index Sequential Accesss Method
순차 처리와 랜덤 처리가 모두 가능하도록 레코드들을 키 값 순으로 정렬시켜 기록하고 레코드의 키 항목만을 모은 색인을 구성하여 기록하는 방식. 레코드를 참조할 때 색인을 탐색한 후 색인이 가리키는 포인터를 사용하여 직접 참조할 수 있다.
- 구성
기본 구역: 실제 레코드들을 기록하는 부분으로 각 레코드는 키 값 순으로 저장된다.
색인 구역: 기본 구역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 부분이다.
오버플로 구역: 기본 구역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비해 확보해둔 부분이다.
4) VSAM Virual Storage Access Method
VSAM을 사용하면 기업은 파일 내의 레코드를 들어갔던 순서대로 만들고 액세스 할 수 있다.
5) 계층형 데이터베이스 (HDB)
계층형 데이터 모델은 트리 구조를 이용해서 데이터의 상호관계를 계층적으로 정의한 구조이다. 계층형 모델은 데이터의 논리적 구조가 트리 형태이며 개체가 트리를 구성하는 노드 역할을 한다.
6) 네트워크 데이터베이스 (NDB)
망형 데이터 모델
그래프 구조로 상위(Owner)와 하위(Member) 레코드 사이에서 다대다 대응 관계를 만족하는 구조이다.
레코드의 타입과 링크들의 집합
7) 관계형 데이터베이스 (RDB)
가장 널리 사용되는 모델로 관계 데이터 모델에 따라 제작된 데이터베이스를 관계 데이터베이스라고 한다.
2차원적인 표를 이용하여 데이터 상호관계를 정리하는 DB구조를 말한다.
기본 키(Primary Key)와 외래키(Foreign key)로 데이터 간의 관계를 표현한다.
8) 객체 지향형 데이터베이스 (OODB)
복잡한 현실세계를 있는 그대로 표현하기 위해 개발된 모델
9) 객체 관계형 데이터베이스 (ORDB)
관계형 데이터베이스(RDB)가 객체 지향 모델링과 데이터 관리 기능을 갖도록 확장한 데이터베이스 기술을 의미한다.
DBMS 정의
데이터베이스 관리 시스템은 데이터 집단과 데이터를 관리하는 프로그램의 집합체로서 운영체제 위에서 동작되며, 데이터베이스의 생성과조작을 담당하는 소프트웨어 그룹으로 소프트웨어 시스템에 해당한다.
필수 기능
- 정의 기능: 사용자들의 요구를 지원해줄 수 있는 적절한 데이터베이스 구조를 정의
- 조작 기능: 사용자와 데이터베이스 사이의 인터페이스
- 제어 기능: 데이터베이스에 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어
장점
- 데이터 중복 최소화
- 데이터 공용
- 데이터 일관성 유지
- 데이터 무결성 유지
단점
- 운영비 증대
- 자료 처리의 복잡화
- 복잡한 예비와 회복
- 시스템의 취약성
데이터베이스 시스템의 구성요소
구성 요소 | 내용 |
데이터베이스 | 상호 연관된 데이터의 집합 |
DBMS 데이터베이스 관리 시스템 | 데이터베이스를 관리하는 데 필요한 추가, 삭제 변경 등의 기능을 모은 소프트웨어 패키지로 이용자와 데이터베이스의 인터페이스를 제공한다. |
데이터베이스 컴퓨터 | 데이터베이스를 저장하고 처리하는데 필요한 시스템 |
스키마 | 데이터베이스의 기본 개념, 개념스키마와 내부 스키마 |
데이터베이스 언어 | 데이터 언어를 사용하여 데이터베이스를 구축하고 관리한다. |
데이터베이스 사용자 | 데이터베이스를 사용하는 사용자 |
데이터베이스 관리 시스템의 프로그램 처리 절차
1) DDL 컴파일러
DBA가 DDL로 명세한 스키마 정의를 내부 형태, 메타 데이터로 처리하여 시스템 카탈로그에 저장한다. 파일 이름, 데이터 아이템, 각 파일의 저장 세부 사항, 스키마 사이의 사상 정보 그리고 제약 조건이 포함되어 있다.
2) 질의어 처리기
대화식으로 입력된 고수준의 질의들을 처리하여 DML 컴파일러로 전달한다.
3) 예비 컴파일러
호스트 프로그래밍 언어로 작성된 응용 프로그램에서 데이터 조작어 명령들을 추출한다.
4) DML 컴파일러
추출된 명령들은 데이터베이스 접근을 위해 목적 코드로 변환하고 런타임 데이터베이스 처리기를 통해 데이터베이스에 접근할 수 있다.
5) 런타임 데이터베이스 처리기
실행 시간에 데이터베이스 접근을 관리하는데 이것은 검색이나 갱신 연산들을 받아서 데이터베이스에 대해 수행한다.
6) 트랜잭션 관리자
데이터베이스를 접근하는 과정에서 무결성 제약조건이 만족되는지 데이터에 접근할 권한을 사용자가 가지고 있는지 검사하고 트랙잭션의 병행 제어나 장애 발생시에 회복 작업을 수행한다.
7) 저장 데이터 관리자
디스크에 저장되어 있는 DBMS의 정보에 대한 접그을 제어한다.
사용자 접속
- 스키마와 서브 시키마
스키마란 데이터베이스의 논리적 설계를 의미하고 데이터 객체, 성질, 관계 그리고 관계가 갖는 제약 조건에 관한 정의를 총칭하는 개념이다.
(1) 스키마
DBMS 스키마의 목적은 사용자들이 데이터베이스의 복잡한 내부구조를 알 필요없이 외부 형식만 알면 사용할 수 있게한다. 외부 스키마 / 개념 스키마 / 내부 스키마로 나뉜다.
(2) 데이터 사전
데이터베이스에 저장되는 데이터에 관한 정보를 저장하는 곳을 데이터 사전 또는 시스템 카탈로그라고 한다.
데이터 사전도 데이터를 저장하는 데이터베이스의 일종이기 때문에 시스템 데이터베이스라고 한다. 데이터 사전은 DBMS가 스스로 생성하고 유지하는 것으로 DBMS가 주로 접근하지만 일반 사용자도 접근 가능 하다.
데이터 언어
데이터 정의어 DDL Data Definition Language
새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 기존 스키마의 정의를 삭제 또는 쉉하기 위해 사용하는 데이터 언어이다.
- 외부 스키마 명세를 정의한다.
- 데이터베이스의 논리적, 물리적 구조 및 구조 간의 사상을 정의한다.
- 스키마에 사용되는 제약조건에 대한 명세를 정의한다.
- 데이터의 물리적 순서를 규정한다.
데이터 조작 언어 DML Data Management Language
데이터 조작어는 사용자가 데이터의 삽입/삭제/수정/검색 등의 처리를 데이터베이스 관리 시스템에 요구하기 위해 사용하는 데이터 언어이다.
1) 절차적 데이터 조작어
절차적 데이터 조작어는 사용자가 어떤(what) 데이터를 원하고 해당 데이터를 얻기 위해서 어떻게(how) 처리해야하는 지를 설명한다.
2) 비절차적 데이터 조작어
비절차적 데이터 조작어는 사용자가 어떤(what) 데이터를 원하는지만 설명한다. 데이터를 어떻게(how) 얻는가는 DBMS에 맡긴다.
데이터 제어 언어 DCL Data Control Language
데이터 제어어는 데이터베이스를 정확하고 안전하게 다수가 공유하며 사용할 수 있도록 지원하는 언어이다.
- 데이터 보안: 권한이 없는 접근으로 DB를 보호한다.
- 데이터 무결성: DBMS가 삽입, 삭제, 갱신할 때마다 제약조건 등을 검사하여 정확성을 확보한다.
- 데이터 회복: 시스템 오류 등으로부터 DB를 회복시킨다.
- 병행 제어: 여러 사용자가 동시에 DB 공유가 가능 하도록 한다.
'Computer Science 기본 지식 > 데이터 베이스' 카테고리의 다른 글
DB (6) 정규화 (0) | 2021.05.13 |
---|---|
DB (5) SQL 언어 (0) | 2021.05.12 |
DB (4) 관계 데이터베이스 (0) | 2021.05.09 |
DB (3) 개체-관계 모델링 (0) | 2021.05.09 |
DB (1) 기초 용어 (0) | 2021.05.08 |