삽질의 현장/- .NET

#085_닷넷(.NET)_ ADO.NET -DB & DBMS

shovelman 2015. 11. 16. 22:22


안녕하세요 삽잡이입니다.


이번시간에는 ADO.NET에 본격적으로 들어가기전에

간단하게(?) DB에 관련된 기초적으로 알아야될 사항들에 대해서 알아보려고합니다.



DB는 말 그대로 'Data Base'입니다.

DB와 DBMS를 헷갈려하실 수 있는데 DB는 DB일뿐이고, 

DBMS는 DataBase Management System 즉, DB 관리 시스템입니다.


여기서, 

Data Base는 일련의 데이터의 규칙성을 가지는 데이터를 뜻합니다.

데이터가 규칙성을 가지고 있다면, 

파일, 네트워크, DBMS, XML, Binary, Memoery 등 어디에 있던지

DB라고 부를 수 있습니다.


다시 말씀드리지만,

데이터들이 규칙적으로 있는 집합이라면 DB라고 부를 수 있습니다.


그런데, 이 규칙적으로 모여있는 데이터들의 집합을 사용한다고 생각해봅시다.

내가 데이터를 보관하고, 검색하고, 

삭제하고자하는 작업을 일일히 다 해줘야한다고 생각해봅시다.

상상만해도 머리가 아프지 않습니까?


따라서, 이런 기능들을 제공해주는 애가 있으면 좋겠다 해서 

만들어진 시스템이 바로 DBMS 입니다.


DBMS에는 대표적으로 MS_SQL, My_SQL, ORACLE 등이 있습니다.


아무튼... DBMS는 DB를 관리하는 시스템입니다.

어플리케이션이지요...

DB를 관리하는 어플리케이션이 바로 DBMS라는 것입니다.


일반적으로 DB, DBMS는 비슷하게 보이지만 다른 용어이니 

혼돈하시지 마시길 바랍니다.



어플리케이션이 있다고 해봅시다.

이 어플리케이션이 과연 DB와 데이터를 주고받을까요?

DB는 일련의 데이터 집합(모음)을 의미합니다.


아무튼... 

데이터를 직접 어플리케이션이 직접 관리하면 얼마나 불편하겠습니까?


얼마나 많은 양과 종류의 데이터들을 

일일히 읽고 찾고 하는데 불편하고, 어렵고 비효율적일 것입니다.

그리고 찾는걸 떠나서 성능이 얼마나 떨어지곘습니까?


따라서, DBMS를 통해 data를 주고 받게 되는 것입니다.


DBMS는 수십년간  

해시기반의 알고리즘에 의해 개발된 어플리케이션으로써,

우리가 어플리케이션에서 찾고 일고하는 것 보다 몇 십배의 성능이 날 것입니다.


DB 관리, 성능, 데이터에 대한 통합, 

데이터 가져오고 조작하는 것에 대한 부분은 굉장히 중요한 부분인데 

이를 아주 기가막히게 잘 해놓은 어플리케이션이 DBMS라는 것입니다.


우리가 만약,

어플리케이션에서 직접 데이터를 상대한다면,

어떻게 DB를 조직화 할지, 연산하고 계산할지에 대해서 머리가 빠질것입니다...

배보다 배꼽이 더 커지는 격이 되는 것이지요...


따라서, 우리는 단지 DBMS와만 놀면 되는 것이고

DBMS가 자신만의 DB를 가지고 있게 되는 것입니다.


그런데, DBMS를 한 군데에서만 만들겠습니까?

수 많은 DBMS가 존재할 터인데,

각각의 DBMS를 사용할 때마다 해당 라이브러리의 기능을 알아야한다면,

얼마나 불편하겠습니까?


따라서, 통합적으로 DBMS와 어플리케이션 간 DB를 

조작, 관리하는데 약속된 언어를 만들었습니다.

이것이 바로 'SQL'이지요.


SQL을 통해 많은 데이터를 대상으로 쉽게 조작할 수 있게 됬습니다.


여담으로 말씀드리자면,

DB는 DBMS마다 내부적으로 규칙성있는 데이터를 

어떻게 관리할 것인지에 대한 차이가 있을 것입니다.

즉, 각 회사별로 자신들의 알고리즘을 사용할 것이겠지요.

관리하는 방식이 똑같다면, DBMS가 여러개일 이유도 없겠지요.


이번 시간은 여기까지 하도록 하겠습니다.

이상 삽잡이였습니다!