본문 바로가기
Study/DB

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

by jamiehun 2023. 4. 2.

<데이터베이스 개론과 실습>을 요약 정리한 글입니다.

문제가 될 시 글을 내리도록 하겠습니다.

 

DB를 다루면서 DB를 제대로 알지 못한다는 생각에 공부를 한번 해봐야겠다는 생각을 하였다.

때마침 함께 공부하던 동생이 같이 공부해보면 어떻겠냐는 제안을 주었고 흔쾌히 승낙했다. 덕분에 많은 것을 얻어간다.

교재의 내용을 정리한 것이지만 머릿속에 가지고 있어야 할 개념들을 기록해둔다.


데이터베이스 시스템

각 조직에서 사용하던 데이터를 모아서 서로 공유하고 생기는 장점을 이용하는 시스템으로,

데이터베이스, DBMS, 데이터 모델의 세가지로 구성된다.

 

거기에 더해서 추가적인 데이터베이스 언어, 데이터베이스 사용자도 데이터베이스의 일부(?)라고 볼 수 있다.

1) 데이터베이스, DBMS, 데이터모델

데이터베이스는

조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해놓은 것이다.

 

DBMS는

사용자와 데이터베이스를 연결시켜주는 소프트웨어로 주 기억장치에 상주한다.

데이터베이스를 생성, 공유, 관리할 수 있도록 지원해주는 총체적인 역할을 수행하는데 아래와 같은 역할을 수행한다.

  • DML/DDL 컴파일러 : SQL을 번역
  • Embedded DML : 응용프로그램에 삽입된 SQL을 번역
  • 질의처리기 : 번역된 SQL을 처리하는 알고리즘
  • 트랜잭션관리자, 파일관리자, 버퍼관리자 등

데이터모델은

데이터가 저장되는 기법에 관한 내용으로, 눈에 보이지 않는 논리적인 개념이다.

데이터가 저장되는 스타일을 나타내며 대표적인 모델은 아래와 같다.

  • 계층 데이터 모델
  • 네트워크 데이터 모델
  • 객체 데이터 모델
  • 객체-관계 데이터 모델

2) 데이터베이스 언어, 데이터베이스 사용자 

데이터베이스 언어는 아래와 같이 3가지로 나뉜다.

  • 데이터 정의어(DDL, Data Definition Language)
    • CREATE, ALTER, DROP문과 같이 DBMS에 저장된 테이블 구조를 정의
  • 데이터 조작어(DML, Data Manipulate Language)
    • INSERT, DELETE, UPDATE와 같이 데이터를 검색, 삽입, 삭제, 수정하는데 사용
  • 데이터 제어어(DCL, Data Control Language)
    • GRANT, REVOKE문과 같이 데이터의 사용 권한을 관리

 

데이터베이스 사용자는 아래와 같다.

  • 일반사용자 : 프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근
  • 응용 프로그래머 : 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람
  • SQL 사용자 : SQL을 사용하여 업무를 처리하는 IT 부서의 담당자
  • DBA : 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람

3) ANSI의 3단계 데이터 베이스 구조

ANSID의 3단계 데이터베이스 구조에서는

데이터베이스 구조를 총 3단계로 나누는데, 외부스키마, 개념스키마, 내부스키마가 그것이다.

 

여기서 스키마는 조직이나 구조를 의미한다. 

 

첫번째 외부 스키마는 

일반 사용자나 응용 프로그래머가 접근하는 계층으로 전체 DB 중에서 하나의 논리적인 부분을 의미한다.

이것은 달리 말해 서브스키마라고도 부르며, 개념 스키마 중 사용자에게 필요한 스키마를 의미한다.

예를 들어, 대학의 DB에서 학생처의 학생정보나 교무처의 수강정보는 외부스키마라고 볼 수 있다. (전체 DB의 일부분)

 

두번째로 개념스키마는

전체 데이터베이스의 정의를 의미한다. 

통합 조직별로 하나만 존재. 저장장치에 독립적으로 기술되며, 데이터와 관계, 제약사항, 무결성에 대한 내용이 포함된다.

예를 들어, 대학의 DB에서 학생정보, 수강정보 등이 모두 모인 대학 전체 DB를 의미한다.

 

세번째로 내부 스키마는 

물리적 저장장치에서 데이터베이스가 실제로 저장되는 방법의 표현하는 것이다.

여기에는 인덱스, 데이터레코드의 배치방법, 데이터 압축 등에 관한 사항이 포함된다.

 

3단계 데이터베이스 구조의 특징으로는

데이터가 독립성을 갖춘다는 점이다.

즉, 하위 단계의 내용을 추상화하여 상위 단계에 그 세부사항을 숨김으로써,

한단계 내의 변경에 대해서 다른 단계와 상호간섭이 없도록 하는 것이 큰 특징이다.