개발블로그

[데이터베이스와 DBMS 기초] 데이터베이스와 DBMS 본문

STUDY/SQL

[데이터베이스와 DBMS 기초] 데이터베이스와 DBMS

devmel 2026. 7. 27. 21:04
Contents 접기
 

데이터란?

 

현실에서 발생한 사실이나 값을 기록한 것

서비에서 관리하는 값 

 

 ex)  쇼핑몰에는 다음과 같은 데이터가 존재

회원 이름: 아무개
회원 이메일: user@example.com
상품명: 무선 키보드
상품 가격: 50,000원
주문 수량: 2개
주문 일시: 2026-07-27 13:30:00

 


 

데이터베이스란?

 

개념

여러 데이터를 일정한 구조에 따라 저장하고, 필요할 때 조회하거나 변경할 수 있도록 구성한 데이터의 집합

서로 관련된 데이터를 일정한 기준에 따라 정리하고 관리할 수 있어야 함.

=> 데이터를 단순히 보관하는 것을 넘어, 데이터를 체계적으로 검색하고 변경할 수 있도록 구성 

 

특징

특징 설명
실시간 접근성  비정형인 조회에 대하여 실시간 처리에 의한 응답이 가능해야 함
지속적인 변화 새로운 데이터의 삽입, 삭제, 갱신으로부터 항상 최신의 데이터를 유지해야 함
동시 공용 다수의 사용자가 동시에 같은 데이터를 이용할 수 있어야 함
내용에 의한 참조 데이터 레코드의 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터 내용으로 찾는다

 


 

DBMS 란
(Database Management System)

개념

데이터베이스를 생성하고 저장된 데이터를 조회 ·변경 ·관리할 수 있도록 해주는 소프트웨어 

애플리케이션
    ↓ 데이터 작업 요청
DBMS
    ↓ 데이터 읽기·쓰기
데이터베이스

 

주요 역할

역할 설명
데이터 구조를 정의 테이블과 컬럼 구조를 정의할 수 있음
데이터를 저장하고 조회  애플리케이션이 전달한 SQL을 해석하여 데이터를 저장하거나 조회
(개발자는 실제 데이터 파일의 위치나 저장 형식을 직접 처리하지 않아도 됨)
데이터를 수정하고 삭제 조건에 맞는 데이터를 찾아 변경하고, 변경된 내용을 실제 저장 공간에 반영
데이터의 정확성을 유지 잘못된 데이터가 저장되지 않도록 규칙을 설정할 수 있음 

ex) email VARCHAR(255) NOT NULL UNIQUE
여러 사용자의 동시 접근을 처리 트랜잭션과 락 등의 기능을 제공하여 동시에 발생하는 데이터 변경을 안전하게 처리할 수 있도록 도움
데이터 접근 권한을 관리  사용자별로 권한을 제한할 수 있음 
데이터의 백업과 복구를 지원  지원하는 복구 기능
- 데이터베이스 백업
- 변경 로그 기록
- 장애 발생 전 시점으로 복구
- 복제 서버를 이용한 데이터 보관
- 트랜잭션 실패 시 이전 상태로 되돌리기 

 

DBMS가 SQL을 처리하는 과정 

  1. 애플리케이션이 SQL 요청
  2. DBMS가 SQL 문법 확인
  3. 실행 방법 결정
  4. 필요한 데이터 읽기  또는 변경
  5. 처리 결과 반환

 

파일 시스템 VS DBMS

파일 자체를 저장하고 전달하는 것이 목적
→ 파일 시스템 또는 객체 스토리지

파일 내부의 값을 검색·수정하거나
다른 데이터와 관계를 관리하는 것이 목적
→ DBMS

파일 원본과 구조화된 관리 정보가 모두 필요
→ 파일 저장소와 DBMS를 함께 사용

판단 기준파일 시스템DBMS
저장 단위 파일 전체 행과 컬럼
주요 작업 파일 열기·다운로드·전달 조건 검색·추가·수정·삭제
내부 데이터 검색 거의 하지 않음 자주 필요함
데이터 관계 단순하거나 없음 여러 데이터가 연결됨
동시 수정 거의 없음 여러 요청이 동시에 수정
중복 방지 애플리케이션에서 처리 제약조건으로 처리 가능
트랜잭션 제공하지 않음 제공함
대표 데이터 이미지·영상·문서 회원·주문·결제·재고

 

대표적인 DBMS

데이터를 표현하고 저장하는 방식에 따라 나뉨

실제 서비스에서는 하나의 DBMS만 사용하지 않을 수 있도 있음

종류 개념 대표적 적합한 경우
관계형 DBMS 데이터를 행과 컴럼으로 구성된 테이블에 저장하고, 테이블 사이의 관계를 이용해 관리

단점)
- 덜 유연함 → 데이터 스키마를 사전에 계획하고 알려야 함 
- MySQL
- MariaDB
- PostgreSQL
- Oracle Database
- Microsoft SQL Server
- SQLite
- 데이터 구조가 명확함
- 데이터 간 관계가 중요
- 중복된 잘못된 데이트를 제한해야 한다
- 여러 작업의 일관성이 중요
- 다양한 조건과 JOIN으로 조회
문서형 DBMS 데이터를 테이블의 행이 아니라 문서 형태로 저장
- 스키마, 관계 등이 없음
- 레코드 = 문서 => JSON과 비슷한 구조를 가짐 
- 테이블을 나누어 담지 않고 관련 데이터를 동일한 컬렉션에 넣는다 

장점)
- 유연함 → 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능
- 데이터는 애플리케이션이 필요로 하는 형식으로 저장됨 → 데이터 읽어오는 속도 빨라짐
- 수직 및 수평 확장이 가능해서 애플리케이션이 발생하는 모든 읽기/쓰기 요청 처리 가능

단점)
- 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있다
- 데이터 중복을 계속 업데이트 해야 함
- MongoDB - 데이터 구조가 자주 변경됨
- 데이터마다 포함하는 필드가 조금씩 다름

키-값 DBMS 데이터를 주로 메모리에 저장

- 주요 사용 사례
: 캐시, 세션, 인증 코드, 요청 제한, 실시간 카운터, 인기 검색어, 순위표, 메세지 큐 보조 
- MySQL을 완전히 대체하기보다 함께 사용 
- Redis  
그래프 DBMS 데이터를 노드와 관계로 표현 

ex)
사용자 A ── 팔로우 ──> 사용자 B
사용자 B ── 좋아요 ──> 게시글 C
사용자 A ── 친구 ───> 사용자 D
- Neo4j - 관계를 여러 단계로 탐색
(연결 관계를 깊게 탐색하는 작업)

컬럼형 DBMS 대량 데이터를 빠르게 집계하고 분석하기 위함
ex) 수억 건에서 날짜별 매출 합계 계산 
- ClickHouse