데이터베이스 - Chapter 01. 데이터베이스 시스템

2coconut·2025년 9월 22일

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

1. 데이터, 정보, 지식

데이터: 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값
정보: 데이터에 의미를 부여한 것
지식: 사물이나 현상에 대한 이해

2. 데이터베이스의 활용

데이터베이스는 일상생활의 거의 모든 곳에서 생성됨

  • 학생 데이터 → 학사 데이터베이스
  • 신용카드 데이터 → 은행 데이터베이스
  • 병원 데이터 → 각각병원 데이터베이스
  • 쇼핑몰 데이터 → 쇼핑몰 데이터베이스
  • 문헌 정보 데이터 → 도서관 데이터베이스

검색·변경 빈도에 따른 데이터베이스 유형

유형검색 빈도변경 빈도특징
유형 1적다적다검색이 많지 않아 데이터베이스를 구축할 필요 없음
유형 2많다적다사용자 수 보통, 검색은 많지만, 데이터에 대한 변경은 적음
유형 3적다많다예약 변경/취소 등 데이터 변경은 많지만, 검색은 적음
유형 4많다많다사용자 수 많음, 검색도 많고, 거래로 인한 변경도 많음

3. 데이터베이스의 개념 및 특징

데이터베이스 개념

여러 사람이 공용으로 사용하기 위해 통합하고 저장한 운영 데이터의 집합

  • 통합된 데이터(integrated data)
  • 저장된 데이터(stored data)
  • 운영 데이터(operational data)
  • 공용 데이터(shared data)

데이터베이스 특징

  1. 실시간 접근성(real time accessibility): 데이터베이스는 실시간으로 서비스된다.
  2. 계속적인 변화(continuous change): 데이터 값은 시간에 따라 항상 바뀐다.
  3. 동시 공유(concurrent sharing): 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다.
  4. 내용에 따른 참조(reference by content): 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조된다.

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

각 조직에서 사용하던 데이터를 통합하고 공유할 때 생기는 장점을 이용하는 시스템

구성: 데이터베이스 관리 시스템(DBMS), 데이터베이스, 데이터 모델

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

1. 정보기술과 데이터베이스 시스템의 발전

마당서점의 성장 과정과 정보통신기술의 발전

단계시기정보통신기술주요 특징
1단계 마당서점1970년대없음사장이 모든 도서의 제목과 가격을 기억함, 매출과 판매가 컴퓨터 없이 관리됨
2단계 초기 전산화1980년대컴퓨터컴퓨터를 이용한 초기 응용 프로그램으로 업무를 처리함, 파일 시스템을 사용함
3단계 데이터베이스 구축1990년대컴퓨터+원격통신지점 간 클라이언트/서버 시스템을 도입하여 업무를 처리함, 데이터베이스 관리 시스템(DBMS)을 도입함
4단계 홈페이지 구축2000년대컴퓨터+인터넷인터넷을 이용하여 도서 검색 및 주문함, 웹 DB 시스템으로 불특정 다수 고객을 유치함
5단계 인터넷 쇼핑몰2010년대 이후컴퓨터+인터넷+스마트폰도서뿐 아니라 음반, 액세서리, 문구, 공연 티켓까지 판매하는 인터넷 쇼핑몰로 확대함

2. 정보 시스템의 발전

데이터 처리 관점에서 살펴본 기업 정보 시스템의 발전 과정

  1. 파일 시스템 → 2. 데이터베이스 시스템 → 3. 웹 데이터베이스 시스템 → 4. 분산 데이터베이스 시스템

