DB01
Database Management System
- 서로 관계있는 데이터들의 집합
- 데이터에 접근하기 위한 프로그램 집합
- 편리하고 효율적인 사용 환경을 제공해주는 프로그램
Database 적용 사례
- 기업 정보
- 제조
- 금융
- 대학
- 항공
- 웹 기반 서비스
- 문서
- 네비게이션
Database System의 목적
- 데이터 중복성과 불일치성 제거
- 데이터 접근의 어려움 해소
- 다양한 데이터 형식 통일
- 데이터 무결성 보장
- 데이터 수정의 개별화
- 복수의 사용자로부터의 동시적 접근 제어
- 보안 문제 보장
Data 모델
- Relation model
- Entity-Relationship data model
- Object-based data models(Object-oriented, Object-relational)
- Semi-structured data model(XML)
- Network model
- Hierarchical model
관계형 모델

인스턴스와 스키마
물리적 데이터 독립성
- 논리적 스키마를 변경하지 않고 물리적 스키마를 수정할 수 있도록 하는 능력
- 논리적 스키마와 물리적 스키마가 서로에게 연관되지 않도록 잘 정의해야 한다.
데이터 정의어
데이터 조작어
- 테이블을 수정하는 언어이다.
- 절차적 DML - 사용자로부터 어떤 데이터가 필요한지 어떻게 해당 데이터를 가져올지 명시하는 것이 필요하다.
- 선언적 DML - 데이터를 어떻게 가져올 지는 모른채 사용자가 어떤 데이터를 필요하는지만 명시하면 된다.
SQL
- 여러 테이블로부터 입력을 받고 언제나 하나의 테이블을 돌려준다.
Database 디자인
- 논리적 디자인 - 데이터 스키마를 결정하는 것이다.
- 물리적 디자인 - 데이터베이스의 물리적 개요를 결정한다.
Database Engine
Storage Manager
- 저수준 db에 저장된 데이터와 응용 프로그램과 시스템에 전달된 쿼리를 연결해주는 인터페이스를 제공해주는 구성요소
- 구성요소
- 인증과 무결성 매니저
- transaction 매니저
- 파일 매니저
- 버퍼 매니저
- 물리적 시스템에 구현되어 있는 데이터 구조들
Query Processor
- 구성 요소
- DDL interpreter
- DML compiler
- query evaluation engine
Transaction Management Component

- transaction : 데이터베이스 프로그램에서 한 개의 논리적 함수가 실행되는 연산의 집합이다.
- transaction-managerment component : 시스템 고장에도 일관된 데이터를 유지할 수 있도록 해주는 요소이다.
- concurrency-control manager : 동시적 트랜잭션의 상호관계를 조절하고 데이터베이스의 일관성을 유지해준다.
DBA
- 데이터베이스 시스템의 관리자이다
- 스키마 정의
- 저장 구조와 접근 방법 정의
- 스키마와 물리적 조직 정의
- 데이터 접근에 대한 권한 부여
- 루틴 유지
- 주기적 데이터베이스 백업
- 저장 가능 용량 유지 및 확장
- 데이터베이스 모니터링
Database의 역사
- 1950~1960 : 자기적 테이프를 이용하여 데이터를 처리함.
- 1960~1970 : relational data model이 등장함.
- 1980 : relational prototype들이 상업적 용도로 진화함.
- 1990 : 데이터베이스의 확장