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 tablesSQLAlchemy 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
沒有留言:
張貼留言