본문 바로가기

1일1티스토리

250913 - 데베설 Chapter 1 복습

What Is a DBMS?

: DB 관리를 위한 소프트웨어 (ex. Postgres, MySQL, MongoDB, Oracle …)

  • Data vs Information vs Knowledge

Data : 설명, 관찰, 측정된 날것의 사실

Information : 준비되거나 정리된 데이터

Knowledge : 실제 의사결정에 사용되는 데이터/정보/규칙

  • 정보 (Information) : 사실들 그 자체에 대한 일차적인 표현, 사실들 + 이들로부터 유도될 수 있는 유추된 사실들

데이터 포맷을 변경하는 등의 사전 처리(prepare), 구성화(organize) 등의 프로세스를 거침

데이터에 비해 정보화를 거치면 훨씬 많은 사실을 표현할 수 있다

(ex. 단순 학기의 학점에 대한 데이터 → 꺾은선 그래프로 표현해 추이 확인)

  • 대규모, 통합된 관련 있는 데이터 묶음
  • 실제 기업을 모델로 삼았음

Entities (실체) : students, courses

Relationships (관계) : 마돈나는 CS564 수업을 수강한다

  • DBMS는 데이터베이스를 저장하고 관리하도록 설계된 소프트웨어 패키지

 

Why Use a DBMS?

  • 데이터 독립성 및 효율적인 접근
  • 애플리케이션 개발 시간이 단축
  • 데이터 무결성(integity) 및 보안
  • 통일된 데이터 관리
  • 동시 액세스, 충돌 복구

 

Data Models

모델링 : 현실세계에 있는 것을 잘 반영하도록 하는 것

DB를 만들기 위해 필요한 과정

스키마 (Schema) : 어떻게 생겼는지 기술해놓은 것,

  • 인스턴스 (Instance) : DB의 state
  • 데이터 모델 : 데이터를 설명하기 위한 개념의 모음
  • 스키마 : 주어진 데이터 모델을 사용한 특정 데이터 컬렉션에 대한 설명
    • DB의 구조를 정의하는 청사진 같은 개념
  • 오늘날 제일 많이 사용되는게 relational model of data (관계형 데이터 모델)
    • relation : 행과 열로 구성된 테이블
    • Every relation has a schema : 모든 관계들은 columns / fields 를 표현하는 스키마를 가진다

⇒ 데이터 모델은 큰 틀 / 스키마는 틀에 맞춘 설계도 / 관계는 설계도로 만들어진 실제 데이터 테이블

 

History of Data Models

  • 60’s 초 : Network Model
  • 60’s 말 : Hierarchical Model
  • 70’s : Relational Model
  • 80’s 말 & 90’s 초 : Extended(Object) Relational Model or Object-Oriendted Model(객체 지향 모델)
  • 90’s 말 : Datat Warehousing, Data Mining, Distributed DB, Web DB, ERP …

ER(Entity-Relationship Model) 이란?

Semantic Data Model (의미 기반) : 데이터의 의미를 표현 → 개체, 관계, 속성으로 표현

↔ Syntax (구조)

Record-based Model (레코드 기반) : 데이터를 실제 레코드(행) 단위로 저장

*Record : 테이블에서 하나의 열

**Row = record, Column = attribute

 

Levels of Abstraction [추상화 단계]

  • 구조

1 많은 views(External Schema) : 사용자가 보는 관점, 복잡한 내부 구조는 몰라도 ok

2 하나의 conceptual (logical) schema : 논리적 구조를 정의, 모든 데이터와 관계를 정의

3 physical schema : 실제 데이터가 파일, 인덱스, 디스크에 어떻게 저장?

  • DDL (Data Defined Language, 데이터 정의어) 를 사용해 정의
  • DML (Data Manipulation Language, 데이터 조작어) 를 사용해 수정/쿼리

 

Example

1 External Schema (View) : Course_info(cid: string, enrollment: integer)

2 Conceptual Schema :

Students(sid: string, name: string, login: string, age: integer, gpa: real)

Course(cid: string, cname: string, credits: integer)

Enrolled(sid: string, cid: string, grade: string)

3 Physical Schema (Internal Schema) :

Relations stored as unordered files

