[DB]Data, Database, DBMS, Big Data 용어 및 개념 정리

반응형
반응형

안녕하세요. 즐거운코딩생활 입니다.

오늘은 데이터(Data), 데이터베이스(Database, DB), DBMS(Database Management System), 빅데이터(Big Data)의 개념에 대해서 생각해 보도록 하겠습니다.

 

데이터(Data)란?

요즘 데이터라는 말이 가장 많이 쓰이는 곳은 이동통신의 모바일 데이터에서 일 것입니다.  

"아.. 나 데이터가 부족해!", "난 데이터 무제한 이야", "그럼 데이터 쉐어링 좀 해줘..." 데이터라는 말이 많이 사용됩니다.

데이터라는 말은 어떻게 정의하기가 좀 어려울 정도로 요즘은 다양하고 폭넓게 사용되고 예전보다도 여기저기에 많이 쓰이고 있는 것 같습니다. 하지만, 우리는 모두 데이터라는 의미를 대충 다 알고 있을 것입니다.

그러나 제가 말씀드리려고 하는 것은 위에서 쓰이는 의미의 데이터가 아니라 자료의 의미의 데이터를 말하는 것인데요. 

 

그럼에도 불구하고 데이터를 정의하자면 <가공되어 정보가 되지 않은 개별 자료>라고 말할 수 있을 것 같습니다.

위키백과에서 찾아보니 데이터=자료 동일시하여 문자, 숫자, 소리, 그림, 영상, 단어 등의 형태로 된 의미 단위로 조사에 쓰이는 재료이라.라고 되어있는데요.  

 

그럼 데이터는 어디에 있을까요? 저도 평소 깊이 생각해 보지 않았지만 생각해 보니 사람들 머릿속에도 있고 책에도 있고 지나가는 길가의 간판에도 있고 여기저기 온통 데이터 들로 가득 차 있는 듯합니다.

그런데 역으로 데이터는 정보라든가 활동에 쓰임새 있게 쓰여야 그 자체로서 의미가 있다고 할 수 있을 것 같습니다.

 

그렇다면 지금까지 사람들은 이 데이터를 어떻게 관리했을까요?

 

문자가 생기기 전에 원시인들이 사냥을 하고 나서 나뭇가지나 돌로 하나, 둘, 셋 수량을 표시하는 것도 데이터를 관리하는 것이라고 할 수 있고요. 그리고 여러 사람이 기억하는 것도 데이터의 관리 겠죠.

문자가 생기고 책에 기록하는 것도 데이터 관리라고 할 수 있겠습니다. 

예를 들면, 조선왕조 실록이라던가 이런 것도 데이터를 관리하기 위함이라고 할 수 있겠습니다.

 

 파일 처리 시스템과 데이터베이스(Database, DB) 

그리고 오랜 세월이 흘러 현대 시대에 컴퓨터가 생기면서 컴퓨터가 발전함에 따라 저장 장치에 이 데이터를 관리했는데요. 디스크라고 하는 장치에 파일 처리 시스템(file-processing-system)으로 하여 관리를 했습니다.

말 그대로 프로그램 언어로 파일 시스템에 자료를 저장하는 것이죠.

 

학교 업무를 예를 들면,  학교의 학생들 명부를 컴퓨터 디스크에 저장합니다.

그리고 선생님 명단도 컴퓨터 디스크에 저장합니다. 그리고 학생들의 반도 저장하고 선생님의 담당 반도 저장하고 학년별 과목도 저장하고 학생들 성적도 저장합니다. 그리고 학생들이 졸업하고 입학하고 선생님이 전근을 가고 오고 이런 모든 행위를 프로그램을 사용하여 파일 시스템에 쓰고 지우고 수정하고를 반복하게 됩니다.   

 

처음에는 대충 자료를 입력하다가 나중에는 파일에 저장되는 데이터(자료)의 길이와 형태 이런 것을 통일시키고 체계적으로 정리하지 않았을까 생각됩니다. 그리고 예시처럼 선생님이 전근을 가면 관련된 파일 시스템의 자료를 모두 수정해야 하는데 어디는 수정되었지만 어디는 남아 있고 이런 일련의 오류들이 자주 발생하게 됩니다.

Data, Database, DBMS, Big Data

그럼 데이터베이스(Database, DB)는 무엇일까요.?

데이터베이스는 단순히 말하면 데이터의 모임, 집합이라고 할 수 있습니다.  

그런데 데이터베이스의 개념은 위의 파일 시스템을 단점을 극복하기 위해 만들어진 것으로 중요한 규칙을 만족해야 합니다. ( 영문 첫글자를 따서 일명 ACID 규칙 )

  • 원자성 (原子性, Atomicity): 한 트랜잭션의 모든 작업이 수행되든지, 아니면 하나도 수행되지 않아야 한다. 트랜잭션이 제대로 실행되지 않았으면 롤백(roll back)한다.
  • 일관성 (一貫性, Consistency): 모든 트랜잭션은 데이터베이스에서 정한 무결성 (無缺性, integrity) 조건을 만족해야 한다.
  • 격리성 (隔離性, Isolation): 두 개의 트랜잭션이 서로에게 영향을 미칠 수 없다. 트랜잭션이 실행되는 동안의 값은 다른 트랜잭션이 접근할 수 없어야 한다.
  • 내구성 (耐久性, Durability): 트랜잭션이 성공적으로 끝난 뒤에는, (시스템 실패가 일어나더라도) 그 결과가 데이터베이스에 계속 유지되어야 한다. ( 출처 :위키백과 )

