DB

[Database] 데이터베이스 기본 개념

ayeongjin 2025. 10. 10. 19:01

데이터베이스란?

데이터베이스는 데이터를 체계적으로 관리하고 저장하는 구조화된 공간이다.

과거에는 데이터를 파일로 직접 관리했지만, 데이터가 많아질수록 검색, 수정, 중복 관리가 어려워졌고, 데이터를 효율적으로 다루기 위해 데이터베이스 시스템이 등장했다.

 

 

DBMS (Database Management System)

데이터를 한 곳에 모아 관리하고, 여러 사용자가 접근하여 데이터를 저장/수정/조회할 수 있도록 하는 응용 소프트웨어

데이터 복구/보안/동시 접근 제어 등의 기능을 제공한다.

 

 

 

 

DBMS 장점

  • 데이터 중복 최소화
  • 데이터 공유 (일관성 유지)
  • 정합성, 무결성, 보안성 유지
  • 사용자 중심의 데이터 처리
  • 데이터 표준화 적용 가능
  • 데이터 접근 용이
  • 데이터 저장 공간 공유로 인한 절약

 

 

 

DBMS 기능

  • 정의 데이터에 대한 형식, 구조, 제약조건들을 명세하는 기능. 데이터베이스에 대한 정의 및 설명은 카탈로그나 사전의 형태로 저장
  • 구축 DBMS가 관리하는 기억장치에 데이터를 저장하는 기능
  • 조작 특정한 데이터를 검색하기 위한 질의, 데이터베이스의 갱신, 보고서 생성 기능 등을 포함
  • 공유 여러 사용자와 프로그램이 데이터베이스에 동시에 접근하도록 하는 기능
  • 보호 하드웨어나 소프트웨어의 오동작 또는 권한이 없는 악의적인 접근으로부터 시스템 보호
  • 유지보수 시간이 지남에 따라 변화하는 요구사항을 반영할 수 있도록 하는 기능

 

 

 

DBMS의 유형

