데이터베이스/ORM

ORM(Object-Relational Mapper)

DS지니 2021. 3. 21. 22:38
728x90
반응형

ORM (Object-Relational Mapper)은 관계형 데이터베이스 테이블에 저장된 데이터를 응용 프로그램 코드에서 더 일반적으로 사용되는 개체로 자동 전송하는 코드 라이브러리입니다.

 

ORM

위 그림과 같이 SQL 언어의 관계형 데이터베이스와 프로그래밍 코드 사이의 다리 역할을 해준다고 생각하면 됩니다.

 

ORM은 개발자가 SQL 대신 Python 코드를 작성하여 데이터베이스에서 데이터와 스키마를 생성, 읽기, 업데이트 및 삭제와 같은 일을 수행할 수 있도록 합니다. 물론 알맞은 데이터베이스 엔진을 활용해 직접 SQL 쿼리문을 보내는  방법도 있지만, ORM을 사용하면 개발자는 SQL 또는 stored procedures를 작성하지 않고 데이터베이스 작업에 익숙한 프로그래밍 언어를 사용할 수 있습니다. 즉, ORM의 목적은 코딩을 편리하게 해주는 것 입니다.

 

# ORM 없이 SQL 사용

SELECT * FROM USERS WHERE zip_code=94107;

 

# Django ORM 사용 (파이썬과 같음)

# obtain everyone in the 94107 zip code and assign to users variable
users = Users.objects.filter(zip_code=94107)

단순한 쿼리를 예로 들었지만 이보다 더 복잡한 쿼리를 작성할 때 ORM은 원하는 객체 지향 언어로 작성하게 해줍니다. 이것을 Object-Relational Mapping 이라고 합니다. 서로가 다른 두 개의 시스템을 연결시켜준다는 개념입니다.

이 개념을 구체화하는 Object-Relational Mapper라이브러리를 가르킵니다. 대표 라이브러리로 SQLAlcemy이 있습니다.

 

 

728x90
반응형

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

SQLAlchemy 사용  (2) 2021.03.22
SQLAlchemy 정의, 구조  (0) 2021.03.22
ORM 장점과 단점, 언제 사용?  (0) 2021.03.21
ORM 관련 영상 및 자료  (0) 2021.03.21