Introduction to Databases

JunePyo Suh·2020년 5월 14일
0

ACID

ACID, which is an acronym that stands for Atomicity, Consistency, Isolation, and Durability, is a set of properties that guarantee reliable database transactions.

Transaction

ACID properties endow database with a feature called transaction, which symbolizes a unit of work performed within a database management system against a database. The unit of work is treated as a "whole", meaning that either all steps of the unit of work is executed, or none is. This feature is especially critical in financial transactions and etc.

SQL vs. NoSQL

SQL

장점:
관계형 데이터베이스는 데이터를 더 효율적으로 그리고 체계적으로 저장할 수 있고 관리 할 수 있다.
미리 저장하는 데이터들의 구조(테이블 스키마)를 정의 함으로 데이터의 완전성이 보장된다.
트랜잭션(transaction)
단점:
테이블을 미리 정의해야 함으로 테이블 구조 변화 등에 덜 유연한다.
확장성이 쉽지 않다.
역시 테이블 구조가 미리 정의 되어 있다보니 단순히 서버를 늘리는것 만으로 확장하기가 쉽지 않고 서버의 성능 자체도 높여야 한다.
서버를 늘려서 분산 저장 하는것도 쉽지 않다.
Scale up (서버의 성능을 높이는것)으로 확장성이 됨.
정형화된 데이터들 그리고 데이터의 완전성이 중요한 데이터들을 저장하는데 유리하다.
예) 전자상거래 정보. 은행 계좌 정보, 거래 정보 등등.

NoSQL

장점:
테이터 구조를 미리 정의하지 않아도 됨으로 저장하는 데이터의 구조 변화에 유연하다.
확장하기가 비교적 쉽다. 그냥 서버 수를 늘리면 됨(scale out)
확장하기가 쉽고 테이터의 구조도 유연하다 보니 방대한 양의 데이터를 저장하는데 유리하다.
단점:
데이터의 완전성이 덜 보장된다.
트랜잭션이 안되거나 비교적 불안정하다.
주로 비정형화 데이터 그리고 완전성이 상대적으로 덜 유리한 데이터를 저장하는데 유리하다.
예) 로그 데이타

Relationships

One to One Relationship

One to Many Relationship

Many to Many Relationship

SQL Commands

Join

(INNER) JOIN: 일반적인 join문. 기준이 되는 테이블 (left table)과 join이 걸리는 테이블(right table) 양쪽 모두에 matching되는 row만 select가 됨.
LEFT (OUTER) JOIN: 기준이 되는 테이블 (left table)의 모든 row와 join이 걸리는 테이블(right table)중 left table과 matching되는 row만 select가 됨.
RIGHT (OUTER) JOIN: join이 걸리는 테이블(right table)의 모든 row와 기준이 되는 테이블 (left table)에서 right table과 matching되는 row만 select가 됨.
FULL (OUTER) JOIN: 기준이 되는 테이블 (left table)과 join이 걸리는 테이블(right table) 양쪽 모두의 모든 row를 select 한다.

Left and right are decided depending on the way you have written the query
Table1 left join table2
—> table1 is lying on the left side of the statement, and table2 on the right

0개의 댓글