[DB] 데이터베이스 시스템의 구성

2023. 12. 11. 19:36CS/DataBase

데이터베이스 시스템의 경우 앞에서 간단히 이야기한 3가지 요소로 구성되었다.

  1. 데이터베이스 -> 하드 디스크에 저장된 데이터
  2. 데이터베이스 관리 시스템 (DBMS) -> 주기억장치에 저장된 소프트웨어
  3. 데이터 모델 -> 눈에 보이지 않는 논리적인 개념으로 데이터가 저장되는 기법에 관한 내용이다

데이터베이스 시스템의 구성

 

데이터베이스 언어

 

데이터베이스 시스템은 데이터베이스 전용 언어인 SQL을 사용한다.

 

SQL 구성

  1. 데이터 정의어 (DDL)
    • CREATE, ALTER, DROP 문과 같이 DBMS에 저장된 테이블 구조를 정의
  2. 데이터 조작어 (DML)
    • SELECT, INSERT, DELETE, UPDATE 문과 같이 데이터를 검색, 삽입, 수정, 삭제 하는데 사용
  3. 데이터 제어어 (DCL)
    • GRANT, REVOKE 문과 같이 데이터의 사용 권한을 관리한다.
데이터베이스 사용자

 

데이터베이스 시스템을 사용하는 사람은 크게 4가지로 구분할 수 있다.

 

  1. 일반 사용자
    • 응용 프로그래머가 작성한 프로그램을 이용하는 사람
  2. 응용 프로그래머
    • 데이터베이스를 이용하여 문제를 해결하는 프로그램을 작성하는 사람
    • 일반적은 프로그래머들이 해당하는데 자바, C, JSP 등의 프로그래밍 언어와 SQL을 이용해 일반 사용자를 위한 서비스 개발
  3. SQL 사용자
    • SQL 질의를 작성하거나 SQL을 이용하여 프로그램을 작성하는 사람
  4. 데이터베이스 관리자
    • DBA로 조직의 데이터베이스 운영 총괄을 하는 사람
    • 데이터 설계, 구현, 유지보스의 전 과정을 담당하고 데이터베이스 사용자 통제, 보안, 성능 모니터링, 데이터 전체 파악 및 관리, 데이터 이동 및 복사 등 제반 업무를 맡는다.
DBMS

 

DBMS는 사용자와 데이터베이스를 연결시켜주는 소프트웨어로, 데이터베이스 사용자가 데이터베이스를 생성, 공유, 관리할 수 있도록 지원해주는 총체적인 역할을 한다.

 

  1. SQL을 번역하는 DML/DDL 컴파일러
  2. 응용 프로그램에 삽입된 SQL을 번역하는 Embedded DML 컴파일러
  3. 번역된 SQL을 처리하는 알고리즘인 질의처리기
  4. 트랜잭션 관리자
  5. 파일 관리자 
  6. 버퍼 관리자
  7. 데이터 사전

이러한 것들을 이용해 사용자의 질의를 처리한다.

 

데이터 모델

 

데이터 모델은 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법에 관한 것으로, 데이터베이스에 데이터가 어떻게 구조화되어 저장되는지를 결정한다. 가장 많이 사용되는 데이터 모델은 관계 데이터 모델이다.

 

관계를 데이터를 표현하는 방법을 예시롤 통해 알아보자

 

박지성 학생이 자료구조, 김연아 학생이 데이터베이스를 수강한다고 가정하고 학생-강좌 관계를 표현해보자. 방법은 총 3가지 이다.

 

1. 포인터 사용 : 계층 데이터 모델, 네트워크 데이터 모델

  • 방식 : 프로그래밍 언어의 포인터 타입을 이용하여 강좌 데이터 y가 저장된 포인터 값 p를 학생 데이터 x에 저장하는 방법으로, 계층 데이터 모델과 네트워크 데이터 모델에서 사용한다.
  • 장점 : 포인터를 사용하는 방법은 데이터를 직접 찾아갈 수 있어서 프로그램 속도는 빠르다.
  • 단점 : 포인터를 다루는 프로그래밍을 해야 하기 때문에 응용 프로그램 개발 속도 면에서는 느리다.

 

2. 속성 값 사용 : 관계 데이터 모델 

  • 방식 : 강좌 데이터 y의 속성인 강좌번호 값 v를 학생 데이터 x에 직접 저장하는 방법으로, 데이터를 찾을 때는 강좌번호 값을 이용하여 어떤 강좌를 신청했는지 알아낸다.
  • 장점 : 포인터를 사용하는 방법보다 속도는 조금 느리지만 개념이 쉽고 프로그램이 개발이 빠르다.

 

3. 객체식별자 사용 : 객체 데이터 모델

  • 방식 : 강좌를 객체 개념으로 보고 강좌 객체의 고유 식별자인 오브젝트 아이디를 학생 테이블에 저장하는 방법이다. 객체 데이터 모델에서 사용하며 객체지향 언어의 상속, 캡슐화 등의 개념을 도입한다.

 

현재 데이터 모델과 각 모델에서 관계의 표현 방법

 

 

데이터베이스의 개념적 구조

 

3단계 데이터베이스 구조

  1. 외부 단계
    • 일반 사용자나 응용 프로그래머가 접근하는 계층으로 전체 데이터베이스 중 하나의 논리적인 부분을 의미함
    • 여러개의 외부 스키마를 가질 수 있다. 외부 스키마는 서브 스키마라고도 하며 뷰의 개념이다.
  2. 개념 단계
    • 전체 데이터베이스의 정의를 의미한다. 통합 조직별로 하나만 존재하면 DBA가 관리한다.
    • 하나의 데이터베이스에는 하나의 개념 스키마가 존재한다
    • 데이터와 관계, 제약사항, 무결성에 내용을 포함한다.
  3. 내부 단계
    • 물리적 저장장치에 데이터베이스가 실제로 저장되는 방법을 표현한다.
    • 내부 스키마는 하나이며, 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함된다.
     

 

DBMS는 매핑을 통하여 각 단계 간 대응 관계를 정의한다. 매핑은 개념 스키마의 어느 부분이 외부 스키마와 연겨로디는지 또는 개념 스키마가 어떤 물질적인 표현을 통하여 내부 스키마가 되는지 두가지 타입으로 나뉜다.

 

  • 외부/개념 매핑 : 사용자의 외부 스키마와 개년ㅁ 스키마 간의 매핑으로 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킨다.
  • 개념/내부 매핑 : 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응시킨다.

'CS > DataBase' 카테고리의 다른 글

[DB] 데이터 모델링  (0) 2023.12.18
[DB] 인덱스  (0) 2023.12.15
[DB] 무결성 제약조건  (0) 2023.12.14
[DB] 관계형 데이터 모델  (0) 2023.12.11
[DB] 데이터베이스 시스템  (0) 2023.12.11