2 분 소요

Reference

FastCampus: 개발자 취업 합격 패스 with 코딩테스트, 기술면접


📌 DB vs. DBMS

  • DB(DataBase): 데이터를 저장하는 장소. 즉, 데이터를 통합 저장하고 운영하는 집합체
    • Set of Data
  • DBMS(DataBase Management System): 사용자와 DB 사이를 중재하며 운영하고 관리하는 소프트웨어
    • 사용자와 DB 사이에 위치해 DB를 관리하고 사용자의 요구에 따라 DB에 대한 연산을 수행해 정보를 생성
    • DB를 생성하고, 효율적으로 관리하기 위한 관리 시스템
    • 사용자는 DBMS를 통해 DB를 조작하고 관리
    • Oracle, MySQL, MariaDB, MS-SQL, PostgreSQL, MongoDB 등


📌 DBMS는 왜 탄생했나?

  • 일반 파일로 데이터를 저장할 때 발생하는 문제점인 종속성중복성을 해결하기 위해서 관리 시스템인 DBMS가 고안되었다.
    • 문제점 by 종속성
      • 일반 파일에 저장할 때 데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터에 접근하는 방법을 변경하면 Application도 변경해야 한다.
    • 문제점 by 중복성
      • 일관성: 중복된 데이터 간 내용이 일치하지 않는 상황이 발생
      • 보안성: 중복되어 있는 데이터에 동등한 보안수준 유지가 어려움
      • 경제성: 저장공간 낭비, 반복 작업 비용 UP
      • 무결성: 제어의 분산으로 데이터의 정확성을 유지할 수 없음
  • DBMS는 종속성 문제를 해결하고 데이터의 중복을 최소화하고 데이터의 일관성 및 무결성을 유지시켜 준다.
  • Application과 데이터 사이의 중재자 역할을 한다(SW)
    • 응용프로그램의 사용자가 데이터 언어로 CRUD와 같은 접근 요구를 보내면 DBMS는 이 요구를 분석해 컴퓨터가 이해할 수 있는 형태로 변환한다.


📌 DBMS의 필수 기능

  • 정의(Definition) 기능: 모든 Application이 요구하는 데이터 구조를 지원하기 위해 DB에 저장될 Type과 구조에 대한 정의, 이용 방식, 제약 조건등을 명시하는 기능
    • 데이터와 데이터의 관계를 명확하게 명세할 수 있어야 한다.
    • 원하는 연산은 무엇이든 명세할 수 있어야 한다.
  • 조작(Manipulation) 기능: 데이터의 검색, 갱신, 삽입, 삭제(CRUD) 등을 처리하기 위한 기능
    • 사용자와 DB 사이의 인터페이스 수단으로 제공
  • 제어(Control) 기능
    • 조작 기능이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어
    • 허가된 접근만 가능하도록 보안을 유지하고 권한을 검사
    • 여러 사용자가 동시 접근해도 처리 결과가 항상 정확성을 유지하도록 병행 제어


📌 DBMS의 주요 기능

  • 사용자 간의 권한 통제
  • 데이터의 일관성과 무결성 보장
  • 데이터를 표준화하고, 통합 관리 가능
  • 트랜잭션 관리(Rollback, Commit)
  • 동시성 제어
  • 시스템 장애로부터 회복/복구


📌 DBMS 주요 구성요소

  • DML(데이터 조작어): DB의 데이터를 조회하거나 검색하기 위한 명령어
    • SELECT, INSERT, UPDATE, DELETE
  • DDL(데이터 정의어): 데이터 구조를 정의하는데 사용되는 명령어
    • CREATE, ALTER, DROP, RENAME, TRUNCATE
  • 질의어 처리기: 사용자의 질의문(Query)을 분석하고 파싱(Parsing)해 컴파일 한다. DB 접근 코드를 생성한 뒤 런타임 DB에 접근 코드를 보낸다.
  • DML 예비 컴파일러: Application의 DML(데이터 조작어, 도메인 특화 언어인 DSL)을 추출한다. 목적 코드로 컴파일 되도록 DML 컴파일러에 추출한 데이터 조작어를 보낸다.
  • DML 컴파일러: 예비 컴파일러로부터 받은 DML 명령어를 파싱(Parsing)하고 컴파일해 목적코드를 생성한다.
  • DDL 컴파일러: DDL(데이터 정의어)로 명세된 스키마를 메타 데이터(Meta Data)로 처리해 카탈로그에 저장한다.
    • 카탈로그에는 파일의 이름과 크기, 데이터 아이템의 이름과 타입, 각 파일의 세부 사항등이 저장된다.
    • 모든 DBMS 모듈은 카탈로그 정보에 접근해서 이용하는 구조
  • 런타임 DB 처리기: 실행 시간에 DB 접근을 관리한다.
    • 검색이나 갱신 연산을 DB에서 실행시킴
  • 트랜잭션 관리자: 무결성 제약조건 만족여부나 사용자 권한 검사를 한다.
    • 트랜잭션 병행제어나 장애 시 회복작업을 수행한다
  • 저장 데이터 관리자: 실제 데이터가 저장된 공간인 저장 DB와 카탈로그의 접근을 책임진다.

댓글남기기