학교 수업/DB시스템 구현

[DB 시스템 구현] 데이터와 데이터베이스

부농쿼카 2023. 6. 23. 23:22
728x90

Database

우선, 간단하게 데이터 베이스에 대해 알아보자. 데이터 베이스는 데이터 + 베이스 합성어이다.

 

데이터란 팩트, 즉 사실들을 말한다. objective하고 measurement 즉 측정이 가능하다.

베이스란 기지, 진지 라는 뜻에서 사용된다.

이 둘을 합치면 데이터 베이스는 팩트들, 데이터들을 모아놓은 기지를 말한다는 것을 알 수 있다.

 

데이터는 정형화되고, 기록할 만한 가치가 있따고 판단되는 현상이나 사건, 아이디어에 대한 묘사를 의미한다. 쉽게 설명하자면 한 사람을 정의하는 데이터는 굉장히 많다. 예를 들어 한 사람에 대해 대학교에서는 이름, 학년, 학번, 학점, 등록금 납부 여부 등을 데이터로 사용한다. 반면 결혼정보회사를 가면 이름, 나이, 직업, 연봉 등을 데이터로 사용한다. 이처럼 데이터는 기관 혹은 조직에 따라 기록할 가치가 있다고 판단하는 것을 의미한다.

 

데이터를 1차적으로 가공하면 정보가 된다. 데이터가 사실 자체에 대한 일차적 표현이라고 하면, 정보란 사실들과 이들로부터 유추할 수 있는 사실들을 의미한다.

 

지식은 데이터를 기반으로한 의사결정을 의미한다. 데이터와 정보보다 주관적이라는 특징이 있다. 예를 들자면 대학교 4학년 재학생의 현재 평균학점은 데이터이다. 그 데이터들을 기반으로, 이 학생을 기관에서 채용할 것인지 채용하지 않을 것인지 결정하는 것은 지식의 범위에 있다고 할 수 있다.

 

데이터베이스는 필요한 정보들을 모아놓은 기지를 말한다. 조직, 혹은 개인이 사용하고 조작가능하다. 여기서 조작 가능이란 데이터를 컴퓨터가 처리할 수 있고, 수치화가 가능해야 한다. 주로 삽입, 수정, 삭제, 검색이 가능해야 함을 의미한다.

쉽게 풀어 설명하자면 데이터베이스는 관련된 데이터의 모임 또는 집합을 의미한다. 어떤 특정 조직의 응용 시스템에 사용되는 조작 가능한 저장 데이터의 모습이다.

 

데이터베이스 내 데이터는 두 종류로 나눌 수 있다.

① 일시적 데이터

일시적 데이터는 컴퓨터로 보면 메모리와 같다. 해당 프로세스가 돌아가는 동안만 일시적으로 존재하는 데이터로 프로그램 변수들이 이에 해당한다.

 

② 영구적 데이터

영구적 데이터는 컴퓨터에서 디스크를 의미한다. 즉, 우리가 흔히 생각하는 데이터는 대부분 영구적 데이터이다. 하나의 프로세스 생명주기에 종속되지 않고 스스로 존재하는 것을 말한다. 이 데이터는 비휘발성 매체에 주로 저장된다.

 

데이터베이스 관리 시스템

데이터베이스 관리 시스템은 컴퓨터에 저장된 데이터베이스를 관리해주는 시스템 소프트웨어이다. 우리가 흔히 아는 DBMS를 맣한다. Oracle, My SQL등이 이에 해당한다.

 

코딩을 조금이라도 해 본 사람들은 File I/O에 대해 모두 들어봤을 것이다. 그렇다면 파일 I/O를 통해 데이터를 관리해도 되는데 우리는 왜 굳이 DBMS를 따로 사용하는 것일까?

다음과 같은 예를 통해 설명해보도록 하겠다.

FIle I/O만 사용

FIle I/O의 경우 중간 관리자 없이 사용자가 데이터에 직접 접근하여 데이터를 사용한다. 한 데이터에 두 명 이상 접근할 경우 문제가 생길 수 있고, 어디에 있고 무엇이 있는지 찾기 어렵다.

 

이 문제를 해결하기 위해 중간 관리책을 두었는데, 이 중간 관리자가 DBMS이다.

잘 정리된 창고에서, 관리인이 필요한 데이터들을 찾아다 준다. 데이터 사용 순서도 정해주고 데이터가 섞이지 않도록 관리해주는 역할을 한다.

 

즉, DBMS가 제공하는 기능들은 다음과 같다.

우선, 정보를 표현할 수 있는 틀을 제공한다. 마치 물건을 창고에 잘 정리하듯이 사용자가 지정한 틀에 맞춰 정보를 정리한다.

두 번째는 데이터의 공유기능이다. 데이터의 공유 기능은 총 두 가지로 나눠 볼 수 있다.

 

① 데이터 중복의 제거

데이터 중복의 제거는 데이터를 서로 공유함으로써 비효율과 일관성 문제를 제거하는 것이다. 예를들어 학교에서 각 팀마다 File을 따로 정리해뒀다고 해보자. 한 학생이 이사를 한 후, 학사지원팀에는 집 주소를 업데이트했는데 재무회계팀엔 업데이트를 하지 않았다. 이 경우 같은 학생에 대해 집 주소 정보를 서로 다르게 가지고 있게 된다. 이 문제를 제거하기 위해 한 DBMS를 사용하게 되면, 집 주소를 한 번만 업데이트 하면 모든 팀에서 변경된 집 주소를 확인할 수 있다.

 

② 동시성 문제(concurrency problem)

 기술이 발전하며 대부분 multi- cpu환경에서 멀티 쓰레드를 사용하는것이 기본이 되었다. 다른 프로그램 또는 프로세스에서 동시에 같은 데이터에 접근하는 경우가 많아졌는데, 이 때 DBMS가 프로세스 혹은 프로그램을 스케줄링하여 적절하게 데이터를 사용할 수 있도록 한다.

 

세 번째는 데이터 무결성 유지 기능이다 . 프로그래밍 언어에서 기본적으로 제공하는 무결성 유지 기능이 있지만, 그보다 더 효율적으로 기능을 제공한다.

 

네 번째는 데이터 독립성이다. 응용 프로그램은 데이터가 디스크에 어떻게 저장되어있는지 몰라도, DBMS를 통해 데이터를 사용할 수 있다. 즉, 응용프로그램과 데이터가 독립적으로 존재하여 응용프로그램이 기존 데이터가 아닌 다른 데이터도 사용할 수 있도록 한다.

 

DBMS는 파일 시스템을 이용한다. 모두가 알듯이 파일 시스템은 OS가 관리한다. OS는 자원을 효율적으로 관리하는 역할을 하는데, 파일 시스템은 기본적 저장기능만 제공한다. DBMS를 사용하여 파일 시스템에 저장된 데이터가 모여있는 데이터베이스를 관리한다고 생각하면 된다.

728x90