데이터베이스 기초 – 1. 데이터베이스 시스템 개요 ( Introduction )

데이터베이스 시스템의 개요에 대하여 알아보겠습니다.

데이터베이스 시스템 개요


Contents of 데이터베이스 시스템

  1. 데이터베이스 ( Database )
  2. DBMS ( Database Management System )
  3. 파일 시스템 ( File System )
  4. 데이터베이스 시스템 ( Database System )

강의 내용을 이렇게 추려 보니 용어들이 무척 헷갈립니다.
그래서 'database : 데이터베이스', 'database system : 데이터베이스 시스템', 'database management system ( DBMS ) ' 등 비슷 하지만 다른 내용 들을 중점적으로 살펴보도록 하겠습니다.


데이터베이스 ( Database )

1. 배경

  1. 정보를 다루는 모든 시스템의 기초했습니다.
    1. 컴퓨터, 스마트 기기, 센서 등에서 발생하는 데이터를 관리/전송/가공 처리합니다.
    2. 적절하고 효율적인 데이터 관리가 중요합니다.
    3. 데이터베이스 시스템은 이러한 모든 것의 핵심입니다.
  2. DB 시스템의 사용 예
    1. 학사 관리 시스템
      학생 정보 DB, 교과목 정보 DB 등
    2. 도서관 관리 시스템
      도서 정보 DB, 학생 정보 DB 등
    3. ETC
      의료보험 관리, 주민등록 업무, 인터넷 쇼핑몰 등등

2. 데이터베이스 정의

  1. 정의 : 서로 연관된 데이터들의 집합
    1. 현실 세계의 일부분을 나타내는 연관된 데이터들의 집합
    2. 조직체의 응용 시스템들이 공통으로 사용하는 운영 데이터들을 구조적으로 통합한 데이터들의 집합
  2. 특징
    1. 특정 목적을 위해 생성
      1. 분명한 사용자 그룹과 응용 분야 존재
      2. 예) 학사 DB
    2. 추상화 과정을 통해 생성
      1. 현실에는 많은 데이터들이 존재한다.
      2. 그 중 목적과 응용분야에 필요한 데이터만 추출
      3. 학사 DB 구조
        학사 DB

        1. 학생 테이블
          1. 학생 데이터 개체에 관한 정보
          2. 행(투플) : 각 학생에 대한 정보
          3. 열(속성) : 학생 정보에 대한 각 데이터 항목
        2. 과목 테이블 : 과목 데이터 개체에 대한 정보 저장
        3. 수강 테이블
          1. 학생과 과목 개체에 대한 관계 정보
          2. 학생과 과목 테이블에 대한 참조가 필수적

DBMS ( Database Management System )

1. DBMS 개요

데이터베이스 관리 시스템 (DataBase Management System) : Database 생성, 관리, 운용 소프트웨어

  1. 기본 기능
    1. 데이터 구조의 정의
    2. 데이터 삽입, 삭제, 수정
    3. 질의 조회
    4. DB 관리 - 사용자 추가, 성능 관리 등
  2. 표준 언어 지원
    1. DDL(data definition lang.) - 정의어
    2. DML(data manipulation lang.) - 조작어
    3. DCL(data control lang.)  - 제어어

2. DBMS 유형

  1. Relation DBMS - 관계형
    1. 관계형 데이터 모델
    2. MS SQL Server, Oracle, DB2, MySQL, MariaDB 등
    3. SQL 사용
  2. 계층형 DBMS
  3. 네트워크형 DBMS
  4. 객체 지향 DBMS
    1. Object Oriented  개념을 지원: O2, Object Store, Ontos 등
    2. 객체-관계형 DBMS : 상용 관계형 DBMS에서 일부 Object oriented 개념 지원
  5. BigData
  6. NoSQL

참고 : https://www.analyticsvidhya.com/blog/2014/11/types-databases-evolution/


파일 시스템 ( File System )

1. Data 관리 방법

  1. 파일 시스템 사용 : 전통적인 관리방법
    1. 운영체제의 파일 시스템을 통해 데이터 저장 및 조회
    2. 파일을 생성 및 관리할 응용 프로그램이 필요
    3. C 프로그램의 예
      #include<stdio.h>
      #include<string.h>
                                       
      struct stud_type { int id; char name[15]; char major[12];}  student;
      
      int main() {
         FILE * fp = fopen("studentFile.dat", "wb");
      
         student.id = 2017; 
         strcpy(student.name, "홍길동"); strcpy(student.major, "소프트웨어");
      
         fwrite(&student, sizeof(struct stud_type), 1, fp);    /* 파일IO */
         fclose(fp);
      };
  2. 데이터베이스 시스템 사용
    1. by DBMS
    2. 편리하다

