본문 바로가기
CS 전공 지식/데이터베이스

1~3강 - 데이터베이스 기본 개념

by Chaedie 2022. 5. 31.
728x90

모든 레퍼런스는 KOCS - 데이터베이스의 원리와 응용 (한양대 백현미 교수님) 입니다.

01. 데이터베이스 기본 개념


1.1. 데이터베이스의 필요성

데이터와 정보

  • 데이터 (data) : 현실 세계에서 단순히 관찰, 측정해 수집한 사실이나 값
  • 정보 (information) : 의사 결정에 유용하게 활용하도록 데이터를 처리한 결과물
  • DIKW (Data - Information - Knowledge - Wisdom)

정보 처리

데이터에서 정보를 추출하는 과정 또는 방법

정보 시스템과 데이터베이스

정보 시스템 : 현실 세계의 데이터를 처리해서 정보를 만들어 주는 시스템

데이터베이스 : 테이터를 저장해두었다가 정보 시스템에 데이터를 제공해주는 역할


1.2. 데이터베이스의 정의와 특성

데이터베이스

특정 조직의 여러 사용자가 “공유”하여 사용할 수 있도록 “통합”해서 “저장”한 “운영” 데이터의 집합.

데이터베이스의 특성


02. 데이터베이스 관리 시스템

학습 목표

  1. 파일 시스템 → DBMS 로 전환한 이유에 대해 알아보자.
  2. DBMS 필수 기능, 장단점, 발전 과정을 ARABOJA.

2.1. 데이터베이스 관리 시스템(DBMS)의 등장 배경

파일 시스템

데이터를 파일로 관리, 응용 프로그램마다 필요한 데이터를 별도의 파일로 관리

파일 시스템의 문제점

  1. 같은 내용의 데이터가 여러 파일에 중복 저장
  2. 응용 프로그램이 데이터 파일에 종속적
  3. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족
  • 데이터 중복, 데이터 무결성에 문제가 있다.

데이터 무결성 : 같은 고객이 여러 응용프로그램에 등록되어있는데, 만약 폰번호를 바꾼다면 모든 프로그램의 파일에서 데이터를 변경해줘야한다. 이게 쉽지 않다. 어찌어찌 진행한다 해도 “에러” 발생 확률이 크다. 따라서 데이터 무결성에 문제가 있다.

  • 데이터 종속성의 문제

프로그램을 변경했는데, 데이터들까지 전부 바꿔줘야 한다.


2.2. 데이터베이스 관리 시스템의 정의 및 특성

각각의 파일로 저장되던 데이터를 데이터베이스라는 한 곳에 저장하고, 이 데이터베이스를 관리하는 시스템이 DBMS이다.

  • DBMS의 주요 기능
  1. 정의 기능 : 데이터베이스 구조를 정의하거나 수정
  2. 조작 기능 : 데이터를 삽입, 삭제, 수정, 검색
  3. 제어 기능 : 데이터를 항상 정확하고 안전하게 유지
  • DBMS 장단점

장점 : 데이터 중복 통제, 독립성 확보, 동시 공유, 보안 향상, 무결성 유지, 표준화 가능, 장애 발생 시 회복 가능, 응용 프로그램 개발 비용 통제

단점 : DBMS 구입 비용, DB 관리 비용, 백업과 회복 방법이 복잡, 중앙 집중 관리로 인한 취약점 존재 (A 시스템 때문에 DB 장애 발생 → B, C 전부 장애)


2.3. DBMS 발전 과정

1세대 : 네트워크 DBMS, 계층 DBMS (60, 70년대 시작)

  • 네트워크 DBMS : 그래프 형태로 구성 (ex) IDS )
  • 계층 DBMS : 트리 형태로 구성(IMS )

2세대 : 관계 DBMS (80년대 초반 ~ 지금까지)

  • 관계 DBMS : 테이블 형태로 구성 (MySQL 등)

3세대 : 객체 지향 DBMS, 객체 관계 DBMS (90년대 후반)

  • 객체 지향 DBMS : 객체 이용
  • 객체 관계 DBMS : 객체 DBMS + 관계 DBMS (O R DBMS)

(수업에는 안 나오지만 요즘 핫한 PostgreSQL이 객체-관계 DBMS 방식이다. )

현재는 2세대 RDBMS가 대다수이다. 수업도 RDBMS 기준으로 진행된다.

현재 3세대도 사용된다.


03. 데이터베이스 시스템

학습 목표

  1. 데이터베이스, 데이터베이스 관리 시스템, 데이터베이스 시스템의 차이를 이해한다.
  2. DB 3단계 구조를 이해한다.
  3. 데이터 언어를 이해한다. (DDL, DML, DCL)

3.1. 데이터베이스 시스템 (DBS)

DBS : 데이터베이스에 데이터를 저장하고, 이를 관리하여 필요한 정보를 생성해주는 시스템

3.2. 데이터베이스의 구조

