[ Database ] 기초 개념

duck-ach·2023년 1월 5일
0

DATABASE

목록 보기
5/7
post-thumbnail

Database system(Database)

Database + DBMS + 연관된 applications

Database(DB)란?

전자적으로 저장되고 사용되는 관련있는(related)데이터들의 조직화된 집합(organized collection)이다.

DBMS(Database Management System)

사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템을 의미한다.
종류 : PostgreSQL, MySQL, Oracle 등

Metadata 란?

DBMS를 이용하여 데이터를 정의하고 관리하다보면 부가적인 데이터가 발생하는데, 이를 metadata 라고 부르며 (data about data) DBMS로 인해 관리된다.

  • database를 정의하거나 기술하는(descriptive)data
  • catalog 라고도 부른다.
    예시 : 데이터 유형, 구조, 제약조건, 보안, 저장,인덱스, 자용자 그룹 등등

data models

DB의 구조(structure)를 기술하는데 사용될 수 있는 개념들이 모인 집합(DB구조를 추상화해서 표현할 수 있는 수단을 제공한다.)

분류 (개념적모델, 논리적모델, 물리적모델)

conseptual data models

  • 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어진 모델
  • 추상화 수준이 가장 높음
  • 비즈니스 요구 사항을 추상화하여 기술할 때 사용한다.
    ex) entity-relationshop model(개체 관계형 모델)

    E-R Diagram 이란 Entity-Relationshop Model을 표현하는 것으로 개체(entity)와 속성(attribute), 관계성(relationshop)을 표현하며 개념을 모델링한다.
    개체 = 사각형
    속성 = 타원형
    관계 = 마름모

logical data models

  • 이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념들을 제공한다.
  • 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화를 가능하게 함
  • 특정 DBMS나 storage에 종속되지 않는 수준에서 DB를 구조화
    할 수 있는 모델
  • relational data model
    일반적인 테이블을 의미한다. row와 column이 존재한다.
    row는 각각의 데이터를 의미하고, column은 속성을 의미한다.
  • object data model
    객체개념을 사용하여 데이터베이스를 모델링하는 것이다.
  • object-relational data model
    relational data model 과 object data model을 합친 것이다.

physical data models

  • 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단을 제공한다.
  • data format, data orderings, access path(데이터 검색을 빠르게 하기 위한 구조체 (ex : index)) 등

데이터 모델링의 중요성 및 유의점

파급효과 (Leverage)

프로젝트가 상당히 진행된 도중에 데이터 모델의 변경이 불가피한 상황이 발생한다면 프로그램의 상당수를 수정해야 되는 일이 발생합니다. 이는 상당한 위험요소가 될 수 있기 때문에 데이터 설계를 하는 데이터 모델리의 과정을 철저히 거쳐 프로젝트 도중 데이터 모델을 변경하는 불상사를 방지하여야 한다.

복잡한 정보 요구 사항의 간결한 표현(Concisenness)

데이터 모델은 구축할 시스템의 정보 요구 사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 일종의 설계도이다.
정보 요구 사항을 파악하는 가장 좋은 방법은 수많은 페이지의 기능적인 요구 사항을 파악하는 것보다 간결하게 그려져 있는 데이터 모델을 리뷰하면서 파악하는 것이 훨씬 빠른 방법이다.

데이터 품질(Data Quality)

Database에 담겨 있는 데이터는 기업의 중요한 자산이기 때문에 품질이 높은 정확성 있는 데이터가 저장되어 있어야 한다.
데이터 품질의 문제가 야기되는 이유 중 하나가 데이터 구조인데, 중복 데이터의 미정의 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터를 통합하지 않고 분리함으로써 나타나는 데이터 불일치 등의 문제가 발생하지 않도록 주의하여야 한다.

Database Schema

  • data model을 바탕으로 database 구조를 기술(description) 한 것.
  • schema는 database를 설계할 때 정해지며 한번 정해진 후에는 자주 바뀌지 않는다.

    위와같이 Table(테이블)과, Column(속성)이 schema에 해당된다.

Database State

  • database에 있는 실제 데이터는 꽤 자주 바뀔 수 있다.
  • 특정 시점에 database에 있는 데이터를 database state 혹은 snapshot이라고 한다.

three-schema architecture

  • 데이터베이스 시스템(database system)을 구축하는 구조(architecture)중 하나이다.
  • 세가지 레벨(Level)이 존재하며 각각의 레벨마다 schema가 정의되어 있다.
  • 각 레벨을 독립시켜서 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않는것을 목적으로 한다.
  • 대부분의 DBMS가 three level을 완벽하게 혹은 명시적으로 나누지는 않는다.
  • 데이터가 존재하는 곳은 Internal Level 이다.


1. external schemas(or user views) at external (or view) level
: 실제 사용자가 바라보는 뷰이다. 특정 유저들이 필요로 하는 데이터만 표현한다. 그 외 알려줄 필요가 없는 데이터는 숨긴다. (logical data model을 통해 표현한다.)
2. internal schemas at internal level
: 물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현된다. (data storage, data structure, access path 등 실체가 있는 내용 기술)
3. conceptual schemas at conceptual level
: 전체 database에 대한 구조를 기술하며 물리적인 저장 구조에 관한 내용은 숨긴다.

Database Language

Data Definition Language(DDL)

  • Conceptual schema를 정의하기 위해 사용되는 언어이다.
  • Internal Schema까지 정의할 수 있는 경우도 있다.

Storage Definition Language(SDL)

  • Internal Schema를 정의하는 용도로 사용되는 언어이다.
  • 요즘은 특히 relational DBMS에서는 SDL이 거의 없고 파라미터 등의 설정으로 대체된다.

View Definition Language (VDL)

  • External Schema 를 정의하기 위해 사용되는 언어이다.
  • 대부분의 DBMS에서는 DDL이 VDL 역할까지 수행한다.

Data Manipulation Language (DML)

  • database에 있는 data를 활용하기 위한 언어이다.
  • data 추가, 삭제, 수정, 검색 등등 기능을 제공하는 언어이다.

오늘날의 DBMS는 DML, VDL, DDL이 따로 존재하지 않고 통합된 언어로 존재한다. SQL

profile
자몽 허니 블랙티와 아메리카노 사이 그 어딘가

0개의 댓글