ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DBMS] 데이터베이스 Overview
    개발 이야기/DB(데이터베이스) 2024. 9. 10. 21:01
    본 내용은 한양대학교 차재혁 교수님의 데이터베이스시스템및응용 수업(11710)과 Rebro의 코딩일기장의https://rebro.kr/143 내용을 참고하여 작성하였습니다. 

     

    DBMS 

    Database Management system 이란? 데이터베이스는 매우 큰 통합된 데이터의 모음이다. Database Management system은 이런 Database를 저장하고 유지하기 위한 소프트웨어 패키지이다(정의, 생성, 질의, 업데이트, 관리)

    Files vs DBMS

    왜 DBMS가 필요한가? Application이 사용하는 File 시스템과 DB 시스템을 비교하면 아래와 같다. 

    1. Application must stage large datasets between main memory and secondary storage

     Application은 메인 메모리와 secondary storage에 올려주고 사용해야한다(staging), 메모리의 경우 byte(8bit)로 최소단위로 구성되어있고, 스토리지는 페이지단위로 구성되어있다(512byte..? or 4KB). 

    2. File and DBMS need Different Code: Open, read write close는 가능하지만 Insert는 불가능하다. 또한 검색, Datahandling을 위한 SQL문이 따로 필요하다. 

    3. Must protect data from inconsistency due to multiple concurrent users

    여러 명과 작업해도 데이터 유지가 필요

    4.  Crash recovery: data recovery가 필요

    5. Security and access control: 각 유저마다 접근권한 관리가 필요 

     

    즉 위의 이유와 함께 

    Data independence and efficient access.
    Reduced application development time. 
    Data integrity and security.
    Uniform data administration.
    Concurrent access, recovery from crashes.
    의 이유가 있다. 특히 Data Independence는 중요한 특성이다. 
     

    Data Models

    Data model is a collection of concepts for describing data. 즉, 데이터를 해석하는 시각이다. 

    초기의 DBMS에서는 데이터베이스가 가진 독립체와 속성인 '논리 계층(Logical layer)'과 이들이 저장되는 방식인 '물리 계층(Physical layer)'이 매우 밀접한 관계였기 때문에, 물리 계층을 바꿀 때마다 모든 코드를 바꿔야 해서 데이터베이스 응용프로그램을 짓고 유지하기가 어려웠다. 

    Relational model이란 1970년도에 Ted Codd라는 사람에 의해 고안, 관계형의 관점으로 데이터를 보아 이를 해결하고자 했다.

     Relational model and Relation

    관계형 모델, 즉 Relational model에서 Realation은 basically a table with rows and columns을 의미한다. 

    출처: https://rebro.kr/143

    즉 위의 그림과 같은 table형태이다. Relation에서 중요한 개념은 Tuple, Attribute, Schema이다. 

    Relation  집합의 개념과도 매우 유사하며 수학적으로 정의 가능하다.

    즉, 아래의 특징을 가진다. 

    - 릴레이션은 순서가 없는 집합(unordered set)의 개념이다. 
    - 튜플 간, 속성 간 순서가 없고, 동일한 튜플은 존재할 수 없으니 각 튜플이 모두 유일하며 각각 식별 가능하다. 
    - 튜플들의 삽입, 갱신, 삭제가 실시간으로 발생하므로 릴레이션은 자주 변한다. 

     

    주요 용어는 아래와 같다. 

     

    1. Tuple

    Tuple은 행과 유사한 개념으로 Record라고도 부른다. 한 행을 구성하는 속성들의 집합이다. 

    또한 각 속성은 Null을 가질 수 있다. Tuple에 소속되어있는 속성들의 종류는 Degree라고 불린다. 

    또한 Tuple의 개수는 Cardinality로 불린다. 

     

    2. Attribute

    열과 유사한 개념으로 각 데이터 객체의 속성이 가지는 정보이다. 

     

    3. Domain 

    각 속성이 가질 수 있는 사전에 정의된 데이터의 집합으로, 값의 범위나 종류를 의미한다(int, char 등과 유사)

     

    4. Schema

    릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조를 의미하는 청사진을 의미한다. 

    간단히는 릴레이션이 어떻게 구성되는지, 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의(첫 행 헤더)한다고 생각하면 된다. 

     

    Schema & View 그리고 추상화

    schema는 위에서 말한 것 처럼 데이터베이스의 전체적인 명세를 기술한 것을 의미한다. 

    물리적 스키마(Physical Schema)

    • 데이터가 실제로 저장되는 방식을 정의, 파일 구조, 인덱스, 파티션 등을 포함

    개념적 스키마(Conceptual Schema) & 논리적 스키마(Logical Schema)

    • 데이터베이스 논리적 구조, 관계를 상세히 설명
    • 각 Attribute가 어떻게 연결되어있고 어떤 형식으로 저장되는지 정의
    • ER modeling을 통해 정의되는 부분

    View(뷰)

    • 추상화의 최상위 단계로 전체가 아닌 데이터베이스의 일부분만을 나타내는 가상의 테이블
    • 이를 이용해 사용자가 데이터베이스 시스템을 간단히 이용가능할 수록 정의

     

    이러한 View를 통해 데이터의 저장 구조나 처리가 변경되어도 Application에는 영향을 주지 않는 데이터 독립성을 구현한다(논리적 데이터 독립성)

    Data Independence * ?

    Logical data independence(논리적 데이터 독립성)

    - Protection from changes in logical structure of data, 각각의 응용 프로그램, application들이 서로 영향을 받지 않으면서 논리적인 구조를 제공할 수 있다. 
    Physical data independence(물리적 데이터 독립성)
    - Protection from changes in physical structure of data, 데이터의 물리적 구조를 변경해도 프로그램에 영향이 없다. 

     

     

Designed by Tistory.