DB

[DB] 데이터베이스 개념

songu1 2023. 1. 30. 17:40

데이터베이스 기본 개념

  • Data
    • 기록될 수 있고 내포된 의미를 가지는 Known Facts
    • fake data는 data가 아님
  • Database
    • 연관된 데이터의 조직화된 모임
    •  
  • Database Management System (DBMS)
    • DB를 관리하기위한 다양한 tool, 패키지, 프로그램
    • 사용자가 데이터베이스를 생성하고 유지하는 것을 가능하게하는 소프트웨어 패키지/시스템
    • EX) Oracle, MySQL 등
  • Database System
    • DB + DBMS (+ DB Applications)
      • DB Applications : DB를 활용해서 사용

데이터베이스 접근의 대표적인 특성

(1) DB 시스템의 Self-describing 특성

  • 스스로 기술할 수 있는 특성
  • DB 시스템은 DB뿐만 아니라 DB Structure, types, constraints의 완전한 정의를 포함
  • Catalog
    • metadata라고 불리는 특정 DB의 description을 저장
      • metadata : 데이터를 기술하는 데이터
    • catalog 정보가 깨지면 데이터베이스가 망가짐 → 백업의 중요성
  • 또 다른 테이블(relation)의 모음. 실제 데이터, 메타데이터 모두 테이블로 저장
더보기

💡 서로 다른 document 키 정보가 투명한 metadata를 서로 다 가지고 있음

→ 중복이 발생 → catalog안에 넣어놓음(내 record 정보 모두 알 수 있음)

(2-1) 프로그램과 데이터 사이의 Insulation (분리)

  • Program-data independence 라고도 함
  • 프로그램/데이터의 구조가 바껴도 데이터/프로그램에 영향 최소화
    • 프로그램→데이터 / 데이터→프로그램
  • DBMS 접근 프로그램을 바꾸는 것 없이 data structures와 storage를 바꿀 수 있음
  • File-base System의 단점
    • 데이터구조가 바뀌면 파일을 다루는 프로그램도 바꿔어야함
    • 프로그램에서 액세스하는 파일의 구조가 변경되면 프로그램을 변경해야함
    • →의존성 있음. 성능 낮음

(2-2) Data abstraction 데이터 추상화 = Data Model

  • program-data와 program-operation 독립
  • Data model의 비형식적 정의 : data abstraction의 종류
  • 사용 이유
    1. storage detail을 숨기기위해
    2. DB의 conceptual view와 함께 사용자를 나타내기위해
  • Application 프로그램은 data storage detail보다 data model 구성을 참조

(3) 데이터의 다중뷰(multiple views) 지원

  • 각 사용자들은 DBMS의 서로 다른 view를 봄
  • 각 사용자들은 해당 사용자가 관심있는 데이터만 볼 수 있음
  • 권한 있는 사람만 볼 수 있도록 → 불필요한 권한 남용 막음

(4) Sharing of data와 multi-user transaction processing

  • concurrent users 집합의 DB 검색 및 업데이트 허용(동시 다발적)
  • DBMS 내의 **Concurrency control(동시성제어)**은 각 transaction이 정확하게 실행(normal)되거나 중단(abnormal)되는지 보증한다
    • Transaction : DB 접근과 관련있는 일련의 statement들로 실행하는 프로그램, 프로세스
      • ACID(Atomicity, Consistency, Isolation, Durability)를 충족해야함
    • lock : 동일한 isolation에서 lock을 걸음 → 다른 사용자가 떠날 때까지 blocking
  •