DBMS 데이터베이스 관리 시스템

DBSM란?

데이터베이스 관리 시스템(영어: database management system, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS은 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.

위키백과

데이터베이스를 데이터의 집합체 이라고 정의한다면 DBMS는 이 데이터베이스를 관리 또는 운영하는 역할을 한다.

DBMS는 데이터베이스를 관리하는 역할을 하는 소프트웨어의 개념이다. 또, 여러 명의 사용자나 응용프로그램이 이 DBMS가 관리하는 데이터에 동시에 접속하고 데이터를 공유하게 된다.

DBMS의 특징

  1. 데이터의 무결성

데이터베이스 안의 데이터는 어떤 경로를 통해 들어 왔던지 데이터에 오류가 있어서는 안된다. 이 무결성(Integrity)을 위해서 데이터베이스는 제약 조건(Constrain)이라는 특성을 가진다.

  1. 데이터의 독립성

데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도 기존에 작성된 응용프로그램은 전혀 영향을 받지 않아야 한다. 즉, 서로 의존적 관계가 아닌 독립적인 관계여야 한다.

  1. 보안

데이터베이스 안의 데이터에 아무나 접근할 수 있는 것이 아니라 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야 한다. 또, 접근할 때도 사용자의 계정에 따라서 다른 권한을 가져야 한다.

  1. 데이터 중복의 최소화

동일한 데이터가 여러 개 중복되어 저장되는 것을 방지한다.

  1. 응용프로그램 제작 및 수정이 쉬워짐

기존 파일시스템을 사용할 때는 각각 파일의 포맷에 맞춰 개발해야 하는 응용프로그램을 데이터베이스를 이용함으로써 통일된 방식으로 응용프로그램 작성이 가능해지고, 유지보수 또한 쉬워진다.

  1. 데이터의 안전성 향상

대부분의 DBMS가 제공하는 백업과 복원 기능을 이용함으로써, 데이터가 깨지는 문제가 발생할 경우에 원상태로 복원 또는 복구하는 방법이 명확해진다.

DBMS 분류

DBMS의 유형은 크게 계층형DBMS, 망형DBMS, 관계형DBMS, 객체지향형DBMS, 그리고 객체관계형DBMS 등으로 분류된다.

현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지하며, 일부 멀티미디어 분야에서 객체지향형이나 객체관계형 DBMS가 활용되고 있는 추세이다.

MySQL과 더불어 Oracle, DB2, SQL Server, Access 등은 모두 관계형 DBMS 이다.

관계형 DBMS

관계형 DBMS의 시초는 1969년 E.F.Codd라는 학자가 수학 모델에 근거해서 고안하면서 시작되었다.

RDBMS의 핵심 개념은 데이터베이스는 테이블이라 불리는 최소 단위로 구성되어있다. 그리고 이 테이블은 하나 이상의 열로 구성되어 있다. 라고 생각하면 된다.

관계형 데이터베이스 테이블 구조

관계형 DBMS에서 모든 데이터는 테이블에 저장되므로 테이블이라는 구조가 RDBMS의 가장 기본적이고 중요한 구성이 된다.

관계형 DBMS의 장점과 단점

장점

  • 다른 DBMS에 비해서 쉽게 변화에 순응할 수 있는 구조
  • 유지보수 측면에서도 편리한 특징을 가지고 있다.
  • 대용량 데이터의 관리와 데이터 무결성의 보장
  • 동시에 데이터에 접근하는 응용프로그램을 사용할 경우 RDBMS는 적절한 선택

단점

  • 시스템 자원을 많이 차지하므로 시스템이 전반적으로 느려짐
  • 그러나 최근에는 하드웨어의 급속한 발전으로 인해서 이러한 단점은 많이 보완되고 있다.

SQL(Structured Query Language)

SQL은 관계형 데이터베이스에서 사용되는 언어이다. 관계형 DBMS를 배우고자 한다면 SQL을 익혀야 하는 것은 필수이다.

SQL의 특징

  • DBMS 제작 회사와 독립적이다.

SQL은 모든 DBMS 제작회사에서 공통적으로 공개되고 각 제작회사는 이 표준 SQL에 맞춰서 DBMS를 개발한다. 그러므로 표준 SQL은 대부분의 DBMS 제품에서 공통적으로 호환된다.

  • 다른 시스템으로의 이식성이 좋다

SQL 표준은 서버용, 개인용, 휴대용 장비에서 운영되는 DBMS마다 상호 호환성이 뛰어나다. 그러므로 어느 곳에서 사용된 SQL을 다른 시스템으로 이식하는 데 별 문제가 없다.

  • 표준이 계속 발전한다.

  • 대화식 언어이다.

기존 프로그래밍 언어는 프로그램 작성, 컴파일 및 디버깅, 실행이라는 과정을 거쳐야만 그 결과를 확인할 수 있었으나 SQL은 이와 달리 바로 질의하고 결과를 얻는 대화식 언어로 구성되어 있다.

  • 분산형 클라이언트/서버 구조이다.

SQL은 분산형 구조인 클라이언트/서버 구조를 지원한다. 즉, 클라이언트에서 질의를 하면 서버에서 그 질의를 받아서 처리한 후, 다시 클라이언트에게 전달하는 구조를 가진다.

주의할 점은 모든 DBMS의 SQL문이 완벽하게 동일하지는 않다. 많은 DBMS 벤더들이 표준 SQL을 준수하려고 하지만 각 벤더마다 특징이 있기에 현실적으로 완전히 통일되기는 어렵다. 그래서 각 회사는 표준 SQL을 지키면서도 자신의 제품에 특화시킨 SQL을 사용한다.

  • Oracle은 PL/SQL
  • SQL Server는 T-SQL
  • MySQL는 그냥 SQL

표준 SQL과 각 회사의 SQL

출처
Share