해커즈뉴스 / 해커대학

Donation bitcoin(기부용 비트코인 주소)

 
1Pq3K39XM5xx4CifGKgppXeavtWNNHH7K4
 
기부하신 비트코인은 "보안 취약 계층"을 위해 사용되고 있습니다.
 
 

Donation bitcoin(기부용 비트코인 주소)

 
1Pq3K39XM5xx4CifGKgppXeavtWNNHH7K4
 
기부하신 비트코인은 "보안 취약 계층"을 위해 사용되고 있습니다.
 

공지

 

1. 크롬 브라우저로 접속시 나오는 악성코드 경고창은 구글 크롬의 에러, 즉 오탐(탐지 오류)이므로 무시하시면 됩니다.

2. 이 사이트는 안전하며 깨끗하다는 것을 알려 드립니다.

 




설치

프로그래밍
자료실

MSSQL 팁
이름: 해커즈뉴스
왜 데이터베이스를 만들었으며 왜 사용하는가?  
새 페이지 1

이번에 소개해 드릴 내용은 

왜 데이터베이스라는 녀석을 만들게 되었으며 왜 사용하는지

그리고 현재의 DBMS의 일반적인 기능들에 대해 간략히 알려 드릴 예정입니다.

 

보통 자료라는 말을 많이들 쓰지용 ^_^

자료(Data)와 정보(Infomation) 에 대한 간단한 구분을 짓자면?

정보는 자료가 정제된 단계이다 라고 합니다.

즉 자료를 분석하고 처리해 정보를 만든다는 것이지요 ^_^

사실 꼭 구분을 둘 필요는 없지만 이렇게 구분을 한답니다.

 

데이터베이스(Database)는 뭘까요?

데이터베이스는 자료나 정보를 저장하기위한 저장장치 또는 저장소 라고 불린답니다.

아울러 이러한 데이터베이스들을 관리하기위한 시스템을 

데이터베이스 관리시스템(Database나 Database management System) 이라고

하지요. 보통 DB나 DBMS 이라고도 하는데 많은 분들이 줄여서

기냥 줄여서 "뒤비" 라고 말하는게 보통이 되었습니다. ^_^

 

MSSQL2000은 데이터베이스를 여러개 생성하고 총체적인 관리가 가능하니 DBMS가 되는

것이지요.

 

그렇다면? 저 DBMS라는 녀석을 왜 만들게 되었는지 찬찬히 생각을 해 볼까요?

멀리 가실 필요 전혀 없습니다. 바로 집에서 거실이나 안방에 놓고 사용하시는

전화기를 생각해 보시고 전화기 옆에 항상 같이 두는, 친구나 친지들의 이름과 전화번호를

적어두는 전화번호부를 생각해 보지요 ^_^

이 전화 번호부는 왜 만드셨나요?

간단하지요. 친구나 친지의 전화번호를 한번 적어두고 필요시마다 이를 보고 전화를 걸기

위함 입니다.

약간 바꿔 말하자면? 한번 저장해둔후 필요시마다 보기위한 장치라는 겁니다.

 

자 그런데 문제가 생겼습니다.

친구나 친척들의 전화번호가 많아 지면서 1,000개의 전화번호를 적게 되었습니다.

안타깝게도 순서 없이 이름을 적어 두다 보니 은정범, 이재형, 이동혁, 김대우, 코나니

의 이름이 섞여서 전화번호부를 첫장부터 맨 뒷장까지 뒤적뒤적 거려야 전화걸 사람의

이름을 찾게 되버린 겁니다.

이를 조금 생각 하신다면? 운이 좋으면 맨 첫이름이 찾는 이름일 수도 있고

운이 나쁘면? 맨 나중의 즉, 천번째 이름이 찾는 이름일 수도 있겠지요?

평균을 낸다면? 500번째 정도에서 아마도 찾게 될겁니다.

그래서 약간 더 머리를 굴려서 전화번호부를 ㄱ, ㄴ, ㄷ 순으로 나눈후

이름을 분류에 적어두게 하였습니다. 그래서 찾을때 조금더 빠른 순서로 찾을 수 있게 된거지요.

또한번 생각을 해 보신다면? 빠르게 찾기위한 도구를 마련하게 되었다는 것이지요 ^_^

 

자 전화번호부 정리도 좋고 다 좋았는데..

