Courses/데이터베이스

데이터베이스 개론과 실습 (MySQL로 배우는) | Chapter 01: 데이터베이스 시스템

noweahct 2025. 1. 16. 10:53

Jul, 2023

 

01. 데이터베이스와 데이터베이스 시스템

기본 개념

  • 데이터: 관찰의 결과로 나타난 정량적 혹은 정성적인 실제값
  • 정보: 데이터에 의미를 부여한 것
  • 지식: 사물이나 현상에 대한 이해
  • 데이터베이스: 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것
  • 데이터베이스 시스템: 데이터의 검색과 변경 작업을 주로 수행함. 검색과 변경의 빈도에 따라 시스템 구축의 난이도가 결정됨

*** 변경: 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업

*** 데이터베이스는 저장된 데이터의 양이 많고, 실시간 검색이 많은 분야일 수록 활용도가 높다!

데이터베이스의 개념

  • 데이터베이스는 각 조직에서 사용하던 데이터를 모아서 통합하고 공유할 목적으로 구축됨
  1. 통합된 데이터(integrated data)각자 사용하던 데이터의 중복을 최소화해 데이터 불일치 현상을 없애는 것이 중요함
  2. 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터
  3. 저장된 데이터(sorted data)사람의 눈으로는 직접 볼 수 없지만, 컴퓨터 프로그램을 이용해 디스플레이하거나 인쇄물로 출력할 수 있음
  4. 컴퓨터 저장장치에 저장된 데이터
  5. 운영 데이터(operational data)조직의 목적과 관계 없이 저장된 데이터, 단순 입출력 데이터처럼 임시로 저장된 데이터는 운영 데이터가 아님
  6. 조직의 목적을 위해 사용되는 데이터
  7. 공용 데이터(shared data)어느 순간이라도 둘 이상의 프로그램이나 여러 사람이 동시에 사용할 수 있음
  8. 공동으로 사용되는 데이터

데이터베이스의 특징

  1. 실시간 접근성(real time accessibility)
  2. 실시간(사용자가 요청하는 순간에 실제 데이터를 서비스하는 것)으로 서비스됨
  3. 계속적인 변화(continuous change)
  4. 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀜
  5. 동시 공유(concurrent sharing)데이터베이스에 접근하는 사용자 데이터 요청 프로그램이 동시에 여러 개 있다는 의미(→동시 병행)
  6. 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유됨
  7. 내용에 따른 참조(reference by content)데이터를 얻기 위해 데이터 값을 사용해 조건을 제시 → 데이터베이스는 이에 해당하는 데이터를 검색
  8. 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조됨

데이터베이스 시스템의 구성

  • 데이터베이스 시스템: 각 조직에서 사용하던 데이터를 모아서 통합하고 서로 공유하여 생기는 장점을 이용하는 시스템
  • 구성 요소 3가지: DBMS(데이터베이스 관리 시스템), 데이터베이스, 데이터 모델
    1. DBMS: 사용자와 데이터베이스를 연결시켜주는 소프트웨어(주기억 장치에 상주함)
    2. 데이터베이스: 데이터를 모아둔 토대(컴퓨터 내부의 하드디스크에 저장됨)
    3. 데이터 모델: 데이터가 저장되는 기법에 관한 내용, 논리적인 개념, 데이터가 저장되는 스타일

02. 데이터베이스 시스템의 발전

정보 시스템의 발전

  1. 파일 시스템
    • 데이터를 파일 단위로 파일 서버에 저장
    • 각각의 컴퓨터는 LAN을 통해 파일 서버에 연결되어 있음
    • *** LANLocal Area Network): 비교적 가까운 거리에 위치한 소수의 장치들을 서로 연결한 네트워크
    • 파일 서버에 저장된 데이터를 사용하기 위해 각 컴퓨터의 응용 프로그램에서 열기/닫기를 요청함
    → (각 응용 프로그램이 독립적으로 파일을 다루기 때문에) 데이터가 중복 저장될 가능성이 있음
  2. → (동시에 파일을 다루기 때문에) 데이터의 일관성이 훼손될 수 있음
  3. 데이터베이스 시스템
    • DBMS를 도입하여 데이터를 통합 관리하는 시스템
    • 클라이언트-서버 시스템임: 서버(DBMS가 설치되어 데이터를 가진 쪽), 클라이언트(외부에서 데이터를 요청하는 쪽)
    • DBMS 서버가 파일을 다루고 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
    → (데이터를 저장하기 전 설계 과정을 거치기 때문에) 데이터의 중복을 줄임
  4. → (데이터를 표준화해서) 무결성을 유지함
  5. 웹 데이터베이스 시스템
    • 데이터베이스를 웹 브라우저에서 사용할 수 있도록 서비스하는 시스템
    • 과정
      1. 클라이언트가 웹 브라우저 프로그램으로 웹 서버에 접속함
      2. 클라이언트가 데이터를 요청함
      3. 웹 서버가 DBMS 서버에 요청을 전달함
      4. 요청된 데이터를 사용자에게 전달함
    • 불특정 다수 고객을 상대로 하는 온라인 상거래, 공공 민원 서비스 등에 사용됨
  6. 분산 데이터베이스 시스템
    • 여러 곳에 분산된 DBMS 서버를 연결하여 운영하는 시스템
    • 대규모 응용 시스템에 사용됨

