top

상세 컨텐츠

본문 제목

데이터베이스 이론

기획/데이터 분석

by PO/PM-Sky 2025. 4. 16. 19:45

본문

thumbnail

목차
  • 1. 데이터베이스의 기능
    • 1-1) 데이터의 검색
    • 1-2) 데이터의 갱신
    • 2) 동시성 제어
    • 3) 장애 대응
    • 4) 보안
  • 2. 데이터베이스의 종류 + SQL 이란
  • 3. SQL 이란?

데이터베이스 이론 | 
1. 데이터베이스의 기능

데이터베이스라는 개념은 수첩, 주소록처럼 익숙한 정보 저장 형태에서 시작되었다.

우리가 흔히 듣는 "DB 어떤 거 써보셨어요?"라는 질문은 실제로는 DBMS(Database Management System, 데이터베이스 관리 시스템)를 의미하며,

이 시스템 안에는 데이터를 저장하는 데이터베이스가 존재한다.

현재 나는 MySQL을 사용하고 있으며, 데이터 분석 입문 과정에서 SQL을 학습 중이다.

 

 

데이터베이스의 기본 기능 :

1-1) 데이터의 검색 (SELECT)

데이터베이스의 가장 기본적이면서도 핵심적인 기능은 바로 '검색'이다. 

검색은 "질의(Query)", 또는 "데이터 추출"이라고도 한다.



예를 들어 수첩 전화번호부에서 '김'씨 성을 가진 사람들을 찾고 싶다면 ㄱ 인덱스를 기준으로 원하는 정보를 찾는 것이 일종의 데이터 검색이라 할 수 있다.
 
Q. 주소록에서 김씨 성을 가진 사람들의 데이터만 가져오는 쿼리

SELECT *

FROM 주소록

WHERE 이름 LIKE '김%'
 
Q. 주소록에서 ‘서울시’에 사는 사람들의 데이터만 가져오는 쿼리

SELECT *

FROM 주소록

WHERE 주소 LIKE '서울시%'

 

 

1-2) 데이터 갱신 (INSERT / UPDATE / DELETE)

데이터베이스는 데이터를 단순히 검색하는 것뿐 아니라, 

등록(INSERT), 수정(UPDATE), 삭제(DELETE)도 가능해야 한다. 이 세 가지를 묶어 갱신(Update) 기능이라고 한다.
 
●  새로운 데이터를 '추가'하는 쿼리

INSERT INTO 주소록 VALUES ('정연','010-XXXX-XXXX','서울시 광진구 ㅇㅇㅇ','트와이스 멤버')

 

●  특정 데이터를 '수정'하는 쿼리

UPDATE 주소록 SET 주소 = '경기도 성남시 OOO' WHERE 이름 = '홍길동'

 

●  특정 데이터를 '제거'하는 쿼리

DELETE FROM 주소록 WHERE = '홍길동'

->제거는 한 행이 없어지는 거임

 

※ 데이터베이스의 기본 기능을 도표로 정리하자면 아래와 같다.

입문반 과정에서는 이 중에서도 질의(SELECT)에 대해 배운다.

 

 

2) 동시성 제어

여러 사용자가 동시에 데이터베이스에 접근하는 상황에서도, 데이터가 충돌 없이 안전하게 처리되어야 한다. 

예를 들어 A 사용자가 어떤 데이터를 작성하고 있는 동안 B 사용자가 접근할 때 다음과 같은 상황이 발생할 수 있다.

 

  1. B는 파일을 열 수 없음
  2. B는 읽을 수 있지만 수정은 불가능
  3. B도 동시에 수정 가능 (이 경우를 Dirty Write라고 한다)

대부분의 데이터베이스는 1번 또는 2번 방식으로 동시성 제어를 수행한다.

 

 

3) 장애 대응

데이터베이스는 장애 상황에도 안정적으로 데이터를 보존해야 한다. 

이를 위해 데이터를 여러 장소에 분산 저장하거나 백업을 진행한다.


예를 들어 구글과 같은 대규모 서비스는 한 컴퓨터에만 데이터를 저장하지 않고, 

