DB

[Relational database] 01. 데이터 베이스 개요 *ACID

Joo.v7 2024. 9. 30. 19:01

Chapter 1: 데이터 베이스 시스템 개요

  • 데이터와 정보
  • 정보 시스템
  • 데이터 베이스(DB)
  • 데이이터 베이스 관리 시스템(DBMS)
  • 데이터 베이스 관리 시스템의 기능

Chapter 2: 데이터베이스 관리 시스템 (DBMS)

  • 파일 시스템과 DBMS
  • DBMS에서 데이터의 명세 및 저장
  • 데이터 모델
  • 데이터 독립성
  • 데이터 베이스 Query
  • 트랜잭션
  • DBMS의 구조
  • DBMS의 장점

Chapter 1: 데이터 베이스 시스템 개요

Database: 하나 or 하나 이상의 조직과 관련된 데이터의 집합체.
DBMS: 데이터의 방대한 집합체를 유지하고 이용하는데 도움을 주도록 설계된 SW.

 

데이터와 정보

  • Data: 현실 세계로부터 단순한 관찰이나 측정을 통해서 수집된 fact/value.
    • Structed data: Data model(데이터 or 정보를 설명하기 위한 표기법)을 정의하고, 이 model을 기반으로 조직된 데이터.
    • Unstructed data: Structed data가 아닌 나머지 data.
      (Text Mining이 사용됨 -> 비정형 텍스트를 정형화해서 의미있는 패턴과 새로운 인사이트를 찾아내는 프로세스)
    • Semi-structed data: Structed data의 data model, 형식(schema)를 준수하지 않는 data
      * schema(스키마): 데이터가 저장되기 위해서 지켜야 하는 형식. 
  • Information: Data를 처리해서 얻어진 결과, 모든 종류의 자료 또는 지식.
  • Information = Processor(Data)

 

정보 시스템 (Information System)

  • 조직의 활동에 필요한 데이터를 수집, 저장해 두었다가 필요할 때 처리해서 의사 결정에 유효한 정보를 생성하고 분배하는 도구.
    ex) MIS - 경영 정보 시스템, ERP - 전사적 자원 관리, CRM - 고객 관계 관리, SCM - 공급 사슬 관리 ...
    • OLTP(Online Transaction Processing): 실시간 data 분석.
    • OLAP(Online Analytical Processing): 저장된 데이터를 가져와서 분석하는 시스템.

 

데이터 베이스(DB)

  • 정의
    1. 통합된 데이터 (Integrated Data)
    2. 저장된 데이터 (Stored Data)
    3. 운영 데이터 (Operational Data)
    4. 공용 데이터 (Shared Data)
  • 특징
    1. 실시간 접근성 (Real-time Accessibility)
    2. 지속적인 변화 (Continuous Evolution)
    3. 동시 사용 (Concurrent Sharing)
    4. 내용 참조 (Content Reference)

 

데이터 베이스 관리 시스템(DBMS)

  • 데이터의 방대한 집합체를 유지하고 이용하는데 도움을 주도록 설계된 SW.
  • DB의 구성, 접근 방법, 관리 유지에 대한 모든 책임을 가진다.(조직/접근/통제)
  • 응용 프로그램은 DB에 대해서 자세히 관련할 필요없이 원하는 data와 처리 작업을 DBMS에 요청만 하면 되는 구조.

 

데이터 베이스 관리 시스템(DBMS)의 기능

  1. 데이터 정의 기능 - Data Definition
    • 다양한 응용 프로그램과 DB가 서로 interface 할 수 있는 다양한 방법을 제공.
  2. 데이터 조작 기능 - Data Manipulation
    • 사용자와 DB 사이의 interface를 위한 수단 제공.
  3. 데이터 제어 기능 - Data Control
    • 관리되는 DB의 내용에 대해 항상 정확성과 안정성을 유지할 수 있는 제어 기능을 가지고 있어야 한다.

 


 

Chapter 2: 데이터베이스 관리 시스템 (DBMS)

 

파일 시스템과 DBMS

  • 만약 1PB의 데이터를 파일에 저장하면, 이 데이터를 모두 메모리에 올려놓는 것은 불가능하다. 이를 DBMS에 저장하면 복잡한 작업들을 SW에서 직접 고려할 필요 없이 DBMS가 제공하는 기능들을 이용하여 처리할 수 있다.

 

DBMS에서 데이터의 명세 및 저장

  • DBMS: 시스템이 저장하고 관리할 데이터에 대한 지정된 데이터 모델을 사용하도록 설계된 SW.
  • DBMS는 저장될 데이터를 데이터 모델 형식으로 정의.

 

