- DBMS: 데이터베이스를 관리하는 프로그램(Database Management System)
- Database Systme: DBMS와 데이터를 포함하는 시스템, 응용프로그램도 포함
- Mini-World: 데이터화된 현실 세계
- DB의 암묵적 특성
- DB는 현실세계의 어떤 측면을 나타내며, mini-world, universe of discourse(UoD) 라고 불림
- 미니월드의 변경 사항은 DB에 반영
- DB는 어떤 내재적 의미를 가진 데이터의 논리적 모음
- DB는 특정 목적을 위해 설계되고 구축됨
- 의도된 사용자 그룹 또는 미리 구상된 응용 프로그램이 있음
- DB의 크기와 복잡성은 다양
몇 백개의 레코드에서부터 복잡한 레코드 구조를 가진 수십억개의 레코드까지 다양
#DBMS
- 사용자가 DB를 생성하고 유지관리하는 프로그램 모음
- 정의, 구축, 조작, 공유, 보호, 유지 관리 과정을 용이하게 하는 범용 소프트웨어 시스템
*보호: 시스템 보호, 보안
- Relationship: 데이터의 연관성
ex) 학생 - 과목 - 강사 - 학과
#DB의 특징
- 파일 시스템에서는 데이터의 중복이 저장공간의 낭비로 이어짐
- 수정시에도 추가적인 노력이 들어감
- DB에서는 단일 저장소가 유지되고, 여러 사용자가 접근
※DB의 특징 vs File System
1. DB system의 자기 기술 특성(self-describing)
2. 프로그램과 데이터 사이의 격리, 데이터 추상화
3. 데이터의 다중 뷰 지원
4. 데이터 공유 및 다중 사용자 트랜잭션 처리
↓
1) Self-describing nature of a DB system
- DB가 포함하는것
- DB 자신
- DB 구조의 완전한 정의 및 제약 조건
- 시스템 카탈로그에 저장됨, 메타데이터
- 카탈로그는 DBMS와 DB사용자 모두에 의해 사용됨
- 이로써 DBMS 소프트웨어가 다양한 데이터베이스와 작동
- 전통적 파일시스템에서 데이터 정의는 일반적으로 응용 프로그램의 일부
2) 프로그램과 데이터 사이의 격리, 데이터 추상화
- 프로그램-데이터 독립성
- DBMS 액세스 프로그램을 변경하지 않고 데이터 저장 구조와 작업을 변경할 수 있는 기능
- 프로그램-작업 독립성
- 객체 지향 및 객체-관계형 데이터베이스에서 정의된 작업
- Interface(or signature): 작업 이름과 인수의 데이터 유형
- Implementation(or method): 별도로 지정되며 인터페이스에 영향을 미치지 않고 변경 가능
- 데이터 추상화
- 데이터 모델은 저장 세부 사항을 숨기고 사용자에게 데이터베이스의 개념적인 관점을 제공하는 데 사용됨
- 데이터 모델은 객체, 그들의 속성 및 상호 관계와 같은 논리적 개념을 사용
3) 데이터의 다중 뷰 지원
- 각 사용자는 데이터베이스의 다른 뷰를 볼 수 있고, 해당 사용자의 관심 데이터만을 설명하는 데이터베이스의 부분 집합을 나타냄
- DB에서 파생된 가상 데이터
- 다중 사용자 DBMS는 다중 뷰를 정의하는 기능을 제공해야 함
4) 데이터 공유 및 다중 사용자 태랜잭션 처리
- 다중 사용자가 동시에 DB 접근
- 동시성 제어
- 동일한 데이터를 업데이트하려는 여러 사용자가 업데이트를 올바르게 수행하도록 제어된 방식으로 진행해 업데이터 결과가 올바르게 유지되도록 함
- 온라인 트랜잭션 처리 응용 프로그램(OLTP - online analytical processing application)
- 전통적 파일 처리 소프트웨어와 DBMS를 구별하는 가장 중요한 특징
Ch.2: Database System Concepts and Architecture
#Data models, schemas, and instances
- Data model = (S, O, C)
#Categories of data models
- High-level or conceptual data models
- entity, attribute, relationship 같은 컨셉
- Representational(or implementation) data models -> 이게 대부분
- 레코드 기반의 데이터 모델
- Low-level or physical data models
- 파일시스템 같은거 - access paths 사용
#Schemas, instances, and database state
- Database schema(DB의 틀)
- db에 대한 설명 -> 시스템 카탈로그에 저장된 메타 데이터
- intension (내포)
- Database state or snapshot
- extension(or instance)
- snapshot: 사진처럼 찍힐 당시의 순간을 의미
#DBMS Architecture and Data indeoendece
- 3가지 중요한 특징
1) 프로그램과 데이터의 격리
2) 다중 사용자 뷰 지원
3) Schema 저장을 위한 카탈로그 사용
- DB의 구조를 three-schema architecture이라고 함 -> 위의 3가지 특징을 달성하기위함
-> ★목표는 응용 프로그램과 물리적 데이터베이스를 분리하기 위함
- 내부 레벨에는 내부 스키마
- 데이터베이스의 물리적 저장 구조를 설명
- 개념적 레벨에는 개념적 스키마
- 사용자 커뮤니티를 위한 전체 데이터베이스 구조를 설명
- 엔티티, 데이터 유형, 관계, 사용자 작업 및 제약 조건을 설명하는 데 중점
- 이 레벨에서는 고수준 또는 구현 데이터 모델을 사용할 수 있음
- 외부 또는 뷰 레벨에는 여러 개의 외부 스키마 또는 사용자 뷰가 포함됨
- 특정 사용자 그룹이 관심을 가지는 데이터베이스의 일부를 설명하며, 나머지 데이터베이스를 해당 사용자 그룹으로부터 숨김
- 이 레벨에서는 고수준 또는 구현 데이터 모델 사용 가능
- 세 개의 스키마는 사실 데이터의 설명일 뿐이며, 실제로 존재하는 데이터는 물리적 레벨에 있음
- 각 사용자 그룹은 자신의 외부 스키마만 참조
- DBMS는 다음과 같이 변환해야 함
- 외부 스키마에 지정된 요청을 개념적 스키마에 대한 요청으로 변환, 다음으로 내부 스키마에 대한 요청으로 변환하여 처리 수행
- 이러한 매핑은 시간이 많이 걸릴 수 있으므로 일부 DBMS는 외부 뷰를 지원하지 않을 수 있음
#Data independence
- 다음 레벨의 스키마를 건드리지 않고 한 레벨의 스키마만 변경할 수 있는것
1) Logical data independence
2) Physical data independence
#Database Languages and interfaces
- DDL - data definition language
- DML - Data manipulation language
- Query languages
-> SQL 에 다 들어있음
-> 따로 번역하는 방식으로 SQL query와 C언어를 같이 사용할 수 있음(Precompiler)
#Precompiler
- 응용 프로그램에서 DML 명령어를 추출해 DML 컴파일러에게 전송
- 나머지 프로그램은 주 컴파일러로 보내짐
- DML 명령어를 위한 오브젝트 코드와 나머지 프로그램이 연결되고, 컴파일된 트랜잭션이 됨
'CS > DB' 카테고리의 다른 글
[DB] WITH, CASE, RECURSIVE, JOIN vs NESTED (0) | 2023.09.26 |
---|---|
[DB] 기본 Query (0) | 2023.09.12 |
[DB] 무결성 제약 조건 (0) | 2023.09.05 |