굥의 컴공일지

[DB] 2장 / 데이터베이스 언어, 인터페이스, 시스템 환경 본문

[ 학교 ]/[ 데이터베이스 ]

[DB] 2장 / 데이터베이스 언어, 인터페이스, 시스템 환경

abcde_127 2024. 10. 18. 19:21

2장 데이터베이스 시스템 개념과 아키텍처


데이터베이스 언어

1. 데이터 정의어(DDL)

: 데이터베이스 스키마 정의한다

- 데이터베이스 안에 두개의 독립적인 스키마를 설정한다는 의

- 데이터베이스에서 데이터의 구조를 정의하거나 수정하는 데 사용하는 명령어
- 데이터 정의어로 명시된 문장이 입력되면 DBMS는 정의한 스키마에 대한 명세를 시스템 카탈로그 또는 데이터 사전에 저장함
2. 데이터 조작어(DML)

:  데이터베이스 검색과 갱신을 표현하기 사용된다

- 데이터베이스 내의 원하는 데이터를 검색, 수정, 삽입, 삭제하는 명령어
     a. 고수준 (비절차적 언어) : 사용자가 원하는 결과만 명시하고(무엇을 할지에만 집중) 어떻게 이 결과를 얻는지는 DBMS가 알아 처리하도록한다.
     b. 저수준 (절차적 언어) : 어떻게 할지를 적어야 하는 언어로 사용자가 데이터 접근순서, 방법 등 구체적으로 지정해 데이터 검색 및 조작의 절차를 단계적으로 작성해야 한다
3. 데이터 제어어(DCL)

:  데이터베이스에 대한 사용자 권한을 관리하고 보안을 제어한다

- 데이터베이스 트랜잭션을 명시하고 권한을 부여하거나 취소하는 명령어

 

데이터베이스 인터페이스

1. 독립적 질의어 인터페이스

: DBMS의 대화식 SQL 인터페이스

     - 사용자가 데이터베이스에 접근하고 질를 직접 작성할 수 있도록 지원하는 인터페이스
2. 프로그래밍 언어 내에 DML을 내장하기 위한 프로그래머 인터페이스

     - 데이터 조작 언어(DML)를 프로그래밍 언어와 결합하여 개발자가 애플리케이션 코드 내에서 데이터베이스 작업을 처리할 수 있게 하는
3. 사용자 편의 인터페이스

     - 비전문가나 관리자와 같은 최종 사용자가 손쉽게 데이터베이스 작업을 할 수 있도록 설계된 인터페이스

4. 모바일 인터페이스

: 모바일 앱을 사용하여 트랜잭션을 처리할 수 있도록 지원하는 인터페이스

(이 것 외 인터페이스)

5. 자연어 인터페이스 : 

6. 음성 인터페이스

7. 키워드 검색을 갖는 웹 브라우저

8. 파라미터식 인터페이스

9. DBA(데이터베이스 관리자)를 위한 인터페이스

 


데이터베이스 시스템 환경

DBMS 구성 모듈

1. DDL 컴파일러: 데이터 정의어를 해석하여, 이에 명시된 스키마 정의들을 처리함 (처리 결과는 카탈로그에 저장)
2. 저장 데이터 관리자: 디스크에 저장되어 있는 DBMS의 정보(데이터베이스 또는 카탈로그)에 대한 접근 제어함
3. 런타임 데이터베이스 처리기: 질의를 실제로 수행하고, 그 과정에서 실제 데이터베이스 접근을 처리함
4. 질의 컴파일러: 여러 질의 인터페이스에 의해 입력된 고수준 질의들을 컴파일 (및 해석)함
5. 질의 최적화기:  연산 재배치, 중복 연산의 제거 등을 통해 최적의 수행 코드를 생성함 (DB에 대한 정보를 활용해 최적화를 수행함)
6. 프리 컴파일러: 호스트 프로그래밍 언어로 작성된 응용 프로그램에서 데이터 조작어 명령들을 추출함
7. DML 컴파일러: 데이터 조작어 명령들을 데이터베이스 접근을 위한 (실행 가능한) 목적 코드로 컴파일함

데이터 베이스 시스템 유틸리티 

