본문 바로가기

Computer Science/Database

데이터베이스 기초 1. 데이터베이스 관련 용어와 개념

728x90

*데이터베이스 기초 시리즈는 유튜버 '쉬운 코드'님의 데이터베이스 강의 및 책 '오라클로 배우는 데이터베이스 개론과 실습'을 공부하며 정리함.

https://www.youtube.com/watch?v=aL0XXc1yGPs&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&ab_channel=%EC%89%AC%EC%9A%B4%EC%BD%94%EB%93%9C

 

 

  • 데이터베이스 : 관련있는 데이터들을 조직화된 집합으로 정리
  • Metadata
    • database를 정의하거나 기술하는 data
    • catalog라고도 부름
    • ex) 데이터 유형, 구조, 제약조건, 보안, 저장, 인덱스, 사용자 등의 데이터
  • Database System = Database + DBMS + 연관된 application
    • 줄여서 데이터베이스라고도 부름
    • 문맥에 따라 데이터베이스는 시스템(DB서버)를 뜻하기도 하고 데이터의 집합인 데이터베이스를 뜻하기도 함 
  • Data model : DB의 구조를 기술하는데 사용될 수 있는 개념들이 모인 집합
    • DB 구조를 추상화해서 표현할 수 있는 수단 제공
    • DB에서 읽고 쓰기 위한 기본적인 동작들(operations)도 포함한다.
    • DB구조 : 데이터 유형, 데이터 관계(relationship), 제약 사항(constraints) 등

데이터 모델링

  • Conceptual data model (개념적 모델)
    • 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이뤄진 모델
    • 추상화 수준이 가장 높음
    • 비즈니스 요구 사항을 추상화하여 기술할 때 사용
    • Entity-Relationship model(ER 모델) 이 대표적
  • Logical data model (논리적 모델)
    • 이해하기 어렵지 않으면서 디테일하게 DB를 구조화 할 수 있는 개념들 제공
    • 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화를 가능하게 함
    • 특정 DBMS나 storage에 종속되지 않는 수준에서 DB를 구조화할 수 있는 모델
    • Relational data model(가장 많이 사용), object data model, object-relational data model 등
  • Physical data models (물리적 모델)
    • 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단 제공
    • data format, data orderings, access path 등
    • access path : 데이터 검색을 빠르게 하기 위한 구조체 (ex) Index)

Database Schema

  • data model을 바탕으로 database의 구조를 기술한 것
  • schema는 database를 설계할 때 정해지며 한 번 정해진 후에는 자주 바뀌지 않는다.
  • database state
    • database에 있는 실제 데이터는 꽤 자주 바뀔 수 있다.
    • 특정 시점에 database에 있는 데이터를 database state 혹은 snapshot이라고 한다
    • 혹은 database에 있는 현재 instances의 집합이라고도 한다.
  • 3-schema architecture
    • database system을 구축하는 Architecture
    • user application(사용자와 DBMS 사이의 인터페이스 시스템)으로부터 물리적인 database를 분리시키는 목적
    • 세 가지 level이 존재하며 각각의 level마다 schema가 정의되어 있다.
    • 어느 한 레벨의 변화가 상위 레벨에 영향을 주지 않기 위함. 즉, Physical Schema가 변한다고 데이터의 논리적 구조가 크게 변하지 않게 하기 위함(Oracle 에서 MySQL로 DBMS를 변경한다든지, 저장장치(디스크)를 변경한다든지)
    • 실무에선 external과 conceptual schema 사이에 영향을 주지 않도록 정의하는 것이 복잡하고 애매해서 그런지 이 3레벨 구조를 엄격하게 따르지는 않는다.

  1. Internal schema (Physical Schema) 
    1. 물리적으로 데이터가 어떻게 저장되는지 표현
    2. physical data model을 통해 표현
    3. data storage, data structure, access path 등등 실체가 있는 내용 기술
  2. External schema
    1. external views, user views라고도 불림
    2. 특정 유저들이 필요로 하는 데이터만 표현
    3. 그 외 알려줄 필요가 없는 데이터는 숨김
    4. logical data model을 통해 표현
  3. Conceptual schema
    1. 전체 database에 대한 구조를 기술
    2. 물리적인 저장 구조에 관한 내용은 숨김
    3. entities, data types, relationships, user operations, constraints에 집중
    4. logical data model을 통해 기술
  • Data Definition Language(DDL)
    • conceptual schema를 정의하기 위해 사용되는 언어
    • internal schema까지 정의할 수 있는 경우도 있음
  • Storage Definition Language(SDL)
    • internal schema를 정의하는 용도로 사용되는 언어
    • 요즘은 DBMS에 SDL이 거의 없고 파라미터 등의 설정으로 대체
  • View Definition Language(VDL)
    • external schema를 정의하기 위해 사용되는 언어
    • external schema와 conceptual schema를 제대로 나누지 않기 때문에 대부분의 DBMS에서 DDL이 VDL 역할까지 수행
  • 오늘날 DDL, SDL, VDL이 따로 존재하지는 않고 통합된 언어로 존재한다. ex) SQL

 

데이터베이스 시스템 구성

- 사용자는 인터페이스(웹어플리케이션이라면 웹브라우저를 이용해 들어간 웹페이지)를 통해 DBMS에 요청을 보낸다.

- 요청을 받은 DBMS는 요청을 분석하여 적절한 데이터를 디스크에서 꺼내와 인터페이스 시스템(웹어플리케이션 등)으로 데이터를 담은 응답을 보낸다.

- 위 그림에서는 DBMS는 데이터베이스를 관리하는 시스템, 데이터베이스는 실제 저장된 데이터를 의미한다.

 

728x90