[DB] DBMS

티라노·2025년 3월 6일

데이터베이스

목록 보기
1/11

데이터베이스 시스템을 왜 쓰는가?

  • 데이터 중복 방지, 일관성 유지
  • 데이터에 쉽게 접근하기 위해서
  • 특정 데이터가 고립되지 않게 시스템 내에 묶기 위해서
  • 무결성을 지키기 위해서
  • 업데이트의 원자성을 보존하려고
  • 여러 유저가 동시에 접근할 수 있는 기능 제공
  • 보안 문제

등등...여러 가지 이유가 있다.

파일처리로 응용프로그램을 만들 경우 문제점
여러 개의 파일이 존재하므로 해당 파일 사이에 중복 데이터가 생길 수도 있다.
접근하거나 수정하기 어렵고, 무결성을 보존하기도 어렵다.

추상화 단계

Physical level
데이터가 어떻게 저장되는지 정의한다.

Logical level
DB에 저장된 데이터 사이의 관계 등을 설명한다.

View level
보안의 목적으로 숨길 데이터는 숨기고 필요한 데이터는 공개하는 의사결정을 한다.

인스턴스와 스키마

인스턴스 란?
DB상의 실제 콘텐츠

스키마 란?
논리적 스키마와 물리적 스키마로 나뉜다.

논리적 스키마는 DB의 전체적인 논리적 구조를 말한다.
물리적 스키마는 DB의 물리적인 구성을 말한다.

스키마란 논리적, 물리적 측면에서 데이터가 구성되는 방식을 규정하는 데이터로,
다시 말해 메타데이터의 집합 이라고 할 수 있다.

Physical data independence

논리적 스키마를 바꾸지 않고도 물리적 스키마를 수정할 수 있는 경우 물리 데이터가 독립적이라고 할 수 있다.

DBMS

DBMS 란 사용자가 데이터베이스에 접근하기 위한 도구를 갖춘 시스템이다.

  • Atomicity of updates
    DB에서 업데이트 단위가 있을 때 단위 안에서 여러 기능이 수행되더라도 업데이트 자체는 성공 혹은 실패 케이스만 남겨야 한다.
  • Concurrent access by multiple users
    여러 유저에게 동시에 업데이트해야 한다.

DDL

Data Definition Language

데이터베이스의 스키마를 구성하는 문법이다.

  • data dictionary에 테이블 형태로 데이터를 저장함
  • data dictionary는 메타데이터(권한, 키값, 설명 등) 포함
    -> DDL은 메타데이터를 정의한다

DML(=Query)

Data Manipulation Language

데이터 모델을 조작하기 위한 언어이다. 쿼리라고도 부른다.

  • Procedural DML (절차적)
  • Declarative DML (선언적)

SQL query

데이터베이스에서 명령어를 전달하기 위해 특수하게 쓰이는 비절차적 쿼리 언어이다. 항상 하나의 테이블만 반환한다.

오직 데이터 조작에만 쓰이는 언어이기 때문에 튜링 기계 언어가 아니다. (일반적인 알고리즘을 만들 수 없다)


트랜잭션

트랜잭션 이란 DB 프로그램에서 하나의 논리적인 기능을 수행하기 위한 명령어의 집합이다.

DB의 구조

Tow-tier architecture
DB가 사용자 컴퓨터에 설치되어있음 + 클라이언트가 서버에 접근해서 DB기능 호출

Three-tier architecture
클라이언트는 화면 인터페이스에만 접근 + 클라이언트는 애플리케이션 서버와 통신
애플리케이션 서버가 실제 DB 시스템과 통신 -> 데이터 변조

DB의 사용자

일반 유저(naive users), 애플리케이션 개발자, 데이터 분석가, 데이터 관리자로 나뉜다.
이 중 DB 관리자는 DB의 중요한 요소를 결정하고 DML로 보낸 요청을 처리하는 등 실제로 DB를 변조할 수 있다.
그에 비해 DB 시스템 유저는 응용프로그램을 이용하며, 응용프로그램의 인터페이스를 통해 DB에 간접적으로 요청을 보낼 수 있다.

0개의 댓글