본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Database Management System
파일 시스템의 문제점인 데이터의 중복성과 종속성 등의 문제를 최소화하기 위해 등장. 모든 사용자나 응용 프로그램들이 데이터베이스를 공유할 수 있도록 관리, 운영해 주는 소프트웨어 시스템
기존의 파일처리 방식의 문제점
  • 종속성의 문제점: 저장되는 방법이나 접근방법을 변경할 때 모두 바꿔줘야 한다.
  • 중복성의 문제점: 일관성, 보안성, 경제성, 무결성 부족
  • 사용자의 요구에 따라 정보를 생성하고 스키마와 데이터를 관리
  • 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로 모든 응용 프로그램이 DB를 공용할 수 있도록 관리
  • DB의 구성, 접근방법, 유지관리에 대한 모든 책임
  • 정의 기능(Definition Facility): 데이터의 형태, 구조 등 데이터베이스의 저장에 관한 여러 가지 사항을 정의하는 기능
  • 조작 기능 (Manipulation Facility): 사용자가 이용할 수 있도록 요구에 따라 검색, 갱신, 삽입, 삭제 등을 지원하는 기능
  • 제어 기능 (Control Facility): 데이터의 정확성과 안전성 유지를 위한 기능으로, 데이터 무결성 유지, 보안, 병행 제어 등을 제공
데이터베이스 외 기존 파일·문서 시스템 대비 장단점
장점 단점
  • 데이터 중복 예방
  • 자료를 공동으로 이용
  • 일관성, 무결성, 보안성, 최신성 유지
  • 데이터 표준화 및 통합 관리
  • 실시간 처리
  • 논리적 물리적 독립성 보장
  • 전문가 수급에 따른 전산화 비용 증가
  • 디스크에 집중적인 접근으로 과부하 발생
  • 파일의 백업과 회복의 어려움
  • 시스템 복잡도 증가
  • DBMS 가 데이터의 저장·공유·무결성·보안 문제를 많이 덜어 주지만 모든 데이터 문제를 해결하지는 못한다. 데이터 품질, 분석, 업무 규칙 같은 문제는 따로 관리해야 한다.
  • 시스템 그 자체를 관리하기 위한 정보를 가지고 있는 시스템 데이터베이스
  • DBMS가 스스로 생성하고 유지한다.
  • 카탈로그에 저장된 정보를 메타 데이터(Meta-Data)라고 하며, 카탈로그를 자료 사전(Data Dictionary)라고도 한다.
    • 실무적으로 시스템 카탈로그는 '시스템 DB', '시스템 테이블' 등으로 불린다.
  • 일반 테이블과 마찬가지로 일반 사용자가 SQL문을 통해 제어 가능하다.
    • 대부분의 테이블은 SELECT만 가능하며, 일부 테이블에 한해 INSERT, UPDATE, DELETE가 가능하다.
상세한 내용은 SQL 문서 보기
  • 정의어 (DDL : Data Definition Language)
    • 데이터베이스 구조를 정의 및 수정하기 위해 사용되는 언어
  • 조작어 (DML : Data Manipulation Language)
    • 데이터베이스 내의 자료를 검색, 삽입, 수정, 삭제하기 위해 사용되는 언어
  • 제어어 (DCL : Data Control Language)
    • 데이터베이스의 데이터 무결성 유지, 보안, 병행, 제어, 보호와 관리를 위한 언어

설계 시 고려사항

편집 원본 편집
  • 무결성 유지: 연산 후에도 데이터가 정해진 제약조건을 항상 만족해야 함
  • 일관성 유지: 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 함
  • 회복성 유지: 장애 발생시 장애 발생 직전의 상태로 복구할 수 있어야 함
  • 보안성 유지: 데이터 노출 또는 변경이나 손실로부터 보호할 수 있어야 함
  • 효율성 유지: 응답시간 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 함
  • 확장성 유지: DB 운영에 영향을 주지 않고 지속적으로 데이터를 추가 할 수 있어야 함

대표 DBMS 제품

편집 원본 편집
구분 제품 개발사·비고
상용 Oracle Database 오라클
DB2 IBM
SQL Server 마이크로소프트
오픈 소스 MySQL 2010년부터 오라클 소유
MariaDB MySQL 에서 갈라져 나온 제품
PostgreSQL 객체-관계형 DBMS
  • Tableau, Power BI, QlikView 는 DBMS 가 아니라 데이터를 불러와 차트·대시보드로 보여 주는 BI·데이터 시각화 도구이다. 데이터를 저장·관리하지 않고 DBMS 나 파일에 연결해 분석 결과를 표현한다. 상용 DB 를 고르는 보기에 Tableau 가 섞여 있으면 그것이 DB 가 아니다.
  • BI 도구는 DBMS 위에서 동작하는 분석·표현 계층이고, DBMS 는 그 아래에서 데이터를 저장·검색·보호하는 계층이다.

병렬 DBMS(Parallel DBMS)는 여러 개의 프로세서(마이크로프로세서)와 디스크를 동시에 사용해 질의 처리, 데이터 적재, 색인 생성 같은 작업을 나누어 동시에 수행하는 DBMS 이다. 데이터는 여러 디스크에 분할(partitioning)해 저장하고, 각 프로세서가 자기 몫의 데이터를 맡아 처리한 뒤 결과를 합친다.

특징 내용
처리 속도 향상 작업을 여러 프로세서가 나누어 맡으므로 대량 데이터 질의가 빨라진다
확장성 프로세서·디스크를 추가해 시스템 용량과 성능을 쉽게 늘린다(스케일 아웃)
가용성 일부 구성 요소에 장애가 나도 나머지가 처리를 이어갈 수 있다
단점 구축 비용이 들고, 데이터 분할·부하 분산·동시성 제어가 복잡해진다
  • 병렬 DBMS 는 데이터를 나누어 처리하는 구조이다. "데이터 중복치가 증가한다" 는 병렬 DBMS 의 특성이 아니다. 데이터 중복을 줄이는 것은 DBMS 일반의 목표이기도 하다.
  • 구조는 프로세서들이 메모리를 함께 쓰는 공유 메모리, 디스크만 함께 쓰는 공유 디스크, 메모리와 디스크를 모두 따로 갖는 비공유(Shared Nothing) 방식으로 나눈다.
  • 물리적으로 떨어진 여러 사이트에 데이터를 두는 분산 데이터베이스와 달리, 병렬 DBMS 는 주로 한 시스템 안에서 처리 성능을 높이는 것이 목적이다.