데이터베이스 1: DB, DBMS, ORM 뜻, 정의, 개념, 종류, 유형

DBMS

이번 글에서는 데이터베이스의 기초와 DBMS, ORM 의 정의와 개념에 대하여 알아보겠습니다. 데이터베이스는 애플리케이션 개발에서 필수적인 존재인 만큼 데이터베이스, DBMS, ORM 의 이해가 중요합니다. 중요한 개념인 만큼 DBMS 종류, DBMS 유형 까지도 상세히 다룰 예정입니다.

데이터베이스 (Database, DB) 란?

데이터베이스 (Database, DB) 란, DB는 관련성을 가지며 중복이 없는 데이터들의 집합을 의미합니다. 이 집합에는 단어, 숫자, 이미지, 비디오 및 파일을 포함한 모든 유형의 데이터가 포함될 수 있습니다.

데이터베이스가 중요한 이유

데이터베이스는 서비스를 개발 및 운영할 때 아주 중요합니다. 데이터베이스가 중요한 이유는 다음과 같습니다.

데이터 무결성

데이터의 무결성을 유지하기에 용이합니다. 데이터 무결성 (Data Integrity) 이란, 데이터의 정확성과 일관성을 유지하고 보증하는 것을 의미합니다. 데이터베이스에는 일관성을 유지하기 위한 규칙 및 조건이 있는 경우가 많기 때문에, 데이터 무결성을 유지할 수 있습니다.

데이터 분석

데이터의 양이 방대한 빅 데이터의 시대에는 데이터베이스를 활용하여 데이터를 분석해야 합니다. 이렇게 데이터베이스를 통해 데이터를 분석한다면 데이터의 추세와 패턴을 파악하고 예측할 수 있습니다.

DBMS (Database Management System)

DBMS (Database Management System) 는 데이터베이스를 운영하고 관리하는 소프트웨어를 지칭합니다. 사용자는 DBMS를 통하여 데이터베이스에 접근하여 검색, 수정 등의 작업을 수행할 수 있습니다.

DBMS 는 전통적인 데이터베이스 접근 방법에 비해 데이터 접근이 용이하다는 장점이 있습니다.

DBMS 기능

DBMS의 대표적인 기능은 다음과 같습니다.

  • 정의 :
    • 데이터베이스에 저장될 데이터의 타입과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시할 수 있습니다.
  • 조작 :
    • 사용자가 데이터 검색, 삽입, 수정, 삭제 등의 작업을 수행할 때, 사용자와 데이터베이스 사이의 인터페이스 수단을 제공합니다.
  • 제어 :
    • 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어해야 합니다.
  • 보안 :
    • 정당한 사용자만 데이터베이스에 접근할 수 있도록 보안을 유지합니다. 또한, 사용자가 접근 할 수 있는 허가된 데이터에만 접근할 수 있도록 사용자의 권한을 확인하고 보안을 유지합니다.

DBMS 종류

개발자는 데이터의 종류나 규모, 그리고 애플리케이션의 목적에 따라 다른 DBMS 종류를 선택할 수 있습니다. 대표적인 DBMS 종류는 다음과 같습니다.

  • Oracle
  • MySQL
  • PostgreSQL
  • MSSQL
  • MariaDB

개발자는 어떠한 데이터를 저장하는가, 데이터의 규모는 어떠한가 등 다양한 점을 고려하여 DBMS 종류를 선택해야 합니다.

DBMS 유형

DBMS 는 계층형(Hierarchical), 망형(Network), 관계형(Relational) 등 다양한 DBMS 유형이 있습니다. 이 중에서는 관계형 DBMS 가 가장 일반적입니다.

1. 계층형 (Hierarchical)

계층적 DBMS (Hierarchical DBMS) 는 데이터 레코드를 트리 구조로 저장하는 데이터 모델입니다. 이 DBMS 유형에서는 두 데이터 간의 관계를 parent – child 와 같이 상하종속적으로 구성합니다.

