발전하는 춘배

DB와 DBMS가 무엇인지 알아보자 (File System vs DBMS) 본문

database

DB와 DBMS가 무엇인지 알아보자 (File System vs DBMS)

춘배0 2024. 8. 31. 14:50

개요

프로젝트를 진행하던 중 굳이 DBMS를 사용하지 않고 파일 시스템만으로 데이터베이스를 구축할 수 있지 않을까? 라는 생각이 잠깐 들었다.
DB와 DBMS의 개념을 정리해보고, 파일 시스템 대신 DBMS를 사용하는 이유를 알아본다.


DB

DB는 DataBase의 약자로, 여러 사람이 공유하여 사용할 목적으로 통합 관리되는 정보의 집합이다. 논리적으로 연관이 있는 자료들의 내용을 구조화함으로써 삽입, 검색, 수정, 삭제, 정렬 등의 효율화를 달성할 수 있다.
즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 저장해 놓은 자료의 집합체라고 할 수 있다.

특징

  • 실시간 접근성: 사용자가 필요로 할 때 언제든지 데이터를 검색하고 수정할 수 있도록 실시간으로 접근 가능하다.
  • 지속적인 변화: 데이터의 무결성과 일관성을 유지하며 지속적으로 새로운 데이터가 추가되거나 기존 데이터가 수정될 수 있다.
  • 동시 공유: 여러 사용자가 동시에 데이터베이스에 접근할 때 작업을 효과적으로 관리하여 데이터 충돌이나 불일치를 방지한다.
  • 내용에 대한 참조: 데이터의 저장 위치가 아니라 데이터의 내용에 따라 데이터를 찾고 사용한다.
  • 데이터의 논리적 독립성: 데이터의 논리적 구조가 변경되더라도 데이터베이스를 사용하는 응용 프로그램에 영향을 주지 않는다.

장점

  • 데이터 중복 최소화
  • 데이터 공유
  • 일관성, 무결성, 보안성 유지
    • 일관성: 어떤 트랜잭션이 실행된 후에도 데이터가 일관된 상태로 유지된다. 예를 들어 금융 서비스에서, 이체가 진행되면 송금한 계좌의 잔액 감소와, 수신한 계좌의 잔액 증가가 정확히 반영된다.
    • 무결성: 데이터베이스 내의 데이터가 정확하고 신뢰할 수 있는 상태로 유지된다. 여러 제약 조건을 통해 데이터를 항상 valid한 상태로 유지할 수 있다. 예를 들어, 어떤 유저의 생년월일을 미래의 시점이 될 수 없게끔 제약 조건을 걸 수 있다.
    • 보안성: 사용자 인증, 권한 부여, 데이터 암호화 등을 통해 데이터베이스에 대한 부적절한 접근 및 조작을 방지할 수 있다.
  • 최신의 데이터 유지
  • 데이터의 표준화 가능
  • 데이터의 논리적, 물리적 독립성
  • 용이한 데이터 접근
  • 데이터 저장 공간 절약

단점

  • 데이터베이스 전문가 필요
  • 많은 비용 부담
  • 데이터 백업과 복구가 어려움
  • 시스템의 복잡함
  • 대용량 디스크로 엑세스가 집중되면 과부하 발생

DBMS

DBMS는 DataBase Management System의 약자이다. 말 그대로 데이터베이스를 관리하는 소프트웨어를 뜻한다.
데이터베이스는 데이터의 집합을 의미하니까, DBMS는 결국 데이터의 집합을 다루는 소프트웨어를 의미한다.

주요 기능

DBMS는 데이터베이스가 갖춰야 할 특징들을 유지시켜준다고 볼 수 있다.

  • 데이터 정의: 테이블을 생성하고, 필드를 정의하며, 데이터의 유형을 지정하는 등 데이터베이스의 스키마를 관리한다.
  • 데이터 조작: 데이터를 삽입, 검색, 수정, 삭제하는 기능을 제공한다.
  • 데이터 보안: 데이터에 대한 접근 권한을 관리하여, 사용자가 자신의 권한에 맞는 데이터만을 접근하고 수정할 수 있도록 한다.
  • 데이터 무결성: 데이터베이스 내의 데이터가 정확하고 일관성 있게 유지되도록 다양한 제약 조건을 설정하고, 데이터의 무결성을 보장한다.
  • 데이터 백업 및 복구: 시스템 오류, 데이터 손실 등의 상황에서 정기적인 데이터 백업 기능을 제공한다.
  • 동시성 제어: 여러 사용자가 동시에 데이터베이스에 접근할 때 발생할 수 있는 문제들을 관리한다.

분류

DBMS는 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류할 수 있다.

  • 계층형
  • https://www.geeksforgeeks.org/difference-between-hierarchical-and-relational-data-model/
    처음 등장한 DBMS 개념으로 트리 형태이다. 구성 변경이 쉽지 않고 다른 데이터를 접근하는 것이 비효율적이라 지금은 잘 사용되지 않는다.
  • 관계형
  • https://www.geeksforgeeks.org/difference-between-hierarchical-and-relational-data-model/
    대부분의 DBMS는 관계형 DBMS이다. 하나 이상의 행과 열을 가진 테이블들로 구성된다.

File System vs DBMS

파일 시스템으로 DB를 구축하는 것과 DBMS는 근본적으로 같지만, 위에서 언급한 DBMS의 기능들 덕분에 데이터들을 다루기 훨씬 간단하교 효율적인 것은 DBMS이다.
적은 수의 데이터를 다루는 경우 파일로 저장해서 직접 관리하는 것이 더 좋을 수도 있지만, 데이터가 많아지고 복잡해질 수록 DBMS가 훨씬 유리하다.

  • DBMS는 데이터의 중복을 자체적으로 방지해준다.
  • DBMS에는 백업 기능이 내장 되어있다.
  • DBMS는 자체적으로 보안 기능들을 제공해준다.
  • DBMS를 통해 동시에 여러 유저가 접근할 수 있다.
  • 파일 시스템이 DBMS에 비해 덜 복잡하긴 하다.

쉽게 말하면, DBMS는 데이터를 최대한 효율적이고 편리하게 다룰 수 있도록 만들어진 소프트웨어이다.
이전의 훌륭한 개발자들이 시간과 영혼을 투자해서 만든 것이다.
DBMS 대신 파일 시스템을 사용하겠다는 것은, 이러한 편리성을 포기하겠다는 것이다. 물론 본인이 필요로 하는 기능만을 커스텀해서 최적으로 만들 수 있겠지만, 그럴 시간에 DBMS 다루는 법을 배워서 사용하는 것이 더 효율적일 것이다.
굳이 파일 시스템을 사용한다는 것은 C++ 대신 기계어로 코딩하겠다는 것과 결이 같다고 생각한다.


참고 자료

DB

DBMS

파일 시스템 vs DBMS