iBatis는 XML 파일에서 SQL DML (또는 SQL의 정의)을 분리합니다. 특히 SQL과 다른 곳에서 정의 된 일부 객체 모델 간의 매핑에 중점을 둡니다.
SQL Alchemy는이를 수행 할 수 있습니다. 그러나 실제로는 아주 완벽한 솔루션은 아닙니다. iBatis와 마찬가지로 SQL 테이블 정의 및 테이블과 Python 클래스 정의 간의 매핑 만 할 수 있습니다.
도 SQL 데이터베이스 정의 인 클래스 정의가 있어야합니다. 클래스 정의가 쿼리 및 처리 DML뿐만 아니라 SQL Table DDL을 생성하는 경우 훨씬 더 완벽합니다.
SQLAlchemy와 Django ORM 사이를 플립 플롭합니다. SQLAlchemy는 iBatis와 같은 방식으로 사용할 수 있습니다. 하지만 나는 객체 디자인을 중심으로 만들고 SQL 구현을 툴셋에 의해 객체에서 파생시키는 것을 선호한다.
대규모 일괄 처리 독립 실행 형 프로젝트에 SQLAlchemy를 사용합니다. DB로드, 스키마 변환, DW 리포팅 등은 잘 작동합니다. 이 프로젝트에서 초점은 객체 모델이 아닌 데이터의 관계형 뷰에 있습니다. 생성 된 SQL은 PL/SQL 저장 프로 시저로 옮겨 질 수 있습니다.
웹 응용 프로그램에 내장 된 ORM 기능을 활용하여 장고를 사용합니다. 약간의 작업으로 Django ORM을 나머지 Django 환경과 분리 할 수 있습니다. provide global settings을 사용하면 별도의 설정 모듈을 사용하지 않고도 앱을 특정 데이터베이스에 바인딩 할 수 있습니다.
장고에는 SQL 구현을 관리 할 수있는 여러 가지 일반적인 관계 (외래 키, 다 대다, 일대일)가 포함되어 있습니다. 첨부 된 데이터베이스에 대한 키 및 색인 정의를 생성합니다.
데이터베이스가 지속성을 위해 사용되면서 객체 지향적 인 문제가 발생하면 Django의 거의 투명한 ORM 계층에 이점이 있습니다.
SQL 처리를 중심으로하는 문제가 대부분 관계형 인 경우 SQLAlchemy에서 생성 된 SQL을 보는 기능에 이점이 있습니다.