Database
RDBMS란?
'Relational DataBase Management System’ 의 약자로 관계형 데이터베이스
- 데이터를 서로 상호관련성을 가진 형태로 표현한 데이터를 말한다.
- 모든 데이터들은 2차원 테이블들로 표현된다.
- 테이블 각각 행 (column)과 열 (row)로 구성된다.
column : 각 항목
row : 각 항목들의 실제 값. / 각 row는 고유 키 (Primary Key)가 있다. 주로 이 고유 키를 통해 해당 열을 찾거나 인용하게 된다.
테이블의 관계 ??
각각의 테이블들은 서로 상호관련성을 가지고 있다.
테이블 끼리의 연결에는 크게 3가지 종류가 있다.
- one to one
- One to many
- Many to many
👉 One to one (일대일 관계)
테이블 A의 로우가 테이블 B의 row가 정확히 1:1 매칭 되는 관계
👉 One to many (일대다 관계)
테이블 A의 로우가 테이블 B의 여러 row와 연결 되는 관계
👉 Many to many (다대다 관계)
테이블 A의 여러 row가 테이블 B의 여러 row와 연결 되는 관계
Transaction (트랜잭션) ??
- 일련의 작업들이 하나의 작업처럼 취급되어 모두 성공하거나 모두 취소 되는걸 의미.
- Commit & rollback
ACID (Atomicity , Consistency, Isolation , Durability)??
원자성 , 일관성 , 고립성 , 지속성
-
원자성 : 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단 되지 않는것을 보장하는 능력이다.
Ex) 친구에게 계좌이체시 본인에게는 이체성공이라 떳지만 친구에겐 돈이안들어게 되는경우를 방지하기 위해 아예 취소시켜 버림.
-
일관성 : 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터 베이스 상태로 유지하는것
-
고립성 : 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 겹치지 못하게 보장하는 것.
-
지속성 : 성공적으로 수행된 트랜잭션은 계속 반영되어야 한다.
SQL (관계형테이블) vs NoSQL (비관계형 테이블) ?
👉 SQL
장점
- 관계형 데이터베이스는 데이터를 더 효율적으로 체계적으로 저장, 관리 할 수 있다.
- 트랜잭션
단점.
- 테이블을 미리 정의해야해서 테이블 구조 변화 등에 덜 유연하다
- 확장성이 쉽지 않다.
👉 NoSQL
장점
- 데이터 구조를 미리 정의하지 않아도 되므로 저장하는 데이터 구조 변화에 유연하다.
확장하기가 비교적 쉽다. 그냥 서버 수를 늘리면됨.
- 확장이 쉽고 데이터 구조도 유연해 방대한 양의 데이터를 저장하는데 유리하다.
단점
- 데이터의 완전성이 덜함.
- 트랜잭션이 안되거나 비교적 불안정하다.
출처 : Wecode