데이터를 저장하는 방법에는 무엇이 있는지 살펴보기 전에, 우선 데이터가 무엇인지 이해하기 쉽도록 자료(Data)를 정보(Information)의 개념과 비교하여 설명하도록 하겠습니다.
자료(Data)
현실 세계에서 어떤 측정을 통해 얻은 순수한 값입니다.
자료는 평가되지 않으며 단순한 관찰을 통해 얻은 객관적인 사실입니다.
가공되지 않은 상태의 숫자나 문자들의 단순한 나열입니다.
Ex) 이 글에서 '자료', '정보', 'Data', '가공', '관찰' 등의 순수한 입력 값
정보(Information)
정보는 자료를 처리, 가공하여 얻으며 결과적으로 2차적인 자료의 형태입니다.
특정한 목적과 문제해결에 도움이 되도록 의미를 가지는 결과 값입니다.
의사 결정을 위한 자료들의 집합입니다.
Ex) '자료'와 '정보'등의 입력값에서 얻을 수 있는 자료와 정보의 개념
데이터를 저장하기 위한 수단은 파일 시스템에 저장하는 방법과 Database로 저장하는 방법이 있습니다. 이 둘 중 어디에 저장할지는 상황에 따라 그 효율성이 달라집니다. 따라서 상황에 적절하게 저장할 수 있도록 각각의 장단점을 비교해보도록 하겠습니다.
파일 시스템(파일 처리 시스템)
파일 시스템은 각각의 응용 프로그램(어플리케이션)이 독립적으로 자료를 파일형태로 배치하고 관리하는, 전통적인 데이터 처리 시스템입니다. 대부분의 경우 데이터 파일과 어플리케이션이 1:1로 대응되는 특징을 가지고 있습니다. 따라서 응용프로그램과 data 간에 상호 의존성이 높습니다.
파일 시스템의 목적
데이터의 종속성(Data Dependency)
응용 프로그램과 자료 간의 상호 의존도가 높아서, 자료를 저장한 파일 구성 방법이나 접근 방법이 변경되면 관련 응용 프로그램도 변경해야 합니다.
데이터의 중복성(Data Redundancy)
한 시스템 내의 자료가 중복 저장되어 추가적인 저장 공간이 필요합니다. 이것은 자료를 비효율적으로 관리하는 것이며 비용 또한 늘어나게 됩니다. 이렇게 자료가 중복성을 띌 수 밖에 없는 이유는, 응용 프로그램마다 별도로 독립된 파일을 가지기 때문입니다.
이러한 파일 시스템의 문제점들을 개선하기 위해 나온 것이 바로 Database입니다.
데이터베이스(DB:DataBase)
유용한 데이터를 묶어 놓은 것이라고 생각하시면 됩니다. DB는 독립적으로 거의 사용하지 않고 그것을 관리하는 시스템과 통합돼 제공되며, 따라서 실제적으로 사용하는 것은 데이터베이스 관리 시스템(DBMS:DataBase Management System)이 됩니다. 마치 데이터라는 화물들은 컨테이너인 DB에 담겨져 DBMS라는 선박에 적재하고 사용하는 것입니다. 화물 컨테이너는 스스로 사용할 수 없지만 선박은 스스로 운항(사용)이 가능하죠. 따라서 DB보단 DBMS를 중점적으로 설명을 드리도록 하겠습니다.
DBMS의 장점
데이터를 체계적으로 통합하고 구성함으로써 중복을 최소화 할 수 있으며 이것으로 인해 저장 공간을 절약할 수 있습니다.
데이터의 동시 공유가 가능합니다.
검색에 용이하게 설계하였을 뿐만 아니라 수정, 삭제까지도 용이합니다
DBMS의 단점
전문적인 기술을 요하기 때문에 DB의 전문가가 필요합니다.
운영상에 있어서 더욱 많은 용량의 메모리와 더욱 빠른 CPU를 요구하게 되어 비용이 증대되며 DBMS 자체가 고가의 제품이기에 많은 비용이 부담됩니다.
시스템이 매우 복잡하여 문제가 일어났을 때 문제점을 파악하기가 어려울 뿐만 아니라 자료 백업과 복구를 하기엔 구조상의 복잡함으로 많은 어려움을 겪게 됩니다.
다중 사용자가 대용량 디스크로 접근을 하게 되면 과부화가 발생합니다.
이처럼 DBMS를 구축하는 것이 모든 환경에서 적절한 것은 아닙니다. 따라서 상황에 따라 DBMS와 파일 처리 시스템의 장단점을 잘 분석해서 자신에게 맞는 것을 사용해야 합니다.
이와 관련된 글
'Code.D IT 강좌 > C언어' 카테고리의 다른 글
[C언어] printf함수의 서식문자, 주석문 (0) | 2017.05.16 |
---|---|
C언어 기본 틀/Hello World 출력, 프로그래밍의 시작을 알리다 (0) | 2017.05.11 |
[C언어의 기초] 역사와 특징 (0) | 2017.04.12 |
#3 Eclipse-CDT 설치 (0) | 2017.04.07 |
#2 Eclipse 및 MinGW 설치 (0) | 2017.04.06 |