정보 시스템의 발전 과정을 기업의 업무 환경과 연계하여 정리

  • 소매상(상세 시스템) (1970년대): 정보 시스템 없음, 수작업으로 회계 업무 수행
  • 소기업(파일 시스템) (1980년대): 파일 시스템 사용, 파일을 이용한 응용 프로그램으로 업무 처리
  • 중견기업(데이터베이스) (1990년대): 정보 시스템, 데이터베이스 시스템 사용, DBMS를 이용하여 업무 처리, 정보 공유, 실시간 서비스, LAN 기술
  • 대기업(인터넷 통신) (2000년대): 정보 시스템, 웹 데이터베이스 시스템, 인터넷 사용, 인터넷 쇼핑몰을 개설하여 온라인 상거래 실시, 실시간 서비스, 웹 브라우저 기술
  • 종합그룹(인터넷 통신) (2010년대 이후): 정보 시스템, 분산 데이터베이스 시스템, 인터넷 사용, 고객 서비스 및 내부 업무를 인터넷으로 처리, 대규모 응용 시스템에 사용

03 파일 시스템과 DBMS

1. 마당서점 데이터를 저장하는 방법

프로그램 1: 데이터를 프로그램 내부에 저장하기

  • C 언어의 구조체 BOOK을 먼저 선언하고 main() 프로그램에서 구조체 배열 변수 BOOKS[]에 데이터를 저장
  • 도서 데이터는 프로그램 내 구조체 변수에 저장됨

문제점: 새로운 데이터가 생길 때마다 프로그램을 수정한 후 다시 컴파일하고, 새로 컴파일된 프로그램을 실행시켜야 함

프로그램 2: 데이터를 파일에 저장하기

  • BOOK 데이터 구조를 먼저 선언하고 main() 프로그램에서 파일로부터 데이터를 불러와 구조체 배열 변수 BOOKS[]에 저장
  • 새로운 도서가 입고되면 '도서등록하기' 화면에서 도서 정보를 입력 받아 파일에 저장

문제점: 저장하는 데이터의 구조가 변경되면 컴파일을 다시 해야 함, 같은 파일을 두 개의 프로그램이 공유함으로써 발생하는 문제가 있음

프로그램 3: 데이터를 DBMS에 저장하기

  • 프로그램에서 데이터를 불러올 때는 EXEC SQL이라는 별도의 명령어를 이용하여 DBMS에 호출함
  • DBMS는 데이터를 정의하고 데이터를 관리하는 사용자 인터페이스를 따로 제공함

2. 마당서점 데이터의 저장 방법 비교

프로그램 1 구조

  • 프로그램에 데이터 정의와 데이터 값을 모두 포함하는 방식
  • 프로그램에 BOOK 데이터 구조를 정의하고 데이터 값도 직접 변수에 저장함
  • 데이터 구조 혹은 데이터 값이 바뀌면 프로그램을 다시 컴파일해야 함

프로그램 2 구조

  • 파일에 데이터 값, 프로그램에 데이터 정의를 포함하는 방식
  • 프로그램에 BOOK 데이터 구조만 정의하고, 데이터 값은 book.dat라는 파일에 저장함
  • 데이터 값이 바뀌면 프로그램에 변경이 없지만, 데이터 구조가 바뀌면 프로그램을 다시 컴파일해야 함

프로그램 3 구조

  • DBMS가 데이터 정의와 데이터 값을 관리하는 방식
  • BOOK 데이터 구조는 DBMS가 관리하고, 데이터 값은 데이터베이스에 저장함
  • 데이터 구조가 바뀌거나 데이터 값이 바뀌어도 프로그램을 다시 컴파일할 필요가 없음

3. 파일 시스템과 DBMS의 비교

파일 시스템과 DBMS 비교표

구분파일 시스템DBMS
데이터 정의응용 프로그램DBMS
데이터 저장파일 시스템데이터베이스
데이터 접근 방법응용 프로그램이 파일에 직접 접근함응용 프로그램이 DBMS에게 파일 접근을 요청함
사용 언어자바, C++, C 등자바, C++, C 등과 SQL
CPU/주기억장치 사용적음많음

DBMS의 장점

