SQL
Structured Query Language는 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어입니다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정관리를 위해 고안되었습니다.

SQL 문법 종류
- DDL (Data Definition Language, 데이터 정의 언어)
각 릴레이션을 정의하기 위해 사용하는 언어 (CREATE, ALTER, DROP .....)
- DML (Data Manipulation Language, 데이터 조작 언어)
데이터 추가/수정/삭제를 하기위한 언어 (SELECT, INSERT, UPDATE .....)
- DCL (Data Control Language, 데이터 제어 언어)
사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어 (GRANT, REVOKE ....)
SQL 언어적 특징
-
SQL은 대소문자를 가리지 않습니다.
-
반드시 ;(세미콜론)으로 끝이 납니다.
-
고유값은 ""로 표시
-
객체를 나타낼 때는 ``표시
-
주석사용 가능 ex) -- SELECT * FROM EMP;
SQL 장/단점
- 스키마가 있기 때문에 명확한 데이터 구조가 있다.
- 중복이 없다.
- 시스템이 커질 경우 복잡해 질 수 있다.
- 비용이 증가가 클 수 있다.
- 스키마가 변경될 경우에 번거롭다.
NoSQL
non relational (비관계형) 데이터 베이스라고도 불리는 noSQL은 관계형 데이터 베이스보다 덜 제한적인 일관성 모델을 이용합니다. 즉, 관계형 데이터 베이스에 비해 디자인이 단순하며 수평적인 확장성과 세세한 통제가 원할하게 합니다.

NoSQL 데이터 모델의 유형
- key - value
ex) Redis, Riak, Amazon Dynamo DB
- 문서
ex) MongoDB, CouthDB
- 열 형식
ex) HBase, Hypertable
- 그래프
ex) Neo4J
NoSQL 장/단점
- 스키마가 없다. ----> 유연하고 자유로운 데이터 구조를 가질 수 있다.
- 언제든지 데이터를 조정하고 필드에 값을 추가 할 수 있다.
- 데이터 분산이 용이
- 데이터 중복이 생길 수 있다.
- 명확한 데이터 구조가 없다