iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
0
Software Development

SQL 30天手把手入門系列 第 10

Day 10 ORM vs. SQL

上篇說到 ORM 將關聯式資料庫的內的資料進行映射(Mapping),讓開發者得以像操作物件那般存取資料庫中的數據。具體來說就是:

  • 將類別 (Classes) 對應到 資料表 (Tables)
  • 將物件 (Objects) 對應到 資料表中的一筆記錄 (Rows in a table)
  • 將屬性 (Attributes) 對應到資料表中的欄位 (Columns in a table)
    ORM

對於開發者而言,使用 ORM 可以讓其專注在邏輯撰寫,也不必先行學會 SQL 才得以操作關聯式資料庫。不過,任何事物都存在著一體兩面。

ORM 的優點

  • 以相同的語法來操作各種資料庫系統,讓開發者可以專注於邏輯上,無需去思考資料庫系統之間的差異
  • 隱藏了 SQL 語法,進而規避直接撰寫 SQL 時容易發生的 SQL Injection 問題
  • 對於開發團隊來說,採用 ORM 可以讓成員彼此之間的程式碼的風格趨於統一易讀
  • 動態映射的特點,若直接於 Table 中新增 Column 或是 Database 有改變時,可免去不少修改重複的 SQL 敘述句的時間

ORM 的缺點

  • 畢竟多了一層轉譯的過程,ORM 的效能就是一直被許多開發者所在意的一塊。但隨著時間過去,效能高低與否反倒跟如何撰寫出易懂的邏輯比較相關。

  • 雖說 ORM 可以大幅降低開發者操作資料庫的難度,但若有較為複雜的查詢需求,那麼撰寫原生的 SQL 還是必須的。

下一篇會開始進入語法,會以「建立資料庫(Database)→資料表(Table)→使用查詢指令→更多衍生」的模式來介紹。


上一篇
Day 9 ORM 物件關係對映
下一篇
Day11 SQL 基本語法 - 建立資料庫、資料表
系列文
SQL 30天手把手入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言