데이터 모델

  • 데이터 또는 정보를 설명하기 위한 표기법.
    1. 데이터의 구조 (Structure of the Data)
    2. 데이터에 대한 작업 (Operations on the Dta)
    3. 데이터에 대한 제약 조건 (Constraints on the Data)

 

데이터 독립성

  • DBMS의 data는 3단계의 추상화로 표현
  • 각 추상화 단계 별로 응용 프로그램의 데이터 구성 및 저장 방식으로부터 격리.
  • 논리적 데이터 독립성 (Logical Data Independency): 데이터의 논리적인 구조, 저장 방식/공간의 변화로부터 보호.
  • 물리적 데이터 독립성 (Physical Data Independency): 디스크 파일 내부에서 데이터가 실제로 어떻게 배치되어 있는지 등을 감춤.
  • schema: 데이터 구조와 제약조건에 대한 정의.

  • 외부 스키마 (view로 구현)
    • 각각의 사용자 수준에서 데이터 접근을 개별화하기 위한 권한을 부여
      (각 개인의 입장에서 필요로 하는 DB의 논리적 구조를 정의한 것)
  • 논리적 스키마
    • 해당 DBMS의 데이터 모델이 따라 저장될 데이터를 기술하는 스키마. (DB의 전체적인 논리적 구조)
    • Entity-Relational Model을 사용하여 DB를 설계한다.
    • Relational DBMS의 개념 스키마에는 DB에 저장된 모든 테이블에 대한 명세 정보가 있다.
      ex) 학교
      학과(학과 번호: 정수, 학과 이름: 문자열)
      학생(학번: 정수, 이름: 문자열, 나이: 정수)
  • 물리적 스키마
    • 논리적(개념) 스키마에 명세되어 있는 테이블들이 디스크에 실제로 어떻게 저장될 지를 정의.
    • 특정 DB에 맞는 스키마로 설계하여 어떤 형식으로 저장될 것인지, 각 필드는 어떤 타입이 될 것인지를 결정.
      ex) 학생(학번: 정수, 이름: 문자열, 나이: 정수), 학생 스키마의 각 필드 타입 결정하고, 테이블이 저장된 자료구조 형태를 결정.
CREATE TABLE [학생] (
[학번]		int,
[이름]		nvarchar(12)		NOT NULL,
[나이]		int			        NOT NULL
)

 

데이터 베이스 Query

  • DBMS는 DB에 저장된 데이터에 대해 다양한 방식으로 질의(Query)를 수행할 수 있는 방법(Query Language)을 제공.
    (Relational DB에서 정의된 Query: SQL - Structed Query Language)
  • DML: Data Manipulation Language - 데이터 조작어: 정의된 DB에 입력된 data를 조회, 수정, 삭제, 입력하는데 사용.
  • DDL: Data Definition Language - 데이터 정의어: data의 schema를 정의하여 데이터가 저장되는 형식을 정의하는데 사용.
  • DCL: Data Control Language - 데이터 제어어: data에 대한 접근 권한을 허가하고 박탈하는데 사용.

 

트랜잭션 (Transaction)

  • DB 시스템에서 하나의 논리적인 작업 단위.
  • 분해가 불가능한 프로그램의 실행 단위.
  • DBMS에 요구되는 동시 접근 제어복구에 관련된 문제를 해결하기 위해 구현.
  • ACID (트랜잭션이 만족해야 하는 성질)
    1. Atomicity(원자성): 관련 작업이 전부 처리되거나, 아예 처리되지 않아야 함. -> Log와 Write Log Ahead 사용.
    2. Consistency(일관성): 트랜잭션 이전과 이후의 DB의 상태는 이전과 같이 유효해야 함. -> 제약 조건(Constraint) 사용
    3. Isolation(격리성): 모든 트랜잭션은 다른 transactions로부터 독립되어 동작해야 함. -> Locking Protocol 사용.
    4. Durability(지속성): 트랜잭션이 성공적으로 수행되었다면 완료의 효과는 지속되어야 함. -> Log와 Write Log Ahead 사용.

 

DBMS의 구조

Relational data model에 기반한 DBMS의 전형적인 구조

 

DBMS의 장점

  • 데이터 독립성
  • 효율적인 데이터 접근
  • 데이터 무결성과 보안성
  • 데이터 관리
  • 동시성 제어 및 장애 복구
  • 응용 프로그램 개발 시간 감소

 


 

 

출처: https://github.com/gikpreet/class-relational_database

 

GitHub - gikpreet/class-relational_database

Contribute to gikpreet/class-relational_database development by creating an account on GitHub.

github.com