SQL
SQL 관계형 데이터베이스에서 사용하기 위해 설계된 언어이다. 표준적인 SQL 명령어들이 있으며 이것은 모든 관계형 데이터베이스에 의하여 지원된다. SQL 명령어들은 두 가지의 카테고리로 나누어진다.
- 데이터 정의 명령어(Data Definitnion Language)
테이블을 생성하거나 변경
대표 명령어 : CREATE, ALTER, DROP, USE
- 데이터 조작 명령어(Data Manipulation Language)
데이터를 추출, 추가, 삭제, 수정
대표 명령어 : SELECT, INSERT, DELETE, UPDATE
SQL이 사용되는 분야
관계를 맺고 있는 데이터가 자주 변경되는 프로그램이나 변경될 여지가 없으며 명확한 스키마가 더 중요할 때 사용하면 좋다.
NoSQL는 변경될 때마다 여러 컬렉션을 모두 수정해주어야 하기 때문이다.
NoSQL
NoSQL이라는 용어는 비관계형 데이터베이스 유형을 가리키며 이 데이터베이스는 관계형 테이블과는 다른 형식으로 데이터를 저장한다. 그러나 NoSQL 데이터베이스는 언어마다 관습화된 API, 선언적 구조의 쿼리 언어, 쿼리별 언어를 사용하여 질의할 수 있다. 이 데이터베이스가 not only SQL 데이터베이스라고 불리는 이유가 바로 이것이다.
NoSQL이 사용되는 분야
높은 확장성과 가용성이 주요 장점인 NoSQL 데이터베이스는 실시간 웹 애플리케이션 및 빅데이터에 널리 사용된다.
변화하는 요구 사항에 빠르게 적응함으로써 민첩한 개발 패러다임에 자연스럽게 활용되는 이점 때문에 개발자들 역시 NoSQL을 선호한다고 한다. NoSQL 데이터베이스를 사용하면 데이터는 보다 직관적이고 이해하기 쉬운 방식 또는 애플리케이션이 사용하는 것에 가까운 방식으로 저장된다.
NoSQL 스타일의 API를 사용하면 저장 또는 검색 시 데이터 변환의 필요성이 줄어들며 NoSQL 데이터베이스는 다운타임이 없는 클라우드의 이점을 완전히 누릴 수 있다.
SQL과 NoSQL의 차이
- SQL 데이터베이스는 관계형이고 NoSQL 데이터베이스는 비관계형이다.
- SQL 데이터베이스는 구조화된 쿼리 언어를 사용하며 미리 정의된 스키마를 가지고 있다. NoSQL 데이터베이스에는 비정형 데이터에 대한 동적 스키마가 있다.
- SQL 데이터베이스는 수직 확장이 가능하고 NoSQL 데이터베이스는 수평 확장이 가능하다.
- SQL 데이터베이스는 테이블 기반이고 NoSQL 데이터베이스는 문서, 키-값, 그래프 또는 와이드 컬럼 저장소이다.
- SQL 데이터베이스는 다중 행 트랜잭션에 더 좋고 NoSQL은 문서나 JSON과 같은 비정형 데이터에 더 좋다.
'IT' 카테고리의 다른 글
스프링(Spring) VS 스프링부트(SpringBoot) (0) | 2022.11.30 |
---|---|
서블릿(Servlet) VS 스프링(Spring) (0) | 2022.11.30 |
인덱스(INDEX)의 필요성 (1) | 2022.11.23 |
[JAVA] next(), nextLine(), 입력과 버퍼 (0) | 2022.11.17 |
클래스와 객체, 인스턴스 (0) | 2022.11.16 |