데이터 과학

데이터베이스의 이해

대규모의 데이터를
여러 사람이 함께 쓰려면
체계적인 시스템이 필요합니다.

학습 목표

  1. 데이터베이스가 왜 필요한지를 데이터의 종속성과 중복성으로 설명할 수 있다.
  2. 데이터베이스의 다섯 가지 특징을 들고, 각 특징이 어떤 상황에서 필요한지 예를 들 수 있다.
  3. 데이터베이스, 데이터베이스 관리 시스템, 데이터베이스 시스템의 관계를 구분하여 설명할 수 있다.

데이터베이스는 왜 필요할까?

파일로 저장해 두면 되지, 왜 따로 시스템이 필요할까?

대규모의 데이터를 여러 사람이 공유하기 위해서는 데이터베이스와 같은 체계적인 시스템이 필요합니다. 그 이유부터 살펴봅니다.

영화관이 영화 데이터셋과 상영 시간표 데이터셋을 그냥 파일 두 개로 컴퓨터에 저장해 두었다고 해 봅시다. 혼자 잠깐 쓸 때는 아무 문제가 없습니다. 그런데 예매 프로그램, 매점 프로그램, 직원 수십 명이 저마다 이 파일을 복사해 읽고 고치기 시작하면 두 가지 문제가 생깁니다.

데이터의 종속성 dependency

응용 프로그램과 데이터 간의 상호 의존 관계가 있어, 데이터 저장 방식이나 접근 방식의 변경으로 응용 프로그램도 변경해야 하는 문제입니다.

예를 들어 파일에 열 하나를 추가했을 뿐인데 그 파일을 읽던 프로그램이 고장 날 수 있습니다. 데이터를 건드릴 때마다 프로그램까지 수정해야 하니 아무것도 바꿀 수 없게 됩니다.

데이터의 중복성 redundancy

동일한 데이터가 중복으로 저장되어 있어 수정을 위해 모든 파일을 갱신해야 하는 문제입니다.

예를 들어 같은 영화 제목이 파일 다섯 군데에 적혀 있으면, 제목이 바뀌었을 때 다섯 군데를 모두 고쳐야 합니다. 한 군데라도 빠뜨리면 어느 것이 맞는 값인지 알 수 없게 됩니다.

두 문제의 뿌리는 같습니다. 데이터가 여기저기 흩어진 채로 프로그램마다 제멋대로 읽고 쓰기 때문입니다. 그래서 데이터를 한곳에 모아 체계적으로 관리하는 방법이 나왔습니다. 그것이 데이터베이스입니다.

스스로 확인

우리 반 명단을 반장 · 부반장 · 담임 선생님이 각자 따로 스프레드시트 파일로 가지고 있다면 어떤 문제가 생길까요? 중복성이라는 말을 써서 설명해 보세요.

데이터베이스란 무엇일까?

데이터셋을 여러 개 모아 두면 그게 데이터베이스일까?

데이터셋을 여러 개 모아 두는 것만으로는 부족합니다.

데이터베이스(database)는 서로 관련 있는 데이터를 규칙에 맞게 정리해 모아 둔 것입니다. 그냥 쌓아 두는 것과 달리 관리하기 좋도록 체계를 갖춘다는 점이 다릅니다.

용어 풀이

데이터베이스 database

data + base입니다. 영어 base는 「기지 · 근거지」를 뜻합니다. 야구의 1루(first base), 군대의 기지(base)가 같은 말입니다. 즉 데이터베이스는 데이터가 모여 있는 본거지입니다.

데이터베이스를 활용하면 데이터의 종속성, 중복성을 최소화하여 데이터를 빠르게 처리하고 정확도를 향상시킬 수 있습니다. 즉 앞에서 본 두 문제가 줄어듭니다.

영화관 데이터베이스 안에 들어 있는 데이터셋들

영화 데이터셋

제목 감독 관객 수(만 명) 평점
우리집 감독 A 324 8.8
민들레 감독 B 186 8.7
영혼들 감독 C 405 9.1
아홉 번째 별 감독 D 227 9.3

상영 시간표 데이터셋

상영관 제목 시작 시간 잔여 좌석
1관 우리집 19:00 47
2관 민들레 17:30 26
3관 영혼들 18:00 35
1관 아홉 번째 별 17:30 29

모든 영화에 상영관이 배정된 뒤의 시간표입니다.

영화를 예매하는 순간 무슨 일이 일어날까?

영화를 예매할 경우, 영화 데이터셋과 상영 시간표 데이터셋을 조회하여 상영관 및 잔여 좌석에 대한 데이터를 확인할 수 있습니다. 이때 사용자가 좌석을 선택하면 데이터베이스는 그 정보를 실시간으로 갱신해 예매 상태를 변경해야 합니다.

내가 좌석 하나를 고르는 그 짧은 순간에 잔여 좌석 47석이 46석으로 바뀌고, 같은 순간 다른 사람 화면에서도 46석으로 보여야 합니다. 이런 작업이 원활하게 이루어지기 위해 데이터베이스는 다음 특징들을 가집니다.