관계들은 정렬되지 않은 상태로 저장된다

Index on first column of Students

Students 의 첫번째 열을 인덱스(sid) 로 사용한다

 

Data Independence [데이터 독립성]

  • 데이터의 구조화 & 저장 방식으로부터 독립된 애플리케이션
  • Logical data independence : 논리적 구조가 바뀌어도, 애플리케이션에 영향 x
  • Physical data independence : 물리적 구조가 바뀌어도, 애플리케이션이나 논리적 구조에 영향x

⇒ DBMS 를 사용하는 가장 중요한 이점 중 하나~

 

External Schema

(Logical indenpendence) → 사용자 뷰 보호

Conceltual Schema

(Physical independence) → 논리 구조 보호

Pysical Schema

 

Transaction: DB 프로그램의 실행

  • Transaction : DB 작업의 최소 단위
  • atomic sequence ( reads / writes) : 읽고 쓰는 행위에 대해 원자적으로 취급
  • ⇒ All or Nothing, 전부 실행되거나 하나도 실행되지 x
  • 트랜잭션은 실행이 끝난 뒤, DB를 일관된 상태로 유지해야한다

DBMS는 하나의 일만 수행하는게 x

이때 일관된 상태를 유지하도록, 원래 갖고 있던 값을 잘 처리해야!

이게 절대 쉬운 작업이 아닌데 이걸 DBMS 가 해준다

 

Concurrency Control [동시성 제어]

: 여러 사용자가 동시에 DB를 사용할 때, 데이터의 일관성과 무결성을 보장 + 성능은 유지

  • 좋은 성능을 위해 동시 실행은 필수적!
  • 빈번한 디스크 접근과 보통 속도가 느리기 때문에 CPU를 원활하게 작업해야
  • 서로 다른 프로그램의 작업을 섞어서 처리하면 불일치 발생 가능
  • 사용자에게는 단일 사용자 시스템을 사용하는 것처럼 가장 가능
  • 스케줄링 (실행 순서 조절) 이나 잠금 (동시 접근 시) 기술 사

 

Structure of a DBMS

  • 보통 계층 구조로 설계, 각 계층은 특정 역할을 담당
  • 상위 계층은 하위 계층의 기능을 사용해 동작
  • 모든 게층에서 동시성 제어 + 회복 기능 고려 필요

1 Query Optimization and Execution : SQL 쿼리 입력시 최적화 후 실행

2 Relational Operators : join 등 관계 대수 연산을 수행

3 Files and Access Methoods : 인덱스나 검색 알고리즘을 통해 데이터 접근을 효율적으로

4 Buffer Management : 필요한 데이터를 디스크 → 메모리로, 임시 공간!

5 Disk Space Management : 디스크의 실제 물리적 저장 공간 관리

 

** 4, 5번의 경우 OS가 하는 일 같지만, DBMS 가 자체적으로 구현하는 이유가 잇음.

특정 테이블 블록이 반복적으로 참조되는 경우 자체 버퍼를 이용

OS는 파일 단위로만 디스크 공간을 관리하는데, 페이지 단위로 세세하게 필요한 경우

 

⇒ 즉, 성능 최적화와 데이터 일관성 관리 때문에 OS 위에 또 이 기능들을 구현한 것!

 

Summary

  • DBMS 는 대규모 데이터를 관리하고 질의(검색) 하는데 사용
  • 장점 : 시스템 장애로부터의 복구, 동시성, 빠른 어플리케이션 개발, 데이터 무결성, 보안
  • 추상화 계층은 데이터 독립성을 제공한다
  • DBMS는 일반적으로 계층형 구조를 가진다
  • DBA(데이터베이스 관리자)는 책임 있는 직무를 맡으며 보수도 높다
  • DBMS 연구&개발은 CS에서 가장 폭 넓고 흥미로운 분야 중 하나이다

'1일1티스토리' 카테고리의 다른 글

250915 - enum / const enum  (0) 2025.09.15
250914 - 소웨공 chap0 복습  (1) 2025.09.14
250912 - 데마분 Ch1 복습  (0) 2025.09.12
250911 - selectionSort : correctness  (0) 2025.09.11
250910 - insertion sort: correctness  (0) 2025.09.10