: 데이터베이스를 관리하고 유지하는 데 필요한 도구나 프로그램, 기능을 의미  
- 대부분 DBMS는 DBA(데이터베이스 관리자)가 데이터베이스 시스템을 관리하는 것을 도와주는 데이터베이스 유틸리티를 제공

   대표적인 유틸리티 기능

     1. 적재 (loading) : 외부 소스로부터 대량의 데이터를 데이터베이스로 옮기는 과정
     2.  백업 (Backup) : 데이터베이스의 데이터를 복사하여 안전하게 보관하는 작업 ( 데이터 손실 시 데이터를 복구하기 위해 사용함)
     3. 파일 재조직 (File Reorganization)  : 데이터베이스의 저장된 파일을 재정렬하여 성능을 최적화하는 작업

     4. 성능 모니터링 (Performance Monitoring) :  데이터베이스의 사용을 모니터링해서 사용 통계를 데이터베이스 관리자에게 제공함

     외의 기능들: 보고서 생성 유틸리티, 정렬, 사용자 모니터링, 데이터 압축 등의 기타 기능들

 

그 외 도구들

1. 데이터 사전 : 스키마와 제약 조건들에 관한 카탈로그 정보와 설계 결정, 응용 프로그램 기술, 사용자 정보 등과 같은 정보를 저장

2. 데이터 디렉토리 (능동 데이터 사전) : 사용자와 DBMS 소프트웨어 모두가 사용하는 통합된 카탈로그/데이터 사전

3. CASE : 데이터베이스 시스템을 설계하는 과정에서 사용되는 도구

4. 응용 개발 환경 : 사용이 용이하고 효율적인 개발 환경 제공하는 도구

 

DBMS를 위한 중앙집중식, 클라이언트 / 서버 아키텍처

 

1. 중앙집중식 DBMS (Centralized DBMS)
: 모든 데이터베이스 관리와 처리 기능을 하나의 중앙 컴퓨터에서 수행하는 구조

- 사용자는 자체 처리 능력 X, 화면에 결과를 출력하는 기능만 있는 터미널을 사용 (→ 이후 PC, 모바일 기기로 교체됨 )

 

2. 기본적인 2-층 클라이언트 / 서버 아키텍처

: 클라이언트가 서버와 직접 통신하며 서비스를 요청하고 결과를 받는 구조

- 고유한 기능을 갖는 특정 서버를 지정

- 클라이언트들은 자체 응용을 수행하기도 하고 필요에 따라 특정 서버들을 접근할 수 있음

 

3. DBMS를 위한 2-층 클라이언트 / 서버 아키텍처

: 서버와 클라이언트가 직접 연결되는 구조로, 서버는 질의와 트랜잭션을 처리하고 클라이언트는 사용자 인터페이스와 응용 프로그램을 수행한다

 

4. 웹 응용을 위한 3-층 클라이언트/서버 아키텍처

: 클라이언트, 웹/응용 서버, 데이터베이스 서버로 구성된 구조

- 이 아키텍처는 각 층(layer)이 고유한 역할을 담당해 보안을 강화하고 성능을 최적화 (이 아키텍처의 주요목적은 보안이다)

- 클라이언트와 데이터베이스 서버 사이에 중간 계층을 둠으로써 클라이언트가 직접 데이터베이스 서버에 접근하지 못하게 하고, 웹/응용 서버가 중간에서 데이터를 처리합니다.

 


데이터베이스 관리 시스템의 분류

DBMS의 분류 유형
1. 데이터 모델에 따른 분류

  - 최근 사용되는 모델 → 관계 데이터 모델, 객체지향 및 객체관계 데이터 모델,  Legacy 모델 → 네트워크 데이터 모델, 계층 데이터 모델
2. 사용자의 수에 따른 분류

  - 단일 사용자, 다수 사용자 시스템

3. 사이트 수에 따른 분류

4. 비용에 따른 분류

5. 접근 경로의 유형에 따른 분류

6. 범용 & 특수 목적용


+ 추가적인 개념

정의

: 어떤 개념이나 용어의 의미를 명확히 설명하는 것

ex) 로그인이란 사용자가 자신의 계정으로 시스템에 접근하는 절차를 의미한다

 

명세

: 정의된 개념이나 기능을 구체적으로 구현하기 위한 조건과 요구사항을 포함하는 것

ex) 로그인 기능에서 사용자는 ID와 비밀번호를 입력해야 하며, 입력된 정보는 인증 서버에서 JWT를 사용해 검증된다

 

유틸리티 (컴퓨터 분야의 유틸리티)

: 특정한 기능을 수행하여 사용자 또는 시스템의 작업을 보조하는 소프트웨어 도구나 프로그램을 의미

 

아키텍처 

: 어떤 시스템이 어떻게 구성되고, 각 구성요소가 어떤 역할을 하며 서로 어떻게 상호작용하는지 정의한 전체적인 청사진

- 쉽게 말해 설계도, 설계도구 라고 생각

ex) 컴퓨터 아키텍처 : CPU, 메모리, 저장장치 등 하드웨어의 설계 구조

ex) 데이터베이스 아키텍처 : 데이터가 어떻게 저장되고 관리되는지 정의