pymongo(ORM), 관계형/비관계형 데이터 베이스

pengooseDev·2022년 12월 30일
0
post-thumbnail

pymongo는 python환경에서 MongoDB의 연동을 도와주는 착한 친구이다. 코드 자체는 간단하지만, 아래의 환경 셋팅을 끝낸 후 조금 더 깊이 공부하는 시간을 가져보았다.

의존성 설치

pip install pymongo
pip install dnspython

DB연결

#dbPract.py

from pymongo import MongoClient  
client = MongoClient('URL') #DB_NAME:PASSWORD
db = client.dbName

연동 자체는 정말 쉽다.
허나, 단순히 코드를 작성하는 것이 아닌, 우리가 사용하는 패키지가 무슨 역할을 하는지 아는 것도 중요하다.
pyMongo는 무슨 역할을 할까?

pymongo란?

mongoDB를 사용하기 위한 python ORM(Object Relational Mapping)이다.

ORM?

백엔드는 DB와 소통해야 한다. 문제는 둘이 사용하는 언어의 특성이 다르다는 것이다.

  • 백엔드 : 객체지향(JS, python, JAVA등)

  • MongoDB : SQL 쿼리문

    중국인이랑 일본이랑 열심히 이야기한다는 뜻이다.
    말이 안통한다.

그래서 우리의 pymongo는 그 중간에서 객체SQL 쿼리 사이의 통역사 역할을 진행한다는 것이다.
DataBase는 여러가지 방식을 채택하는데 그 중, MongoDB는 비관계형 데이터베이스(NoSQL) 방식을 채택하고 있다.

NoSQL?

비관계형 데이터베이스라는 의미이다.
MongoDB는 "NoSQL(비관계형 데이터베이스)"임을 강조한다.

NoSQL이란 SQL을 사용하지 않는다!라는 의미가 아니다.
관계형 데이터베이스 이외의 형식으로 데이터를 저장하는 데이터베이스라는 의미이다.

SQL이외에도 유연한 Schema를 제공하며 관계형 테이블과는 다른 방식으로 데이터를 관리한다. (문서형, Key-Value, Wide-column Store, Graph)

객체 간의 관계를 바탕으로 SQL을 자동 생성해서 sql 쿼리문 없이도 데이터베이스의 데이터들을 다룰 수 있는 통역사의 역할을 제공한다.


ref

(강추!) SQL과 NoSQL
ORM이란?
ORM, NoSQL, SQL

0개의 댓글