데이터베이스란?
데이터베이스(Database, DB)는 체계적으로 저장된 데이터의 집합으로, 필요할 때 쉽게 검색하고 관리할 수 있도록 설계된 시스템이다. 비유하자면, 데이터를 체계적으로 저장하고 관리하는 창고 정도로 볼 수 있다.
일상 속에서, 우리가 스마트폰에서 연락처를 찾거나, 온라인 쇼핑몰에서 주문 내역을 조회하는 모든 과정 뒤에는 데이터베이스가 정보를 저장하고, 가져오고, 수정하는 역할을 하는 것이다.
그렇기 때문에 우리는 이 데이터베이스를 안전하고 효율적으로 관리할 필요가 있다.
데이터베이스의 종류
데이터베이스는 어떻게 저장할지, 어디서 사용할 지 등에 따라 여러 가지 유형으로 나뉜다. 여러 종류의 데이터 베이스가 있지만
가장 대표적인 것이 관계형 데이터베이스다.(RDB, Relational DB)
관계형 데이터베이스는 가장 전통적인 데이터베이스이며 현재도 널리 사용되고 있고, 뒤이어 NoSQL의 종류인 문서형 데이터베이스(Document Store), Key-value Store 등 도 많이 사용되고 있는 추세다.
1, 관계형 데이터베이스(RDB)
2, NoSQL
3. 시계열 데이터베이스(TSDB)
다음 시리즈에서 각각에 대해 알아보도록 하겠다.
그렇다면 가장 널리 쓰이는 관계형 데이터베이스란 무엇인가 살펴보자.
관계형 데이터베이스 (RDB - Relational Database)
관계형 데이터베이스는 엑셀처럼 표(테이블) 형태로 데이터를 저장하는 방식이다.
관계형 데이터베이스에서 데이터가 저장되는 공간을 테이블(Table)이라고 한다. 엑셀로 예로 처음 켰을때 나오는 시트가 테이블이라고 할 수 있다.
이제 테이블에 데이터를 저장하게 되는데, 데이터의 속성은 열(colume)에 해당하며, 각각의 데이터는 행(Row)에 해당한다.
위의 표를 예시로 보면,
- 행(Row): 개별 데이터 (예: 한 명의 고객 정보)
- 열(Column): 데이터의 속성 (예: 이름, 이메일, 전화번호)
- 테이블(Table): 데이터가 저장되는 공간
관계형 데이터베이스의 특징
관계형 데이베이스는 데이터의 중복을 줄이고, 체계적으로 정리할 수 있다.
- SQL(Structured Query Language)이라는 언어로 데이터를 쉽게 검색하고 관리 가능하며,
- 트랜잭션 안정성(ACID 보장)이 뛰어나기 때문에 금융, 쇼핑몰, 기업 시스템에서 많이 사용한다.
ACID 란?
Atomicity (원자성): 트랜잭션 내의 모든 작업은 하나의 작업처럼 처리 일부만 처리되고 나머지가 실패하면 모두 롤백
Consistency (일관성): 트랜잭션 시작 전후로 데이터베이스는 항상 유효한 상태를 유지
Isolation (고립성): 동시에 여러 트랜잭션이 실행되더라도 각 트랜잭션은 독립적으로 실행되어야 하며, 다른 트랜잭션의 중간 상태에 영향을 받지 않음.
Durability (지속성): 트랜잭션이 성공적으로 완료되면, 그 변경 사항은 영구적으로 저장
즉 데이터를 안정적으로 유지할 수 있고, SQL을 통해 다중의 테이블을 조작하여 검색이나 조작이 용이하기 때문에 현재도 많은 사랑을 받고 있다.
그렇지만 관계형데이터베이스도 단점이 있는데, 성능과 확장성에서 효율적이지 않다는 점이다. 예를 들어 SELECT 쿼리를 이용해 특정 데이터를 검색할 때, 원하는 데이터를 찾기 전까지 테이블의 모든 데이터를 풀 스캔(Full Scan)해야 하는 경우가 발생하게 된다. 이는 인덱스가 없는 경우에 더욱 두드러지며, 데이터의 양이 많아질수록 쿼리의 성능이 크게 저하될 수 있다. 하나의 예를 들었지만, 다중 테이블을 조인(join)하는 경우라면 성능이 급격히 떨어질 수 있다.
그렇기 때문에 본인이 사용하고자 하는 데이터베이스의 용도를 고민해보고, 다른 데이터베이스와 비교를 통해 결정하는 것이 좋을 듯하다.
'DB' 카테고리의 다른 글
[DB (3/3)] No SQL(Not Only SQL)란 (0) | 2025.04.08 |
---|---|
[DB (2/3)] 시계열 데이터베이스(TSDB, Time Series DB)란 (2) | 2025.04.02 |
[MaxScale] MaxScale을 통한 MariaDB 로드밸런싱 (0) | 2025.02.21 |
[MariaDB (5/5)] MariaDB 이중화 (GTID 2. 실습) (0) | 2025.02.17 |
[MariaDB (4/5)] MariaDB 이중화 (GTID 1. 개념 정리) (0) | 2025.02.14 |