이번 글에서는 지난 글에 이어 데이터베이스를 한층 더 알아보는 시간을 가져보도록 하겠습니다.
DBMS 란?
지난 글에 잠깐 언급했던 DBMS입니다.
DBMS란 간단하게 데이터베이스를 생성, 관리, 운영하기 위한 소프트웨어입니다.
잠깐이라도 데이터베이스를 다뤄봤다면 MySQL, PostgreSQL등을 들어봤을 텐데 이것들이 속하게 됩니다.
DBMS를 이용한다면 사용자가 쉽게 데이터를 저장, 검색, 수정, 삭제를 할 수 있게 됩니다.
추가로 데이터의 일관성, 무결성, 보안등도 보장하게 됩니다.
즉, DBMS는 데이터베이스와 사용자(또는 애플리케이션) 간의 중재 역할을 수행한다고 보면 됩니다.
DBMS의 특징
데이터 무결성
- 정확성, 일관성, 유효성을 보장
- 무결성 제약 조건을 통해 잘못된 데이터 입력을 방지
데이터 보안
- 사용자 인증 및 권한 관리를 통해 데이터 접근 제어
- 데이터 암호화 및 감사 기능을 통해 데이터 보호
데이터 독립성
- 데이터 구조가 변경되더라도 애플리케이션에 영향을 최소화
- 물리적 독립성
- 데이터 저장 방식이 변경되더라도 논리적 데이터 구조는 유지
- 논리적 독립성
- 데이터 구조 변경시, 애플리케이션 코드는 변경되지 않음
데이터 중복 최소화
- 데이터를 한 번만 저장하고 필요시 참조하여 중복을 최소화
다중 사용자 지원
- 여러 사용자가 동시에 데이터를 읽거나 수정할 수 있도록 지원
- 동시성 제어를 통해 데이터 충돌 및 불일치를 방지
트랜잭션 관리
- 데이터 작업 단위를 트랜잭션으로 처리
- ACID 속성을 보장 (추후에 다루도록 하겠습니다.)
데이터 검색 및 조작
- SQL 같은 표준화된 쿼리 언어를 통해 데이터 검색, 삽입, 수정, 삭제 가능
단, RDBMS에 해당됩니다.
데이터 백업 및 복구
- 데이터 손실이나 시스템 장애 발생 시 데이터를 복구할 수 있는 기능 제공
확장성 및 성능 최적화
- 대규모 데이터와 사용자 수 증가에도 대응 가능
- 인덱스, 캐싱, 파티셔닝 등을 통해 성능 최적화
RDBMS 란
RDBMS는 관계형 데이터베이스 관리 시스템입니다.
즉, 관계형 데이터베이스를 관리하는 소프트웨어라는 것입니다.
RDBMS의 특징은 위에서 알아봤던 DBMS의 특징을 그대로 가지고 있습니다.
따라서 장점과 단점에 대해서 알아보도록 하겠습니다.
RDBMS의 장점 👍
데이터 관리 용이성
- 데이터를 구조화된 방식으로 저장하기 때문에 관리하기 쉽고 검색이 효율적입니다.
데이터 무결성 및 보안
- 제약 조건과 권한 관리를 통해 데이터 무결성과 보안을 유지합니다.
표준 쿼리 언어 사용
- SQL이라는 표준 언어를 사용해 데이터 조작 및 관리합니다.
확장성
- 데이터 양이 증가하더라도 성능을 유지하면서 확장 가능합니다.
복잡한 관계 데이터 처리
- 여러 테이블 간 관계를 정의하고 데이터를 조작할 수 있습니다.
RDBMS의 단점 👎
복잡성 증가
- 데이터가 매우 복잡하거나 비정형(JSON, XML..)인 경우 처리에 한계
확장성 제한
- 데이터가 수평적으로 확장(Sharding)되기 어려우며, NoSQL 보다 확장성이 떨어집니다.
'CS > 데이터베이스' 카테고리의 다른 글
SQL 이란? (0) | 2025.01.07 |
---|---|
MySQL과 InnoDB (1) | 2025.01.03 |
키는 뭘까? (0) | 2025.01.02 |
데이터베이스를 알아보자 (0) | 2025.01.02 |
파일시스템과 데이터베이스 (0) | 2025.01.01 |