[데이터베이스] DBS

2025. 3. 26. 14:39·CS/데이터베이스
728x90

국민대에서 데이타베이스시스템(정익사, 이석호저) 교재를 사용하신
김혁만 교수님의 강의를 듣고 정리한 글입니다

 

 

DBS는 기업 혹은 조직이 DBMS를 사용해 개발한 응용 프로그램을 통해 관련 데이터를 관리하는 전체 시스템

 

 

DBS의 구성요소

  • 데이터 스키마 - 3단계 데이터베이스
  • 데이터 언어
  • 사용자
  • DBMS
  • DBA

 

데이터 스키마

사진을 참고하면 데이터 스키마를 좀 더 이해하기 쉬울 수 있다

또한 이 사진은 DBS 구성도를 나타내는 사진이라 어떻게 구성되어있는지 알 수 있다

스키마는 데이터베이스의 구조(테이블 포맷)와 제약조건의 명세이다

데이터 스키마의 종류는 3가지인데 외부, 개념, 내부 스키마가 있다

 

외부 스키마(서브 스키마)

  • 개개 부서의 데이터베이스 정의
  • 개별 사용자나 애플리케이션이 보는 데이터 구조이다
  • 같은 데이터이라도 사용자마다 다른 뷰 제공이 가능하다

개념 스키마

  • 기관 전체의 데이터베이스 정의
  • 엔티티, 속성, 관계 등을 포함한다

내부 스키마

  • 데이터가 실제로 디스크에 저장되는 방식 정의
  • 인덱스, 파일 구조, 저장 경로 등 포함

*일반적으로 스키마는 개념 스키마를 지칭함

 

위 3단계간의 사상(Mapping)

3단계 스키마의 도입에는 이유가 있는데 DBMS에서 데이터 독립성을 제공한다

  • 외부/개념 단계 간의 사상

응용 인터페이스이자 논리적 데이터 독립성을 제공한다

논리적 데이터 독립성이 무엇이냐면, 개념 스키마가 변경되어도 외부 스키마(사용자 뷰)에 영향이 최소화 된다

  • 개념/내부 단계 간의 사상

저장 인터페이스이자 물리적 데이터 독립성을 제공한다

물리적 데이터 독립성은 내부 스키마(저장 구조)가 변경되어도 개념 스키마(논리적 구조)에 영향을 주지 않는다

 

데이터 언어

DBMS에는 필수 기능이 있다

데이터 정의, 조작, 제어 기능이 존재해야 된다

그리고 데이터 언어라는 데이터베이스의 정의, 조작, 제어를 위한 언어가 있는데

이것을 각각 데이터 정의어, 조작어, 제어어라고 부른다

 

데이터 정의어(DDL)

  • 데이터베이스의 구조(스키마)를 정의하는데 사용하는 명령어이다
  • 데이터베이스(테이블)를 만들거나 수정하거나 삭제하는 역할을 한다
  • CREATE, ALTER, DROP, TRUNCATE 등등

 

데이터 조작어(DML)

  • 테이블에 저장된 데이터를 조작하는 명령어이다
  • 데이터를 삽입, 조회, 수정, 삭제할 때 사용한다
  • INSERT, SELECT, UPDATE, DELETE 등등

 

데이터 제어어(DCL)

  • 데이터베이스 관리를 위해 접근 권한과 보안, 무결성 등을 관리하는 명령어이다
  • GRANT, REVOKE

 

사용자(User)

  • 일반 사용자

DML을 통해서 데이터베이스를 접근

  • 응용 프로그래머

호스트언어(Java, Python) + DML을 사용해서 응용 프로그램 작성

즉 DSL을 통해서 데이터베이스를 접근(DSL은 SQL, HTML 등 같은 부류)

  • 데이터 베이스 설계자

DDL을 통해 DB 스키마를 정의하는 사람

  • 데이터베이스 관리자

DCL을 통해 DBMS를 운영하고 제어하는 사람

 

데이터베이스 관리자(DBA)

데이터베이스 시스템(DBS)의 전체적인 관리 운영에 대한 모든 책임을 지는 사람의 집단

  • 데이터베이스의 구성요소를 결정
  • 시스템 감시, 성능 분석, 및 튜닝
  • 행정 및 불평 해결

 

데이터베이스 관리 시스템(DBMS)

DB를 관리하는 소프트웨어

DB에 대한 모든 접근을 처리함

  • 사용자의 접근 요구 접수
  • 시스템이 수행할 수 있는 형태로 변환
  • 외부/개념/내부 스키마와 저장 데이터베이스 간의 Mapping
  • 저장 데이터베이스에 대한 연산 실행

사진을 보면 위에서 설명했던 사용자와 구조가 어떻게 되어있는지 이해하기 더 쉬울 것이다

728x90

'CS > 데이터베이스' 카테고리의 다른 글

[데이터베이스] 개념적 설계(개념적 데이터 모델링)  (0) 2025.04.04
[데이터베이스] 관계 데이터 연산  (0) 2025.03.31
[데이터베이스] 관계 제약  (0) 2025.03.26
[데이터베이스] 관계 데이터 구조  (0) 2025.03.26
[데이터베이스] DB & DBMS  (0) 2025.03.19
'CS/데이터베이스' 카테고리의 다른 글
  • [데이터베이스] 관계 데이터 연산
  • [데이터베이스] 관계 제약
  • [데이터베이스] 관계 데이터 구조
  • [데이터베이스] DB & DBMS
Dlawoct
Dlawoct
WeekEnd 개발자
  • Dlawoct
    Week-End
    Dlawoct
  • 전체
    오늘
    어제
    • 분류 전체보기 (58) N
      • Language (9)
      • Algorithm (8)
      • Backend (7)
        • Spring (7)
        • Node.js (0)
      • DataEnginering (3)
        • Big Data (0)
      • CS (27) N
        • 데이터베이스 (11) N
        • 컴퓨터네트워크 (14) N
        • 운영체제 (2)
      • IT 지식 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데베
    컨테이너
    UDP
    TCP
    김영한 java 강의
    링크계층
    데이터베이스
    Link
    백엔드
    select
    스프링
    프로그래밍 언어
    쿠버네티스
    김영한
    security layer
    관계
    spring
    network layer
    언어
    도커
    db
    백준
    Ack
    DML
    SQL
    Java
    자바
    운영체제
    SQLD
    Link Layer
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
Dlawoct
[데이터베이스] DBS
상단으로

티스토리툴바