2. 파일 시스템 방식의 특징 및 문제점

  1. 특징
    파일 시스템 구조

    1. 데이터 구조가 특정 응용 프로그램 안에 정의
    2. 데이터 파일을 각 응용 프로그램에서 관리
  2. 문제점
    1. 메타데이터가 특정 응용프로그램에 종속
      1. 다른 사용자들의 데이터 접근이 어려움
    2. 데이터의 중복 발생 가능
      1. 저장 공간이 낭비
      2. 일관성 훼손 우려

그래서 이러한 파일 시스템이 아닌 데이터베이스 시스템으로 데이터를 관리합니다.


데이터베이스 시스템 ( Database System )

데이터베이스를 포함하여 운영, 관리, 활용에 필요한 소프트웨어 시스템을 의미한다.
Database + DBMS [+ 응용 프로그램 + 사용자 ]

1. 기본 구조

DBMS 구조

2. 특성

  1. 사용자는 응용 프로그램 또는 SQL 로 표현된 직접적인 질의로 데이터베이스를 사용한다 by DBMS
  2. 데이터베이스의 관리 by DBMS
  3. 메타 데이터 <=> 데이터 ( 서로 분리 )

3. 핵심 구성 요소

  1. 데이터
    1. 행의 집합
    2. 실제 테이블 ( ex : 학생테이블, 과목테이블 ) 의 행이 저장됨.
  2. 메타데이타 (Meta data = data about data )
    1. 데이터 구조 정의
      예) 학생 테이블의 데이터 항목의 이름, 타입 등
    2. 논리적/물리적 구조 , 접근 경로 명시
    3. 시스템 카탈로그(데이터 사전(dictionary)), 시스템 테이블들에 저장
    4. SQL 표준 : 'Information Schema'라고 정의
      1. 메타 데이터 저장장소.
      2. Information_Schema/Tables 참고
        Use information_schema;
        Show tables;
        select * from tables;
        select * from columns;
    5. 메타 데이터도 데이터처럼 저장된다.

4. Database System 사용자

  1. 역할 분류
    1. 최종 사용자 (end user)대부분의 사용자
      1. SQL 또는 응용 프로그램을 통해 접근
      2. 학사 시스템 : 학생 + 교직원
      3. 은행 시스템 : 은행창구의 직원
    2. 데이터베이스 설계자(DB designer)
      1. 면담, 관련 문서의 수집 및 분석을 통해 사용자의 요구 사항을 추출하고 분석하여 DB 설계
    3. 응용 프로그램 개발자 : 설계된 DB를 기초로 기능적 요구 사항을 구현
      1. 웹 어플리케이션을 통해 수강 신청 프로그램 구현
    4. 데이터베이스 관리자(DBA) : 데이터베이스 시스템 운영 관리
      1. 시스템 모니터링, 시스템 성능 유지 및 개선, 보안 등의 업무 처리

5. Database System 의 특징 및 기능

  1. 자기 기술성
    1. 데이터의 논리적/물리적 구조에 대한 정보를 DBMS 에서 직접 관리
    2. 사용자는 DBMS 를 통해 데이터의 구조 조회
  2. 프로그램과 데이터의 독립
    1. 데이터의 응용 프로그램 내부 정의 X
    2. 응용 프로그램은 카탈로그에 저장된 데이터의 논리적 구조를 사용 => 데이터 접근
  3. 데이터의 추상화
    1. 응용 프로그램에서 데이터의 물리적인 상세 내용 고려X
  4. 다중 뷰(view)의 제공
    1. 뷰는 응용 프로그램을 통해 보는 데이터의 구조
    2. 사용자 그룹 마다 서로 다른 뷰가 존재할 수 있다
      예) 성적 프로그램의 뷰

      Id Name CourseName Grade
      7612 홍길동 데이터베이스 C
      통계학 A
      1231 임꺽정 데이터베이스 B
  5. 다수 사용자 동시 접근 : 동시성 제어를 통해 데이터의 일관성 유지
    예) 비행기 좌석 예약 시스템, 수강 신청 등
  6. 데이터의 안정적 관리 : 시스템 장애 발생 => 백업, 복구 => 데이터의 손실 예방
    예) 시스템 장애 발생 시 은행 입 출금 등
  7. 표준 언어 사용
  8. 설계 도구, Client-Sever, Web, 분산 시스템 등 다양한 환경 및 기능 지원