관계형부터 NoSQL까지, 데이터베이스 구조의 큰 그림
데이터는 우리 손에 들어온 순간부터 쌓이기 시작한다.
엑셀 파일에 기록해 둔 운동 기록, 친구들의 연락처, 수강한 강의 내역까지.
하지만 데이터를 모아놓기만 하면 필요한 순간에 제대로 꺼내 쓰지 못한다는 게 문제다.
나도 그랬다.
필요한 정보를 찾으려고 데이터를 한참 뒤적이다가,
‘다시 만들어야 하나…’라는 좌절을 느낀 적이 한두 번이 아니었다.
결국 데이터를 잘 저장하고 관리하는 방법,
즉 데이터베이스(Database)를 알아야만 한다는 것을 깨달았다.
1. 데이터베이스란?
- 데이터의 모음이자 빠르고 정확하게 데이터를 검색·관리할 수 있는 환경
- 기업, 조직, 개인이 필요로 하는 데이터를 일정한 형태로 저장·관리해 데이터 중복을 줄이고 무결성을 유지
- 여러 사용자가 동시에 접근할 수 있도록 동시성 제어 기능 제공
1) ISOS(정보 자원의 효율적 관리, 공유, 활용성 극대화 요소)
| 구분 | 설명 |
|---|---|
| 통합된 데이터 (Integrated Data) | 데이터 중복 최소화 |
| 저장된 데이터 (Stored Data) | 컴퓨터가 접근 가능한 저장 매체에 보관 |
| 운영 데이터 (Operational Data) | 조직의 고유 업무 수행에 필수 |
| 공용 데이터 (Shared Data) | 여러 응용 시스템이 공동 소유·유지 |
2) R1C3 (데이터베이스 특징)
| 특징 | 설명 |
|---|---|
| 실시간 접근성 (Real Time Accessibility) | 사용자 질의에 실시간 응답 |
| 지속적 변화 (Continuous Evolution) | 삽입·삭제·수정으로 최신 데이터 유지 |
| 동시 공유 (Concurrent Sharing) | 여러 사용자가 동시에 원하는 데이터 공유 |
| 내용 기반 참조 (Content Reference) | 레코드 위치가 아니라 데이터 내용 기반 참조 |
3) 운영 목적별 DBMS 구분
| 구분 | 목적 | 예시 |
|---|---|---|
| OLTP (Online Transaction Processing) | 온라인 트랜잭션 실시간 처리 | 은행, 예약 시스템 |
| ODS (Operational Data Store) | 운영 데이터를 원본 형태로 보관 | - |
| DW (Data Warehouse) | 데이터를 통일된 형식으로 저장 | - |
| DM (Data Mart) | 사용 목적에 따라 DW 데이터 요약 | - |
| OLAP (Online Analytical Processing) | DW 데이터 분석 | 경영 분석, BI |
2. 데이터베이스 관리 시스템(DBMS)
1) DBMS(Database Management System)
• 데이터를 효과적으로 관리하고 보호
• 사용자에게 필요한 데이터를 적절하게 제공
• 대표: MySQL, Oracle, PostgreSQL, MongoDB 등
2) DBMS의 목표
• 물리적 독립성: 하드웨어 변경이 있어도 애플리케이션 정상 작동
• 접근의 독립성: 데이터 접근 방식 변경 시 데이터 구조 영향 없음
• 데이터 독립성: 데이터 구조 변경 시 애플리케이션 영향 없음
3. NoSQL 데이터베이스
1) NoSQL이란
• 관계형 DB의 한계를 극복하고자 등장한 비관계형 데이터베이스
• 대규모 비정형 데이터를 빠르게 처리, 높은 확장성
2) NoSQL 종류
| 구분 | 예시 |
|---|---|
| 키-값 저장소 | Redis, DynamoDB |
| 문서 지향 DB | MongoDB, CouchDB |
| 그래프 DB | Neo4j |
| 컬럼형 DB | Cassandra, HBase |
3) 실제 NoSQL 활용 사례
1️⃣ 카카오톡 메시지 저장
Cassandra, HBase로 비정형 메시지 데이터 확장성 있게 저장
2️⃣ 유튜브 추천 알고리즘
Bigtable, Druid로 사용자별 시청 로그 기반 개인화 추천 분석
3️⃣ 쿠팡 실시간 재고 관리
Redis 키-값 저장소로 초 단위 재고 변동 빠르게 처리
4. 클러스터링 vs 복제 비교
| 항목 | 복제 (Replication) | 클러스터링 (Clustering) |
|---|---|---|
| 중심 구조 | 마스터-슬레이브 | Peer-to-Peer |
| 쓰기 가능 노드 | 1개 (마스터) | 여러 개 (Multi-Master 가능) |
| 사용 목적 | 읽기 분산, 백업 | 고가용성, 장애 복구 |
| 일관성 방식 | 비동기 가능, 약한 일관성 | 동기/강한 일관성 |
| 장애 복구 | 수동 전환 | 자동 페일오버 |
5. 데이터베이스 종류
| 구분 | 내용 |
|---|---|
| 계층형 DB | 트리 구조, 상하 종속, 데이터 중복, 현재는 거의 사용하지 않음 (LDAP, regedit) |
| 네트워크형 DB | 노드 기반, 상호 대등, 계층형 단점 보완, 구조 복잡 |
| 관계형 DB (RDB) | 2차원 테이블, SQL 사용, 데이터 무결성, MySQL, Oracle |
| 객체 관계형 DB | 속성(Attribute), 메소드(Method) 포함, JOIN 대체, Oracle 8i 이후 지원 |
| 키-값 DB | 키-값 쌍으로 비정형 데이터 저장, 스키마 없이 사용, Redis, DynamoDB |
오늘을 마치며
데이터베이스는 단순히 데이터를 모아 두는 창고가 아니다.
언제든 꺼내 쓸 수 있도록 정리해 두는 데이터의 집이다.
MySQL을 배우며 데이터베이스를 직접 다루기 시작하면,
내가 가진 데이터를 내 손으로 관리하고,
필요할 때 원하는 방식으로 꺼내 쓸 수 있다.
이제부터 MySQL 실습을 통해 데이터를 내 것으로 만드는 여정을 시작해 보자. 👧