-
[CS study] 2022.04.19CS 2022. 4. 19. 21:56
SQL과 NOSQL의 차이
SQL (관계형 DB)
- SQL을 사용하면 RDBMS(관계형 DB 관리 시스템)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다.
- 핵심적인 두 가지 특징
- 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다
- 데이터는 관계를 통해 여러 테이블에 분산된다.
- 데이터는 테이블에 레코드로 정리됨, 각 테이블마다 명확하게 정의된 구조가 있다. 필드의 이름 + 데이터 유형
- 따라서 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없음
- 즉, 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가가 가능한 것이 특징
- 테이블의 중복을 피하기 위해 관계를 이용함
- 하나의 테이블에서 중복 없이 하나의 데이터만을 관리하기 때문에 다른 테이블에서 부정확한 데이터를 다룰 위험이 없는 장점
NoSQL (비 관계형 DB)
- 말 그래도 관계형 DB의 반대. 스키마도 없고 관계도 없다.
- NoSQL에서는 레코드를 문서(documents)라고 부름
- NoSQL에서는 다른 구조의 데이터를 같은 컬렉션에 추가 가능하다.
- 문서(documents)는 Json과 비슷한 형태
- 데이터를 여러 테이블에 나누어 담지 않고, 관련 데이터를 동일한 컬렉션에 넣는다.
- 예를 들어 SQL에서 Users, Orders, Products 테이블로 나눈 것을 Orders에 한꺼번에 포함해서 짱
- 여러 테이블에서 조인할 필요 없이 이미 필요한 모든 것을 갖춘 문서를 저장하는 것
- 조인하고 싶다면?
- 컬렉션을 통해 데이터를 복제하여 각 컬렉션 일부분에 속하는 데이터를 정확하게 산출하도록 한다.
- 하지만 이러면 데이터가 중복되어 서로 영향을 줄 위험이 있다.
- 조인을 잘 사용하지 않고 자주 변경되지 않는 데이터일 때 NoSQL이 상당히 효율적
확장 개념
- 수직적 확장: 단순히 데이터베이스 서버의 성능을 향상하는 것(ex. CPU 업그레이드)
- 일반적으로 SQL은 수직적 확장만 지원함
- 수평적 확장: 더 많은 서버가 추가되고 데이터베이스가 전체적으로 분산됨을 의미
- NoSQL 데이터베이스에서만 가능
둘 중에 무얼 선택할 것인가?
- 정답은 없음 둘 다 훌륭한 솔루션이고 어떤 데이터를 다루느냐에 따라 선택하는 것
장단점
- SQL 장점
- 명확하게 정의된 스키마, 데이터의 무결성 보장
- 관계는 각 데이터를 중복 없이 한 번만 저장
- SQL 단점
- 덜 유연함, 데이터 스키마를 사전에 계획하고 알려야 하므로 수정이 힘듦
- 관계를 맺고 있어서 조인 문이 많은 복잡한 쿼리가 만들어질 수 있음
- 대체로 수직적 확장만 가능함
- NoSQL 장점
- 유연함. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능
- 데이터는 애플리케이션이 필요로 하는 형식으로 저장됨. 데이터를 읽어오는 속도 빠름
- 수직 및 수평 확장이 모두 가능 애플리케이션이 발생시키는 모든 읽기/쓰기 요청 처리 가능
- NoSQL 단점
- 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있음
- 데이터 중복을 계속 업데이트해주어야 함
- 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야 함
SQL 사용이 더 좋을 때
- 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우
- 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우
NoSQL 사용이 더 좋을 때
- 정확한 데이터 구조를 알 수 없거나 변경/확장될 수 있는 경우
- 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우
- 데이터베이스를 수평으로 확장해야 하는 경우 ( 데이터 양이 방대할 때)
사용 선택에 정답이 정해져 있는 것이 아니다.
https://ch-oi-story.tistory.com/98
[C/S 스터디 2일차] 네트워크 기초 용어와 기능
네트워크를 이해하기 전, 간단한 기초 용어와 그 기능에 대해 정리하고자 한다. 네트워크의 구성 ✅ 아무것도 모른다고 가정 하에 듣는다면 네트워크는 위의 이미지와 같은 모습이다. 이 그림만
ch-oi-story.tistory.com
https://ch-oi-story.tistory.com/100
[C/S 스터디 3일차] 네트워크 기초 용어와 기능 (2) + 네트워크 모델
어제 진행했던 네트워크 기초 용어의 추가적인 부분이 필요해 다음과 같이 구성했다. 프로토콜 프로토콜에 대해서 어제 간락하게 이야기 했었다. 통신 시스템이 데이터를 교환하기 위해 사용되
ch-oi-story.tistory.com
https://hive-mind.tistory.com/73?category=1057753
IPX/SPX 란? 그리고 블리자드 기존 출시작 IPX 프로토콜 및 LAN 정보
Novell사에서 개발한 서버용 운영체제 NetWare용으로 개발된 네트워크 프로토콜. 일반적으로는 IPX로 줄여서 말한다. 주로 LAN용으로 상정하고 만들어진 프로토콜이며 Windows에서 채택한 네트워킹
hive-mind.tistory.com
'CS' 카테고리의 다른 글
[CS study] 2022.05.11 (0) 2022.05.12 [CS study] 2022.05.10 (0) 2022.05.10 [CS study] 2022.04.22 (2) 2022.04.23 [CS study] 2022.04.20 (1) 2022.04.20 [CS study] 2022.04.17 (3) 2022.04.17