오래 못 할 짓 하지 않기

[ 데이터베이스 ] 1. 기본 개념들 ( DB , DBMS ) 본문

3학년 1학기/데이터베이스(DB)

[ 데이터베이스 ] 1. 기본 개념들 ( DB , DBMS )

쫑알bot 2023. 12. 26. 15:10
728x90

DB란?

"관련있는" 데이터들의 "조직화된" 집합

 

 

관련있는 데이터들을 조직화해서 정리해야한다.

→ 도서관에 책에 정리가 되어있지 않으면 불편함을 넘어서, 제 역할을 할 수 없을 수도 있다.

 

 

- 조직화를 통한 장점  

1. 원하는 데이터를 빨리 찾을 수 있다.

2. 중복을 피할 수 있다.

3. 데이터의 불일치도 막을 수 있다.

 

( 도서관에 책을 정리를 해놓았을 때 장점과 같다. )

 


DBMS 

Database management systems

: 사용자가 DB를 정의하고 만들고 관리하는 기능을 더 편하게 사용할 수 있게 하는  시스템

→  DB를 정의하다보면 부가적인 데이터가 발생한다 (  = metadata  )

 

Metadata  = data about data

주로 데이터의 유형, 구조 , 조건 , 저장 , 인덱스 이런 것들에 대한 정보.

이런 것들도 DBMS에 저장된다.

 

 

Database system ( = 줄여서 Database라고 함 )

: database + DBMS + 연관된 Application

 

DB system이 동작하는 방식

 

 

 


Data model

 

 

Data Model을 3가지로 분류할 수 있는데

  • Conceptual (or high-level) data models  
  • Logical (or represetational) data models  
  • Physical (or low-level) data models         

 



- Conceptual (or high-level) data models 

1) 일반 사용자들이 쉽게 이해할 수 있는 개념

2) 추상화 수준이 가장 높음

 

ex) Entity-Relationship model

 

 



- Logical data models 

1) 이해하기 어렵지 않고 + 디테일하게 DB를 구조화 할 수 있는 개념을 제공

2) 데이터가 저장될 때의 구조와 비슷하며, DB구조화를 가능하게 한다.

3) 특정 DBMS에 종속되지 않는 수준으로 DB구조화 가능

 

ex) relational data model

이 외에도

Object data model이 있고,

둘을 합친  object-relational data model도 있다.

 

하지만 제일 많이 쓰이는 건 relational data model

 

 



- Physical (or low-level)  models 

1) 컴퓨터에 데이터가 어떤 형태로 저장되는지를 기술할 수 있는 수단 제공

2) data format, data orderings, access path 등을 제공한다.

   + access path : 데이터 검색을 빠르게 하기 위한 구조체 // ex) index  

 

 


DB Schema / State

 

Database Schema

: Data model을 바탕으로 DB의 구조를 기술한 것

→ 설계할 때 정해지며, 한 번 정해지면 변하지 않음.


Database State

: DB에 들어있는 데이터의 상태

→ 특정 시점에 DB에 있는 데이터 = DB state , snapshot

     = 현재 DB에 있는 instances의 집합 

 


 

Three-schema architecture

 

사용 목적 : User application으로부터 Phisical DB를 분리시키는 목적

                 = Phisical DB가 바뀌어도 사용에는 지장이 없도록

더보기

DB system은 추상화 정도에 맞춰 3단계로 구분할 수 있다.

DB가 내부적으로는 어렵게 작동하지만, 이 관점에 맞추어 편하게 이해할 수 있다.

Three-schema architecture를 통해 Phsical DB가 변하더라도, User가 사용하는 데에는 큰 지장이 없게 하려 함이다.

  • External schemas  at external level             ( = 외부 단계 ) // External = user view
  • Conceptual schemas  at conceptual level   ( = 개념 단계 )
  • Internal schemas  at internal level               ( = 내부 단계 )

 

 

Internal Schema

: 물리적으로 DB에 가장 가까이 있는 Schema

→ 물리적으로 Data가 어떻게 저장되는지 나타냄 ( with Physical data model )

      Data storage, structure, Access path와 같이 실체가 있는 내용을 기술한다.

 

 

External Schema (제일 간결하다고 보면 된다)

: External views, user views라고 부름

 

● 유저들이 [ 필요로 하는 데이터만 표현 ] 한다!

●  그 외에 알려줄 필요없는 데이터는 숨김 ( ex) id )

●  Logical Data model로 표현 

 

 

 

 

근데 이렇게 Ex/Internal schema 두 개로만 하다보니

 

각각의 유저마다 필요로 하는 data가 달라서, Internal level에서도 중복이 생기게 된다.

이런 것도 맞춰 schema를 만들려고 하다보니 조금씩 다른 Internal schema가 계속해서 생겨나서 복잡해지게 되었다.

 

이 문제를 해결하기 위해 만들어진 게 두 단계 사이에 하나의 단계를 추가한 것이다.

 

 

Conceptual Schema (Internal과 external의 중간 단계)

: Internal schema를 한 번 추상화 한 단계.

 

- 전체 DB에 대한 구조를 기술한다.

- Internal에서 하는 저장 구조,방법에 대한 내용은 숨긴다.

- Logical data model을 통해 표현

 

 

 

https://velog.io/@brian_kim/DB-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%B6%94%EC%83%81%ED%99%94-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8

 

 

 

가령 Internal schema(external)가 변하더라도, Conceptual scema 가 바뀔 필요는 없다.

▶ 둘 사이의 mapping만 바꾸면 된다.

 

추상적으로 우리 편의에 따라 표현하는 것이지, 실제로 Data는 Internal level에 존재한다.

 


 

Data Definition Language ( DDL )

: Conceptual Schema를 정의하기 위해 사용되는 언어

 Internal Schema는 주로 Parameter로 정의된다. 

 

 

 


Stroage Definition Language ( SDL )

: Internal Schema를 정의하는 용도로 사용되는 언어

 

- 요즘은, 트깋 관계형 DBMS에서는

SDL을 잘 쓰지 않고 DDL에서 Parameter로 정의한다. 

 

 


View Definition Language ( VDL )

: EXternal Schema를 정의하는 용도로 사용되는 언어

 

- 대부분의 DBMS에서는 DDL이 이거까지 다 함

 


Data Manipulation Language ( DML )

: DB에 있는 data를 활용하기 위한 언어

 

ex) data 추가, 삭제, 수정, 검색 같은 기능을 제공하는 언어

 

 

 

 

 

요새는 DML VDL DDL 따로 존재하는 게 아니라 통합되어있음

대표적으로 Relational database language : SQL

 

 

 

(참고)

유튜브 쉬운코드