1.1 데이터베이스 시스템 개요
데이터베이스란, 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임이다.
이 구조는 사용되는 데이터 모델에 의해 결정된다. 또한 여러 사용자 의해 동시 사용, 중복 최소화, 설명 포함(데이터베이스 스키마 or 메타데이터), 프로그램과의 독립성이 있다는 특징을 지닌다. 그리고 보조기억장치에 저장되기 때문에 원하는 정보를 찾으려면 주기억 장치로 읽어들여야 하며, 연산을 위해서는 CPU가 사용된다.
이는 저장된 데이터베이스의 스키마 정보를 유지하는 시스템 카탈로그(system catalog, 데이터 사전)와 저장된 데이터베이스로 구분할 수 있다.
- 데이터베이스 관리 시스템(DBMS, DataBase Management System) : 데이터베이스 정의, 질의어 지원, 리포트 생성
- 데이터베이스 생성 / 구조 명시 / 질의 및 수정 / 보호 / 접근 제어
- SQL - 표준 데이터베이스 언어
- 데이터베이스 스키마 : 전체적 데이터베이스 구조, 모든 가능한 상태 미리 정의 - 내포(intension)
- 데이터베이스 상태 : 특정 시점의 내용, 시간 지남에 따라 계속 바뀜 - 외연(extension)
이러한 데이터베이스 시스템에 대해서는 데이터 독립성, 효율적 데이터 접근, 동시 접근, 백업과 회복, 중복 제어하며 일관성 유지, 데이터 무결성, 보안, 쉬운 질의어, 다양한 사용자 인터페이스 등이 요구된다.
1.2 화일 시스템 VS DBMS
화일 시스템 | DBMS | |
데이터 대한 접근 조정 | 물리적 접근 조정 | 물리적+논리적 접근 조정 |
동시 접근 | 불가능 | 가능 |
구조/유지보수 비용 | 비구조적 / 비용 높음 | 구조적 / 비용 낮음 |
공유성 | 다른 프로그램에서 읽기 어려움 | 모든 프로그램이 데이터 공유 |
데이터 접근 | 미리 작성된 프로그램으로 | 질의어로 |
데이터 통합 | 각 프로그램마다 화일이 따로 있음 | 중복 배제하며 통합 |
1.3 DBMS 발전 과정
데이터 모델 : 데이터베이스 구조 기술 시 사용되는 개념들의 집합 구조(데이터타입&관계) + 연산자 + 무결성 제약조건
- 고수준 or 개념적 데이터 모델(conceptual data model)
- 사람 인식과 유사하게 논리적 구조 명시
- ex) 엔티티-관계(ER: Entity-Relationship) 데이터 모델, 객체지향 데이터 모델
- 표현(구현) 데이터 모델(representation(impllementation) data model)
- 최종 사용자가 이해하는 개념, 컴퓨터 내 데이터가 조직되는 방식과 비슷
- ex) 계층(hierarchical) 데이터 모델, 네트워크(network) 데이터 모델, 관계(relation) 데이터 모델
- 저수준 or 물리적 데이터 모델(physical data model)
- 데이터베이스에 어떻게 저장되는지 기술
- ex) Unifying, ISAM, VSAM
계층 DBMS | IBM의 IMS 등장, 트리 구조 기반, 효율적 but 미리 접근 방식, 관계 등을 정의해야 함 |
네트워크 DBMS | IDS 등장, 노드, 간선으로 표현되는 그래프 기반, 링크로 되어 있는 구조 변경 어려움 |
관계 DBMS | System R, Ingres, 간단한 모델, 자신이 원하는 것만 명시하고, 데이터가 어디에 있는지와 어떻게 접근해야 하는지는 DBMS가 결정 |
객체 지향 DBMS | 데이터와 프로그램을 그룹화, 복잡한 객체 이해 및 유지, 변경 용이 |
객체 관계 DBMS | 관계 + 객체 지향 DBMS (Oracle, Informix Universal Server) |
1.4 DBMS 언어
데이터 정의어(DDL : Data Definition Language)
- 데이터베이스 스키마 정의 - 입력되면 스키마 대한 명세를 시스템 카탈로그/데이터 사전에 저장
- SQL의 CREATE / ALTER / DROP / CREATE TABLE
데이터 조작어(DML : Data Manipulation Language)
- 데이터 검색, 수정, 삽입, 삭제
- SQL의 SELECT / UPDATE / DELETE / INSERT
데이터 제어어(DCL : Data Control Language)
- 데이터베이스 트랜잭션 명시, 권한 부여 or 취소
1.5 DBMS 사용자
데이터베이스 관리자(DBA: Database Administrator : 데이터베이스 스키마 생성, 유지 + 무결성 제약조건 명시, 사용자 역할 관리, 저장 구조 정의, 백업, 표준화
응용 프로그래머 : 데이터베이스 위에서 특정 응용, 인터페이스 구현 - 기작성 트랜잭션(canned transaction)
최종 사용자(End User) : 질의, 갱신, 보고서 생성 위해 데이터베이스 사용
데이터베이스 설계자 : CASE 도구 이용하여 데이터베이스 설계 담당, 일관성 유지 위한 정규화 수행
오퍼레이터 : DBMS 운영되고 있는 컴퓨터 시스템, 전산실 관리
1.6 ANSI/SPARC 아키텍처와 데이터 독립성
외부 단계 : 각 사용자의 뷰
개념 단계 : 사용자 공동체 뷰 (어떤 데이터 저장, 데이터 간 관계, 무결성 제약조건 명시 기술)
내부 단계 : 물리적 or 저장 뷰 (어떻게 저장되어있는지, 접근 경로, 데이터 압축 등 기술)
물리적 단계 : DBMS 지시에 따라 운영체제가 관리
* 데이터 독립성 - 상위 단계의 스키마 정의에 영향을 주지 않으면서 스키마 정의 변경
- 논리적 데이터 독립성 : 개념 스키마 변화로부터 외부 스키마가 영향받지 X
- 물리적 데이터 독립성 : 내부 스키마 변화로부터 개념 스키마가 영향받지 X (화일 저장구조 바꾸기, 인덱스 생성/삭제)
1.7 데이터베이스 시스템 아키텍처
데이터 정의어 컴파일러 모듈 : 테이블 생성, 명세를 시스템 카탈로그에 저장
질의 처리기 모듈 : 데이터 조작어 수행하는 최적의 방법을 찾는 모듈
런타임 데이터베이스 관리기 모듈 : 디스크에 저장된 데이터베이스 접근
트랜잭션 관리 모듈 : 동시성 제어, 회복 모듈
클라이언트-서버 데이터베이스 시스템
- 자체 컴퓨팅 능력 가진 클라이언트 통해 데이터베이스 서버 접근
- 2층 모델 : 클라이언트와 데이터베이스 서버 직접 연결
- 3층 모델 : 클라이언트와 데이터베이스 서버 사이에 응용서버 추가
'COMPUTER SCIENCE > DATABASE' 카테고리의 다른 글
[SQL] 4. SQL (0) | 2019.04.25 |
---|---|
[SQL] 3. 관계 대수 (0) | 2019.03.30 |
[SQL] 2. 관계 데이터 모델과 제약조건 (0) | 2019.03.30 |