데이터 베이스
- 조직체의 여러 응용 시스템들이 공유해서 사용하기 위한, 구조적으로 통합된 운영 데이터들의 모임
- 시스템 카탈로그( 또는 데이터 사전)와 저장된 데이터베이스로 구분 가능
- 시스템 카탈로그는 저장된 데이터베이스의 스키마 정보를 유지
데이터베이스 관리시스템
- 사용자 요구에 따라 데이터베이스에 대한 모든 연산을 수행
1. 사용자의 접근 요구를 접수/분석
2. 시스템이 이해할 수 있는 형태로 요청 변환
3. 외부/개념/내부/저장 구조 간의 스키마 역할
4. 저장 데이터베이스에 대한 연산을 실행
구성요소
- DDL 컴파일러 : DDL을 내부 형태로 변환하여 카탈로그에 저장(메타 데이터베이스)
- 질의어 처리기 : 질의문을 파싱, 분석, 컴파일하여 목적 코드 생성
- 예비 컴파일러 : 응용 프로그램의 DML을 추출하고 그 자리에 Procedure Call로 대체
- DML 컴파일러
- 런타임 데이터베이스 처리기 : 런타임의 DB에 접근하여 데이터베이스 연산 수행
- 트랜잭션 관리자 : 무결성과 권한 제어, 병행 제어와 회복 작업
- 저장 데이터 관리자
데이터 언어
데이터 정의어
- 데이터베이스 스키마를 정의하거나 수정
- 데이터 정의어로 명시된 문장이 입력되면 DBMS는 사용자가 정의한 스키마에 대한 명세를 시스템 카탈로그 또는 데이터 사전에 저장
데이터 정의어의 기본적인 기능
- 데이터 모델에서 지원하는 데이터 구조를 생성 예) SQL에서 CREATE TABLE
- 데이터 구조의 변경 예) SQL에서 ALTER TABLE
- 데이터 구조의 삭제 예) SQL DROP TABLE
- 데이터 접근을 위해 특정 애트리뷰트 위에 인덱스를 정의 예) CREATE INDEX
데이터 조작어
- 사용자가 원하는 데이터를 DBMS가 처리할 수 있도록 명세하는 도구
- 데이터베이스내의 데이터를 검색, 수정, 삽입, 삭제
- 데이터 처리를 명세하는 방법에 따라 절차적, 비절차적 DML로 나눌 수 있음. 절차적 DML은 어떤 데이터가 필요하고 어떻게 데이터를 접근할지, 비절차적 DML은 어떤 데이터가 필요한지만 명세
- 관계 DBMS에서 사용되는 SQL은 대표적인 비절차적 언어
- 데이터 조작어는 단말기에서 대화식으로 입력되어 수행되거나, C, 자바 등의 고급 프로그래밍 언어로 작성된 프로그램에 내포되어 사용
데이터 조작어의 기본적인 기능
- 데이터의 검색 예) SQL의 SELECT
- 데이터 수정 예) SQL의 UPDATE
- 데이터 삭제 예) SQL DELETE
- 데이터 삽입 예) SQL INSERT
데이터 제어어(DCL, Data Control Language)
- 데이터 제어어는 내부적인 규정이나 기법을 정의하고 이를 이용하여 데이터를 제어하고 기술하는 언어
- 데이터 제어어는 주로 데이터 관리목적으로 데이터베이스 관리자가 사용
- data security, integrity, recovery, concurrency control 의 명령어를 포함
사용자
데이터베이스 관리자
- 조직의 여러 요구를 만족하기 위해 일관성 있는 데이터베이스 스키마를 생성하고 유지하는 사람(팀)
- 데이터 정의어(DDL)와 데이터 제어어(DCL)사용
데이터베이스 관리자 역할
- 데이터베이스 스키마의 생성과 변경
- 무결성 제약조건을 명시
- 사용자의 권한을 허용하거나 취소하고, 사용자의 역할을 관리
- 저장 구조와 접근 방법(물리적 스키마)정의
- 백업과 회복
- 표준화 시행
- 행정관리 및 불평해결
- 시스템 감시 및 성능 분석
앱 프로그래머
- 데이터베이스 위에서 특정 앱이나 인터페이스를 구현
- 프로그래밍 언어인 C, JAVA 등으로 응용 프로그래밍을 개발하면서 데이터베이스를 접근하는 부분은 내포된 데이터 조작어 사용
- 이들이 작성한 프로그램은 최종 사용자들이 반복해서 수행하므로 기작성 트랜잭션이라 부름
최종 사용자
- 질의하거나 갱신하거나 보고서를 생성하기 위해서 데이터베이스를 사용하는 사람
- 최종 사용자는 다시 데이터베이스 질의어를 사용하여 매번 다른정보를 찾는 캐주얼 사용자와 기작성 트랜잭션을 주로 반복해서 수행하는 초보 사용자로 구분
데이터베이스 설계자
- ERWin 등의 CASE(Computer-Aided Software Engineering)
- 데이터베이스의 일관성을 유지하기 위해서 정규화를 수행
- 데이터베이스를 효율적으로 접근할 수 있도록 인덱스 등을 정의
데이터베이스 컴퓨터
데이터베이스 기능을 수행하기 위한 전용 목적의 하드웨어
- Backend Processor
- 지능형 저장 장치
- associative 메모리
- 병렬 처리(Parallel Processing)
데이터베이스 시스템 요구사항
- 데이터의 독립성
- 효율적인 데이터 접근
- 데이터에 대한 동시 접근
- 백업과 회복
- 중복을 줄이거나 제어하며 일관성 유지
- 데이터 무결성 : 데이터가 정확하고 완전(의미적 측면)
- 데이터 보안
- 쉬운 질의어
- 다양한 사용자 인터페이스
데이터베이스를 보는 관점에 따라 3단계로 표현
- 외부단계(External Level) : 각 사용자의 뷰
- 개념단계(Conceptual Level) : 사용자의 뷰가 통합된 기관 전체의 뷰
- 내부단계(Internal Level) : 물리적 저장장치의 입장에서 뷰
외부단계
- 데이터베이스의 각 사용자가 갖는 뷰
- 여러 부류의 사용자를 위해 동일한 개념 단계로부터 다수의 서로 다른 뷰가 제공될 수 있음
- 일반적으로, 최종 사용자와 응용 프로그래머들은 데이터베이스의 일부분에만 관심을 가짐
개념단계
- 전체 데이터베이스의 논리적인 구조를 기술
- 물리적인 구현은 고려하지 않으면서 조직체 전체에 대한 스키마를 표현
- 데이터베이스에 저장된 데이터의 형태, 데이터 간의 관계, 그리고 무결성 제약조건들을 기술
- 데이터베이스마다 오직 한 개의 개념 스키마가 존재
- 저장 구조와 독립적
내부단계
- 실제 데이터의 물리적인 구조에 대한 스키마
- 데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가를 기술
- 인덱스, 해싱 등과 같은 접근 경로, 데이터 압축등을 기술
- 물리적인 저장 장치를 직접적으로 다루지는 않음
- 내부 단계 아래는 물리적 단계
- 물리적 단계는 DBMS의 지시에 따라 운영체제가 관리함
스키마(Schema)
- 데이터베이스의 논리적인 구조 : 데이터 구조(데이터 객체, 관계)와 제약조건에 대한 명세를 기술
- 3단계 스키마 구조
스키마 | 설명 |
외부스키마(external schema) | - 개별 사용자 입장에서 데이터베이스 구조를 기술한 것 - 개별 사용자를 위한 여러 형태의 외부 스키마가 존재 - 서브 스키마(sub schema)라고도 부름 |
개념스키마(conceptual schema) | - 조직 전체 입장에서 통합한 데이터베이스를 기술한 것 - 하나의 개념스키마만 존재 - 스키마(schema)라고도 부름 |
내부스키마(internal schema) | - 저장된 입장에서 전체 데이터베이스가 저장되는 방법을 명세한 것 - 하나의 내부 스키마만 존재 |
데이터 독립성(Data Independency)의 구현
구분 | 설명 |
외부/개념 스키마(앱 인터페이스) | 외부 스키마와 개념 스키마 간의 대응 관계를 정의한 것으로 논리적 구조(개념 스키마)를 변경하더라도 앱 프로그램에 영향을 주지 않아서 논리적 데이터 독립성을 제공해주는 것 |
개념/내부 스키마(저장 인터페이스) | 개념 스키마와 내부 스키마 간의 대응 관계를 정의한 것으로 물리적 구조(내부 스키마)를 변경하더라도 응용 프로그램과 논리적 구조(개념 스키마)에 영향을 주지 않아 물리적 데이터 독립성을 제공해주는 것 |
내부/장치 스키마(장치 인터페이스) | 내부 스키마와 물리적인 장치 간의 대응 관계를 정의한 것 |
3단계 간의 사상(Mapping)
논리적 데이터 독립성
- 개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않음을 의미
- 기존의 외부 스키마에 영향을 미치지 않고 응용 프로그램을 다시 작성할 필요 없이 개념 스키마에 대한 변화가 가능해야함
물리적 데이터 독립성
- 내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않으며 따라서 외부 스키마(또는 응용 프로그램)에도 영향을 미치지 않음을 의미
- 내부 스키마의 변화의 예: 파일의 저장 구조를 바꾸거나 인덱스를 생성하거나 삭제
반응형
'23년 이전 글 > 데이터베이스' 카테고리의 다른 글
Relation과 무결성 제약 (0) | 2022.07.26 |
---|---|
데이터베이스 시스템, 데이터 모델 (0) | 2022.07.23 |
데이터베이스 관리 시스템 (0) | 2022.07.06 |
정보의 환경 (0) | 2022.07.06 |
SQL 쿼리, SELECT 사용 방법 (0) | 2022.07.01 |