상하종속적으로 관계를 생성하기 때문에 데이터 중복 없이는 여러 상위-하위 관계를 처리할 수 없어서 데이터 중복성이 생긴다는 단점이 있어서 지금은 잘 사용하지 않는 형태입니다.

2. 망형 (Network)

망형 DBMS (Network DBMS) 는 데이터 레코드를 네트워크상의 노드 형태로 표현한 데이터 모델입니다. 계층적 DBMS 와는 달리 각각의 데이터를 서로 대등한 관계로 구성합니다.

망형 DBMS 는 구성과 설계가 복잡하며, 데이터의 종속성이 생길 수 있기 때문에, 지금은 잘 사용하지 않는 형태입니다.

3. 관계형 (Relational)

관계형 DBMS(Relational DBMS, RDBMS) 는 가장 일반적인 DBMS 유형입니다. 이 DBMS 유형에서는 데이터 레코드를 연결하는 대신, 데이터를 여러 테이블 (table) 에 저장합니다. (각 테이블은 열 (column) 과 행 (row) 으로 이루어져 있습니다.)

다른 DBMS 유형보다 더 많은 자원을 사용하는 경우도 있지만, 유지보수가 편하고 생산성이 높아질 수 있기 때문에, RDBMS 는 가장 일반적으로 사용되는 DBMS 유형입니다.

ORM (Object Relational Mapping)

ORM (Object Relational Mapping) 은 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑 (연결) 해주는 프레임워크 (Framework) 입니다.

ORM 을 사용하는 개발자는 클래스 객체를 통해 간접적으로 데이터베이스 데이터에 접근합니다. 그러나 객체와 테이블 데이터는 완벽하게 일치하지 않을 수 있는데, 이 때 ORM 은 객체와 데이터베이스 데이터 간의 관계를 바탕으로 적절한 SQL 쿼리를 자동으로 생성합니다. 따라서 ORM 을 활용하면 전통적인 SQL 쿼리를 작성하지 않아도 데이터베이스의 데이터를 작업할 수 있습니다.

ORM 의 장단점

장점

1. 추상화

ORM 은 높은 수준의 추상화를 제공하기 때문에 데이터베이스와의 상호 작용을 단순합니다. 개발자는 SQL 쿼리가 아닌 개체 및 클래스로 데이터베이스 접근을 할 수 있어, 객체 지향 설계를 적용한 코드를 작성할 수 있습니다.

2. DBMS 의 종속성 감소

ORM 은 여러 데이터베이스 시스템을 지원하기 때문에 DBMS 의 종속성이 감소합니다. 이에, 개발자는 큰 코드 수정 없이 서로 다른 데이터베이스에 접근할 수 있습니다.

그렇기 때문에 DBMS 시스템이 변경되었을 때에도 유지 보수가 쉽습니다.

단점

1. 성능 문제

ORM 이 생성한 SQL 쿼리는 효율적이지 않은 경우도 있습니다. 이로 인해 리소스 사용량이 증가하고 응답 시간이 느려져서 데이터베이스의 성능에 부정적인 영향을 끼칠 수 있습니다.

2. 복잡성의 추가

데이터베이스와 어플리케이션 사이에 ORM 이라는 레이어를 추가하기 때문에 프로그램에 복잡성이 추가됩니다. 추가된 복잡성으로 인해서 데이터베이스 문제를 해결하는 데 더 많은 리소스가 필요할 수도 있습니다.

마치며

데이터베이스, DBMS ORM 은 데이터베이스에서 가장 기본적인 개념으로, 개발자의 기술 면접에서 자주 다루는 주제입니다. 어떤 DBMS 종류를 사용할지 결정하는 것은 실무에서도 아주 중요한 일이기 때문에 DB, DBMS ORM 에 대하여 꼼꼼하게 알고 이해하기를 바랍니다.

함께 읽으면 좋은 글

Reference

Leave a Comment