Array ( [0] => skins.liberty.bootstrap [1] => skins.liberty.layoutjs [2] => skins.liberty.liverc [3] => skins.liberty.loginjs ) DBMS - 공대위키

DBMS

Database Management System
파일 시스템의 문제점인 데이터의 중복성과 종속성 등의 문제를 최소화하기 위해 등장. 모든 사용자나 응용 프로그램들이 데이터베이스를 공유할 수 있도록 관리, 운영해 주는 소프트웨어 시스템

1. 등장 배경[편집]

기존의 파일처리 방식의 문제점
    • 종속성의 문제점: 저장되는 방법이나 접근방법을 변경할 때 모두 바꿔줘야 한다.
    • 중복성의 문제점: 일관성, 보안성, 경제성, 무결성 부족

2. 역할[편집]

  • 사용자의 요구에 따라 정보를 생성하고 스키마와 데이터를 관리
  • 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로 모든 응용 프로그램이 DB를 공용할 수 있도록 관리
  • DB의 구성, 접근방법, 유지관리에 대한 모든 책임

3. 기능[편집]

  • 정의 기능(Definition Facility): 데이터의 형태, 구조 등 데이터베이스의 저장에 관한 여러 가지 사항을 정의하는 기능
  • 조작 기능 (Manipulation Facility): 사용자가 이용할 수 있도록 요구에 따라 검색, 갱신, 삽입, 삭제 등을 지원하는 기능
  • 제어 기능 (Control Facility): 데이터의 정확성과 안전성 유지를 위한 기능으로, 데이터 무결성 유지, 보안, 병행 제어 등을 제공

4. 장·단점[편집]

  • 장점
    • 데이터 중복 예방
    • 자료를 공동으로 이용
    • 일관성, 무결성, 보안, 최신의 데이터를 유지
    • 데이터 표준화 및 통합 관리
    • 실시간 처리
    • 논리적 물리적 독립성 보장
  • 단점
    • 전문가 수급에 따른 전산화 비용 증가
    • 디스크에 집중적인 접근으로 과부하 발생
    • 파일의 백업과 회복의 어려움
    • 시스템 복잡도 증가

5. 관리[편집]

5.1. 시스템 카탈로그[편집]

  • 시스템 그 자체를 관리하기 위한 정보를 가지고 있는 시스템 데이터베이스
  • DBMS가 스스로 생성하고 유지한다.
  • 카탈로그에 저장된 정보를 메타 데이터(Meta-Data)라고 하며, 카탈로그를 자료 사전(Data Dictionary)라고도 한다.
    • 실무적으로 시스템 카탈로그는 '시스템 DB', '시스템 테이블' 등으로 불린다.
  • 일반 테이블과 마찬가지로 일반 사용자가 SQL문을 통해 제어 가능하다.
    • 대부분의 테이블은 SELECT만 가능하며, 일부 테이블에 한해 INSERT, UPDATE, DELETE가 가능하다.

5.2. 관리 언어[편집]

상세한 내용은 SQL 문서 보기
  • 정의어 (DDL : Data Definition Language)
    • 데이터베이스 구조를 정의 및 수정하기 위해 사용되는 언어
  • 조작어 (DML : Data Manipulation Language)
    • 데이터베이스 내의 자료를 검색, 삽입, 수정, 삭제하기 위해 사용되는 언어
  • 제어어 (DCL : Data Control Language)
    • 데이터베이스의 데이터 무결성 유지, 보안, 병행, 제어, 보호와 관리를 위한 언어

6. 설계 시 고려사항[편집]

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

7. 관련 개념[편집]