1. Introduction

Yona·2021년 10월 26일
0

🌙 CS_DataBase

목록 보기
2/10
post-thumbnail

Introduction

DB와 DBMS

  • 데이터베이스(DB, database)는 서로 연관 있는 데이터의 모임을 의미한다.
    일반적으로 우리가 관심 있는 데이터베이스는 컴퓨터에 저장되어 있는 데이터이며, 또한 데이터 용량이 방대하며 이차 저장 장치인 하드디스크(HDD, hard disk drive) 또는 SSD(solid state drive)에 저장되는 데이터이다.

  • 컴퓨터에 데이터베이스가 저장되어 있으면, 이를 관리하는 소프트웨어가 필요하며 우리는 이를 데이터베이스 관리 시스템(DBMS, database management system) 이라 한다.

용어정리

  • DB : collection of data
  • DBMS : Database Management System
  • DBS : Database System
  • 여기에선 INTErchangeably 하게 쓴다!

Advantages of DBMSs

  • Data abstraction
  • Easy accessing data
    - 접근위한 언어 제공 / UI 제공
  • Data redundancy (중복), inconsistency(불일치) 제어 용이
  • IC(Intergrity constraint : 제약조건) 유지 용이
    - 데이터 무결성 제약조건은 데이터가 만족하여야 하는 조건
    • EX) “학생의 학점 데이터는 최소값 0.0 최대값 4.5 내의 실수 값이어야 한다”
  • Atomicity of updates (데이터 원자성)
    - all :전부 잘 업데이트하거나
    • nothing : 오류있으면 아예 업데이트하지않거나
    • 데이터 갱신 시에 갱신 연산이 부분적으로 데이터베이스에 반영되질 않음
  • 다수 사용자의 동시성 제어
  • Data security
  • Data backup and recovery

1.2 Data Abstraction and Data Mdoel

Schemas & Instance

Schemastypesdatabase의 logical/physical 구조
Instancesvariablesschema 형태로 저장 관리될때, 데이터의 실제 값

Abstraction

전산학에서 추상화는 어떤 사물에 대한 세세한 개체(instance)로부터 중요한 개념을 분리하는 프로세스를 의미하며, 구현상에서만 관련 있는 사항이나 문제 해결에 중요하지 않은 사항을 제거하여 사람들이 문제 핵심 속성에만 집중하여 문제를 해결하게 한다

데이터 추상화 레벨

  • physical level
    - 물리적으로 어떻게 저장되는가
  • logical level
    - 논리적으로 db와 db가 어떤 관계를 가지고 있는지
  • view level
    - 어떤 유저가 이 db에 관련되어있고, 볼 수 있으며, 숨겨야하는지

뷰 레벨(사용자에게 오직 관심있는 데이터만을 추상화) -> 로지컬 -> 물리적 레벨(실제 데이터 레코드가 어떻게 저장되는지 기술)

Data Independence

  • 가급적 abstraction level들 간 독립되도록 헤야한다
  • physical data independence
    - 논리적 스키마 변화없이 물리적 스키마를 변화할 수 있는 기능
  • logicla data independence
    - 뷰 스키마 변화없이 논리적 스키마 변화 할 수 있는지

Data Model

  • data model은 데이터, 관계성, 의미, 제약조건등을 기술하는 명세(specification) 혹은 개념적 도구(oconceptual tool) => 데이터 추상화를 지원하는 도구

    이름설명
    Relatinal우리가 아는 테이블형식
    Object-relationalrelational 방식에 객체지향 요소를 부분적 도입
    XMLExtensible Markup Language. 문서 교환을 위한 표준 기술

Database Design

  • ER model (Entity Relationship model)


- entity와 relation으로 포함함
- ER diagram으로 직관적으로 파악가능
- ER 나오면 관계형으로 갈껀지 객체형으로 갈껀지 결정 가능
- Normalization Theory : 내가 만든 스키마가 좋은지 안좋은지 판단 가능한 이론

1.3 Database System

DBMS 의 component

  • query processor(질의어 처리기) : 질의어 처리, 권한 부여 및 철회, 인증 등 기능
  • stoarage manager(저장 관리) : 데이터베이스 서버의 하단부분을 의미하며, 데이터 저장, 검색뿐만 아니라 화일 구조, 색인, 트랜잭션 관리 등의 업무를 담당

Data dictionary

  • =data directory
  • meta data를 저장중
  • ex) schema, intergrity constraints, authorization, statiscal data ...

Transaction Management

  • Concurrency control manager (동시성 제어 기능)
    - 사용자가 db를 저장해서 수정/검색/삭제등을 할때 DBMS에 전달
    - DBSM에서는 transaction 형태로 변환하여 사용.
    - 이럴때 여러개의 transaction을 control하는게 concurrency control manager
    • consistency를 보장한다
  • Recovery manager(복구 기능)
    - 중간에 failure 발생하거나, 전기나갔을대 복구

Database Users

  • Naive user
    - 주어진 사용자 UI이용 + 주어진 절차 이용
    • 보통 사용자
  • DB administrator (DBA)
    - 스키마 정의, 저장 구조 및 접근 방법 정의, 스키마 및 물리 구조 변경, 데이터베이스 접근 권한 관리, 제약 조건 관리, 시스템 성능 관리 등
  • 그외 : Application programmers, DB designer, DB analysist,

Database System Architercture

  • 데이터 위치에 의거하여 분류
    - Centralized
    • Distributed
    • Client-server
    • Parallel(multi-processor) : 컴퓨터 병렬처리 기술을 DB시스템에 적용한 경우

DB system의 역사

  • 1950s & 1960s
    - magnetic tapes, pucned card는 sequqential하게 밖에 읽지 못하지만
    • hard disk 는 바로 접근이 가능해서 DB의 본격적 등장
  • 1970s
    - E.Codd가 최초의 관계형 DB 모델 제안
  • 1980s
    - 상업적으로 관계형 DB 모델 사용 시작
    • 관계지향 DB 등장
  • 1990s
    - data-mining
    • data warehouse -> decision making에 활용
    • web commerce 등장
  • 2000s
    - XML 등장
  • 2010s
    - Big data
    • NO SQL
profile
Sometimes you win, sometimes you learn 🏃‍♀️

0개의 댓글