동일한 정보를 여러 대의 서버에 나눠 저장하며, 이는 전 세계 다양한 국가에 분산되어 있다.

 

 

4) 보안

데이터베이스는 민감한 개인정보 또는 기업 기밀을 담고 있기 때문에, 접근 권한 관리와 보안이 매우 중요하다.

예를 들어 은행의 데이터베이스는 본인의 계좌 정보는 확인할 수 있지만, 

다른 사람의 잔액은 알 수 없다. 이는 계정 기반 접근 제어, 암호화, 권한 분리 등의 보안 기능이 작동하고 있기 때문이다.

 

 

데이터베이스 이론 |

2. 데이터베이스의 종류 + SQL 이란

관계형 데이터베이스 종류

  • 관계형 데이터베이스 (RDB: Relational Database)
    현재 가장 주류를 이루고 있으며 내가 배우고 있는 MySQL도 이 관계형 데이터베이스다.
    아무런 수식어 없이 ‘데이터베이스'라고 부른다면 보통 관계형 데이터베이스를 말한다고 한다.
    • 데이터를 2차원 테이블(행과 열) 형태로 저장
    • 표 형식으로 명확하게 구조화됨
    • SQL로 조작 가능
    • 대표 예시: MySQL, PostgreSQL, Oracle 등
    • '데이터베이스'라는 말은 대부분 이 관계형 DB를 뜻함
  • NoSQL 데이터베이스
    • 정형화된 테이블 구조를 따르지 않음
    • 대규모 데이터를 유연하고 빠르게 처리할 수 있도록 고안됨
    • 문서형, 키-값형, 컬럼형 등 다양한 형태 존재
    • 대표 예시: MongoDB, Redis, Cassandra 등
NoSQL은 다양한 기능보다 빠른 속도에 집중하는 경향이 있으며, 
단순한 데이터 읽기/쓰기 목적의 프로젝트에 특히 적합하다.

 

  • 계층형 데이터베이스
    • 데이터가 트리 구조로 연결되어 있음
    • 예: 조직도, 부서 구조, 상하 관계 표현
관련하여 관계형과 NOSQL 차이를 찾아보다가 좋은 설명이 있는 블로그를 발견하여 추가해본다.

RDB 전문가가 NoSQL DB를 접하면 처음엔 당황합니다.

어떻게 쓰는건지 잘 모르겠거든요.
안되는 것도 많고, 일일히 코딩을 해야 하고.
하지만, 그러라고 나온 DB는 아닙니다.

간단한 개발을 한다면 DB 에 바라는 기능은, 단순히 데이터를 잘 읽고 쓰는 것 정도이죠.

다양한 데이터 조작과 조합기능?
그런거 필요없습니다.
빠른 탐색속도가 더 좋습니다.

NoSQL DB 은 그런 목적에 특화된 DB 입니다.
출처 : https://subokim.wordpress.com/2011/05/31/nosql-db-four-type/

 

 

3. SQL 이란?

SQL(Structured Query Language, 구조적 질의 언어)은 관계형 데이터베이스를 조작하기 위한 표준 언어이다.

 

특징:
  • 데이터를 검색(SELECT), 추가(INSERT), 수정(UPDATE), 삭제(DELETE) 가능
  • 각 DBMS마다 방언이 존재하지만, 기본 SQL 문법은 거의 동일함
  • 예: 영어도 국가마다 다르게 쓰이듯, MySQL과 Oracle의 SQL은 약간 다름

따라서 SQL을 익히면 대부분의 관계형 데이터베이스에 쉽게 적응할 수 있다.
SQL은 데이터 중심의 업무를 수행하는 사람이라면 필수로 익혀야 할 기본 소양이다.

 

 

(본 내용은 데이터리안 ‘SQL 데이터 분석 캠프 입문반’을 수강하며 작성한 내용입니다.)

'기획 > 데이터 분석' 카테고리의 다른 글

SQL 집계 함수 정리  (0) 2025.04.20
SQL 숫자 연산자 정리  (0) 2025.04.18
데이터 순서 정렬하기  (0) 2025.04.15
데이터 필터링하기 - WHERE절  (0) 2025.04.09
데이터 추출하기  (0) 2025.04.07

관련글 더보기