ORM WIL - 5(2)

이재근·2022년 6월 6일
0

먼저 알아야 할 것이 "SQL란?"
일반적으로 다음과 같이 축약되는 구조적 쿼리 언어 SQL 는 RDBMS (관계형 데이터베이스 관리 시스템)에서 데이터를 저장, 조작 및 검색하는 데 사용되는 도메인 별 프로그래밍 언어입니다.

주로 데이터의 다양한 엔티티와 변수 간의 관계가있는 구조화 된 데이터를 관리하는 데 사용됩니다.


위와같이 BD저장 방식의 한 종류로도 설명할 수 있는데
QL은 데이터베이스에 저장된 데이터를 쿼리하거나 처리하기위한 다양한 유형의 문으로 구성됩니다.

이러한 유형의 문은 다음과 같이 추가로 분류됩니다.

DDL (데이터 정의 언어) : 스키마 생성 및 수정에 사용되는 쿼리입니다. SQL의 일반적인 DDL 명령에는 CREATE, ALTER 및 DROP이 포함됩니다.
DML (데이터 조작 언어) : 이 쿼리는 데이터베이스에서 선택, 삽입, 업데이트 및 삭제 작업을 수행하는 데 사용됩니다. SQL의 일반적인 DML 명령은 SELECT, INSERT, UPDATE 및 DELETE입니다.
DCL (데이터 제어 언어) : 이러한 쿼리는 액세스를 제어하고 데이터베이스에 대한 권한을 제공하는 데 사용됩니다. SQL의 일반적인 DCL 명령은 GRANT 및 REVOKE입니다.
TCL (트랜잭션 제어 언어) : 이러한 쿼리는 데이터 무결성을 유지하기 위해 트랜잭션을 제어하고 관리하는 데 사용됩니다. SQL의 일반적인 TCL 명령에는 BEGIN, COMMIT 및 ROLLBACK이 포함됩니다.

위와같은 특징으로 분류해 설명이 가능합니다.

NOT SQL
위와 대조되는 비관계형의 db데이터 저장 방식을 의미하는데 테이블 형식으로 구성되지 않고 테이블 형식이없는 데이터 관리 방법이 특징입니다.

NoSQL은 빅 데이터 및 실시간 애플리케이션에 사용되면서 점점 인기를 얻고 있습니다. 그들의 데이터 구조는 관계형 데이터베이스의 구조와 완전히 다릅니다.

NoSQL은 데이터가 테이블에 배치되고 데이터베이스가 생성되기 전에 데이터 구조가 신중하게 설계되는 기존 관계형 데이터베이스의 대안입니다. 방대한 분산 데이터 세트로 작업 할 때 주로 유용합니다. NoSQL 데이터베이스는 본질적으로 확장 가능하고 고성능이며 유연합니다.

no sql(=not sql)역시 4가지 특징으로 설명이 가능합니다.

1) 열 : 와이드 열은 데이터 테이블을 행이 아닌 열로 저장하고 정렬합니다.

기존 데이터베이스보다 매우 빠르게 대량의 데이터를 쿼리 할 수 있습니다. 추천 엔진, 카탈로그, 사기 탐지 등에 사용할 수 있습니다.
예 : Cassandra, HBase, Google BigTable, Scylla, Vertica 등

2) 문서 : 문서 데이터베이스, 일명 문서는 문서 형식의 설명과 함께 반 구조화 된 데이터를 저장하고 유지합니다.

각 문서에는 주소를 지정하는 고유 키가 있습니다. 콘텐츠 관리 및 모바일 애플리케이션 데이터 처리에 유용합니다. JSON 및 JavaScript와 함께 널리 사용됩니다. 문서 데이터베이스는 또한 콘텐츠를 기반으로 문서를 가져올 수있는 API 및 쿼리 언어를 제공합니다.

예 : Apache, MongoDB, MarkLogic, CouchDB, BaseX, IBM Domino 등

3) 키-값 : 키-값 데이터베이스는 데이터가 키-값 쌍의 모음을 나타내는 연관 배열 (지도 또는 사전)을 기반으로하는 데이터 모델을 가지고 있습니다. 웹 애플리케이션의 세션 관리 및 캐싱에 매우 적합합니다.

예 : Aerospike, Berkeley DB, Apache ignites, Dynamo, Redis, Riak, ZooKeeper 등

4) 그래프 : 그래프 저장소에서 데이터는 노드와 간선으로 구성됩니다.

노드는 레코드로, 에지는 관계형 데이터베이스의 레코드 간의 관계로 생각할 수 있습니다. 이 모델은 데이터 관계의보다 풍부한 표현을 지원합니다. 고객 관계 관리 시스템, 로드맵, 예약 시스템 등에 유용합니다.

예 : AllegroGraph, InfiniteGraph, MarkLogic, Neo4j, IBM graph, Titan 등
위는 특성 비교문으로 특성 비교 시 참조하면 좋을 듯 하고

사용처에 따른 분류는 다음과 같다.

sql같은 경우 데이터의 목적이나 양식이 정해져 있어 분류가 필요한 경우 사용하는 것이 좋고

no sql같은 경우 '데이터의 목적이나 양식'보다 '가벼운 서버, 편리한 데이터 입력, 추출, 그리고 데이터 구조의 변환이 잦거나 필요해질 것'이라 판단되는 경우 사용하면 더 효율적인 db사용이 가능해진다.

이는 mysql 과 몽고 db를 통해 사용해 볼 것인데.. 좀처럼 쉽지않다..

profile
하루 고생하면 코드가 나 대신 일해준다.

0개의 댓글