TIL SQL과 NoSql

김다은·2022년 10월 7일
1

TIL

목록 보기
7/14

SQL과 NoSql의 각각의 특징에 대해 알아보자

SQL이란?

Structured Query Languange의 약자이며, 데이터베이스 언어로 주로 관계형 데이터 베이스에서 사용된다.

Query란?

질의문이라는 뜻을 가지고 있다. 존재하는 데이터들을 필터링하기 위한 질의문이라고 볼 수 있다.

SQL의 특징

1.데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다.
2.데이터가 구조가 고정되어 있어야 한다.

Transaction

트랜잭션이란 여러 개의 작업을 하나로 묶은 실행 유닛이다.
만약 단 하나의 작업이라도 실패하면 해당 트랜잭션에 속한 모든 작업을 실패한 것으로 판단한다. 정리하자면,모든 작업이 성공적으로 실행되면 해당 트랜잭션이 성공했다고 판단한다.

데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있다.

ACID

Atomicity(원자성)

하나의 트랜잭션에 속해있는 모든 작업이 전부 성공하거나 전부 실패해서 결과를 예측할 수 있어여 하는데, 하나의 단위로 묶여있는 여러 작업이 부분적으로 실행된다면 데이터가 오염될 수 있다.

여러 작업이 부분적으로만 실행되었다면 모든 작업이 실패로 돌아가야 한다는 것이 Atomicity(원자성)이라고 한다.

Consistency(일관성)

데이터베이스의 상태가 일관되어야 한다. 하나의 트랜잭션의 전후 상태가 유효해야 한다. 트랜잭션이 일어난 이후의 데이터베이스는 데이터베이스의 제약이나 규칙을 만족해야 한다.

Isolation(격리성, 고립성)

모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 한다.
동시에 여러 개의 트랜잭션들이 수행될 때, 각 트랜젝션은 고립되어 있어 연속으로 실행된 것과 같은 결과를 나타낸다.

Durability(지속성)

하나의 트랜잭션이 성공적으로 수행되었다면, 해당 트랜잭션에 대한 로그가 남아야 한다. 오류가 발생하더라도, 해당 기록은 영구적이어야 한다.


NoSql

NoSQL 기반의 비관계형 데이터베이스의 구성을 알아보자.

Key-Value 타입 데이터베이스

속성을 Key-Value의 쌍으로 나타내는 데이터를 배열의 형태로 저장하는데,
Key는 속성 이름을, Value는 속성에 연결된 데이터 값을 뜻한다.

문서형(Document) 데이터베이스

데이터를 테이블이 아닌 문서처럼 저장하는 데이터베이스이다. 대부분의 문서형 데이터베이스는 JSON과 비슷하게 데이터를 문서화하여 저장한다.
각각의 문서는 하나의 속성에 대한 데이터를 가지고 있고, 컬렉션(그룹)으로 묶어서 관리한다.

Wide-Column 데이터베이스

데이터베이스의 열(column) 에 대한 데이터를 집중적으로 관리하는 데이터베이스다.
각 열에는 key-value 형식으로 데이터가 저장되고, 컬럼 패밀리(열의 집합체 단위) 로 데이터를 처리가 가능하다.
하나의 행에 많은 열을 포함할 수 있어 높은 유연성을 가지고 있으며 데이터 처리에 필요한 열을 유연하게 선택할 수 있다는 점에서 규모가 큰 데이터 분석에 주로 사용된다.

그래프(Graph) 데이터베이스

자료구조의 그래프와 비슷한 형식으로 데이터 간의 관계를 구성하는 데이터베이스다.
노드(nodes)속성별(entities) 로 데이터를 저장하며, 각 노드간 관계는 선(edge) 으로 표현한다.

profile
이제는 더이상 물러날 곳이 없다

0개의 댓글