1장. 데이터베이스 소개
학습 목표
- 데이터베이스와 DBMS의 개념을 이해한다
- 데이터베이스 시스템의 장점과 특징을 파악한다
- 3단계 데이터 추상화를 이해한다
- 데이터 모델의 종류와 특징을 학습한다
- 데이터베이스 시스템의 구조와 역사를 알아본다
1.1 구성 요소
데이터베이스(DB, Database)
- 정의: 서로 관련 있는 데이터의 모임
- 특징:- 컴퓨터에 데이터 관리에 필요한 기능을 제공 (MySQL이 DBMS)
- 대표적으로는 데이터베이스 정의하고 생성하고 변경하고 삭제하고 접근하고 조작하는 기능적인 언어기능을 제공
DBMS(데이터베이스 관리 시스템)
- 정의: 사용자에게 데이터 관리에 필요한 기능을 제공
- 주요 기능:- 데이터 추상화 제공
- 독립적인 데이터 구조를 사용자가 간단하게 사용할 수 있게 하는 개념
- 데이터 독립성을 통해 사용자에게 데이터베이스 관리에 도움을 주는 다양한 기능을 제공
DBS(데이터베이스 시스템)
- 정의: 데이터베이스와 데이터베이스 관리 시스템을 함께 통칭하는 용어(DB + DBMS)
1.2 데이터 추상화 및 데이터 모델
인스턴스 및 스키마
인스턴스(Instance)
- 정의: 특정 시점에서 데이터베이스에 저장된 정보의 집합
- 특징: 자주 변경되는 데이터의 실제 값들
스키마(Schema)
- 정의: 데이터베이스의 논리적 구조
- 특징:- 데이터베이스 구조와 제약 조건에 관련한 전반적인 명세를 기술한 메타데이터
- 거의 변경되지 않는 데이터베이스의 설계도
추상화 3단계
1. 물리적 레벨(Physical Level)
- 설명: 데이터가 실제로 저장되는 방법을 기술
- 특징: 복잡한 저장 구조 설명, 파일 조직과 액세스 경로
2. 논리적 레벨(Logical Level)
- 설명: 데이터베이스에 저장되는 데이터와 그들 간의 관계를 기술
- 특징: 물리적 저장 구조를 숨기고 개념적 구조만 표현
3️. 뷰 레벨(View Level)
- 설명: 사용자에게 오직 관심 있는 데이터베이스 부분만 기술
- 특징: 보안과 편의성 제공, 사용자별 맞춤 인터페이스
3단계 스키마 구조
1.3 데이터베이스 특징
관계형 데이터 모델의 기본 특성
- 객체 지향 개념과 기존 데이터베이스의 특성을 포함하여 관계형 데이터 모델을 확장한다.
- 튜플의 속성이 독립 단위로서 기능할 수 있도록 허용하며, 중첩된 관계 및 비원자(non-atomic) 값들을 포함할 수 있다.
- 데이터에 대한 선언적 접근(declarative access)을 포함한 관계형의 기본 원리를 유지하면서, 모델링 능력을 확장한다.
- 기존 관계형 언어와의 상위 호환성을 제공한다.
데이터베이스 설계
- 목적: 개념적 설계 → 논리적 설계 → 물리적 설계
- 단계별 설계:- 논리적 설계 및 물리적 설계로 구분
- 데이터베이스 시스템 목적에 따라 설계 방향 결정
- 스키마 설계를 통해 데이터베이스 구조를 정의
1.4 데이터베이스 언어
Entity-Relationship (ER) 다이어그램 예제
DBMS 구성 요소
- Storage Manager: 디스크로부터 데이터를 읽어 주 메모리로 가져오는 역할
- Query Processor: 사용자가 작성한 SQL문을 DB가 이해할 수 있는 저수준 구조로 변환하는 역할
DBS 단순 구조도
1.5 데이터베이스 설계
데이터베이스 설계는 데이터베이스 구조를 설계하는 작업
- 사용자 요구사항을 분석하여 충족하는 좋은 스키마를 생성하는 것
- 논리적 설계 및 물리적 설계로 구분
- 데이터베이스 시스템 목적에 따라 설계 방향 결정
- 스키마 설계를 통해 데이터베이스 구조를 정의
1.6 데이터베이스 시스템의 역사
발전 과정
- 50/60년대: 최초 파일 시스템을 이용하여 데이터 저장 및 처리
- 70년대: 네트워크 모델과 계층 모델의 등장(예: legacy systems)
- 1970년 E.Codd: 관계형 데이터 모델을 제안
- 80년대: 초기 관계형 모델을 지원하는 상용 데이터베이스 시스템이 처음 출시
- 80년대 중반: 실시간 데이터베이스 시스템에 대한 개념 정립
- 90년대: 실시간 데이터 웨어하우스 및 데이터 마이닝 연구 개발이 이루어짐, 객체 관계형 데이터 모델 정립
- 2000년대: XML 기술이 중요해짐
- 2010년대: 빅 데이터 시대로 데이터 대용량 처리 시스템 또는 데이터 분산 처리 시스템 개발이 활발해짐
- NOSQL: 전통적인 DBMS보다는 다른 형태의 데이터 관리를 요구하는 응용 분야에서 사용
📝 Note
이 글은 이상호 교수님의 데이터베이스 I 이론 및 실제 교재를 토대로 공부한 내용을 정리한 것입니다.