2017年5月15日 星期一

資料庫程式設計技術的概廓(1)

最近是要準備寫資料庫相關的程式, 除了學生時代玩過幾次, 已經很久沒有涉略這個領域, 一樣的又是新名詞需要搞懂.

EF 

首先是看到 EF (Entity Framework) 這是什麼? 需要學嗎?

原來它是微軟出的ORM解決方案.  (參考Wiki內的說明) (又與跨語言的查詢技術LINQ相關)

那麼, 以前聽過的ODBC呢? 我的腦海裡湧現更多問號....


ODBC,  OLE-DB, ADO

 先找了這三者的說明, 在壹讀裡面有寫過兩次 (2014年, 2016年), 文章連結:
 ODBC(Open Database Connectivity,開放資料庫互連)
1992出現最早,是一種底層的訪問技術。
---僅支持關係資料庫

DAO(Data Access Object,數據訪問對象)
1993,最適用於單系統應用程式或在小範圍本地分布使用。
所以如果資料庫是Access資料庫且是本地使用的話,建議使用這種訪問方式
---應用的專一性

RDO(Remote Data Objects,遠程數據對象)
1995,是一個到ODBC的DAO style包裝
---是在odbc基礎上的

OLE DB(Object Linking and Embedding, Database,對象連接嵌入資料庫)
1997,OLE DB 是建立在 ODBC 功能之上的一個開放規範。
ODBC 是為訪問關係型資料庫而專門開發的;
OLE DB 則用於訪問關係型和非關係型信息源.
---號稱取代ODBC,但也兼容ODBC

ADO(ActiveX Data Object,活動數據對象)
1996,ADO是DAO/RDO的後繼產物。
是基於OLE DB的,屬於資料庫訪問的高層應用API涵式庫。
作為最新的資料庫訪問模式,ADO的使用也是簡單易用,

ADO涉及的數據存儲有DSN(數據源名稱)、ODBC(開放式數據連接)以及OLE DB三種方式。

1998年時,微軟提出了一個下一代的應用程式開發框架,產生了 ASP+, ADO+, ....等等
後來2000年時這兩個改名為 ASP.Net, ADO.Net

到此, 比較連接上久遠前,學校所學的概念.
 
 
 
 

ORM ?

參考文章有
簡單來說:

ORM即Object/Relation Mapping的簡寫,一般稱作「對象關係映射」,
它的作用是在關係數據庫和業務實體對象之間作一個映射,讓我們在具體的操作業務對象的時候,不需要再去和複雜的SQL語句打交道,只需簡單的操作對象的屬性和方法。

當底層資料庫的實作品變更時,由於程式設計師並不直接對資料庫進行操作,因此程式內容幾乎不用修改,也就是降低了物件導向程式與資料庫之間的耦合關係。

看起來 ORM不錯, 但是一般認為:
  1. 對於一般Web應用開發,ORM能帶來好處
  2. ORM消耗大量記憶體
  3. 大量資料存取時產生的效能問題

Entity Framework (又稱ADO.NET Entity Framework) 是微軟以 ADO.NET 為基礎所發展出來的物件關聯對應 (O/R Mapping) 解決方案, 約在2008出現。
 

結論,

我會了解一下 ORM & EF, 但是目前寫程式還是用ADO.Net
 
 
相關資料收集:

沒有留言:

張貼留言

ASP.Net Core MVC (VS2017) 入門點 - (2-1)

再回來看看 Visual Studio幫你產生的使用者驗證管理, 就是我們 新增專案 時, 有個『 變更驗證 』選項,其下有四種選項,它會自動產生很多Code, 這裡研究清楚以便日後使用.