DBMS vs RDBMS의 차이점에 대한 이해
DBMS vs RDBMS의 차이점에 대한 이해

DBMS vs RDBMS의 차이점에 대한 이해

Tags
Node.js
Database
Published
January 16, 2024
Author
gozneokhan

DBMS(Database Management System)란?

  • 데이터베이스를 관리하는 시스템으로, 사용자의 요구에 따라 데이터를 생성 및 관리하는 소프트웨어입니다.
  • 데이터는 계층 또는 탐색 형식으로 저장되며 파일 시스템을 사용하여 저장됩니다. 따라서 테이블 간에 관계가 없습니다.
  • 많은 보안을 제공하지 않고, 정규화를 수행할 수 없어 데이터에 높은 중복성이 발생할 수 있습니다.
  • XML, sybase, dbase, Microsoft Access 등

RDBMS(Relational Database Management System)란?

  • RDB(관계형 데이터 모델)를 기반으로 하며, 2차원의 테이블 형태로 데이터를 생성, 수정, 관리할 수 있는 소프트웨어입니다.
  • 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성, 및 관리할 수 있습니다.
  • 정규화를 통해 데이터 중복성을 최소화하며, Transaction 수행이 더 용이합니다.
  • ACID 속성을 유지하여 데이터 무결성을 강화합니다.
  • MySQL,MSSQL,Oracle 등

DBMS와 RDBMS의 차이점

특징
DBMS
RDBMS
스토리지
데이터를 파일로 저장함
데이터는 테이블 형태로 저장됨
데이터베이스 구조
탐색 또는 계층적 형태로 데이터 저장
헤더는 열 이름이고 행에 해당 값이 포함되는 테이블 형식 구조
사용자 수
단일 사용자 지원
여러 사용자를 지원
ACID
ACID 모델을 완전히 지원하지 않음
ACID 모델을 지원 (Atom정확성, 일관성, 격리성, 내구성)
프로그램 유형
컴퓨터 네트워크와 시스템 하드디스크에 데이터베이스를 관리하는 프로그램
테이블 간의 관계를 유지하는 데 사용되는 데이터베이스 시스템
하드웨어 및 소프트웨어 요구 사항
소프트웨어 및 하드웨어 요구 사항이 낮음
높은 하드웨어 및 소프트웨어 요구 사항
무결성 제약
무결성 상수를 지원하지 않음
스키마 수준에서 무결성 제약 조건을 지원
분산 데이터베이스
분산 데이터베이스를 지원하지 않음
분산 데이터베이스를 지원
적합성
소량의 데이터를 처리하는데 적합
대량의 데이터를 처리하는데 적합
클라이언트 서버
클라이언트-서버 아키텍처를 지원하지 않음
클라이언트-서버 아키텍처를 지원
데이터 가져오기
데이터 가져오기 속도가 느림 (복잡하고 많은 양의 데이터)
데이터 가져오기가 빠름 (관계형 접근 방식)
데이터 중복
데이터 중복이 일반적
키와 인덱스는 데이터 중복성을 허용하지 않음
데이터 관계
데이터 사이에 관계가 없음
데이터는 외래 키를 사용하여 서로 관련된 테이블 형식으로 저장
보안
보안이 없음
다양한 수준의 보안. 로그 파일은 OS, 명령 및 개체 수준에서 생성
데이터 접근
데이터 요소는 개별적으로 액세스해야 함
SQL 쿼리를 사용하여 쉽게 데이터에 접근 가능. 여러 데이터 요소에 동시 액세스 가능
예시
파일 시스템, XML, Windows 레지스트리 등
MySQL, Oracle, SQL Server 등

ACID 속성

A - Atomocity (원자성)

트랜잭션이 원자 단위로 수행되어야 하며, 전체가 수행되거나 전혀 수행되지 않아야 합니다.

C - Consistency (일관성)

트랜잭션이 완료된 후에도 데이터베이스는 일관된 상태를 유지해야 합니다.

I - Isolation (고립성)

여러 트랜잭션이 동시에 실행 중일 때 각각의 트랜잭션은 다른 트랜잭션의 영향을 받지 않아야 합니다.

D - Durability (지속성)

트랜잭션이 성공적으로 완료된 경우 그 결과는 영구적으로 반영되어야 하며 시스템 장애가 발생하더라도 지속되어야 합니다.

글을 마치며

DBMS와 RDBMS의 차이에 대한 학습을 통해 단순한 데이터 저장과 관리를 넘어 데이터의 논리적 구조와 효율적인 관리 방법을 이해하게 되었습니다. 특히 RDBMS에서는 테이블 간의 관계를 통해 데이터를 조직하고 정규화하여 중복성을 줄이는 등, 데이터의 일관성과 무결성을 유지하는 방법을 배웠습니다.
ACID 속성에 대한 이해는 트랜잭션 처리의 핵심 개념으로, 데이터베이스가 안정적으로 동작하고 데이터의 무결성을 보장하기 위한 필수적인 원칙임을 깨달았습니다. 원자성, 일관성, 고립성, 지속성을 통해 안정적인 트랜잭션 처리가 가능하다는 것을 이해하는 동시에, 이러한 속성이 프로젝트의 성패에 어떠한 영향을 미칠 수 있는지에 대해 고찰하게 되었습니다.
데이터베이스 시스템을 선택할 때는 프로젝트의 특성과 목표를 고려해야 한다는 것을 인지했습니다. DBMS와 RDBMS의 선택은 데이터의 복잡성과 처리량에 따라 달라지며, 이러한 선택이 데이터의 효율적인 활용과 유지 보수에 큰 영향을 미칠 수 있음을 깨달았습니다.
이러한 데이터베이스 관리에 대한 지식은 소프트웨어 개발 및 데이터 기반 의사 결정에 있어서 필수적인 기반 지식이라고 생각합니다. 앞으로의 프로젝트에서는 이러한 원칙과 지식을 적절히 활용하여 안정적이고 효율적인 데이터 관리를 실현해 나가고 싶습니다.

Reference