본문 바로가기

[데이터베이스] 02-01. 데이터베이스 시스템의 개념

Notice

이 글은 다음 강의를 수강한 후 학습한 내용을 정리한 글입니다.

- 강의: [K-MOOC] 단국대학교 오세종 교수님의 '데이터베이스의 이해와 활용'

 

데이터베이스

데이터베이스란 데이터를 한곳에 체계적으로 모아 놓은 데이터 저장소이다. 한때 데이터 뱅크라고 부르기도 했다.

데이터베이스는 물리적 저장자치인 하드디스크상에 구현한다.

 

데이터베이스를 구현하는 방법은 DBMS 제품마다 다르다. 크게 두 가지가 있다.

(1) 특정 폴더 아래에 테이블을 파일 형태로 저장. <예시> MySQL) 폴더: 데이터베이스, 파일: 테이블

(2) 하나의 커다란 파일 안에 테이블들을 저장.

데이터베이스를 이용하는 사용자

  • 최종 사용자. end user
  • 앱 개발자. 데이터베이스를 이용해서 소프트웨어를 개발하는 개발자
  • 관리자. DBA
(1) 최종 사용자
이미 구축된 데이터베이스를 '이용'하는 데 주된 관심이 있는 사용자다.
  • 캐주얼 사용자: 질의어(SQL)를 이용하여 매번 다른 정보를 검색한다. 일반 사용자가 아니고, 기업 내부 사용자인 경우가 많다.
  • 초보 사용자: 앱을 통해 데이터베이스 사용한다. 매번 같은 패턴으로 데이터베이스 이용한다. 사실은 데이터베이스가 있는지도 모르면서 사용하는 사용자이다. <예시> 신용카드, 교통카드 이용. 인터넷에서 우편번호 조회. ATM 기기에서 현금 인출.
(2) 응용 프로그래머

데이터베이스를 이용하는 앱 개발자다. 초보 사용자가 사용하는 소프트웨어를 개발한다.

앱을 개발할 때 데이터 관리하는 데이터베이스 시스템을 이용한다.

DBMS를 사용하는 프로그램은 개발 언어 다양해도, 프로그램 내부에 질의어를 포함해서 개발한다.

  • 프로그램 언어 <예시> 파이썬, C
  • 웹을 위한 스크립트 언어 <예시> jsp, php
<예시> 데이터베이스를 이용하는 파이썬 프로그램
import pymysql
conn = pymysql.connenct(host = 'localhost', user = 'root', password = '1234', db = 'world', charset = 'utf8')
cur = conn.cursor()
sql = "select * from country where continent = 'Asia'" # select로 시작하는 부분이 sql 명령문이다.
cur.execute(sql)

*이를 내장 SQL/임베디드 SQL이라고 한다.

 

(3) 데이터베이스 관리자. DBA database administrator

데이터베이스 시스템의 운영, 관리에 대한 책임을 지고 있는 사용자이다.

데이터베이스를 설계, 구축, 관리. 성능 유지를 한다.

데이터베이스 관리자에는 여러 레벨이 있다. 일반 관리자와 최고 관리자가 있다.

데이터베이스 관리자는 현장 지식을 쌓는 기간과 기술적인 지식이 필요하기 때문에 경력이 요구되는 역할이다.

데이터베이스 시스템 DBMS

DBMS의 기능은 다음과 같다.

 

(1) 데이터 정의 기능 DDL

사용자로 하여금 데이터베이스를 생성하거나,

데이터베이스 내에 원하는 구조의 파일(테이블)을 생성 또는 테이블의 구조를 변경할 수 있도록 지원한다.

 

(2) 데이터 조작 기능 DML

데이터베이스 내의 파일(테이블)에 대해 조회, 데이터 삽입, 수정, 변경, 삭제할 수 있도록 지원한다.

 

(3) 데이터 제어 기능 DCL

다수의 사용자가 이용하는 데이터베이스 내의 데이터를 정확하고 안전하게 유지하는 기능보안관리(접근 제어), 병행수행 제어, 데이터베이스 백업 및 복구를 지원한다.

사용자는 DBMS의 서비스를 받아서 데이터베이스를 이용한다.
데이터베이스에는 데이터(테이블)이 있고,  DBMS가 데이터베이스를 관리하기 위한 정보도 있다.

시스템 카탈로그/데이터 사전이 그것이다.  데이터에 대한 데이터. 메타데이터라고 한다.

<예시> 사용자 계정 정보 ,사용자 로그, 저장공간 정보, 테이블 목록 및 구조, 권한 정보