ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [데이터베이스 시스템 ver.7] 챕터1
    데이터베이스 시스템 책 정리 2025. 3. 20. 10:01

    용어정리

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

    서로 관계있는 데이터들의 모임과 그 데이터에 접근하기 위한 프로그램의 집합으로 구성된다

    데이터베이스에 정보를 쉽게 저장하고 분석, 검색하기 위한 효율적인 환경을 제공한다

    크게 온라인 트랜젝션 처리(검색, 갱신 등)데이터 분석을 수행한다

    - 파일 처리 시스템

    각기 다른 운영체제가 파일 처리 시스템에 정보를 저장할때 발생하는 문제들 

    - Data inconsistency (데이터 비일관성) (<-> Integrity(무결성))

    각기 다른 파일에 같은 데이터를 중복 저장 -> 중복 저장된 어떤 데이터가 변경되었을때 어떤 파일에는 적용되고 어떤 파일에는 적용되지 않아 문제 발생

    - Data abstraction (데이터 추상화)

    세 단계로 나누어 추상화하여 어떤 단계에서 요소를 변경해도 다른 단계에 지장 없도록 한다. 이를 통해 데이터 독립성을 가질 수 있다.

     

       3. View level (뷰 단계)

         실제 데이터를 보는 방식을 정의하는 단계다. REST API 응답을 만든다거나 접근권한을 설정한다.

       2. Logical level (논리적 단계)

         스키마를 정의하고 주키, 외래키 등의 조건을 정의하는 단계다

       1. Physical level (물리적 단계)

          물리적 저장구조이다. 파일 저장 구조(B-Tree, Hash Index, Heap File 등), 저장포맷(블록 단위로 저장, 페이지 단위로 저장 등), 버퍼 관리(캐싱, 버퍼 풀 등) 등을 결정하는 단계다.

    - 데이터 모델

       - Relational data model (관계형 데이터 모델)

         RDBMS에서 사용되며, table 형식으로 표현하는 모델로, 행과 열, 외래키를 사용한다.

         예시로 MySQL, PostgreSQL, Oracle이 있다.

       - Semi-structured data model (반구조형 데이터 모델)

         데이터를 계층적 또는 트리 형태로 저장할 수 있어 데이터간의 관계를 유연하게 처리할 수 있다.

         XML, JSON, YAML 등의 형식으로 데이터를 표현한다.

         예시로 NoSQL 데이터베이스인 MongoDB가 있다.

       - Object-based data model (객체 기반 데이터 모델)

         객체지향 언어를 사용하는 java, c++에서 유용하게 사용된다. 상속, 다형성 등을 지원한다.

         OODBMS에서 사용되며, 예시로 ObjectDB가 있다.

       - Entity-relationship model (개체-관계 모델) (E-R 모델)

           관계형 데이터 모델객체 기반 데이터 모델의 장점을 결합한 버전이다.

          사용자 정의 타입이나 함수를 정의할 수 있고, 상속 개념도 지원한다.

          복잡한 데이터 작업과 대규모 데이터베이스 시스템에 적합하다.

          예시로 PostgreSQL이 있다.

     

    - DDL(=Data Definition Language = 데이터 정의 언어)

         스키마를 기술하는 언어다.

          - Domain Constraints (도메인 제약 조건) : "모든 속성은 가능한 모든 값에 도메인(ex 정수형 문자형 등)이 지정되어 있어야 한다"

          - Referential Integrity (참조 무결성) : "어떤 릴레이션이 한 릴레이션을 참조할 때 그 데이터는 무결해야 한다"

          - Authorization (권한) : read, insert, update delete의 권한

          - 메타데이터 : 데이터를 위한 데이터다. ex) 테이블명, 칼럼명, 인덱스 정보

    - DML(=Data Manipulation Language = 데이터 조작 언어) 

           질의, 갱신을 표현하는 데이터 조작 언어다. 

          - Procedural DML (절차적 DML) : 데이터를 "어떻게" 가져올지 사용자에게 요구한다 (ex FETCH, CURSOR)

          - Declarative DML (선언적 DML) or nonprocedural DML (비절차적 DML) : "어떻게"는 명시할 필요 없이, "어떤" 데이터를 가져올지만 사용자에게 요구한다. 일반적인 SQL 쿼리를 사용하는 방법이다 (ex SELECT, UPDATE, DELETE)

    - 데이터베이스 엔진

       - 저장 관리자의 구성요소

          - 권한과 무결성 관리자

          - 트랜젝션 관리자

          - 파일 관리자

          - 버퍼 관리자

          - 데이터 파일

          - 데이터 사전 : 메타데이터 저장

          - 인덱스

       - Query processor (질의 처리기)의 구성요소

          - DDL 인터프리터

          - DML 컴파일러 : 여러 일 중 Query optimization (질의 최적화)를 맡는다.

       - 트랜젝션 ACID 속성

          - Atomicity (원자성) : 완전히 되든지, 안되는지

          - Consistency (일관성) : 트랜젝션 전후에 제약조건, 규칙 등이 깨지지 않도록

          - Isolation (격리성) : 각 트랜젝션이 독립적으로 실행되도록

          - Durability (지속성) : 데이터가 손실되지 않도록

       - 트랜젝션 관리자

          - recovery manager (복구 관리자) : 트랜젝션 중간에 고장나도 일어나기 전 상태로 복구 수행

          - Concurrency-control manager (동시성 제어 관리자) : 여러 트랜젝션이 동시에 변경해도 데이터 일관성 유지 수행

    - 중앙화된 데이터베이스 구조

       - Parallel (병렬) : 한 서버에서 여러개의 CPU로 메모리에 접근하는 방식. 데이터 분석시 또는 대규모데이터를 빠르게 처리해야 할때 사용한다. 이때 메모리 공유로 인해 트랜젝션 간의 충돌이 발생할 수 있는데, 비관적/낙관적 락을 이용해 충돌을 막고 동기화되도록 한다.

       - Distributed (분산) : 여러대의 서버로 공유 메모리에 접근하는 방식. 병렬방식과 다르게 네트워크가 필요하다. 서버로부터 멀리 떨어져 있는 사용자의 빠른 접근을 위해 서버를 각 지역에 여러개 두는 방식으로 사용한다. 이 경우도 마찬가지로 트랜젝션 간의 충돌이 발생할 수 있는데, 분산락을 통해 충돌을 막고 컴퓨터 간 동기화되도록 한다.


    실전문제

    1.1 이 장은 데이터베이스 시스템의 몇가지 주요 장점에 대해 설명했다. 단점 두가지를 설명하라.

    1.2 Java나 C++와 같은 언어의 타입 선언 시스템이 데이터베이스에서 쓰이는 데이터 정의 언어와 다른 점을 다섯가지 기술하라

    1.3 특정 조직에 데이터베이스를 설치할 때, 여섯가지 주요 절차를 나열하라

    1.4 YouTube와 같은 비디오 사이트를 제작하려고 한다고 하자. 1.2절에서 나열한 파일 처리 시스템의 단점을 고려하자. 이러한 단점이 실제 비디오 데이터의 저장소나 제목, 동영상을 올리는 사용자, 태그와 같은 비디오의 메타데이터, 그리고 동영상을 시청하는 사용자 등과 어떠한 관련성이 있는지 토론하라.

    1.5 웹 검색에서 사용되는 키워드 질의는 데이터베이스 질의와는 다르다. 질의가 기술되는 측면과 질의의 결과 측면에서 둘 사이의 다른 점을 기술하라.

     

    연습문제

    1.6 데이터를 저장하기 위해 데이터베이스를 사용하는 응용 프로그램 네 가지를 나열하라.

    1.7 파일 처리 시스템과 DBMS 사이의 가장 큰 차이점 네가지를 나열하라.

    1.8 물리적 데이터 독립성의 개념과 그것이 데이터베이스 시스템에서 지니는 중요성에 대해 설명하라

    1.9 데이터베이스 관리 시스템의 다섯가지 책임을 나열하라. 이러한 것이 제대로 수행되지 않을때 발생할 수 있는 문제에 대해 각 책임별로 설명하라

     

Designed by Tistory.