etc/얍

[영상후기/쉬운코드] 백엔드에서 사용되는 데이터베이스(database) 기본 개념을 설명

녱녱 2023. 3. 13.

movie

database(DB)

전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합

  • 관련있는 데이터: 같은 출처, 같은 목적, 같은 서비스 아래에서 생성되는 데이터
  • 조직화: 원하는 데이터를 빨리 찾을 수 있게 해줌, 불필요한 데이터의 중복 생성을 막아줌, 데이터의 불일치 또한 막아줌

DBMS

  • database management systems
  • 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 SW 시스템
    • DB를 정의하다 보면 부가적인 데이터가 발생함 -> '메타데이터'라 부름
  • MySQL, ORACLE, Postgre SQL, SQL server
  • 메타데이터
    • db를 정의하거나 기술하는(descriptive data) 데이터
    • catalog라고도 부름
    • ex) 데이터 유형, 구조, 제약 조건, 보안, 저장, 인덱스, 사용자 그룹 등등
    • metadata 또한 DBMS를 통해 저장/관리됨
  • MySQL, ORACLE, Postgre SQL, SQL server

database system

  • database + DBMS + 연관된 applications를 줄여서 database라고도 부름

data models

  • DB의 구조를 기술하는데 사용될 수 있는 개념들이 모인 집합
    • DB 구조를 추상화해서 표현할 수 있는 수단 제공
      • DB 구조: 데이터 유형, 데이터 관계(relationship), 제약사항(constraints) 등등
  • 여러종류가 있으며 추상화 수준과 DB 구조화 방식이 조금씩 다름
  • DB에서 읽고 쓰기 위한 기본적인 동작들도 포함
  • 분류: conceptual(or high-level) / logical(or representational) / physical(or low - level) data models
    • conceptual data models : 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어짐, 추상화 수준이 가장 높음, 비즈니스 요구 사항을 추상화 해 기술할 때 사용 -> E-R model
    • logical data models: 이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념들 제공, 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화를 가능하게 함, 특정 DBMS나 storage에 종속되지 않는 수준에서 DB를 구조화 할 수 있는 모델 -> relational data model, object data model, object-relational data model
      • relational data model : 데이터를 테이블 형태로 저장, 이 테이블을 relation이라 부름
    • physical data models: 컴퓨터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단을 제공, data format/dataorderings, access path 등등
      • access path : 데이터 검색을 빠르게 하기 위한 구조체(ex. index)

schema/state

  • schema: data model을 바탕으로 db의 구조를 기술(description)한 것, db 설계시 정해지며 한 번 정해진 후에는 자주 바뀌지 않음
  • state: db에 있는 실제 데이터는 꽤 자주 바뀔 수 있으며, 특정 시점에 db에 있는 데이터를 db state 혹은 snapshot이라고 함, 혹은 db에 있는 현재 instances의 집합이라고도 한다
  • three-schema architecture -> 안정적으로 DB를 운영시키기 위해 사용, 완벽하게/명시적으로 나누진 않음
    • db system을 구축하는 architecture 중의 하나
    • user application으로부터 물리적인(physical) db를 분리시키는 목적 -> 각 레벨을 독립 시켜 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않기 위해
    • 세 가지 level이 존재하며 각각의 level마다 schema가 정의되어 있음
      • external schemas(or user views) at external(or view) level
        • external views, user views라고도 불림, 특정 유저들이 필요로 하는 데이터만 표현, 그 외에 알려줄 필요가 없는 데이터는 숨김, logical data model을 통해 표현
      • conceptual schemas at conceptual level
        • 전체 db에 대한 구조를 기술, 물리적 저장 구조에 관한 내용은 숨김, entities/data types/relationships/user operations/constraints에 집중, logical data model을 통해 기술
      • internal schemas at internal level -> 데이터가 존재하는 곳
        • 물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현, data storage, data structure, access path 등 실체가 있는 내용 기술

DB language

  • DDL(Data Definition Language) : conceptual schema를 정의하기 위해 사용되는 언어, internal schema까지 정의할 수 있는 경우도 있음
  • DML(Data Manipuliation Language) : db에 있는 데이터를 활용하기 위한 언어, 추가/삭제/검색/수정 등의 기능을 제공

댓글