어느덧 시간이 지나 자식이 하나둘 생겼다고 가정해 볼까요? ^_^ 저는 아직 총각이쥐만..

열시미 인구계획 무시하고 10명을 낳았다고 가정해 보죵 ^_^;;

어느덧 자식들이 자라 친구들에게 전화를 하게 되었습니다.

그런데 제가 지금 전화번호부에 새로 알게된 친구와 친지의 전화번호를 적고 있는데

자식녀석이 전화를 건다고 떼를 쓰는 겁니다. 그것두 자식을 많이 나아서 동시에

자식 10명이 전화번호를 찾겠다고 하는 겁니다.

그래서 새로운 생각을 또 하게 되었습니다.

전화번호부가 페이지별로 분리가 가능하게 만든 겁니다.

저는 ㄱ 페이지에 김태영이란 아는 형아를 적고

이름이 자식1인 녀석은 ㅈ 페이지를 보고 이름이 자식2 인 녀석은 ㅎ를 보게 하였습니다.

비록 제가 ㅈ 에 새로 알게된 친구의 이름을 적으려면 자식 1 녀석이 다 볼때 까지 기다리거나

ㅈ페이지를 뺏어서^_^;; 보거나 하면 되겠지요?

이러한 동시 공용성에 대한 관리도 가능하게 하였습니다.

 

자 전화번호부 이야기를 조금 접고 정리를 해 볼까요?

 

첫째로 데이터를 삽입, 삭제, 수정이 가능하게 만드는 것이 목적 이었습니다.

두번째는 색인(INDEX)를 이용한 빠른 검색이 가능하게 하였습니다.

세번째는 동시에 여러사람이 사용 가능하게 하는 공용성과 

자원의 효율적인 관리를 위함 입니다. 

 

간단 하지요?  이러한 요구사항을 만족하기위해 어떤 일들이 생겼을까요?

자 이를 구현하기 위해 대두 된 것이 바로 화일 시스템 입니다.

윈도우를 이용해 텍스트 문서를 만들어 두거나 아래한글로 워드 문서를 만드신후

이를 관리해 보신 경험이 있으실 겁니다.

 

보통 이러한 화면이 될 수 있겠지요?

아래한글 프로그램이 아래한글 화일 하나를 사용이 가능하게 될겁니다.

그런데 문제가 생긴 겁니다.

바로 

데이터의 종속성(Data Dependency)문제와 데이터의 중복성(Data Redundancy)

문제가 생긴 겁니다.

데이터의 종속성이란 간단히 아래 한글 화일을 친구네서 가져 왔는데 이녀석이

아래한글 3000 용 화일인 겁니다. 저는 아래한글 97을 사용하는데 이 화일을 보기위해

아래한글 3000을 가져다 설치 하거나 해야 하는 데이터의 변환으로 인해

응용프로그램을 변화해야 하는 종속성 문제가 생긴 겁니다.

데이터의 중복성이란 저렇듯 하나의 응용플그램이 하나의 데이터 화일을 사용해야 하는

룰 때문에 여러 응용프로그램이 같은 데이터 화일을 사용하기 위해선?

중복되게 데이터 화일을 두게되는 문제가 생긴 겁니다.

바로 이러한 가슴아픈 상황이 발생하는 것이지요.

 

자 이를 해결해 봅세라는 마음가짐하에 개발을 계속하여서 결국 비밀병기인

화일관리 시스템이라는 비밀무기를 개발하게 됩니다.

음 보시기에도 무쟈게 깔쌈해 보이실 겁니다.

그러나 비밀 병기도 약점은 있는법.

여러 응용 프로그램들이 사용하는 모든 데이터 화일들에 대한 공동 접근 루틴을 제공하면서

이를 해결해 보려 하였는디...

같은 데이타에 대해 각 응용 프로그램이 요구하는 서로 다른 형태의 데이터 구조를 

지원하지 못하는 문제와 같은 구조의 데이터 파일을 서로 다른 응용프로그램에서 

사용하기 위해서 데이터를 복제해서  데이터의 중복성의 문제가 생기게 된 것입니다.

즉, 저장공간의 낭비, 데이터의 불일치 문제 가 여전히 숙제로 남게 된 것이지요.

 

자 이를 완전히 해결하기위해 과학자들은 다시 건물안으로 숨어들어서 비밀병기를 다시

개발하게 됩니다. 바로 우리가 현재 사용하고 있는 DBMS를 만들게 된 것이지요.

