CS/DB

[DB] DB의 특징

goliot 2023. 8. 29. 14:48
반응형

- 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