관계형 데이터 베이스 (Relational Data Base)
데이터 관리 프로세스에서 관계형 데이터 베이스관리 시스템은 빼놓을 수 없는 개념이다. 관계형 데이터베이스 관리 시스템, 혹은 RDBMS (Relational Database Management System)는 IBM 산 호세 연구소의 에드거 F.커드가 최초로 도입했다. 현재 데이터를 자체적으로 관리하는 회사들의 경우 대부분 관계형 데이터베이스를 기반으로 회사 내 데이터베이스를 관리한다.
관계형 데이터베이스의 테이블들의 각 열(Column)은 데이터의 속성을 가지며, 각 Column의 Row는 속성에 대한 값을 가지게 된다. 테이블의 각 row는 해당 row를 식별할 수 있는 Key를 가지게 되며, row는 레코드(record) 또는 튜플(tuple)이라고도 부른다. 대부분의 관계형 데이터베이스는 각 row의 각 column이 하나의 값만을 가지게 설계되는 것이 많다. 아무래도 그림으로 보는 편이 이해가 더 쉬울 것이다.

관계형 모델은 데이터 테이블, 뷰 및 인덱스와 같은 논리 데이터 구조가 물리적인 스토리지 구조와 분리되어 있다. 이런 구조는 데이터베이스 관리자가 논리 구조로서의 해당 데이터에 대한 액세스에 영향을 미치지 않고 물리적인 데이터 스토리지를 관리할 수 있게 한다. 예를 들어, 데이터베이스 파일의 이름을 변경하더라도 그 안에 저장된 테이블의 이름은 변경되지 않는다.
관계형 데이터베이스의 장점
- 데이터베이스 구조를 이해하기 용이하다. 따라서 관리, 유지 및 보수가 쉽다.
- SQL을 사용해서 데이터베이스 내 데이터를 관리하고 축적하는데 용이하다는 장점이 있다.
- 관리하는 데이터의 일관성을 유지하는데 편리하다.
ACID
관계형 데이터베이스가 효율적으로 운용되기 위해서는, ACID 의 조건이 충족되어야 한다. ACID는 관계형 데이터베이스의 트랜잭션을 정의하는 4개의 핵심 속성으로서 원자성(atomicity), 일관성(consistency), 고립성(isolation), 지속성(durability)을 말한다.
- 원자성은 하나의 데이터베이스 트랜잭션을 구성하는 모든 요소가 충족되는 것을 보장한다. 예를 들어, 데이터에 변동이 생길 때 모든 변동 사항이 다 반영되던가, 그렇지 않을 경우 변동 자체를 거부하는 것이다. 쉽게 풀어서, ㄱ은행에서 ㄴ은행으로 만원을 이체를 한다고 할때, 두 번의 트랜잭션이 생긴다.
- ㄱ 은행에서 만원을 인출
- ㄴ 은행에 만원을 입금
- 위 두 트랜잭션이 모두 다 성공하면 기록하고, 그렇지 않은 경우(인출, 입금 둘 중 하나라도 실패하는 경우) 트랜잭션 자체가 일어나지 않게 하는 것이 원자성이다.
- 일관성은 하나의 트랜잭션이 완료된 후 데이터 포인트를 정확한 상태로 유지하기 위한 규칙을 정의한다. 저장된 데이터 값들이 정합성을 통과하는지 확인한다. 예를 들면 한 데이터 테이블에 중복된 row가 없다거나 하는 것이다.
- 고립성은 하나의 트랜잭션이 커밋되기 전까지는 그 효과가 다른 트랜잭션에 보이지 않도록 함으로써 혼동을 방지한다. 트랜잭션1과 트랜잭션2가 동시에 한 데이터 테이블에 적용될 경우, 동시에 반영하는 것이 아니라 하나씩 단계적으로 반영한다.
- 지속성은 트랜잭션이 커밋되고 나면 데이터 변경 사항이 영구적으로 확정되도록 보장한다.
'Data' 카테고리의 다른 글
M1 맥에 파이선 + 주피터 노트북 설치하기 (0) | 2022.02.01 |
---|---|
BI 프로세스 (0) | 2020.08.17 |