微軟的資料庫平台,我在大學時只是耳聞,並沒有真正地用過。聽說過 office 裡的幾大件,最常用的是 word、excel、powerpoint,而接下來的就是資料庫:access。曾在工作中用過一次,發現它的 sql 語言支援沒有 sql server 好用,因此後來就基本沒用過。
然後工作以後,接觸到了微軟的拳頭產品 sql server。microsoft sql server 2000 有多個不同子版本,企業版,開發版,標準版,個人版(隨企業版附送,不零售),是我見到過的幾個版本。這幾個版本間主要的區別就是容量限制不同以及連線數限制不同。後來,在開源軟體日益眾多的市場環境下,微軟也推出了好幾個免費版本,包括 msde(microsoft sql server 2000 desktop engine)、以及後來的 sql server 2005 express 等等。sql server express 推出的同時還有好多管理工具和功能增強工具的 express 版本,比如 sql server 2005 management studio express 等等。這個系列可以被看作是 sql server 大家族,其基本的語法、管理工具都能通用(高版本的管理工具可以管理低版本的資料庫引擎)。
2009 年的一次偶然的搜尋,想找找有什麼應用程式內嵌的資料庫。這方面最有名的當屬開源的 sqlite 了。這且不表,還搜到乙個微軟的:esent.dll(稱為 jet blue,是當年 jet red 也就是 access 的乙個分支)。它也是資料庫引擎,可以通過 dll 直接鏈結,可以通過程式介面進行資料查詢,但是不提供 client/server 方式訪問以及 sql 語言支援。雖然很少看到第三方的軟體用到它,但它的確是存在於自 windows 2000 開始的每個版本的 windows 裡面的,而且有不少微軟自己的軟體用到它。
今年(2011 年),就在前兩天,我發現微軟還有乙個資料庫。而且隱約記起當初見微軟自己的產品用到過,就是 sql server compact。它也同樣很簡單,用 dll 鏈結,但是相對於 esent.dll 來說,它支援 sql 語言。因此用起來肯定比 esent 方便。暫時還不知道它的 dll 的再分發的版權條款是怎樣規定的。
資料庫 四種正規化
部分函式依賴 設x,y是關係r的兩個屬性集合,存在x y,若x 是x的真子集,存在x y,則稱y部分函式依賴於x。舉個例子 學生基本資訊表r中 學號,身份證號,姓名 當然學號屬性取值是唯一的,在r關係中,學號,身份證號 姓名 學號 姓名 身份證號 姓名 所以姓名部分函式依賴與 學號,身份證號 完全函...
資料庫事務四種隔離
未授權讀取 read uncommitted 允許髒讀取,但不允許更新丟失。如果乙個事務已經開始寫資料,則另外乙個資料則不允許同時進行寫操作,但允許其他事務讀此行資料。該隔離級別可以通過 排他寫鎖 實現。授權讀取 read committed 允許不可重複讀取,但不允許髒讀取。這可以通過 瞬間共享讀...
資料庫四種隔離級別
存在的問題 更新遺失。解決辦法就是下面的 可讀取未確認 寫事務阻止其他寫事務,避免了更新遺失。但是沒有阻止其他讀事務。存在的問題 髒讀。即讀取到不正確的資料,因為另乙個事務可能還沒提交最終資料,這個讀事務就讀取了中途的資料,這個資料可能是不正確的。解決辦法就是下面的 可讀取確認 寫事務會阻止其他讀寫...