데이터베이스/ORM

SQLAlchemy 정의, 구조

DS지니 2021. 3. 22. 00:57
728x90
반응형

ORM은 선택이며 반드시 사용해야 하는 것이 아니며 SQLAlchemy가 ORM의 전부를 나타내는 것 또한 아님을 주의.

 

 

SQLAlchemy는 파이썬에서 사용할 수 있는 ORM 라이브러리 중 하나이며 다양한 기능을 제공합니다.

 

다른 ORM 라이브러리와 다른 점 중 하나는 자체적으로 스키마를 생성하지 않는 다는 것 입니다(사용자가 정의한 DDL 제외). 그렇기 때문에 어플리케이션 코드나 데이터베이스 시스템에 간섭하지 않는 다는 특징이 있습니다.

 

1. SQLAlchemy 구조

SQLAlchemy는 크게 'Core'와 'ORM'으로 나뉘어져 있습니다.

1) Core 

아래의 코어의 기능들만 봐도 Core는 큰 역할을 하고 있고 단순히 데이터베이스와 프로그래밍 언어를 연결해주고 SQL 쿼리문을 변경하는 것이 아닌 내부적 원리를 고려하고 있다는 것을 볼 수 있습니다.

  • 데이터 베이스 시스템과 상호작용을 담당
  • SQL 추상화 툴킷으로 온갖 기능을 포함하고 있다.
  • 파이썬의 다양한 DBAPI들과 각각의 행동들을 추상화 할 수 있다.
  • SQL 문법을 파이썬 언어로 표현 가능하게 해준다.
  • 파이썬 데이터 타입을 데이터베이스 타입으로 변환할 수 있는 타입 시스템이 있다.
  • 기존에 정의되어 있는 내부 스키마를 확인할 수 있으며 추가적으로 DDL을 사용할 수 있다.

 2) DBAPI (Python Database API Specification)

데이터베이스 연결 패키지들 간에 공통된 사용 패턴들을 설립한 것.

PEP 249

SQLAlchemy는 사용특정 데이터베이스 시스템과 더불어 DBAPI 를 사용하고 있습니다.

 

3) ORM

코어를 기반으로 한 기능.

SQL 언어의 관계형 데이터베이스와 프로그래밍 코드 사이의 다리 역할을 하는 라이브러리.

ORM 설명 포스팅

 

ORM(Object-Relational Mapper)

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

gggggeun.tistory.com

728x90
반응형

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

SQLAlchemy 사용  (2) 2021.03.22
ORM 장점과 단점, 언제 사용?  (0) 2021.03.21
ORM(Object-Relational Mapper)  (0) 2021.03.21
ORM 관련 영상 및 자료  (0) 2021.03.21