1. Database Systems Applications
- DBMS ( Database Management System)는 특정한 기업 정보를 담고 있습니다.
- 상호 관련된 데이터
- 데이터에 접근하는 프로그램 집합
- 편리하고 효율적으로 사용될 수 있는 환경
- 데이터베이스 시스템이 다루는 데이터들의 특징 :
- Highly valuable
- Relatively large
- Accessed by multiple users and applications, often at the same time
Database Applications Example
- Enterprise Information
- Sales : customers, products, purchases
- Accounting : payments, receipts, assets
- Human Resources : Information about employees, salaries, payroll taxes
2. Purpose of Database Systems
- 초기에 데이터베이스 애플리케이션은 파일시스템의 바로 위쪽에 구축되어 다음과 같은 문제를 가지고 있었습니다.
- Data redundancy and inconsistency : 데이터가 서로 다른 여러 파일에 저장되어 중복 및 불일치 발생
- Difficulty in accessing data - Need to write a new program to carry out each new task
- Data isolation - Multiple files and formants
- Integrity problems ( 무결성 문제 ) : 파일 시스템에서는 무결성 제약조건을 확인하려면 코드를 직접 확인해야 하고, 새로운 제약 조건의 변경이나 추가가 어렵습니다.
- Atomicity of updates : 수정 시 오류가 발생하면 데이터베이스의 일관성이 깨질 수 있습니다.
- Concurrent access by multiple users : 성능을 위해서는 데이터베이스 동시 접근이 필요합니다. 하지만 파일시스템에서의 제어 불가능한 동시 접근은 데이터의 불일치를 발생시킬 수 있습니다.
- Security problems : 전체 데이터가 아닌 데이터의 일부분에 대한 사용자의 접근을 제공하기 어렵습니다.
Database Systems는 위와 같은 문제를 해결해줍니다.
3. View of Data
- A database system is a collection of interrelated data and a set of programs that allow users to access and modify these data.
- A major purpose of a database system is to provide users with an abstract view of the data.
Abstract view란 ?
사용자는 데이터베이스에 저장된 데이터가 어떤 타입인지 알 필요가 없습니다. 이처럼 관점마다 데이터베이스에 대한 추상화를 제공하는 것을 뜻합니다.
Data Models
- 데이터 모델이란? 데이터, 관계, 의미론 ( Data Semantics ), 제약조건 등 데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형입니다.
- Relational model
- Entity-Relationship data model ( mainly for database design )
- Object-based data models ( Object-oriented and Object-relational)
- Semi-structured data model(XML) : 반구조형 데이터 모델, 개체별로 형식은 같지만 다른 속성을 갖는 비정형적인 데이터 모델
- Other older models: Network model, Hierarchical model ( 계층형 모델 )
Rleational Model
- 모든 데이터가 다양한 테이블( 릴레이션 )에 저장됩니다.
- Columns는 데이터베이스의 '스키마'를 담고 있습니다.
- Rows는 스키마의 인스턴스로 시간에 따른 가변성을 가집니다. ( 투플이 삭제되거나 추가되거나 수정되거나 하는 등 )
Levels of Abstraction : 데이터베이스의 추상화 단계
- Physical level : 레코드( 물리적으로 저장하는 단위 )를 어떻게 저장할 것인지 명시하는 단계
- Logical level : 데이터베이스에 저장되어지는 데이터와 그 데이터들간의 관계를 명시하는 단계
- View Level : 데이터 타입등의 세부 정보를 숨기며, 보안 목적으로 특정 정보 ( 임금 정보 등)을 숨겨서 사용자별로 추상화하여 보는 단계
데이터베이스 시스템 아키텍처
데이터 독립성 - 하위 단계의 구조가 변경되더라도 상위 단계에 영향을 미치지 않는 속성
- 논리적 데이터 독립성 : Logical level에서의 구조 변화가 View level에 영향을 미치지 않는다.
- 물리적 데이터 독립성 : Physical level에서의 구조 변화가 Logical level에 영향을 미치지 않는다.
인스턴스와 스키마
- 프로그래밍 언어에서의 타입, 변수와 비슷합니다.
- Logical Schema : 데이터 베이스의 논리적 구조를 나타내는 스키마
- Physical Schema : 데이터베이스의 물리적 구조를 나타내는 스키마 ( 실제 HDD등에 어떻게 저장할건지 )
- Instance : 특정 시점에 데이터베이스의 실제 데이터
4. Database Languages
DDL ( Data Definition Language ) : 데이터베이스 스키마를 정의하는 언어
Data Dictionary : 데이터베이스의 메타 데이터를 담고 있는 공간
- Database Schema
- Integrity constraints
- Authorization (인가)
DML ( Data Manipulation Language ) : 데이터 조회, 수정, 삭제, 삽입을 처리하는 언어
- Procedurla DML : 필요한 데이터와 해당 데이터를 얻는 방법 기술
- Declarative DML : 필요한 데이터만 명시 ( == non-procedural DML)
SQL Query Language
- nonprocedural
- 질의 대상(Input)은 여러 테이블 ( 또는 하나의 테이블 )이며 질의 결과(output)은 항상 하나의 테이블을 반환합니다.
- 서브쿼리(부속질의)가 가능합니다.
- 복잡한 기능을 처리하기 위해 일반적으로 SQL은 고급 언어에 내장되어 있습니다.
- 애플리케이션에서 데이터베이스에 접근하기위해 1) embedded SQL 혹은 2) API(ODBC/ JDBC 등)을 사용합니다.
5. Database Design
- Logical Design - 데이터베이스 스키마를 결정
- Phyiscal Design - 데이터베이스의 물리적 레이아웃 결정. 논리적 디자인에서 만들어진 데이터베이스 스키마를 기반으로 데이터베이스의 물리적 구조를 설계합니다. 이 단계에서 데이터베이스의 성능과 효율성을 고려하여 데이터베이스를 저장할 파일 구조, 인덱스 구조 등을 결정합니다.
6. Database Engine
데이터베이스 시스템의 구성 요소
- The storage manager (저장 관리자): 데이터베이스에서 데이터를 저장하고 검색하는 데 사용되는 하드웨어 및 소프트웨어 구성요소, 디스크 IO와 관련되어 있어 가장 중요한 역할
- The query processor component (쿼리 처리기) :사용자가 데이터베이스에서 정보를 검색하고 조작할 수 있도록 하는 데 사용되는 소프트웨어 구성요소
- The transaction management component (트랜잭션 관리자): 트랜잭션을 관리하고 제어하는 데 사용되는 소프트웨어 구성요소
6-1. Storage Manager
- 데이터베이스와 응용 프로그램 및 시스템에 제출된 커리 간의 인터페이스를 제공하는 프로그램 모듈
- OS 파일 관리자와 상호 작용
- 데이터의 효율적인 저장, 검색 및 업데이트
- 구성 : 권한 및 무결성 관리자 / 트랜잭션 관리자 / 파일 관리자 / 버퍼 관리자
저장 관리자가 물리적 시스템 구현의 일부로 구현하는 여러 데이터 구조
- Data files : 데이터베이스 자체를 저장
- Data dictionary : 데이터베이스의 스키마를 포함한 데이터베이스 구조에 대한 메타데이터를 저장
- Index : 데이터 항복에 빠른 액세스를 제공
6-2. Query Processor 구성 요소
- DDL 인터프리터 : DDL 문을 해석하고 Data dictionary에 정의를 기록
- DML 컴파일러 : 쿼리 언어에서 DML문을 낮은 수준의 명령으로 구성된 evaluation plan으로 번역, 쿼리 최적화 수행 ( Evalutatuin plan은 Query evaluation engine에서 실행합니다 )
- Query evaluation engine : DML 컴파일러에 의해 생성된 저수준 명령을 실행
Query Processing
1. Parsing and translation
2. Optimization - Optimizer : 생성된 관계대수식을 최적화하여 수행
3. Evaluation
6-3. Transaction Management Component
- 시스템 장애 및 트랜잭션 실패 시 데이터베이스 일관성을 유지시킵니다.
- 구성 요소로 Concurrency-control manager와 recovery manager이 있습니다.
- Concurrency-control manager : 동시 트랜잭션 간의 상호 작용을 제어하여 데이터베이스의 일관성을 보장합니다.
7. Database Architecture
- Centralized databases
- Client - server
- Parallel databases
- Distributed Databases
Database Applications
- Two-tier architecture : 2계층 아키텍처에서는 응용 프로그램이 클라이언트 컴퓨터에 설치되어 있으며 서버 컴퓨터에서 데이터베이스 시스템 기능을 호출합니다. 이 모델에서는 클라이언트가 직접 데이터베이스 시스템 기능을 호출합니다.
- Three-tier architecture : 3계층 아키텍처에서는 클라이언트 컴퓨터에는 응용 프로그램 인터페이스만 있으며, 애플리케이션 서버를 통해 데이터베이스 시스템에 접근합니다. 이 모델에서는 클라이언트가 직접 데이터베이스를 호출하지 않습니다.
8. Database Users
8-1. Database Administrator (DBA)
- 데이터베이스 시스템을 중앙에서 제어하는 역할
- 스키마 정의, 저장 구조 및 엑세스 방법 정의, 스키마 및 물리적 조직 수정, 데이터 접근 권한 부여, 일상적 유지 관리, 주기적인 DB 백업, 작업에 필요한 free disk 공간 확보 및 디스크 공간 업그레이드 등의 작업을 수행
9. History of Database Systems
- 1950s and early 1960s : magnetic tapes for storage / sequential access
- Late 1960s and 1970s : 하드디스크 도입, 네트워크 및 계층 데이터 모델 널리 사용, Ted Codd가 관계형 데이터 모델 정의
- 1980s : SQL이 산업 표준이 됨, 병렬 및 분산 DB시스템, 객체 지향적 DB 시스템
- 1990s : 대규모 의사 지원 및 데이터 마이닝 애플리케이션, 대규모 수의 테라바이트 데이터 웨어하우스, 웹 커머스 등장
- 2000s : Big data storage Systems ( NoSQL 시스템), Big data analysis
- 2010s : SQL reloaded ( NoSQL의 단점을 보완하며 재등장) - Map reduce systems / 대규모 병렬 데이터베이스 시스템 / multi-core main-memory databases
'Computer Science > 데이터베이스' 카테고리의 다른 글
[ Ch5 ] Database System Concept, 7th Ed (0) | 2023.04.22 |
---|---|
[ Ch4 ] Database System Concept, 7th Ed (0) | 2023.04.21 |
[ Ch3 ] Database System Concept, 7th Ed (1) | 2023.04.21 |
[ Ch 2 ] Database System Concept, 7th Ed (0) | 2023.04.17 |