쉽게 얘기해서 우리는 큰 데이터 값을 데이터베이스에 저장할 수 있다. 가장 좋은 예시는 도서관이다. 도서관은 다른 장르의 여러 책들을 갖고있다. 여기서 책은 데이터고 도서관은 데이터베이스이다.
데이터를 관리하고 저장하기 위해 서버에서 디지털 공간을 사용한다.
데이터 베이스는 모든 종류의 리얼타임 데이터를 저장할 수 있다.
조작하는 데이터의 보안, 명확성 그리고 논리적 뷰를 제공한다.
자동적이고 복구를 포함한다.
ACID : 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 영구성(Durability)을 보장한다.
데이터 사이의 복잡한 관계를 줄이기 위해 도와준다.
지정된 유저가 데이터를 조작하고 보는것을 도와준다.
DBMS 에서 사용하는 basic query languages는 다음과 같다.
DML - Data Manipulation Language
TCL - Transaction Control Language
DCL - Data Control Language
DDL - Data Definition Language
DBMS에서 새로운 데이터베이스를 만들고 싶다면, CREATE DATABASE 를 선언한다.
CREATE DATABASE <database name>;
ex)
CREATE DATEBASE school;
Relational database(이하 RDB)를 고려한 DBMS이다.
진보한 DBMS 혹은 DBMS의 한 부분으로 여겨진다.
RDB들은 row-wise그리고 colume-wise 로 데이터를 저장하는 테이블 포맷 구조를 사용한다. 그렇기 때문에 특정 값에 접근하기가 쉽다.
추가, 업데이트, 검색, 수정 그리고 데이터값 찾기 등을 테이블에서 수행하기 위한 프로그램이다.
유저가 create, edit, update, insert 그리고 delete 하는 것을 허락한다.
Structured Query Language(SQL)이 RDB를 다루기 위해 사용된다.
테이블을 생성하기 위한 SQL은 다음과 같다
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
....
columnN datatype,
PRIMARY KEY(one or more columns)
)
정해진 스키마가 필요하지 않다.
join을 피하고, scale에 유연하다.
다음세대 database system이다.
분산된 매우 크거나 같은 종류의 데이터를 저장하기 위해 사용한다.
빅데이터나 real-time 웹 어플리케이션에 사용된다.
"NOT Only SQL"나 "NOT SQL" 로 불린다.
쉬운 복제와 클러스터의 수를 증가시킬 수 있다.
데이터를 넣기 위해 테이블을 디자인하거나 생성할 필요 없다.
몇몇 NoSQL이 마켓에 존재하지만 시스템에 맞는 NoSQL을 고르기는 쉽지 않다.
NoSQL 쿼리는 다음과같이 구성된다.
SELECT fields with aggregaton
FROM table
WHERE expression
GROUP BY groupby
ORDER BY orderby
LIMIT limit