계층형(Hierachical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류

현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지하고, MySQL도 관계형 DBMS에 포함된다.

 

 

 

 

계층형 DBMS (Hierarchical DBMS)

1960년대 IBM의 IMS(Information Management System)가 대표적인 예로, 트리(Tree) 구조 형태로 데이터를 저장한다.

부모-자식 관계가 명확하지만, 구조 변경이 어렵고 다른 데이터를 탐색하기 비효율적이라는 단점이 있어서 지금은 사용하지 않는 형태이다.

 

 

 

망형 DBMS (Network DBMS)

계층형 DBMS의 문제점을 개선하기 위해 1970년대에 등장했으며, 하위에 있는 구성원끼리도 연결된 유연한 구조로 개선되었다.

하지만 망형 DBMS를 잘 활용하려면 프로그래머가 모든 구조를 이해해야만 프로그램 작성이 가능하다는 단점이 있고 지금은 사용하지 않는 형태이다.

 

 

 

관계형 DBMS (Relational DBMS)

줄여서 RDBMS 라고 부른다. MySQL 뿐만 아니라 대부분의 DBMS가 RDBMS의 형태로 사용된다.

이 시스템은 데이터 간의 관계를 하나 이상의 열과 행으로 이루어진 테이블 형식으로 관리하며, SQL을 사용하여 데이터를 처리한다.

 

 

장점

  • 데이터의 분류, 정렬, 탐색 속도가 빠르다.
  • 데이터 무결성: 테이블 간의 관계를 외래키로 연결해, 데이터의 일관성과 참조 무결성을 강력하게 유지한다.
  • SQL 지원: 표준화된 쿼리 언어 제공
  • 보안 및 ACID 지원: 높은 보안성과 원자성, 일관성, 격리성, 지속성 보장

 

단점

  • 확장성 제한: 수직 확장에 한계가 있다.
  • 복잡한 스키마: 스키마 변경이 어렵고 유연성이 부족한다.
  • 데이터베이스의 부하를 분석하는 것이 어렵다

 

DB 종류

Oracle
오라클에서 만들어 판매중인 상업용 데이터베이스 윈도우, 리눅스, 유직스 등 다양한 운영체제에서 설치 가능 MySQL, MSSQL 보다 대량의 데이터 처리 용이 대기업에서 주로 사용하며, 글로벌 DB 시장 점유율 1위 비공개 소스, 폐쇠적인 운영 가장 널리 사용되는 RDBMS
MySQL
MySQL사에서 개발, 썬마이크로시스템즈를 거쳐 현재 오라클에서 인수합병 윈도우, 리눅스, 유닉스 등 다양한 운영체제에서 설치 가능 오픈 소스로 이루어져있는 무료 프로그램 (상업적 사용시 비용 발생) 가격 등의 장점을 앞세워 다수의 중소기업에서 사용 중 RDBMS
MariaDB
MySQL이 오라클에 인수합병된 후 불확실한 라이선스 문제를 해결하려고 나온 오픈소스 RDBMS MySQL과 동일한 소스코드 기반으로 하며, 일부 쿼리나 트랜잭션 처리에서 성능이 향상되었다.
PostgreSQL
고급 기능과 ACID 준수 특성을 가진 오픈소스 데이터베이스

 

 

 

NoSQL

2000년대 이후 빅데이터와 클라우드 컴퓨팅의 등장으로 비정형 데이터를 보다 쉽게 담아서 저장하고 처리할 수 있는 구조를 가진 데이터베이스들이 관심을 받게 되었다.

Not Only SQL의 약자로, 대부분의 NoSQL은 ACID(Atomic, Consistency, Isolation, Durability) 대신 BASE(Basically Available, Soft state, Eventually consistent) 모델을 따른다.

즉, 일관성보다 확장성과 가용성을 우선시한다.

스키마리스 구조, 분산 저장, 높은 확장성을 제공하여 대규모 데이터 처리에 적합한 시스템으로 부상했다.

문서, 키-값, 그래프, 열 기반 저장소 등의 다양한 데이터 모델을 지원한다.

 

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

  • 관계형 모델을 사용하지 않으며 테이블 간의 조인 기능 없음
  • 직접 프로그래밍을 하는 등의 비SQL 인터페이스를 통한 데이터 엑세스
  • 대부분 여러 대의 데이터베이스 서버를 묶어서(클러스팅) 하나의 데이터베이스를 구성
  • 관계형 데이터베이스에서는 지원하는 Data 처리 완결성(Transaction ACID 지원 미보장)
  • 데이터의 스키마와 속성들을 다양하게 수용 및 동적 정의(Schema-less)
  • 데이터베이스의 중단 없는 서비스와 자동 복구 기능 지원
  • 다수가 Open Source로 제공

 

장점

  • 높은 확장성: 수평 확장을 통해 대규모 데이터 처리가 가능하다.
  • 유연한 데이터 모델: 다양한 형식의 데이터를 저장할 수 잇다.
  • 빠른 데이터 처리: 캐싱 및 분산 처리로 빠른 데이터 접근이 가능하다.

 

단점

  • 데이터 일관성 문제: 분산 시스템의 특성상 일관성을 완벽히 유지하기 어려울 수 있다.
  • 표준화 부족: 쿼리 언어가 표준화되지 않았고, DBMS 마다 차이가 크다.

 

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

 

 

DB 종류

MongoDB
문서 지향 데이터베이스로, JSON 유사 문서 형식 사용
Cassandra
분산형 NoSQL 데이터베이스
높은 확장성과 가용성 제공
Redis
키-값 저장소로, 빠른 데이터 접근을 위해 메모리 기반으로 동작
Elasticsearch
분산형 검색 및 분석 엔진
실시간 검색과 분석을 위한 JSON 문서 저장
Neo4j
그래프 데이터베이스로, 노드와 관계로 데이터 모델링을 지원

 

 

 

 

RDBMS와 NoSQL 선택시 고려해야할 항목

 

  1. 데이터 구조
    • RDBMS는 정형화된 테이블 구조가 필요할 때 유리
    • NoSQL은 유연한 스키마가 필요할 때 적합
  2. 확장성
    • RDBMS: 수직 확장(서버 성능 향상)을 통해 확장
    • NoSQL: 수평 확장(서버 추가)을 통해 확장
  3. 일관성 및 트랜잭션
    • RDBMS: 강력한 ACID 속성 제공
    • NoSQL: 일관성 대신 가용성 및 파티션 허용성 중시
  4. 성능 요구
    • RDBMS: 복잡한 쿼리와 조인이 필요한 경우 유리
    • NoSQL: 높은 처리량과 낮은 지연시간이 중요한 경우 유리

 

 

ex)

 

RDBMS

  • 은행시스템 : 고객 정보, 계좌 정보 등 정형화된 데이터를 관리하고, 트랜잭션의 일관성이 매우 중요하다. 예를들어 고객의 입출금 기록을 정확하게 관리하는 데 RDBMS가 적합

 

NoSQL

  • 소셜 미디어 플랫폼: 사용자 생성 콘텐츠, 친구 관계, 활동 로그 등 다양한 형태의 비정형 데이터 처리. 빠른 읽기/쓰기 성능이 요구되며, 데이터 구조가 자주 변할 수 있는 환경에 적합
  • 로그 분석 및 검색: 대량의 로그 데이터를 실시간으로 수집하고 검색하여 문제를 신속하게 진단하는데 사용. 예를 들어 서버 로그의 검색 및 분석을 통해 오류를 추적

 

 

 


참고

https://hongong.hanbit.co.kr/데이터베이스-이해하기-databasedb-dbms-sql의-개념/

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

https://www.incodom.kr/DBMS#h_fe488e85d814c6912ab78064cc65a7ed

https://hahahoho5915.tistory.com/88

'DB' 카테고리의 다른 글

[DataBase/MySQL] MySQL 문법 정리  (2) 2025.12.04
[Database/DBMS] 트랜잭션과 ACID  (3) 2025.10.11