데이터 베이스의 필요성
In-Memory
- 임시 저장
- JavaScript의 변수: 데이터가 프로그램의 실행에 의존적
File I/O
- 파일을 읽는 방식으로 작동하는 형태
- 데이터가 필요할 때마다 전체 파일을 읽어야 하기에 비효율적
관계형 데이터베이스
- 하나의 CSV 파일이나 엑셀 시트를 한 개의 테이블로 저장
- SQL을 활용해 데이터를 불러오기 수월함
SQL
- Structured Query Language
- 주로 관계형 데이터베이스에서 사용
- 데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있음
NoSQL
- 데이터의 구조가 고정되어 있지 않은 데이터베이스
- 테이블을 사용하지 않고 데이터를 다른 형태로 저장
- 서 지향 데이터베이스
Query
쿼리, 저장되어 있는 데이터를 필터하기 위한 질의문
기본 쿼리문
w3school
ACID
- 데이터베이스에서 트랜잭션이 발생할 때, 그 안정성을 보장할 수 있는 성질
- Atomicity: 하나의 트랜잭션 내에서는 모든 연산이 성공하거나 모두 실패해야 함
- Consistency: 하나의 트랜잭션 전후에 데이터베이스의 일관된 상태가 유지되어야 함
- Isolation: 각각의 트랜잭션은 독립적. 서로의 연산을 확인받거나 영향을 줄 수 없음
- Durability: 하나의 성공된 트랜잭션에 대한 로그가 기록되고 영구적으로 남음
Transaction
트랜잭션
계좌이체 => 내 통장 -10, 친구 통장 +10
SQL vs NoSQL
관계형 데이터베이스 vs 비관계형 데이터베이스