-
DatabaseBackEnd/개념정리 2022. 6. 29. 19:50반응형
드디어 Database를 맛보았다....한줄평을 하자면 정말 맛없다..ㅋㅋ...왜이렇게 어렵나몰라? 그럼 시작!
DataBase란?
우리가 흔히 말하는 Database는 Database Management System(DBMS)로 DataBase를 관리하는 시스템이다.
Database는 Fs(Filesystem)보다 보안성, 동시다발성 등 성능이 좋다.
크게 SQL과 NoSQL로 나눌 수 있다.
SQL
SQL은 관계가 있는 것끼리 묶어놓은 DB(Database)이다.
Table, Row, Column으로 구성되어 있다. 열에는 반드시 Data Type을 기입해야하며 열마다 특성을 기입할 수 있다.
이를 우리는 스키마라고 한다.
특징을 몇가지 살펴보면 Primary Key로 Data를 찾으면 빠르게 찾을 수 있다. 그리고 Foregin Key로 관계가 있는 Data에
접근하여 상세 내용을 Catch하기 쉽다.
SQL QUERY에 대해 간단히 설명하자면
SELECT : 내가 가져오고 싶은 행을 선택한다.
FROM : 어떤 테이블에서 가져올지 선택한다
WHERE : 조건을 걸 수 있다.
NoSQL
NoSQL이 생겨나게 된 배경에는 오브젝트를 저장할 수 있는 Database가 필요해짐에 따라 자연스레 생겨났다.(BigData, AI) 등
NoSQL은 SQL이 아닌 모든 것을 가리키며 Key-Value, Document, Wide-Column, Graph 등 다양한 형식이 존재한다.
특징을 살펴보면 스키마가 없다, 관계형이 아니다, 특수한 문제를 해결하기 위해 출시되었다는 점이 있다.
mongoDB를 예로 들면 Document형식의 DB인데, 스키마가 없으므로 정보에 일관성이 없어 개발자가 관리를 따로 잘 해줘야하는 단점이 있다.
ORM과 OEM
ORM(Objcet Relational Mapping)
ORM은 코드상에서 작성한 Object에 Data를 자동으로 Scema를 만들어주고 기록한다.
장점은 비즈니스 로직에 초점을 두고 개발을 할 수 있게 도와주지만, 제공해주는 API만으로 상세한 Queries를 처리할 수 없다는 단점이 있다.
ODM(Object Document Mapper) : 오브젝트를 Document 형식으로 Mapping해준다.
언제 SQL을 쓰고 NoSQL을 쓸까?
시작이 쉽다 : NoSQL
데이터 구조가 고정되고 정적이다 : SQL
서로 다른 Table에서 연결하여 Data를 찾아야한다 : SQL
Data분리가 쉽다 : SQL
확장성이 필요하다 : NoSQL
비용이 싸다 : NoSQL
SQL은 수직적으로 확장해야한다.
NoSQL은 수평적으로 확장이 가능하다.
고르는 기준
1. 어떤 DataType을 쓸건지?
2. 데이터 양이 얼마나 되는지?
3. 이런 Data가 관계가 얼마나 있는지?//Back-End쪽을 맛보기로 공부하고 있지만 Data가 복잡해진다면 정말 어려울 것 같다.
기본만 할 줄 아는 정도만 하고 Front-End쪽을 더 깊숙하게 파야할 것 같다.
반응형'BackEnd > 개념정리' 카테고리의 다른 글
Node로 JSON 주고받기 - CodeHan의 코딩공부 (0) 2022.09.11 Node로 서버 시작하기 - CodeHan의 코딩공부 (0) 2022.09.11 Socket이란? (0) 2022.06.27 Configuration 환경 변수 설정 - CodeHan의 코딩공부 (0) 2022.06.21 Authentication에 대하여 - CodeHan의 코딩공부 (0) 2022.06.18