Database 개념과 RDBMS의 개념
카테고리: SQL
1. 데이터베이스란?
- 여러 사람이 공유하여 사용할 목적으로, 통합하여 관리되는 데이터의 집합
- 자료 항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높임
- 엑셀로 정리된 고객 리스트도 일종의 데이터베이스지만, 수백만 건의 데이터가 실시간으로 저장/조회되는 서비스에서는
엑셀로는 절대 감당할 수 없음 => 이럴 때 사용하는 것이 DBMS
DBMS(Database Management System)이란?
- 데이터베이스를 관리하기 위한 시스템
- MySQL, Oracle, PostgreSQL, SQL Server, DB2, SQLite, Tibero 등이 존재
📊 관계형 데이터베이스(RDBMS, Relational Database Management System)란?
- 데이터를 테이블(Table) 형태로 구조화하여 저장하고 관리하는 데이터베이스 시스템
- 각 테이블 간의 관계(Relationship)를 설정하여, 다양한 방식으로 데이터를 검색하고 관리할 수 있음
💡 RDBMS의 특징
- 테이블 기반 구조
- 데이터를 테이블 단위로 관리
- 테이블(Table) : 행과 열로 구성된 데이터의 집합
- 컬럼(Column) : 테이블의 열, 데이터의 속성을 나타냄
- 행(Row) : 테이블의 각 개별 데이터 항목을 나타냄
- 데이터를 테이블 단위로 관리
- 데이터 중복 최소화
- 데이터를 정규화(Normalization) 기법을 통해 중복을 최소화함
- 정규화 : 동일한 데이터가 여러 테이블에 중복 저장되는 것을 방지하고, 데이터 수정 시 발생할 수 있는 오류를 줄임
- 데이터를 정규화(Normalization) 기법을 통해 중복을 최소화함
- ACID(Atomicity, Consistency, Isolation, Durability) 트랜잭션 보장
- 모든 트랜잭션이 완전하고 정의된 모든 규칙에 따라서 일관성을 가지게 함으로써 오류, 시스템 충돌과 같은 문제가 없는지 확인할 수 있도록 함
- 데이터의 무결성, 완전성, 정확성 보장
📌 대표 RDBMS: MySQL, PostgreSQL, Oracle, SQL Server 등
2. ACID 트랜잭션
- 데이터베이스 내에서 일어나는 하나의 트랜잭션(Transaction)의 안전성을 보장하기 위해 필요한 4가지 속성
- 트랜잭션은 데이터베이스에서 하나의 논리적인 작업 단위를 의미함
- 트랜잭션 내 SQL문들은 모두 성공하는 경우
commit
되고, 하나라도 실패하는 경우에는 전체가rollback
됨
ACID 속성 정리
속성 | 의미 | 예시 |
---|---|---|
Atomicity (원자성) | 트랜잭션은 모두 수행되거나 전혀 수행되지 않아야 함 | A에서 출금은 됐는데, B에 입금이 안 되면 안 됨 → 둘 다 취소 |
Consistency (일관성) | 트랜잭션 전후로 데이터는 일관된 상태를 유지해야 함 | 출금/입금 전후로 전체 계좌 잔액 총합은 같아야 함 |
Isolation (고립성) | 트랜잭션은 다른 트랜잭션과 독립적으로 수행되어야 함 | 동시에 이체하는 두 명이 서로 영향을 주지 않아야 함 |
Durability (지속성) | 트랜잭션이 커밋되면 결과는 영구적으로 보존되어야 함 | 입금 성공 후 서버가 꺼져도 데이터는 그대로 남아 있어야 함 |
ACID 트랜잭션이 좋은 이유는?
- ACID 트랜잭션은 가능한 최대한의 데이터 안정성과 무결성을 보장해줌
- 작업 하나가 알부분만 완료되는 바람에 데이터가 일관적이지 않은 상태가 되는 불상사가 절대 일어나지 않게 해준다는 의미
- ex) ACID 트랜잭션이 없다고 가정하면, 데이터베이스 테이블에 몇몇 데이터를 쓰던 중에 예상치 못하게 정전이 되면 데이터 중 일부는 저장이 되고, 일부는 저장이 되지 않은 사태 발생 가능 => 데이터베이스는 일관성 없는 상태가 되어 복구하기 어렵고 시간도 오래 걸림
댓글 남기기