구조화 된 쿼리 언어라는 뜻으로 Structured Query Language 라는 뜻입니다. 특정 유형의 데이터베이스와 상호작용을 하는데 사용하는 쿼리 언어입니다.
SQL을 사용하면 관계형 데이터베이스 관리 시스템에서 저장, 수정, 삭제 및 검색이 가능합니다.
가장 핵심적인 두 가지 특징은
1. 데이터는 정해진 데이터 스키마에 따라 테이블에 저장.
2. 데이터는 관계를 통해 여러 테이블에 분산
된다는 점 입니다.
데이터는 테이블에 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있습니다. 해당 구조는 필드의 이름과 데이터 유형으로 정의됩니다. 따라서 스키마의 규칙을 준수하지 않으면 테이블에 추가할 수 없습니다. 즉, 스키마를 수정하지 않는 이상 정해진 구조에 맞는 레코드만 추가가 가능 한 것이 관계형 데이터베이스의 특징 중 하나입니다.
관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과 데이터 값 간의 다양한 관계를 나타냅니다.
SQL은 확장을 할 때 수직적 확장을 해야 하며 수직적 확장이라 함은 단순히 데이터 베이스의 성능을 높히는 방법입니다. (ex 컴퓨터 장비 성능 업그레이드 등)
SQL 문 또는 SQL 쿼리는 관계형 데이터베이스 관리 시스템에서 이해하는 유효한 명령입니다. SQL 언어 요소는 올바른 SQL문을 구성하는 식별자, 변수 및 검색 조건과 같은 구성 요소 입니다.
NoSQL은 테이블을 사용하여 데이터를 저장하지 않는 비관계형 데이터베이스를 뜻합니다. 개발자는 다양한 유형의 NoSQL 데이터 베이스에 그래프, 문서, 키값 등 정보를 저장합니다. NoSQL은 수평 확장이 가능하기 때문에 최신 어플리케이션에 널리 사용되고 있습니다. 수평확장이라 함은 NoSQL 소프트웨어를 실행하는 컴퓨터를 더 추가하여 처리 능력을 높히는 것을 의미합니다. (여러 호스트에서 작동)
SQL과 달리 NoSQL은 다른 구조의 데이터를 같은 컬랙션에 추가가 가능합니다.
Document는 Json과 비슷한 형태로 가지고 있습니다.
SQL은 일관된 데이터 조작 언어를 제공하지만 NoSQL 구현은 서로 다른 기술에 따라 달라집니다.
개발자는 트랜잭션 및 분석 애플리케이션에 SQL을 사용하는 반면에 NoSQL은 응답성이 높고 사용량이 많은 애플리케이션에 적합합니다.
관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션이나 변경 될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우 SQL을 선택하고, 정확한 데이터 구조를 알 수가 없거나 변경이나 확장이 될 수 있는 경우나 읽기를 자주하지만 데이터 변경은 자주 없는경우, 데이터베이스를 수평으로 확장해야 하는 경우, 막대한 양의 데이터를 다뤄야 하는 경우에는 NoSQL 을 선택하고 있습니다.
https://gyoogle.dev/blog/computer-science/data-base/SQL%20&%20NOSQL.html
https://parkadd.tistory.com/41