03. 파일 시스템과 DBMS

데이터를 저장하는 방법

  1. 데이터를 프로그램 내부에 저장하는 방법: 데이터를 프로그램의 변수에 치환하여 저장
    • 새로운 데이터가 생길 때마다 프로그램을 수정하고 다시 컴파일 해야 함
    • 프로그램을 컴파일해서 새로운 프로그램을 가동시키는 순간 검색 서비스를 중단해야 함
  2. 파일 시스템을 이용하는 방법: 데이터를 프로그램을 분리하여 별도의 파일에 저장
    • 컴퓨터가 꺼진 상태에도 데이터 값을 유지함
    • 새로운 데이터가 생길 때마다 프로그램을 수정할 필요가 없음
    • 데이터 구조가 바뀌는 불편함이 존재함(구조가 바뀌면 컴파일이 필요함)
    • 같은 파일을 두 개의 프로그램이 공유하는 문제가 발생함(운영체제의 도움이 필요함)
  3. DBMS를 사용하는 방법: 데이터 정의와 데이터 값을 DBMS가 관리
    • DBMS는 데이터 정의, 데이터 변경 등의 작업을 하는 별도의 프로그램(사용자 인터페이스)을 갖고 있음
    파일 시스템과 DBMS의 비교구분 파일 시스템 DBMS
    구분 파일 시스템 DBMS
    데이터 정의 응용 프로그램 DBMS
    데이터 저장 파일 시스템 데이터베이스
    데이터 접근 방법 응용 프로그램이 파일에 직접 접근 응용 프로그램이 DBMS에 파일 접근을 요청
    사용 언어 자바, C++, C 자바, C++, C, SQL
    CPU/주기억 장치의 사용 적음 많음
    데이터 중복 높음 낮음
    데이터 일관성 결여 유지
    데이터 독립성 데이터 정의와 프로그램의 독립성 유지 불가능 데이터 정의와 프로그램의 독립성 유지 가능
    관리 기능 보통 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등을 수행
    프로그램 개발 생산성 나쁨 짧은 시간에 큰 프로그램 개발 가능
    기타 장점 별도의 소프트웨어 설치가 필요 없음 데이터 무결성 유지, 데이터 표준 준수 용이
  4. *** 데이터는 데이터 정의와 데이터 값으로 구성된다!

04. 데이터베이스 시스템의 구성

데이터베이스 시스템: 데이터베이스 + DBMS + 데이터 모델 + (데이터베이스 언어, 데이터베이스 사용자)

데이터베이스 언어

  • 데이터베이스 전용 언어인 SQL을 사용
  • SQL의 구성 요소: 데이터 정의어 + 데이터 조작어 + 데이터 제어어
    1. 데이터 정의어: DBMS에 저장된 테이블 구조를 정의
    2. 데이터 조작어: 데이터를 검색, 삽입, 삭제, 수정하는 데 사용
    3. 데이터 제어어: 데이터의 사용 권한을 관리

데이터베이스 사용자

  1. 일반 사용자
    • 프로그래머가 개발한 프로그램을 이용해 데이터베이스에 접근
    • 데이터의 검색, 삽입, 삭제, 수정 작업을 함
  2. 응용 프로그래머(데이터베이스 프로그래머)
    • 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람으로
    • 프로그래밍 언어와 SQL을 사용
    • 일반 사용자를 위한 사용자 인터페이스와 데이터를 관리하는 응용 로직을 개발함
  3. SQL 사용자
    • 응용 프로그램으로 구현되지 않은 업무를 SQL을 사용해 처리함
    • 데이터 검색, 구조 변경, 통계 처리 등의 데이터 모니터링 업무와 보고서를 만들어 제출하는 업무를 함
  4. 데이터베이스 관리자(DBA)
    • 데이터베이스 시스템을 총괄하는 사람
    • 데이터 설계, 구현, 유지보수의 전 과정을 담당함
    • 데이터베이스 사용자 통제, 보안, 성능 모니터링, 데이터 전체 파악 및 관리, 데이터 이동 및 복사 등의 제반 업무를 함