장점설명
데이터 중복 최소화DBMS를 이용하여 데이터를 공유하므로 중복 가능성이 낮음
데이터 일관성 유지중복 제거로 데이터의 일관성이 유지됨
데이터 독립성 유지데이터 정의와 프로그램 간의 독립성을 유지할 수 있음
관리 기능 제공데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등을 수행함
프로그램 개발 생산성 향상짧은 시간에 큰 프로그램을 개발할 수 있음
기타데이터 무결성 유지, 데이터 표준 준수가 용이함

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

1. 데이터베이스 언어

SQL(Structured Query Language)의 구성

  • 데이터 정의어(DDL: Data Definition Language): DBMS에 저장된 테이블 구조를 정의하는 데 사용
  • 데이터 조작어(DML: Data Manipulation Language): 데이터를 검색·삽입·삭제·수정하는 데 사용
  • 데이터 제어어(DCL: Data Control Language): 데이터의 사용 권한을 관리하는 데 사용

SQL의 핵심

  • 데이터 조작어 중 데이터를 검색하는 질의문
  • 질의문은 SELECT-FROM-WHERE 구조로 되어 있음

2. 데이터베이스 사용자

  • 일반 사용자: 은행의 창구 혹은 관공서의 민원 접수처 등에서 데이터 관련 업무를 하는 사람, 응용 프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근

  • 응용 프로그래머: 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람

  • SQL 사용자: SQL을 사용해 업무를 처리하는 IT 부서의 담당자, 응용 프로그램으로 구현되지 않은 업무를 SQL을 사용해 처리

  • 데이터베이스 관리자(DBA: Database Administrator): 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람

3. DBMS(Database Management System)

DBMS의 기능

기능설명
데이터 정의데이터 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행함
데이터 조작데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터의 검색, 삽입, 수정, 삭제 작업을 지원함
데이터 추출사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출함
데이터 제어데이터베이스 사용자를 생성하고 모니터링하여 접근을 제어함, 백업과 회복, 동시성 제어 등의 기능을 지원함

4. 데이터 모델

데이터 모델의 개념

  • 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법에 관한 것
  • 데이터베이스에 데이터가 어떻게 구조화되어 저장되는지를 결정함
  • 현재 가장 많이 사용되는 데이터 모델은 관계 데이터 모델
  • 데이터 모델을 구분하는 가장 큰 기준은 데이터 간 관계를 표현하는 방법임

데이터 모델에서 관계 표현 방법

데이터 모델관계의 표현
계층 데이터 모델 (포인터 사용)학생
네트워크 데이터 모델 (포인터 사용)학생
관계 데이터 모델 (속성값 사용)학생
객체 데이터 모델 (객체 식별자 사용)학생

5. 데이터베이스의 개념적 구조

3단계 데이터베이스 구조

3단계 데이터베이스 구조는 외부 단계, 개념 단계, 내부 단계로 나뉨

'스키마(schema)'는 그리스어에서 유래된 단어로 조직이나 구조를 의미

외부 단계

  • 일반 사용자나 응용 프로그래머가 접근하는 계층으로 전체 데이터베이스 중에서 하나의 논리적인 부분을 의미
  • 여러 개의 외부 스키마가 있을 수 있음

개념 단계

  • 전체 데이터베이스의 정의를 의미
  • 통합 조직별로 하나만 존재하며 DBA(데이터베이스 관리자: Database Administrator)가 관리함

내부 단계

  • 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법을 표현한 것
  • 내부 스키마는 하나만 존재
  • 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함됨

데이터 독립성

하위 단계의 내용을 추상화하여 상위 단계에 그 세부 사항을 숨김으로써 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는 것

2가지 데이터 독립성

  • 논리적 데이터 독립성(logical data independence): 외부 단계와 개념 단계 사이의 독립성, 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원함, 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념

  • 물리적 데이터 독립성(physical data independence): 개념 단계와 내부 단계 사이의 독립성, 저장 장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원함

profile
컴공학생

0개의 댓글