[데이터베이스] 데이터베이스 시스템

📂 시스템 구성 요소

데이터베이스 시스템(DBS: Database System)

데이터베이스 시스템이란,

데이터베이스를 유지 및 관리하고 필요한 시점에 데이터를 입력, 조작, 그리고 변경하여 어떤 목적 달성을 위해 이용하는 시스템

구성요소로는 다음과 같은 것들이 있다.

  • 데이터베이스
  • DBMS
  • 데이터베이스 언어
  • 사용자
  • 데이터베이스 관리자
  • 하드웨어

원래 DBMS는 데이터베이스 시스템의 한 구성 요소이다.

📂 데이터베이스

데이터베이스는 데이터베이스 시스템에서 가장 기본적인 요소이다.

스키마(Schema)란,

데이터베이스 구조와 데이터 제약조건에 대한 데이터베이스의 논리적인 정의를 기술한 것

개체, 속성, 관계에 대한 명세와 유지 조건 등을 포함하고 있다.

스키마는 보는 관점에 따라 외부, 개념, 내부 스키마로 구분될 수 있다.

외부 스키마(External Schema)

각각의 사용자나 응용 프로그래머가 특정 목적에 한정되어 접근하는 데이터베이스의 논리적인 서브스키마이다.

개념 스키마(Conceptual Schema)

조직 전체의 총괄적인 입장에서 본 데이터베이스의 전체적인 논리적 구조를 기술한 것이다.

내부 스키마(Internal Schema)

개념 스키마에 대한 내부 물리적인 저장구조를 기술한 것이다.

📂 데이터베이스 언어

데이터베이스 언어(Database Language)는 기능에 따라 3가지로 나뉜다.

데이터 정의어(DDL : Database Definition Language)

데이터베이스 스키마를 컴퓨터가 이해할 수 있도록 기술하는데 사용되는 언어이다.

테이블(Table)과 같은 데이터베이스의 구조를 생성, 수정, 삭제하는 목적으로 사용되는 언어이다.

  • CREATE
  • ALTER
  • DROP
  • TRUNCATE : Table 초기화

데이터 조작어(DML : Database Manipulation Language)

데이터의 검색, 삽입, 삭제, 변경과 같이 데이터를 처리할 수 있도록 지원하는 언어이다. 다음 두 가지로 분류할 수 있다.

  1. 절차적 데이터 조작어(Procedural DML)
    • Java나 Basic과 같은 범용 프로그램 언어 속에 삽입(Embedded)된 형태로 사용되는 언어
  2. 비절차적 데이터 조작어(Non-procedural DML)
    • 일반 사용자가 대화식(Query language)으로 사용하고, 단독적 자료 처리 기능을 갖춘 고급 명령어 형태의 조작 언어
  • SELECT
  • DELETE
  • UPDATE
  • INSERT

데이터 제어어(DCL : Database Control Language)

데이터 제어(보안, 무결성, 회복, 병행 수행)를 정의하고 기술하는 언어이다.

  • GRANT
  • REVOKE
  • COMMIT
  • ROLLBACK
정의어, 조작어, 제어어로 구별되지만 현실적으로는 이들이 별도의 언어로 존재하는 것이 아니라, 하나의 표준화 언어(SQL) 안에서 통합되어 사용된다.

📂 사용자

사용자(User)란,

데이터베이스를 접근하는 모든 사람들

일반 사용자(End User)

비절차적 DML 언어를 통해서 데이터베이스에 접근하는 사람들을 말한다.

응용 프로그래머(Application Programmer)

범용 프로그래밍 언어와 DBMS의 절차적 DML 언어를 사용하여 데이터베이스를 접근하고 개발하는 사람들을 말한다.

데이터베이스 관리자(DBA: DataBase Administrator)

DDL과 DCL을 통해 데이터베이스를 정의하고 제어하는 사람들이다. 매우 중요한 역할이기 때문에 DBS의 한 구성 요소로서 다룬다.

📂 데이터베이스 관리자(DBA)

데이터베이스 관리자는,

데이터베이스에 대한 논리적/물리적 설계, 보안, 권한 부여, 정책 수립 그리고 데이터베이스 시스템(DBS)의 관리와 운영에 대한 모든 책임을 가지고 있는 사람

DBA의 업무는 일반적으로 다음과 같다.

  • DB 설계와 운영
  • 행정적 업무(문서 표준화 설정, 사용자 불평 해결)
  • 시스템 성능 감시(monitoring), 각종 통계 정보 분석