SQL ( Structured Query Language )
쉽게 말하면 데이터베이스가 이해할 수 있는 언어
관계형 데이터베이스 시스템을 제어하는 컴퓨터 언어
일반적인 프로그래밍 언어와 달리 대화식 언어이기 때문에, 명령문이 짧고 간결하다.
DDL(Data Definition Language) : 데이터 정의어
- DB 오브젝트를 생성, 삭제, 변경하는 역할. DB 설계 단계에서 주로 사용된다. CREATE, DROP, ALTER
DML(Data Manipulation Language) : 데이터 조작어
- DB를 조회, 삽입, 삭제, 변경하는 역할을 하며, 관리 목적의 쿼리문입니다. SELECT, INSERT, UPDATE
DCL (Data Control Language) : 데이터 제어어
- 사용자의 권한을 관리하는 역할을 합니다. GRANT, DENY, REVOKE
- DCL은 일반 개발자는 잘 사용하지 않으며 DBA가 주로 사용한다.
로 나뉘어져 있음
NoSQL ( Not Only SQL )
기존 관계형 DBMS가 갖고있는 특성 뿐만 아니라 다른 특성들을 부가적으로 지원한다는 것을 의미한다.
소셜네트워크 서비스 등이 등장하고 관계형 데이터 또는 정형화된 데이터가 아닌 비정형 데이터라는 것을 보다 쉽게 담아서 저장하고 처리할 수 있는 구조를 가진 DB들이 관심을 받게 되었습니다.
기존의 관계형 데이터베이스보다 더 융통성 있는 데이터 모델을 사용하고 데이터의 저장 및 검색을 위한 특화된 매커니즘을 제공합니다. 이를 통해 NoSQL 데이터베이스는 단순 검색 및 추가 작업에 있어서 매우 최적화된 키 값 저장 기법을 사용해 응답속도나 처리효율 등에 있어서 매우 뛰어난 성능을 나타낸다.
1. 관계형 모델을 사용하지 않으며 테이블 간 연결해서 조회할 수 있는 JOIN 기능이 없음
2. 데이터 조회를 위해 직접 프로그래밍 하는 든의 비 SQL 인터페이스를 통한 데이터 접근
3. 대부분 여러 데이터베이스 서버를 묶어서(클러스터링) 하나의 데이터베이스를 구성
4. 관계형 데이터베이스에서는 지원하는 데이터 처리 완결성(Transaction, ACID 지원)이 보장되지 않음
5. 데이터의 스키마와 속성들을 다양하게 수용하고 동적으로 정의(Schemaless)
6. 데이터베이스의 중단없는 서비스와 자동 복구 기능 지원
7. 대다수 제품이 Open Source 로 제공
8. 대다수의 제품이 고 확장성, 고가용성, 고성능 특징을 가짐
정리하면 NoSQL은 초고용량 데이터처리 등 성능에 특화된 목적을 위해 비 관계형 데이터 저장소에 비 구조적 데이터를 저장하기 위한 분산저장 시스템이라고 볼 수 있다. 최근 각광받는 빅데이터에 대한 처리에 특화 되어있다.
NoSQL 종류
1. Key-Value DB (많이 사용된다)
- Key와 Value의 쌍으로 데이터가 저장되는 유형으로써 Amazon의 Dynamo Paper에서 유래되었다
2. Wide Columnar DB
- Big Table DB 라고도 하며, Google의 BigTable Paper에서 유래 되었다. Column Family 데이터 모델을 사용하고 있음
3. Document DB
Lotus Notes 에서 유래되었고, JSON, XML과 같은 Collection 데이터 모델 구조를 채택하고 있다. Mongo DB, Cough DB가 이 종류에 해당된다.
4. Graph DB
Euler & Graph Theory에서 유래한 DB이다.. Nodes, Relationship, Key-Value 데이터 모델을 채용하고 있다.
'CS 지식' 카테고리의 다른 글
DPU란? (0) | 2023.04.30 |
---|---|
API 쓰로틀링이란 무엇인가? (0) | 2023.04.30 |
트랜잭션이란? (0) | 2022.07.03 |
Batch란? (0) | 2022.07.03 |
SQL/NoSQL 이란? (0) | 2022.06.25 |