아쉬는 분들은 위 내용을 아시겠지만 저한테는 위 내용이 너무 어렵습니다.

그래서 쉽게 예시를 들어 말해보겠습니다.

원자성이란? 은행의 예를 들면 A에서 B에게 이체될 때 A에서만 돈이 나가고 B에 입금이 안되면 안 되다는 말입니다.

일관성이란? 어떤 조건이 있으면 해당 조건이 필요한 모든 프로그램은 다 수정하지 않아도 체크가 된다는 말입니다.

격리성이란? 역시, 은행의 예를 들면 A한테 50만 원이 있는데 B에게 50만 원을 거래가 끝나기 전에 A가 또 C에게 50만 원이 이체되면 안 된다는 말입니다.

내구성이란? 컴퓨터 서버가 다운되고 하더라도 처리된 데이터가 삭제 등의 유실이 없어야 한다는 의미입니다.

 

 

DBMS(Database Management System)

위에서 말씀드린 대로 데이터베이스(DB)파일 시스템의 단점을 극복하고 ACID 규칙을 만족해야 하는데요.

데이터베이스(DB)가 개념적인 용어라면 DBMS는 데이터베이스를 ACID 규칙에 따라서 관리를 해주는 실제 시스템을 말합니다. 즉, 실제 제품을 말하는 것이지요.

예를 들면, 가장 많이 사용하는 오라클(Oracle) 비롯해서 MY-SQL, 마이크로소프트사의 MS-SQL, IBM의 DB2, 인포믹스 등이 있고요.  MS-Office에 있는 Access 도 DBMS의 일종이라고 할 수 있습니다.

 

이 제품들은 원자성을 유지하기 위해서 트랜젝션(하나의 처리가 끝나는 것)을 관리를 해주고요.

일관성을 위해 DB 항목에 제약 조건을 주어 프로그램을 일일이 수정하지 않아도 되게 합니다.

데이터의 잘못된 처리가 되면 어떤 화면에서도 동일한 에러가 나는 것이 바로 그것입니다.

예를 들면 보통 날짜가 2020-12-32 이런 식으로 잘못 입력이 되면 어떤 화면에서도 동일한 에러가 나죠. 

격리성을 위해 하나의 트랜젝션이 해당 데이터에 락(Lock)을 걸어 두는 것입니다.

내구성을 위해 백업(Back up)및 복구(Recorvery) 기능을 가지고 있습니다.  

그리고 공통적으로 SQL(Structured Query Language)라는 명령어를 사용하여 데이터를 생성(C), 조회(R), 수정(U), 삭제(D)가 가능하도록 합니다.

 

파일 처리 시스템에서는 하나의 프로그램을 개발하고 수정, 추가할 때마다 위의 내용을 모두 만족하도록 개발해야 한다면 DBMS를 사용함으로써 프로그램이 변경되고 추가되고 하더라도 데이터는 일관되게 관리될 수 있습니다. 

 

즉, DBMS란? 결국은 데이터베이스의 개념을 완성하고 잘 관리하기 위한 일종의 프로그램이라고 할 수 있으며 내부적으로는 물리적으로 컴퓨터 저장장치에 데이터를 저장하는 것은 동일한 것입니다. 

 

DBMS를 사용하더라도 연결된 응용 프로그램의 경우 여러 가지 Validation을 체크하기 위한 행위들을 하고 있는데요.

DBMS는 필수적인 데이터 관리과 백업 및 복구 등을 가능케 하는 전반적인 관리시스템이라고 보면 되겠습니다.

 

Big Data란?

DBMS는 정형화된 데이터를 관리하고 있는데 최근에는 여러 미디어에서 방대한 데이터들이 생산되고 있습니다. 블로그를 비롯한 웹의 텍스트, 영상, 음악 등도 모두 이러한 것들인데요. 이런 것들은 비정형 데이터들입니다. 지금 이 순간에도 엄청난 자료들이 생산되고 있습니다. 아이러니컬하게도 과거의 파일 시스템처럼 이러한 데이터들도 관리하기가 어렵고 분석하기도 힘든 자료들인데요. 최근에는 기술이 발전하여 방대한 비정형화된 데이터를 처리하고 의미 있는 정보들을 데이터베이스화 한다던지 정보화할 수 있게 되었습니다. 그러한 관련 기술에 대한 것을 빅데이터라고 하고요. 즉, 데이터를 어떤 제약에 맞게 정형화시켜서 관리하는 것이 아니라 비정형화된 데이터 & 방대한 데이터에서 의미를 만들어내는 관련 기술들을 말합니다.  

빅데이터 또한 어느 순간 갑자기 나타난 것이 아니라 하드웨어 기술과 SW 기술이 모두 발전하여 가능해진 것이라고 보면 되겠습니다.  

 

부족하지만 생각나는 대로 정리해 보았습니다.

오늘은 이만 마치고 다음에는 DBMS를 설치해 보도록 하겠습니다.

2020/08/20 - [SW교육/지식창고] - 세계 최초의 컴퓨터는 무엇일까요?

2020/08/26 - [SW교육/지식창고] - 프로그램 버그(Bug) 뜻와 유래에 대해서 알아보아요~

'즐거운 코딩 생활'  은 '꿈꾸는 판다' 블로그의 프로그래밍 언어 관련 카테고리에서 사용하는 부 캐릭터입니다. 
'즐거운 코딩 생활' 은 프로그래밍 언어 초심자를 위한 쉬운 내용과 함께 하는 공부를 표방합니다.
반응형

댓글

Designed by JB FACTORY