본문 바로가기
컴퓨터개론

[컴퓨터개론] DBMS

by seung_nari 2022. 6. 13.

DBMS

: Database Management System의 준말로 데이터를 한곳에 모은 저장소를 만들고 그 저장소에 여러 사용자가 접근하여 데이터를 저장 및 관리 등의 기능을 수행하며 공유할 수 있는 환경을 제공하는 응용 소프트웨어 프로그램이다. 공유 저장소(서버)를 구축하고 사용자들에게 접근정보를 공유하여 데이터를 처리할 수 있는 인터페이스를 제공하고 복구기능과 보안성 기능 또한 제공한다.

 

DBMS 장점

- 데이터 중복 최소화

- 데이터 공유(일관성 유지)

- 정합성, 무결성, 보안성 유지

- 사용자 중심의 데이터 처리

- 데이터 표준화 적용 가능

- 데이터 접근 용이

- 데이터 저장 공간 공유로 인한 절약

 

DBMS 기능

- 정의 : 데이터에 대한 형식, 구조, 제약조건들을 명세하는 기능이다. 데이터베이스에 대한 정의 및 설명은 카탈로그나 사전의 형태로 저장된다.

- 구축 : DBMS가 관리하는 기억 장치에 데이터를 저장하는 기능이다.

- 조작 : 특정한 데이터를 검색하기 위한 질의, 데이터베이스의 갱신, 보고서 생성 기능 등을 포함한다.

- 공유 : 여러 사용자와 프로그램이 데이터베이스에 동시에 접근하도록 하는 기능이다.

- 보호 : 하드웨어나 소프트웨어의 오동작 또는 권한이 없는 악의적인 접근으로부터 시스템을 보호한다.

- 유지보수 : 시간이 지남에 따라 변화하는 요구사항을 반영할 수 있도록 하는 기능이다.

 

DBMS의 분류

DBMS의 유형은 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류됩니다. 현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지하며, MySQL도 관계형 DBMS에 포함됩니다.

 

계층형 DBMS

계층형 DBMS(Hierarchical DBMS)는 처음으로 등장한 DBMS 개념으로 1960년대에 시작되었습니다. 각 계층은 트리 형태를 갖습니다. 계층형 DBMS의 문제는 처음 구성을 완료한 후에 이를 변경하기가 어렵다는 것입니다. 또한 다른 구성원을 찾아가는 것이 비효율적입니다. 지금은 사용하지 않는 형태입니다.

 

망형 DBMS

망형 DBMS(Network DBMS)는 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 등장했습니다. 다음 그림을 보면 하위에 있는 구성원끼리도 연결된 유연한 구조입니다. 예를 들어 재무2팀에서 바로 회계팀으로 연결이 가능합니다. 하지만 망형 DBMS를 잘 활용하려면 프로그래머가 모든 구조를 이해해야만 프로그램 작성이 가능하다는 단점이 존재합니다. 역시 지금은 거의 사용하지 않는 형태입니다.

 

관계형 DBMS

관계형 DBMS(Relational DBMS)는 줄여서 RDBMS라고 부릅니다. MySQL뿐만 아니라, 대부분의 DBMS가 RDMBS 형태로 사용됩니다. RDBMS의 데이터베이스는 테이블(table)이라는 최소 단위로 구성되며, 이 테이블은 하나 이상의 열(column)과 행(row)으로 이루어져 있습니다.

RDBMS에서는 모든 데이터가 테이블에 저장됩니다. 이 구조가 가장 기본적이고 중요한 구성이기 때문에 RDMBS는 테이블로 이루어져 있으며, 테이블은 열과 행으로 구성되어 있다는 것을 파악했다면 RDMBS를 어느정도 이해했다고 할 수 있습니다.

 

NoSQL

: Not Only SQL의 약자로 기존의 관계형 데이터베이스 시스템의 주요 특성을 보장하는 ACID(Atomic, Consistency, Integrity, Duarabity) 특성을 제공하지 않는, 그렇지만 뛰어난 확장성이나 성능 등의 특성을 갖는 수많은 비관계형, 분산 데이터베이스들이 등장했고 NoSQL이라는 용어가 보편적으로 사용되었습니다.

 

소셜네트워크 서비스가 등장하면서 비정형데이터를 보다 쉽게 담아서 저장하고 처리할 수 있는 구조를 가진 데이터베이스들이 관심을 받게 되었습니다.

 

기존 관계형 데이터베이스와의 차이점

- 관계형 모델을 사용하지 않으며 테이블 간의 조인 기능 없음

- 직접 프로그래밍을 하는 등의 비SQL 인터페이스를 통한 데이터 액세스

- 대부분 여러 대의 데이터베이스 서버를 묶어서(클러스팅) 하나의 데이터베이스를 구성

- 관계형 데이터베이스에서는 지원하는 Data 처리 완결성(Transaction ACID 지원) 미보장

- 데이터의 스키마와 속성들을 다양하게 수용 및 동적 정의(Schema-less)

- 데이터베이스의 중단 없는 서비스와 자동 복구 기능지원

- 다수가 Open Source로 제공

- 확장성, 가용성, 높은 성능

 

NoSQL은 초고용량 데이터 처리 등 성능에 특화된 목적을 위해, 비관계형 데이터 저장소에, 비구조적인 데이터를 저장하기 위한 분산 저장 시스템이라고 볼 수 있습니다.

 

DBMS 종류

Oracle

- 오라클에서 만들어 판매중인 상업용 데이터베이스

- 윈도우, 리눅스, 유닉스 등 다양한 운영체제에서 설치 가능

- MySQL, MSSQL 보다 대량의 데이터 처리 용이

- 대기업에서 주로 사용하며, 글로벌 DB 시장 점유율 1위

- 비공개 소스, 폐쇄적인 운영

- 가장 널리 사용되는 RDBMS

 

MySQL

- MySQL 사에서 개발, 썬마이크로시스템즈를 거쳐 현재 오라클에서 인수합병

- 윈도우, 리눅스, 유닉스등 다양한 운영체제에서 설치 가능

- 오픈 소스로 이루어져있는 무료 프로그램(상업적 사용시 비용 발생)

- 가격 등의 장점을 앞세워 다수의 중소기업에서 사용 중

- RDMBS

 

MSSQL

- 마이크로소프트사에서 개발한 상업용 데이터베이스

- 다른 운영체제에서도 사용 가능하지만 윈도우에 특화됨

- 비공개 소스로 폐쇄적인 운영(리눅스 버전은 오픈소스)

- 중소기업에서 주로 사용 중

- RDBMS

 

MariaDB

- MySQL이 오라클에 인수합병된 후 불확실한 라이선스 문제를 해결하려고 나온 오픈소스 RDBMS

- 구현언어 : C++

- MySQL과 동일한 소스코드 기반

- MySQL과 비교해애플리케이션 부분 속도가 약 4~5천배 정도 빠름

 

 

 

 

참고 : https://m.blog.naver.com/sundooedu/221301384166

참고 : https://hongong.hanbit.co.kr/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-databasedb-dbms-sql%EC%9D%98-%EA%B0%9C%EB%85%90/

참고 : https://www.jobindexworld.com/contents/view/3325

참고 : http://www.incodom.kr/DBMS#h_fe488e85d814c6912ab78064cc65a7ed

댓글