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

정의정·2023년 8월 11일
0

DB

목록 보기
3/9
post-thumbnail

💡 데이터베이스 시스템

데이터베이스 시스템이 무엇인지, 앞서 다뤘던 DBMS의 개념과는 어떤 차이점이 있는지, 어떤 구조로 이루어져 있는지, 어떤 언어를 사용하는지 살펴보도록 하겠다.

🌟 데이터베이스 시스템이란?

데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템이다.

데이터베이스와 이를 관리하는 소프트웨어인 DBMS와 응용프로그램 모두를 칭하는 용어이다. 통상적으로는 DBMS와 구분없이 사용한다.

🌟 스키마와 인스턴스

데이터베이스를 구성할 때 자주 언급되는 두 가지 용어에 대해 간단히 살펴보자.

스키마(Schema)✔️

스키마는 데이터베이스에 저장되는 데이터의 논리적 구조제약조건을 정의한 것이다.

인스턴스(Instance)✔️

인스턴스는 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값을 말한다.

🌟 3단계 데이터베이스 구조(3 Level Database Architecture)

미국의 기관인 ANSI/SPARC에서 데이터베이스의 내부 구조를 감추고 일반 사용자가 데이터베이스를 쉽게 이용하고 사용할 수 있게 하는 구조를 제안했다.

구조는 다음과 같다.

DATABASEInternal SchemaConceptual SchemaExternal SchemaEND USER

각 스키마에 대해 더 자세히 알아보자.

Physical Level - Internal Schema(내부 스키마)✔️

👉🏻 실제 데이터가 데이터베이스에 어떻게 저장되는지 기술한다.
👉🏻 파일에 저장되는 레코드의 구조(사이즈), 압축 방법, 암호화 방법 등

Conceptual Level - Conceptual Schema(개념 스키마)✔️

👉🏻 일반적인 스키마로, 데이터베이스를 개념적으로 표현하고 데이터 테이블 간의 관계를 기술한다.
👉🏻 물리적 데이터 독립성을 가진다.

External Level - External Schema(외부 스키마)✔️

👉🏻 사용자가 보는 View Level이다.
👉🏻 사용자에게 View의 형태로 필요한 정보만 보여주는 단계를 말한다.
👉🏻 각 사용자들의 개별 요구 사항에 따라 다른 view를 정의해서 데이터를 볼 수 있다.
👉🏻 데이터베이스 하나에 여러 개의 외부 스키마가 있을 수 있다.
👉🏻 개념 스키마와 논리적 데이터 독립성을 가진다.

🌟 데이터베이스에 접근하는 사용자

데이터베이스 시스템 언어를 살펴보기에 앞서 데이터베이스에 접근하는 사용자 유형에 대해 살펴보자.

데이터베이스 관리자(DBA)✔️

👉🏻 데이터베이스 시스템을 운영하고 관리한다.
👉🏻 데이터베이스를 설계 및 구축하며, 제어한다.
👉🏻 DBMS 자체는 물론, 데이터베이스 구축과 관리에 해박한 지식과 많은 경험이 요구된다.

응용 프로그래머✔️

👉🏻 데이터베이스 언어를 이용하여 응용 프로그램을 작성한다.

최종 사용자(END USER)✔️

👉🏻 데이터베이스에 접근하여 데이터를 조작한다.

👉🏻 Casual end user: 데이터베이스 언어를 이용해 데이터베이스에 접근하고 조작한다.
👉🏻 Native end user: 데이터베이스 언어를 쓰지 않고 응용프로그램을 통해 데이터베이스에 접근한다.

🌟 데이터베이스 시스템 언어

데이터 언어는 사용자가 데이터베이스를 구축하고 이에 접근하기 위해 데이터베이스 관리시스템과 통신하는 수단이다.

데이터 정의어 (DDL)✔️

스키마 구조와 제약조건 등을 정의, 수정, 삭제

데이터 조작어 (DML)✔️

데이터의 삽입, 검색, 수정, 삭제

데이터 제어어 (DCL)✔️

내부적으로 필요한 규칙(보안, 무결성 체크) 등을 정의하는 데이터 언어. 데이터 베이스를 백업하거나 백업이미지로 회복(recover)하는 명령어

🌟 DBMS 구조


그림으로 나타낸 데이터베이스 시스템이다.

질의 처리기✔️

👉🏻 DDL Interpreter : DDL로 작성된 스키마의 정의를 해석, 딕셔너리(Catalog)에 저장한다.
👉🏻 DML Compiler : DML로 작성된 데이터 처리 요구를 processing engine이 이해할 수 있는 코드로 해석하여 plan을 작성한다.
👉🏻 DML(Query) Processing Engine : 컴파일 된 plan을 데이터베이스에 실제로 실행한다.

profile
배움 기록

0개의 댓글