스스로 확인

학교 도서관 컴퓨터에 「책 목록」 표와 「대출 기록」 표가 있습니다. 각각은 데이터셋일까요, 데이터베이스일까요? 두 표를 데이터베이스라고 부르려면 무엇을 더 갖추어야 할까요?

데이터베이스는 어떤 특징을 가질까?

이 특징들이 없으면 무슨 일이 생길까?

외우려 하지 말고, 예매 화면에서 각각이 없으면 어떻게 되는지를 떠올리며 읽어 보세요.

실시간 접근성

사용자의 요구에 따라 실시간으로 정보를 검색하거나 갱신해야 한다.

이 특징이 없으면 좌석을 골랐는데 한참 뒤에야 화면이 바뀝니다.

계속적 변화

데이터의 삽입, 갱신, 삭제 등을 통해 최신의 데이터를 유지해야 한다.

이 특징이 없으면 이미 끝난 영화가 예매 목록에 계속 남아 있습니다.

동시 공유

여러 사용자가 동시에 접근 가능해야 한다.

이 특징이 없으면 한 사람이 예매하는 동안 나머지는 기다려야 합니다.

내용에 따른 참조

사용자가 원하는 내용을 토대로 데이터가 검색되어야 한다.

이 특징이 없으면 「평점 9점 이상」으로 못 찾고 처음부터 순차 탐색해야 합니다.

데이터 무결성

데이터의 삽입, 갱신, 삭제 등의 과정에도 손상되지 않아야 한다.

이 특징이 없으면 두 사람이 같은 좌석을 동시에 예매해 버릴 수 있습니다. 또는 결제는 됐는데 좌석이 안 잡히는 일이 생깁니다.

무결성(無缺性, integrity)은 없을 무(無)와 이지러질 결(缺)을 합친 말로, 흠이 없는 성질입니다. 영어 integrity도 「온전함」을 뜻하며, integer(정수, 쪼개지지 않은 수)와 뿌리가 같습니다.

더 알아보기: 위 다섯 가지 말고도 이런 특징이 있습니다
특징 내용
데이터의 독립성
  • 물리적 독립성: 데이터의 물리적 저장 구조를 변경해도 응용 프로그램에는 영향을 미치지 않아야 한다.
  • 논리적 독립성: 데이터의 논리적 구조를 변경해도 응용 프로그램에는 최소한의 영향만을 주어야 한다.
데이터의 중복 최소화 동일한 데이터가 여러 곳에 저장되지 않도록 설계하여 중복과 불일치를 방지해야 한다.
데이터의 보안성 데이터를 허가받은 사용자만 접근할 수 있도록 권한을 설정해야 한다.
데이터 접근의 효율성 대용량 데이터를 효율적으로 검색, 삽입, 삭제, 수정할 수 있는 최적화된 알고리즘과 인덱스를 제공해야 한다.

앞에서 본 종속성 · 중복성 문제를 막는 특징도 있습니다. 독립성은 종속성 문제를, 중복 최소화는 중복성 문제를 막기 위한 것입니다.

스스로 확인

도서관 검색창에 「2020년 이후에 나온 과학책」을 넣었는데 결과가 나오지 않아 목록을 처음부터 넘겨 봐야 한다면, 다섯 가지 특징 중 무엇이 없는 걸까요? 책을 반납했는데 한 시간 뒤에야 반납으로 바뀐다면요?

비슷한 이름 셋을 어떻게 구분할까?

데이터베이스, DBMS, 데이터베이스 시스템은 무엇이 다를까?

이름이 비슷해 헷갈리지만, 크기가 다릅니다. 작은 것부터 차례로 봅시다.

데이터베이스 DB · database

데이터 그 자체입니다. 영화 데이터셋과 상영 시간표 데이터셋이 여기 들어 있습니다.

데이터베이스 관리 시스템 DBMS · DataBase Management System

필요한 데이터를 데이터베이스에 저장하고 관리하는 소프트웨어 시스템입니다. 데이터베이스에 저장된 정보를 쉽게 검색하고, 추가, 수정, 삭제 등을 할 수 있습니다.

데이터 앞을 지키는 관리자입니다. 아무도 데이터를 직접 만지지 못하고, 반드시 이 관리자를 거쳐야 합니다. 그래서 규칙이 지켜집니다.

데이터베이스 시스템 DBS · DataBase System

데이터베이스 관리 시스템과 데이터베이스, 사용자를 모두 포함하는 시스템 전체를 의미합니다.

가장 큰 울타리입니다. 사람까지 포함한다는 점이 중요합니다.

영화 예매로 보는 데이터베이스 시스템

데이터베이스 시스템 (DBS): 아래 전부를 합친 것

집에서도 원하는 영화를 쉽게 예매할 수 있어서 편리하네.

고객

영화 정보들이 데이터베이스화 되어 있어서 고객 문의에 바로바로 답할 수 있어.

영화관 직원

영화 예매 사이트