DBMS

  • 사용자와 데이터베이스를 연결시켜주는 소프트웨어
  • 사용자가 데이터베이스를 생성, 공유, 관리할 수 있도록 지원해주는 총체적인 역할을 함
  • DML/DDL 컴파일러(SQL을 번역함)와 Embedded DML 컴파일러(응용 프로그램에 삽입된 SQL을 번역함)로 구성됨 + 알고리즘 질의처리기(번역된 SQL을 처리함) 이외에도 트랜잭션 관리자(트랜잭션을 관리함), 파일 관리자, 버퍼 관리자 등이 있음
  • *** 트랜잭션: 데이터베이스를 처리하는 프로그램의 단위
  • 하드디스크에 저장된 데이터베이스는 데이터 파일을 포함하여 데이터에 빠르게 접근하기 위한 인덱스, 데이터에 대한 정보를 저장하는 데이터 사전 등을 저장하고 있음

데이터 모델

  • 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법
  • 데이터베이스에 데이터가 어떻게 저장되는지를 결정함
  • 종류: 계층 데이터 모델, 네트워크 데이터 모델, 객체 데이터 모델, 객체-관계 데이터 모델, 관계 데이터 모델
  • 1970s에 등장한 SQL 기반의 관계 데이터 모델이 가장 많이 사용됨
  • 관계 데이터 모델을 기본 개념으로 객체 데이터 모델의 장점을 일부 수용한 객체-관계 데이터 모델로 발전하는 중임!

데이터 모델의 종류 별 특징

  1. 계층 데이터 모델, 네트워크 데이터 모델
    • 포인터 사용
    • 프로그램 속도가 빠름
    • 응용 프로그램 개발 속도는 느림
  2. 관계 데이터 모델
    • 속성값 사용(값을 이용해 관계를 찾아감)
    • 프로그램 속도가 느림
    • 개념이 쉽고 프로그램 개발이 빠름
  3. 객체 데이터 모델
    • 객체 식별자 사용(ex: 강좌를 객체 개념으로 보고 강좌 객체의 고유 식별자인 오브젝트 아이디를 학생 테이블에 저장)
    • 객체지향 언어의 상속, 캡슐화 등의 개념을 도입함

데이터베이스의 개념적 구조: 3단계 데이터베이스 구조

3단계 데이터베이스 구조: 외부 단계 + 개념 단계 + 내부 단계

*** 스키마: 조직이나 구조를 의미

  1. 외부 단계
    • 일반 사용자나 응용 프로그래머가 접근하는 계층
    • 전체 데이터베이스 중에서 하나의 논리적인 부분을 의미함
    • 여러 개의 외부 스키마(=서브 스키마)가 있을 수 있음
  2. 개념 단계
    • 전체 데이터베이스의 정의
    • 통합 조직별로 하나만 존재함(= 하나의 데이터베이스에는 하나의 개념 스키마가 존재함)
    • DBA가 관리함
    • 저장장치에 개념 스키마를 독립적으로 기술
    • 데이터와 관계, 제약사항, 무결성에 대한 내용을 포함
  3. 내부 단계
    • 물리적 저장장치에 데이터베이스가 실제로 저장되는 방법을 표현함
    • 내부 스키마는 하나임
    • 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함됨

매핑(mapping, 사상)

DBMS는 매핑을 통해 각 단계 간 대응 관계를 정의함

개념 스키마의 어느 부분이 외부 스키마가 되는지 또는 개념 스키마가 어떤 물리적인 표현을 통해 내부 스키마가 되는지에 따라 두 가지로 나뉜다.

  1. 외부/개념 매핑: 사용자의 외부 스키마와 개념 스키마 간의 매핑, 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킴
  2. 개념/내부 매핑: 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응시킴

데이터 독립성

  • 3단계 데이터베이스 구조의 특징
  • 하위 단계의 내용을 추상화하여 상위 단계에 그 세부사항을 숨김으로써, 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는 것
  • 일반 사용자는 사용자별로 외부 스키마가 있고, DBA는 일반 사용자의 외부 스키마에 영향을 주지 않고 개념 스키마나 내부 스키마의 물리적인 저장 방법을 바꿀 수 있음!
  • 데이터 독립성의 종류
    1. 논리적 데이터 독립성: 외부 단계와 개념 단계의 독립성
      • 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원함
      • 논리적 구조가 변경되어도 응용 프로그램에는 영향을 미치지 않도록 하는 개념
    2. 물리적 데이터 독립성: 개념 단계와 내부 단계의 독립성
      • 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원함
    → 물리적 독립성은 논리적 독립성보다 구현하기 쉬움