2013年4月29日 星期一

SQLAlchemy



ORM與傳統SQL語句間的差異
 
   ORM的出現,相信你早已由網路資料、書籍中得知許多,但心中或有疑問,為何要捨SQL指令不用,而去學習一種新的語法,新的資料存取架構?本文嘗試由反向角度出發,探討著ORM為何會出現,SQL指令又有何不妥之處,讓ORM將其隱藏起來。在你看過的資料中,多半會列出一張表,告訴你ORM有何好處,我們就從這張表開始吧。
表1 ORM的優點

1、以物件表現列、以屬性表現欄,以純OOP的概念來操控資料庫。
2、隱藏SQL指令,以此達到跨資料庫時,不需修改應用程式的目的。
3、以單一語法,操控所有資料庫,減輕學習者的負擔。
4、自動產生SQL指令,避免因程式設計師能力不同,寫出效率不彰的應用程式。
5、自動產生SQL指令,避免程式設計師對安全性的認知程度不同,寫出不安全的應用程式。







SQLAlchemy的特色:  ORM(Object Relational Mapper) vs Core

SQLAlchemy considers the database to be a relational algebra engine, not just a collection of tables. 


  • Rows can be selected from not only tables but also joins and other select statements; any of these units can be composed into a larger structure. 
  • SQLAlchemy's expression language builds on this concept from its core.


ORM(Object Relational Mapper, 物件關係映射器) 

The SQLAlchemy Object Relational Mapper presents a method of associating user-defined Python classes with database tables, and instances of those classes (objects) with rows in their corresponding tables

SQLAlchemy features, http://www.sqlalchemy.org/features.html

http://www.keakon.net/2012/12/03/SQLAlchemy%E4%BD%BF%E7%94%A8%E7%BB%8F%E9%AA%8C

http://www.dotblogs.com.tw/code6421/archive/2009/02/10/7100.aspx

沒有留言:

張貼留言