응용 프로그램들과 데이터의 중재자로서의 역할을 수행하는 소프트웨어 시스템으로

화일 관리 시스템이 해결하지 못한 모든 문제점인 데이터의 종속성과 중복성을 해결하기 

위해 만들어 지게 됩니다. 화일이 아닌 데이타베이스에 대한 연산 수행하지요.

그림이 정말 조아지는 듯 합니다.

 

이제 여지껏 나왔던 방식을 비교해 보신다면?

DBMS의 특징으로

 

 실시간 접근성(Real-time accessibility)

    사용자의 요구에 대한 즉각적인 응답(Response)

 계속적인 변화(Continuous evolution)

    삽입,삭제,갱신 작업이 수시로 발생

 동시 공용(Concurrent sharing)

    여러 사용자가 동시에 자기가 원하는 데이터에 접근 가능

 내용에 의한 참조(Content reference)

    물리적 주소가 아닌, 데이터에 대한 조건으로 원하는 결과를 검출

 

이러한 결과를 보실 겁니다.

제가 좋아하는 샘플인 인터넷상에서 자주 볼수 있는 게시판을 생각해 보세용~

게시물을 볼때 실시간으로 보여 주지요? - 실시간 접근성

누구나 글을 적을수 있지으며 누구나 동시에 사용이 가능하지요? - 동시 공용성과

계속적인 변화

아울러 게시물 찾기를 할때 01번 하드디스크 섹터 FEFF의 데이터를 차자라.. 라고 하나요?

글중에서 원하는 단어가 있는지.. 등으로 검색 하시나요?

어떠세용?

조금은 구별이 되셨는지요?

그렇다면 조금더 저 DBMS라는 중간 매개체인 녀석을 더 생각해 보지요.

이녀석이 하는 일은

 

 정의 기능

    데이타베이스의 논리적, 물리적 구조를 정의할 수 있는 기능 제공

 조작 기능

    사용자가 데이타베이스 내의 데이터를 조작할 수 있도록 하기 위한 기능 제공

 제어 기능

    데이타베이스가 항상 정확하고 올바른 데이터를 유지하도록 하기 위한 기능 제공

 

이러한 기능이 있답니다. 

 

저러한 DBMS의 기능에 대해 장점을 고려해 보신다면?

 

 데이터 중복의 최소화

 데이터의 공용성 증대

 데이터의 일관성 유지

 데이터의 무결성 유지

 데이터의 보안 보장

 범기관적 표준화 가능

 

이러한 장점을 꾸며댈 수 있겠지요? ^_^

 

장점만 있는가 그렇지도 않습니다.

단점에대해 말을 드리자면

 

 운영비 증대 : 많은 시스템 자원 요구

 자료 처리의 복잡화 : 고급 프로그래밍 요구

 복잡한 예비와 회복 : 장애 발생 대비를 위한 작업 필요

 시스템의 취약성 : 시스템의 성능에 따라 DBMS 성능이 좌우됨

 

이러한 단점도 고려가 가능하지요. 하지만 대부분의 기업이, 즉 돈을 벌기위한 조직체는

거의 대부분이 DBMS를 사용하고 있습니다. 계산기로 + -  해본 결과 + 된다고 판단한 거겠지요?

 

자 이렇게 해서 DBMS에 대해 왜 만들었으며 왜 사용하는 지를 제 나름대로 소개를 드렸습니다.

조금 이해가 되시는지요? ^_^

 

DBMS시스템에 대한 조금더 깊은 이야기는 8장 관계형 데이터베이스(RDBMS) 이해

부분에서 다룰 예정이니 이정도의 맛뵈기(?) 정도로 이야기를 접을까 합니다.

 

                    수정/삭제     이전글 다음글    
번호제 목첨부조회
9   mdf화일만 또는 mdf와 ldf 화일만 남았을 ...    2676
8   클러스터링과 스탠바이 서버    3767
7   백업과 복구의 전략    3236
6   백업과 복구에 대한 이해    3418
5   반드시 MS의 SQLServer2000 이어야 하는가?    2896
4   Windows DNA와 SQLServer2000    2571
3   Windows2000(NT)과 SQLServer2K    2651
2   왜 데이터베이스를 만들었으며 왜 사용하는...    2289
1   SQLServer 2000이 나오기까지    2897

 
      목록