본문 바로가기
mySQL/mySql 공부

개념정리(feat.니꼴라스 성님)

by 티코딩 2023. 4. 18.

들어가기전에 알고리즘에 니꼴라스 성님께서 SQL에 대해 5분설명해주는 영상이 뜨길래 한번 시청했다.

 

먼저, 데이터베이스에는 두가지 종류가 있다고 한다.

1) Relational, 2) Non-Relational

혹은

1) SQL, 2) No SQL

대다수의 회사, 기관들에서는 SQL을 사용하기 때문에 SQL이 업계표준이라고 한다.

 

SQL은 어떻게 생겼고 어떻게 작동할까? 엑셀과 비슷하게 생겼다.

행(row)과 열(column)이 있다.

 

SQL은 프로그래밍 언어가 아니라 쿼리용 언어라 실제 사람들이 사용하는 언어와 비슷하다.

예를 들어, SELECT email FROM students; 이런식이다.

 

ORM은? 예를들어 파이썬을 가져와 SQL로 바꿔주는것. 예를 들어 장고ORM이 있다. 개발자들은 ORM에 너무 의존하게 된다.

시간을 아낄 수 있지만, 문제는 더빠르게 작업해야 할때 발생한다. ORM으로 부족할때가 온다고 한다. 그래서 SQL의 원리와 개념을 알아야한다. 

 

어라? 이게 다였다. 그래서 니꼴라스 성님의 다른 영상도 봤다.

이번엔 SQL 과 NoSQL의 차이에 대한 영상이었다.

 

NoSQL이 뭘까? Not only SQL 혹은 Not SQL 이다. No SQL은 딱 한가지 종류의 DB가 아니라 거대한 DB의 그룹들이라고 한다.

1) Document DB, 2) Key Value DB, 3) GraphDB

 

1) Document DB 의 가장 대표적인 예시는 mongoDB이다. 데이터를 json document로 저장한다. 행과 열로 저장되는게 아니라, 어떤 모양의 데이터든 저장할 수 있다. 

2) Key Value DB 의 대표적인 예는 1.Cassandra DB, 2.DynamoDB이다. 카산드라DB는 column wide database 유형이다. 읽고 쓰기가 엄청 빠르다고 한다. 매우 많은 수의 아이템을 1초만에 쓸 수 있다고한다. 다이나모DB는 서버리스, 분산된 DB로 아마존이 만들었다. 매초 24,000개의 읽기를 지원한다고 한다. 이러한 대량의 데이터를 읽어오는 상황에서 key value DB를 사용해야 한다. Document DB와 비교했을 때, 어떤 종류의 DB를 얻을 수 있는지가 제한적이다. SQL에서는 어떤 데이터를 얻을건지 고민하지 않는다. 데이터의 구조에대해서 걱정을 한다. 다이나모DB에선 저장하기 전에 어떻게 할건지 고민을 해야한다.

3) GraphDB는 column이나 document가 필요없을 때, 그러나 각 노드 사이 관계를 알아야 할때 필요하다고 한다. SNS를 만든다고 했을때 필요하다. 각각의 entity를 저장하고, 이를 관계망으로 연결한다.

 

만약 내 프로젝트가 화려하지 않은 평범한 프로젝트면 SQL를 사용하고, noSQL은 특별한 이슈에 대응하기 좋은 DB다.

 

오우, 정말 NoSQL에관해선 아예모르고있었다. 저번에 멘토님께서 NoSQL을 사용해봤다면 회사에서 정말 좋게 본다는 얘기를 하셨는데, 왜 그러셨는지 알것 같다.

 

니꼴라스 형님 존경합니다.

SQL - https://www.youtube.com/watch?v=z9chRlD1tec 

SQL 과 NoSQL의 차이 - https://www.youtube.com/watch?v=Q_9cFgzZr8Q 

 

'mySQL > mySql 공부' 카테고리의 다른 글

Lesson 1, 2 - SELECT 전반 기능, 연산자  (2) 2023.04.18
mySQL을 배워보자.  (0) 2023.04.11