스키마와 인스턴스

  • 스키마 : 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
  • 인스턴스 : 스키마에 따라 DB에 실제로 저장된 값

3단계 데이터베이스 구조

ANSI/SPARC에서 제안, DB를 쉽게 이해하고 이용할 수 있도록 하나의 DB를 관점에 따라 3단계로 나눈 것

  1. 외부 단계 : 개별 사용자 관점
  2. 개념 단계 : 조직 전체의 관점
  3. 내부 단계 : 물리적인 저장 장치의 관점

각 단계별로 다른 추상화 제공 : 외부 단계로 갈수록 추상화 레벨이 높아짐

외부 단계

사용자 관점에서 이해하고 표현하는 단계

DB하나에 외부 스키마가 여러 개 존재할 수 있음

서브 스키라 (sub schema) 라고도 함

개념 단계

조직 전체의 관점에서 이해하고 표현

DB 전체의 논리적 구조를 정의

DB하나에 개념 스키마가 하나만 존재

내부 단계

저장 장치의 관점에서 이해하고 표현

DB 하나에 내부 스키마가 하나만 존재함

레코드 구조, 필드 크기, 레코드 접근 경로 등 물리적 저장 구조를 정의

3단계 DB 구조의 매핑

스키마 사이의 대응 관계

  • 외부 - 개념 매핑 : 응용 인터페이스
  • 개념 - 내부 매핑 : 저장 인터페이스

미리 저장된 매핑 정보를 이용하여 사용자가 원하는 데이터에 접근

DB를 3단계로 나누고, 단계별로 스키마를 유지하며, 스키마 사이의 대응 관계를 정의하는 목적 : 데이터 독립성의 실현

데이터 독립성

하위 스키마를 변경해도 상위 스키마가 영향을 받지 않는 특성

논리적 데이터 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향 받지 않음

→ 개념 스키마가 변경되면 관련된 외부-개념 매핑만 정확하게 수정해주면 됨

물리적 데이터 독립성 : 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않음

→ 내부 스키마가 변경되면 관련된 개념-내부 매핑만 정확하게 수정해주면 됨

데이터 사전 (시스템 카탈로그)

DB에 대한 메타 데이터를 저장해둔 데이터베이스

DBMS가 스스로 생성하고 유지함

유저도 접근 가능하지만 내용 검색만 가능

데이터 디렉토리

데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보를 저장해둔 데이터베이스

유저 접근 허용되지 않음

사용자 데이터베이스

사용자가 실제로 이용하는 데이터가 저장되어 있는 일반 데이터베이스


3.3. 데이터베이스 사용자

데이터베이스를 이용하기 위해 접근하는 모든 사람

이용 목적에 따라 DBA (DB관리자), 최종 사용자, 응용 프로그래머로 구분

DBA

DBMS를 운영 관리하는 사람

주로 DDL, DCL을 사용

DB 구성 요소 선정, 스키마 정의, 제약조건 정의, 보안 및 접근 권한 정책 결정, 백업 및 회복 기법 정의, 시스템 데이터베이스 관리, 시스템 성능 감시 및 성능 분석, 데이터베이스 재구성

최종 사용자 (end user)

DB에 접근하여 데이터를 조작 하는 사람 (CRUD)

주로 DML을 사용

응용 프로그래머

데이터 언어를 삽입하여 응용 프로그램을 작성하는 사람

주로 DML을 사용

3.4. 데이터 언어

데이터 언어

DDL (데이터 정의어) : 스키마를 정의, 수정, 삭제하기 위해 사용

DML (데이터 조작어) : 데이터 CRUD를 요구하기 위해 사용

DCL (데이터 제어어) : 내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용

DML

데이터 CRUD를 위해 사용

  • 절차적 데이터 조작어 : 어떤 절차를 통해 데이터를 처리할지 명시
  • 비절차적 데이터 조작어 : 어떤 데이터를 원하는지만 설명, 선언적 언어라고도 함 (ex) SQL은 비절차적)

DCL

내부적으로 필요한 규칙이나 기법을 정의하기 위해 사용

  • 목적
    1. 무결성 : 정확하고 유효한 데이터만 유지
    2. 보안 : 허가 받지 않은 사용자의 접근 차단, 허가된 사용자에게 권한 부여
    3. 회복 : 장애 발생해도 데이터 일관성 유지
    4. 동시성 제어 : 동시 공유 지원

3.5. DBMS의 구성

DBMS

주요 구성 요소

  1. 질의 처리기 (Query Processor)

사용자의 데이터 처리 요구를 해석하여 처리

DDL 컴파일러, DML 프리 컴파일러, DML 컴파일러, 런타임 데이터베이스 처리기, 트랜잭션 관리자 등을 포함

  1. 저장 데이터 관리자 (Stored Data Manager)

디스크에 저장된 사용자 데이터베이스와 데이터 사전을 관리하고, 여기에 실제로 접근하는 역할을 담당


 

 

댓글