ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Database
    BackEnd/개념정리 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쪽을 더 깊숙하게 파야할 것 같다.

    반응형

    댓글

Designed by Tistory.