사람이 보는 화면 (응용 프로그램)

데이터베이스 관리 시스템 (DBMS)

저장 · 검색 · 추가 · 수정 · 삭제를 도맡는 소프트웨어

데이터베이스 (DB)

영화 데이터셋 상영 시간표 데이터셋

화살표가 양방향인 것에 주목하세요. 고객이 좌석을 고르면 위에서 아래로 요청이 내려가고, 잔여 좌석이 바뀌면 아래에서 위로 결과가 올라옵니다. 영화관 직원들은 데이터베이스 관리 시스템을 통해 영화 데이터베이스의 상영 중인 영화 정보를 수정하거나 예매 현황을 확인할 수 있고, 고객은 예매 사이트에서 실시간으로 예매 상황을 확인할 수 있습니다.

스스로 확인

급식 신청 앱에서 「학생들의 신청 기록」, 「그 기록을 저장 · 검색 · 수정해 주는 소프트웨어」, 「앱을 쓰는 학생과 영양사까지 포함한 전체」는 각각 DB · DBMS · DBS 중 무엇일까요?

내 주변에도 데이터베이스가 있을까?

영화관 말고 또 어디에 쓰이고 있을까?

우리 실생활에서 데이터베이스와 데이터베이스 관리 시스템이 쓰이는 곳은 다음과 같습니다.

분야 사례 사용 방법
쇼핑몰 온라인 쇼핑몰의 상품 데이터베이스 상품 이름, 가격, 재고, 고객 리뷰를 저장하고 검색 기능을 제공하여 사용자가 원하는 상품을 빠르게 찾을 수 있도록 한다.
병원 병원에서 사용하는 진료 기록 관리 시스템 환자의 이름, 나이, 병력, 예약 일정, 검사 결과 등을 저장하여 의료진들이 빠르게 환자 기록을 확인하고 진료를 준비할 수 있다.
SNS 게시물 관리 사용자의 사진, 글, 사용자 정보, 좋아요 수 등을 저장하여 사용자가 자신의 피드를 볼 때 맞춤형으로 데이터를 빠르게 불러온다.

세 사례의 공통점을 찾아보세요. 모두 많은 사람이, 동시에, 계속 바뀌는 데이터를 빠르게 찾아야 하는 상황입니다. 다섯 가지 특징이 모두 필요합니다. 이런 조건이 모이는 곳에서는 데이터베이스가 쓰이는 경우가 많습니다.

데이터베이스도 합칠 수 있습니다

여러 개의 다양한 데이터베이스를 합쳐 하나의 통합 데이터베이스를 구성할 수 있습니다. 영화 관람객들은 여러 데이터베이스가 합쳐진 통합 데이터베이스와 이를 관리하는 통합 데이터베이스 관리 시스템으로 원하는 영화의 정보를 찾고 예매할 수 있습니다.

데이터셋끼리 합치는 데이터 통합과 달리, 이것은 데이터베이스를 통째로 합치는 일입니다. 영화관 여러 곳의 데이터베이스가 하나로 묶여 있으면 한 앱에서 모든 영화관의 좌석을 한꺼번에 볼 수 있습니다.

스스로 확인

우리 학교에서 데이터베이스가 쓰이고 있을 만한 곳을 하나 찾아, 사례와 사용 방법을 적어 보세요. 반대로 학급 게시판에 붙인 종이 시간표에는 왜 데이터베이스가 필요 없을까요?

핵심 정리

데이터베이스가 필요한 이유

dependency · redundancy

  • 종속성 — 데이터를 바꾸면 응용 프로그램도 바꿔야 함
  • 중복성 — 같은 데이터가 여러 곳에 있어 모두 갱신해야 함
  • 대규모 데이터를 여러 사람이 공유하려면 체계적 시스템이 필요

데이터베이스

database

  • 데이터셋을 쌓아 두기만 한 것과 달리 관리 규칙을 갖춘다
  • 종속성 · 중복성을 최소화
  • 데이터를 빠르게 처리하고 정확도를 향상

데이터베이스의 특징

다섯 가지

  • 실시간 접근성 · 계속적 변화
  • 동시 공유 · 내용에 따른 참조
  • 데이터 무결성 — 삽입 · 갱신 · 삭제에도 손상되지 않음

비슷한 이름 셋

DB · DBMS · DBS

  • DB — 데이터 그 자체
  • DBMS — 저장 · 관리하는 소프트웨어
  • DBS — DBMS + DB + 사용자까지 전체

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1

데이터베이스에 대한 설명으로 가장 알맞은 것은?

Q2

같은 영화 제목이 파일 다섯 군데에 적혀 있어 하나를 고치면 다섯 군데를 모두 고쳐야 하는 문제는?

Q3

두 사람이 같은 좌석을 동시에 예매해 버렸다면, 지켜지지 않은 데이터베이스의 특징은?

Q4

사용자까지 포함하는 가장 큰 개념은?

Q5

데이터베이스를 활용했을 때의 효과로 알맞지 않은 것은?