데이터베이스/ORM

ORM 장점과 단점, 언제 사용?

DS지니 2021. 3. 21. 23:17
728x90
반응형

장점

- 현재 쓰는 언어만 사용해도 됨.

 

- 데이터베이스 시스템으로부터 분리가 됨. -> MYSQL, PostgreSQL 등 원하는 시스템 사용 가능.

 

- 라이브러리마다 다양한 기능 지원

 

 

단점

 

- 데이터베이스와 바로 연결하는 것보다 초기설정이 더 많아지거나 복잡해질 수 있음.

 

- 내부 동작에 대한 충분한 이해가 없는 경우 문제 해결이 힘듦.

 

- 데이터베이스에 직접 쿼리문을 보내는 것이 아니기 때문에 성능 저하가 발생함.

 

- 데이터베이스 복잡도를 데이터베이스 시스템에서 어플리케이션 코드로 옮기게 됨.

 

- Object-Relaional Impedance Mismatch (임피던스 불일치)

 : 관계형 테이블과 애플리케이션 객체간에 데이터를 이동할 때 발생하는 차이, 어려움을 포괄하는 용어

객체를 사용하는 방식과 데이터가 관계형 테이블에 저장되고 결합하는 방식의 차이에서 생기는 문제

ex) SQL에서의 `=` 은 파이썬 코드에서 `==`과 `is` 로 나뉨.

 


 

위의 장단점을통해 상황에 따라 ORM 사용 여부를 결정 합니다.

 

관계형 데이터베이스에 액세스하는 데 Python ORM 라이브러리가 필요하지 않습니다. 실제로 Low level Access에서는 일반적 으로 psycopg (PostgreSQL 용) 또는 MySQL-python ( MySQL 용) 과 같은 데이터베이스 커넥터 라는 다른 라이브러리에서 제공합니다 . 아래 그림은 ORM이 다양한 웹 프레임 워크와 커넥터 및 관계형 데이터베이스에서 작동하는 방법을 보여주는 표 입니다.

 

SQLAlchemy가 다양한 웹 프레임 워크 및 데이터베이스 커넥터에서 작동 할 수 있음을 알 수 있음

사용자 인터페이스 없이 데이터 분석 도구 또는 배치 스크립트를 만들 수 있는 것과 마찬가지로 웹 프레임 워크없이 ORM을 사용할 수 있음을 알 수 있음.

728x90
반응형

'데이터베이스 > ORM' 카테고리의 다른 글

SQLAlchemy 사용  (2) 2021.03.22
SQLAlchemy 정의, 구조  (0) 2021.03.22
ORM(Object-Relational Mapper)  (0) 2021.03.21
ORM 관련 영상 및 자료  (0) 2021.03.21