티스토리 뷰

DB

데이터베이스란 여러 사람이 공유하여 사용할 목적으로 관리하는 관련있는 데이터의 집합이다. 

RDBMS

관계형 모델을 사용하는 DBMS(Database Management System: DB 관리 소프트웨어)이다. 트랜잭션(ACID의 특성)을 지원한다. 수직확장을 하는 경우가 대부분이다. 대부분 관계형 데이터 베이스를 많이 사용한다.

NoSQL(Not Only SQL)

전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용한다. 수평확장(서버를 병렬 추가)이 가능하며 고성능인 경우가 많다. 트랜잭션을 지원하지 않거나 약하게 지원한다. 빅데이터와 실시간 웹 애플리케이션은 NoSQL 데이터베이스를 사용하는 편이다.  ACID와는 대조되는 궁극적 일관성(Eventual Consistency)의 개념을 제공한다.

트랜잭션(Transaction)

데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 트랜잭션은 ACID의 특징을 가진다. 트랙잭션을 사용하는 기능은 사용자가 DB 완전성(integrity) 유지를 확신하게 한다.

 

- Atomicity(원자성) : 데이터베이스에 모두 반영되든지, 아예 반영되지 않든지이다. 과정이 더이상 쪼개지지 않는 원자성을 가진다.

- Consistency(일관성) : 트랜잭션이 성공하면 언제나 일관성 있는 상태를 유지하여야 한다.

- Isolation(독립성) : 한번에 하나씩 처리한 것과 같은 결과가 나와야 한다. (마치 싱글스레드 실행처럼) 병행 실행 되더라도 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.

- Durability(영구성) : 결과는 영구적이어야 한다.

OLTP & OLAP

- OLTP(Online Transaction Processing) : 데이터를 트랜잭션 처리로 갱신하고 입력, 수정, 삭제 하는 것이 포인트다. 빠른 응답성이 중요하다.

-> 일반적인 트랜잭션 처리와 비슷하다.

- OLAP(Online Analytical Processing) : 데이터를 기반으로 효과적으로 분석하고 조회하는 것이 포인트다.

-> ML, DL과 관련이 깊다.

샤딩(Sharding)

샤딩은 하나의 시스템을 여러개의 작은 조각으로 나누어 분산 저장하여 관리하는 것을 의미한다. 

DB 내부구조

 

1. 테이블을 만들면 B-Tree 인덱스가 만들어진다. primary key로 b-tree 인덱스를 만든다.

2. 데이터를 순차 저장한다. 기본키로 찾으면 아주 빠르게 찾을 수 있다. key로 해당하는 페이지 번호와 그곳의 레코드 번호를 얻을 수 있다. offset 값에 가변크기의 레코드의 offset 값이 기록되어 있다.

 

✨ 특정 필드에 추가적 인덱스를 만들어 빠른 검색을 설정할 수 있다. 

B-Tree

데이터베이스와 파일 시스템에서 널리 사용되는 트리 자료구조의 일종이다. 자식 노드가 2개 이상인 트리를 의미한다. 자료를 정렬된 상태로 보관하며 이진트리와는 다르게 상향식으로 구성된다.

 

B-Tree + 정렬될 레코드 페이지 자료구조를 Clustered Index라고 한다.

 

정리 및 참고자료 

처음 접하는 개념들이 많아서 수업에서 다룬 간략한 개념 위주로 정리했다. 자세히 어떻게 동작하는지는 모르지만 키워드를 기억한다는 의미로 작성하였다. DB에 입문해보자~ 😁

 

Docker를 설치하며 찾은 개념들 정리

위키-트랜잭션 

위키-NoSQL

위키-B-Tree

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함