데이터베이스 시스템의 정의

데이터베이스 시스템(DBS: DataBase System) : 데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템

데이터베이스 VS 데이터베이스 관리 시스템 VS 데이터베이스 시스템

  • 데이터베이스 : 데이터를 저장해두는곳
  • 데이터베이스 관리 시스템 : 데이터베이스에 저장된 데이터가 일관되고 무결한 상태로 유지되도록 관리하는 시스템
  • 데이터베이스 시스템 : 데이터베이스와 데이터베이스 관리 시스템을 이용해 조직에 필요한 정보를 제공해주는 전체 시스템

데이터베이스 시스템은 데이터베이스, 데이터베이스 관리 시스템, 데이터베이스 사용자, 데이터언어로 이루어져있다.
아래에서 이 4가지 요소를 하나씩 알아보자

데이터베이스의 구조

  1. 스키마
    스키마(schema) : 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것(한번 정의되면 잘 바뀌지 않음)
    인스턴스(instance) : 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값(자주 변경됨)
  2. 3단계 데이터베이스 구조
  • 3단계 데이터베이스 구조의 개념
  • 외부 단계(개별 사용자 관점)
    개별 사용자가 필요한 데이터들만을 바라보는 형태.로그인 담당자는 아이디, 비밀번호, 이름, 나이, 성별, 가입날자만 봄
    주문 담당자는 물품명, 회원아이디, 주문날자, 가격, 도착날자만 봄(여러 테이블을 조인해서)
    외부스키마 : 각 사용자가 생각하는 데이터베이스의 모습을 표현한 논리적인 구조로, 사용자마다 다르다.
  • 개념 단계(조직 전체 관점)
    데이터베이스를 조직 전체의 관점에서 이해하고 표현한다.개념 스키마는 조직 전체의 관점에서 생각하는 데이터베이스의 모습이며, 모든 개별 사용자가 생각하는 데이터베이스의 모습을 하나로 합친 형태다.
    개념스키마: 모든 사용자에게 필요한 데이터를 통합하여 전체 데이터베이스의 논리적 구조를 정의한다.(일반적으로 스키마라고 하면 개념스키마를 의미)
  • 내부 단계(물리적인 저장 장치의 관점)
    저장장치의 관점에서 이해하고 표현한다.
    내부스키마: 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의한다.
  1. 데이터 독립성
    데이터베이스 구조의 각 단계는 하위단계에 맵핑(사상)된다. 따라서 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않게 된다. 이는 곧 데이터 독립성으로 이어진다.
  • 논리적 데이터 독립성
    개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것(외부/개념 사상 정보만 적절히 수정해주면 된다.)
  • 물리적 데이터 독립성
    내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것(개념/내부 사상 정보만 적절히 수정해주면 된다.)
  1. 데이터 사전
    데이터베이스를 사용하려면 데이터 이외에 부가정보(스키마/사상정보 등)도 저장해야한다. 이러한 부가정보를 저장하는 곳이 데이터 사전/시스템 카탈로그라고 한다.

데이터베이스 사용자

  1. 데이터베이스 관리자
    데이터베이스 시스템을 운영-관리 한다. 데이터베이스 설계, 구축, 제어주요 업무
    • 데이터베이스 구성 요소 선정
    • 데이터베이스 스키마 정의
    • 물리적 저장 구조와 접근 방법 결정
    • 무결성 유지를 위한 제약조건 정의
    • 보안 및 접근 권한 정책 결정
    • 백업 및 회복 기법 정의
    • 시스템 데이터베이스 관리
    • 데이터베이스 재구성
  2. 최종사용자
    데이터를 조작(CRUD)하기 위해 데이터베이스에 접근하는 사람들
    • 캐주얼 사용자 : DB에 대한 이론적 지식이 있으며, 데이터 조작어를 이용함
    • 초보 사용자 : DB초보수준으로, GUI를 활용
  3. 응용프로그래머
    응용프로그램을 작성할 때 데이터 조작어를 삽입하는 사용자.

데이터 언어

  1. 데이터 정의어(DDL) : 스키마를 정의하거나, 수정 또는 삭제하기 위해서 사용한다.
  2. 데이터 조작어(DML) : 데이터의 삽입-삭제-수정-검색 등의 처리를 요구하기 위해서 사용한다.
    • 절차적 데이터 조작어 : 사용자가 어떤 데이터를 원하고 해당 데이터를 얻으려면 어떻게 처리해야 하는지를 구체적으로 설명
    • 비절차적 데이터 조작어 : 어떤 데이터를 원하는지만 설명 즉, 해당 데이터를 얻으려면 어떻게 처리해야 하는지는 데이터베이스 관리 시스템에 맡김
  3. 데이터 제어어(DCL) : 내부적으로 필요한 규칙이나 기법을 정의하기 위해서 사용한다.
    데이터 제어어를 이용해 규칙이나 기법을 정의하는 이유는 다음과 같은 특성을 보장하기 위함
    • 무결성
    • 보안
    • 회복
    • 동시성

데이터베이스 관리 시스템의 구성

  1. 질의 처리기 : 사용자의 데이터 처리 요구를 해석하여 처리하는 역할
    • DDL 컴파일러 : 데이터 정의어로 작성된 스키마의 정의를 해석한다. 그리고 저장 데이터 관리자를 통해 DB구축, 스키마를 데이터 사전에 저장함.
    • DML 프리 컴파일러 : 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달
    • DML 컴파일러 : 데이터 조작어로 작성된 데이터의 처리 요구를 분석하여 런타임 데이터베이스처리기가 이애할 수 있도록 해석한다.
    • 런타임 데이터베이스 처리기 : 저장 데이터 관리자를 통해 DB에 접근하여 DML 컴파일러로 부터 전달받은 데이터 처리 요구를 실행한다.
    • 트랜잭션 관리자 : DB에 접근하는 사용자 권한이 유효하고, 제약조건 위반여부를 확인하며, 회복이나 병행 수행과 관련된 작업도 수행한다.
  2. 저장 데이터 관리자
    내부단계(물리적 저장위치)에 접근하는 역할

'DB' 카테고리의 다른 글

관계 데이터 모델  (0) 2022.04.10
데이터 모델링  (0) 2022.04.10
데이터베이스 관리 시스템  (0) 2022.04.09
데이터베이스 기본개념  (0) 2022.04.09

+ Recent posts