본문으로 바로가기

공부하고 이해한 내용을 줄글로 요약 정리하고 있습니다.

부족한 내용은 지속적으로 추가, 수정될 수 있습니다.


데이터베이스 관리 시스템의 필요성

데이터베이스(Database)는 데이터들을 묶어둔 집합을 말합니다. 하나의 시스템에서 단 한명의 사용자가 데이터에 접근하여 조작한다면 문제가 생기지 않겠지만, 여러 응용 시스템에서 동시에 같은 데이터를 조작하기 위해 접근하게 된다면, 누군가가 중간에서 중재해주지 않는 이상 서로 다른 데이터를 가져가게 되는 경우가 발생할 수도 있습니다. 정확한 데이터를 바탕으로 서비스를 제공해야 하는 기업의 경우에는 매우 치명적인 단점이 될수 밖에 없습니다.

과거에는 데이터를 파일 형태로 저장하는 화일 시스템을 사용하였는데요. 각각의 프로그램별로 데이터 파일을 가지고 있다보니 데이터 종속성(데이터의 구성 방법이나 접근 방법을 변경할 때는 이것을 기초로 한 응용 프로그램도 변경해야 함)이 발생하였고, 다른 시스템에서 이용하고 있는 데이터가 필요하더라도 접근할 수 없다보니, 동일한 데이터를 여러 데이터베이스에 저장해두게 되어 데이터를 변경해야 하게되면 다른 시스템의 파일에 저장되어 있는 동일한 데이터를 모두 찾아내어 수정해야만 했습니다. (이렇게 귀찮을 수가!)

이러한 데이터의 중복성은 (1)일관성(데이터 간 불일치 초래), (2)보안성, (3)경제성 (저장 공간 낭비), (4)무결성(정확성이 떨어짐)의 이유로 인해 반드시 해결해야만 했습니다. (까먹고 변경 안한 데이터가 있으면 어떡해요사용자가 언제 어느때든 데이터베이스에 접근하더라도 그 데이터가 항상 정확하다는 믿음이 생겨야 하는데, 그 신뢰성이 떨어지게 되버리니까요. 그래서 데이터 중복성을 해결해 줄 수 있는 신박한 시스템이 필요하게 되었습니다. 그게 바로 데이터베이스 관리 시스템, DBMS(DataBase Management System)의 등장하게 된 이유입니다.

데이터베이스 관리 시스템이란 무엇인가

앞서 살펴보았던 이유로 인해, 데이터베이스를 이용하려는 여러 응용 프로그램들과 데이터 사이에서 중재자 역할을 하는 데이터베이스 관리 시스템(DBMS : DataBase Management System)이 필요해졌습니다.  기존 응용 프로그램들은 데이터베이스의 생성, 접근 방법, 처리 절차, 보안, 물리적 구조에 대해서 자세히 알아야했고 직접적으로 데이터베이스에 접근해야만 했습니다만, DBMS의 등장으로 이제는 원하는 데이터와 처리 작업만을 명시해서 DBMS에 요청하기만 하면 됩니다. DBMS가 데이터베이스를 종합적으로 조직해서 접근하고 전체적으로 통제할 수 있는 프로그램들로 내부가 구성되어 있으니까 이러한 업무는 이제 전문가인 DBMS에게 맡기면 되는거죠!

DBMS의 기능엔 무엇이 있을까요

(1) 정의 기능, (2) 조작 기능 (3) 제어 기능이 있습니다.

(1) DBMS는 저장된 데이터를 모든 응용프로그램들이 요구하는 데이터 구조로 표현 할 수 있도록 가장 적절한 데이터베이스 구조를 정의할 수 있도록 지원합니다.

(2) DBMS는 데이터베이스를 이용하는 사용자의 요구에 따라 체계적으로 데이터베이스를 접근하고 조작(조작기능) 할 수 있게 해줍니다. 사용자들은 쉽고, 명확하고, 효율적인 데이터 언어를 통해서 데이터베이스의 데이터를 조작할 수 있습니다.

(3) DBMS는 데이터베이스의 데이터를 항상 정확성과 안전성을 유지할 수 있도록 데이터를 제어하는 기능을 가집니다. DBMS는 데이터를 조작하려는 작업이 데이터의 무결성을 파괴하지 않도록 요청을 제어할 수 있으며, 접근하는 사용자의 권한을 검사하고 보안을 유지하며, 여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리하더라도 처리 결과는 항상 정확성을 유지되도록 병행 제어 기능을 가지고 있습니다. 

DBMS을 사용하면 장점은 무엇일까요

DBMS의 장점은 성능 향상을 이유로 데이터의 중복이 불가피한 경우를 제외한 (1) 데이터 중복의 최소화, 여러 응용 프로그램에서의 (2) 데이터의 공용, (3) 데이터의 일관성(data consistency) 유지, 데이터베이스가 접근 처리될 때마다 제어 기능을 통해 유효성을 검사함으로써 (4) 데이터 무결성 유지(data integrity), DBMS가 중앙 집중식으로 총괄하면서 정당한 사용자인지 허용된 데이터와 연산인지 확인함으로써 (5) 데이터의 보안 보장, DBMS의 필수적인 데이터 제어 기능을 통한 (6) 표준화가 있습니다.

DBMS을 사용하면 단점은 무엇일까요

(1) 운영비의 증대, (2) 특정 응용 프로그램의 복잡화 (3) 복잡한 백업과 회복 (4) 시스템의 취약성이 있으나 현재의 대부분 대규모 데이터 고나리와 처리가 요구되는 상황에서는 DBMS응 불가피한 도구로 인식되어 있으며 이러한 문제점에 대한 대처가 잘 준비되어 있다고 평가받고 있습니다.

다음 포스팅에서는  관계형 데이터베이스 관리 시스템(RDBMS: Relational DataBase Management System) 중 하나인 MySQL로 테스트를 진행하면서 데이터 언어를 사용해 데이터베이스를 조작해보도록 하겠습니다.