Data

관계형 데이터베이스

corycory 2020. 8. 23. 18:12
728x90
반응형

관계형 데이터 베이스 (Relational Data Base)

데이터 관리 프로세스에서 관계형 데이터 베이스관리 시스템은 빼놓을 수 없는 개념이다. 관계형 데이터베이스 관리 시스템, 혹은 RDBMS (Relational Database Management System)는 IBM 산 호세 연구소의 에드거 F.커드가 최초로 도입했다. 현재 데이터를 자체적으로 관리하는 회사들의 경우 대부분 관계형 데이터베이스를 기반으로 회사 내 데이터베이스를 관리한다.

 

관계형 데이터베이스의 테이블들의 각 열(Column)은 데이터의 속성을 가지며, 각 Column의 Row는 속성에 대한 값을 가지게 된다. 테이블의 각 row는 해당 row를 식별할 수 있는 Key를 가지게 되며, row는 레코드(record) 또는 튜플(tuple)이라고도 부른다. 대부분의 관계형 데이터베이스는 각 row의 각 column이 하나의 값만을 가지게 설계되는 것이 많다. 아무래도 그림으로 보는 편이 이해가 더 쉬울 것이다.

 

대략 이렇게 생겼다. Primary Key는 주로 다른 테이블의 Primary Key와 연결해, 이 테이블에는 없지만 다른 테이블에 있는 정보를 가져오는데 많이 사용한다.

 

관계형 모델은 데이터 테이블, 뷰 및 인덱스와 같은 논리 데이터 구조가 물리적인 스토리지 구조와 분리되어 있다. 이런 구조는 데이터베이스 관리자가 논리 구조로서의 해당 데이터에 대한 액세스에 영향을 미치지 않고 물리적인 데이터 스토리지를 관리할 수 있게 한다. 예를 들어, 데이터베이스 파일의 이름을 변경하더라도 그 안에 저장된 테이블의 이름은 변경되지 않는다.

관계형 데이터베이스의 장점

  • 데이터베이스 구조를 이해하기 용이하다. 따라서 관리, 유지 및 보수가 쉽다.
  • SQL을 사용해서 데이터베이스 내 데이터를 관리하고 축적하는데 용이하다는 장점이 있다. 
  • 관리하는 데이터의 일관성을 유지하는데 편리하다.

ACID

관계형 데이터베이스가 효율적으로 운용되기 위해서는, ACID 의 조건이 충족되어야 한다. ACID는 관계형 데이터베이스의 트랜잭션을 정의하는 4개의 핵심 속성으로서 원자성(atomicity), 일관성(consistency), 고립성(isolation), 지속성(durability)을 말한다.

  • 원자성은 하나의 데이터베이스 트랜잭션을 구성하는 모든 요소가 충족되는 것을 보장한다. 예를 들어, 데이터에 변동이 생길 때 모든 변동 사항이 다 반영되던가, 그렇지 않을 경우 변동 자체를 거부하는 것이다. 쉽게 풀어서, ㄱ은행에서 ㄴ은행으로 만원을 이체를 한다고 할때, 두 번의 트랜잭션이 생긴다.
    • ㄱ 은행에서 만원을 인출
    • ㄴ 은행에 만원을 입금
    • 위 두 트랜잭션이 모두 다 성공하면 기록하고, 그렇지 않은 경우(인출, 입금 둘 중 하나라도 실패하는 경우) 트랜잭션 자체가 일어나지 않게 하는 것이 원자성이다. 
  • 일관성은 하나의 트랜잭션이 완료된 후 데이터 포인트를 정확한 상태로 유지하기 위한 규칙을 정의한다. 저장된 데이터 값들이 정합성을 통과하는지 확인한다. 예를 들면 한 데이터 테이블에 중복된 row가 없다거나 하는 것이다.
  • 고립성은 하나의 트랜잭션이 커밋되기 전까지는 그 효과가 다른 트랜잭션에 보이지 않도록 함으로써 혼동을 방지한다. 트랜잭션1과 트랜잭션2가 동시에 한 데이터 테이블에 적용될 경우, 동시에 반영하는 것이 아니라 하나씩 단계적으로 반영한다.
  • 지속성은 트랜잭션이 커밋되고 나면 데이터 변경 사항이 영구적으로 확정되도록 보장한다.
반응형

'Data' 카테고리의 다른 글

M1 맥에 파이선 + 주피터 노트북 설치하기  (0) 2022.02.01
BI 프로세스  (0) 2020.08.17