프로그래밍/Database

[Database] 데이터베이스 시스템

미냐님 2020. 3. 22. 02:56
728x90

 

데이터베이스 시스템 (DBS, DataBase System)

  • 데이터를 데이터베이스에 저장하고, 관리하여 사용자의 요청에 따라 필요한 정보를 생성해주는 시스템
  1. 구성요소
    • 데이터베이스 관리 시스템 : 사용자와 데이터베이스를 연결시켜주는 소프트웨어
    • 데이터베이스 : 데이터를 저장하는 곳
    • 데이터 모델 : 연관된 데이터를 저장하는 방식



데이터베이스 사용자

  1. 일반사용자
    • 프로그래머가 개발한 응용프로그램을 사용하여 데이터베이스에 접근
    • DBMS 사용에 관심이 없고, 요청하여 받은 데이터의 내용에만 관심을 가짐
  2. 응용프로그래머 / 데이터베이스 프로그래머
    • 일반 사용자가 사용할 수 있는 응용 프로그램을 개발
    • 자바, JSP, PHP, ASP, C 등의 프로그래밍 언어를 사용하여 일반 사용자를 위한 인터페이스(GUI)와 데이터 관리 프로그램을 개발
  3. 데이터베이스 관리자
    • 데이터베이스 시스템을 관리하는 사람
    • 데이터 설계, 구현, 유지보수 등을 담당
    • 데이터베이스 사용자, 보안, 접근 권한, 백업, 회복 등을 관리

DBMS의 기능

  1. 데이터 정의 (Definition)
    • 데이터의 구조를 정의, 수정 및 삭제하는 기능
  2. 데이터 조작 (Manipulation)
    • 응용프로그램의 요청으로 데이터의 삽입, 수정, 삭제하는 기능
  3. 데이터 추출 (Retrieval)
    • 응용프로그램의 요청에 따라 필요한 데이터를 추출하는 기능
  4. 데이터 제어 (Control)
    • 사용자를 관리 (계정 생성, 접근 제한)하는 기능
    • 백업, 회복, 동시성 제어 등의 기능

데이터 언어 (Data Language)

  • 사용자가 데이터베이스 관리 시스템을 사용하기 위한 언어
  • 사용 목적에 따라 구분
  1. 데이터 정의어 (DDL, Data Definition Language)
    • 데이터의 구조를 정의, 수정, 삭제하기 위해 사용하는 언어
  2. 데이터 조작어(DML, Data Manupulation Language)
    • 데이터의 삽입, 수정, 삭제, 검색 등의 요청을 위해 사용하는 언어
    • 절차적 데이터 조작어와 비절차적 데이터 조작어로 구분
      • 절차적 데이터 조작어 (Procedural DML) : 사용자가 원하는 데이터와 데이터를 얻는 처리 방법을 설명하는 조작어
      • 비절차적 데이터 조작어 (Nonprocedural DML) : 사용자가 원하는 데이터만 설명하는 조작어
  3. 데이터 제어어(DCL, Data Control Language)
    • 내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용하는 언어
    • 규칙이나 기법을 정의하는 이유
      • 무결성 : 데이터베이스에 정확하고 유효한 데이터만 유지한다.
      • 보안 : 허가받지 않은 사용자의 데이터 접근 차단 및 허가된 사용자가 접근 허용된 데이터만 접근하도록 제어
      • 회복 : 장애 발생시 데이터의 일관성을 유지
      • 동시성 : 다수의 사용자가 같은 데이터에 동시에 접근하여 데이터를 조작할 수 있도록 제어

728x90