SQL이란?
SQL은 '구조화 된 쿼리 언어 (Structured Query Language)'를 말합니다. 데이터베이스 자체를 나타내는 것이 아니라, 특정 유형의 데이터베이스와 상호 작용하는 데 사용 하는 쿼리 언어이다. sql을 이용해 관계형데이터베이스에 저장,수정,조회,삭제 등을 할 수 있다.
스키마란?
스키마는 테이블을 디자인하기 위한 청사진,계획,구조 라고 할 수 있습니다.
데이터베이스를 구성하는 개체, 속성, 관계 및 데이터 조작 시에 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의합니다.
또한 테이블의 각 열에 대한 항목과 타입뿐만 아니라 기본 키와 외래 키도 나타내야 합니다.
스키마는 개체-관계 다이어그램(entity-relationship diagram)이나 문자열로 표현할 수 있습니다.
Reservation(ID, Name, Date, RoomNum)
위의 문자열을 개체-관계 다이어그램으로 나타내면 다음과 같습니다.
관계형 데이터베이스(SQL): 테이블에서 키,값을 저장하는 형태인 db.
데이터의 종속성을 관계로 나타낸다.
비관계형 데이터베이스(NoSQL)
관계형 데이터 모델을 지양 하며 대량의 분산된 데이터를 저장하고 조회하는 데 특화되었으며 스키마 없이 사용 가능하거나 느슨한 스키마를 제공하는 저장소를 말한다. 데이터의 구조 변경이나 확장에서 상대적으로 유연하나 데이터의 수정이 필요할 경우 여러부분을 수정할 경우가 많다.
장점
-데이터의 분류, 정렬, 탐색 속도가 빠름
-다양한 용도로 사용 가능(범용성), 높은 성능
-데이터 무결성 보장, 높은 신뢰성
-명확한(= 엄격한) 스키마 정의
-정규화에 따른 갱신 비용 최소화
-데이터의 분류, 정렬, 탐색 속도가 빠름
-관계를 통해 각 데이터를 중복없이 한 번만 저장
단점
-대량의 데이터 입력 처리
-갱신이 발생한 테이블의 인덱스 생성 및 스키마 변경
-컬럼 확장 어려움 ▶️ 유연성 부족
-데이터베이스 부하 분석이 어려움
-수평 확장의 어려움 ▶️ 데이터베이스 저장 방식으로 인해 수직 확장만 지원
출처: https://honeywater97.tistory.com/174
SQL의 단점
상대적으로 덜 유연하며, 데이터 스키마는 미리 알고 계획해야합니다. (나중에 수정하는 것이 어렵거나 불가능 할 수 있습니다.)
JOIN문이 많은 매우 복잡한 쿼리가 만들어 질 수 있습니다.
수평 확장이 어렵고, 보통 수직 확장만 가능합니다. 즉 어느 시점에서 처리량/처리 능력과 관련하여 약간의 성장 한계에 직면하게 될 수 있습니다.
NoSQL의 단점
유연성 때문에 데이터 구조 결정을 늦어질 수 있습니다.(바로 계획, 결정해야하는 것이 아니기 때문에)
데이터가 복사되어 중복되어 저장되기에 성능 면에서 불리한 경우도 생김.
복사된 데이터가 변경되면 여러 콜렉션과 문서를 수정해야 합니다.
출처: https://devuna.tistory.com/25 [튜나 개발일기]