資料描述經歷了三個階段對應於三個資料模型
如:在乙個班級裡假設沒有重名的同學,現有四個屬性:學號 姓名 年齡 性別
超鍵:在關係中可以唯一標識元組的屬性集。學號是超鍵;學號、姓名是超鍵;學號,姓名、性別是超鍵。所以超鍵可以是乙個屬性也可以是乙個屬性集,只要可以唯一標識就行。
候選鍵:不含有多餘屬性的超鍵。意思就是可以是多個屬性確定,如:班裡有男生小明和女生小明,現在就可以用姓名和性別來唯一確定他們,如果你刪除 其中乙個屬性就不可以唯一確定了。
主鍵:使用者選作元組標識的候選鍵。如學號和姓名都是候選鍵,但是這個時候我選擇學號作為唯一識別符號,那麼它就是主鍵,主鍵帶有我們的主觀色彩。
1.實體完整性規則:元組在組成主鍵屬性上不為空
2.參照完整性規則:主鍵和外來鍵對應
3.使用者定義完整性規則:定義資料型別時要滿足使用者需求
1.圖形表示:實體:矩形;屬性:橢圓;關係:菱形
2.例題:某課程的計算機模擬考試系統涉及的部分資訊如下:
使用者:使用者號、姓名、密碼。
試題:試題編號、試題內容、知識點、難度係數、選項a、選b、選項c、選項d、答案。
試卷:試卷編號、生成時間。
說明:允許使用者多次登入系統進行模擬測試;每次登入後,測試試卷由系統自動抽題隨機生成,即每次生成試卷均不相同;每份試卷由若干試題組成;系統要記錄每次測試的起始和結束時間,以及測試成績。
(1)建立乙個反映上述區域性應用的er模型,要求標註聯絡型別(可省略實體屬性)。
分析:
步驟1用矩形把三個實體:使用者 試卷 試題表示出來;
步驟2看使用者和試卷之間的關係「允許使用者多次登入系統進行模擬測試」可知使用者:試卷是1:n聯絡;「系統要記錄每次測試的起始和結束時間,以及測試成績」這個是在測試過程中生成的,所以把三個屬性寫在關係測試中;
步驟3看試卷和試題的關係:「測試試卷由系統自動抽題隨機生成,即每次生成試卷均不相同」可知乙份卷子是有許多題組成,每一道題又可以組成許多卷子,所以是m:n的關係,下圖即得:
由er模型轉換關係模型:還是上題:
(2)根據轉換規則,將er模型轉換成關係模型,要求標註每個關係模型的主鍵和外來鍵(如果存在)。
分析:步驟1:使用者,使用者的主鍵是使用者名稱,在使用者:試卷=1:n,所以使用者的主鍵使用者號應該寫在試卷中作為外來鍵
步驟2:試卷同上,把使用者名稱作為他的外來鍵
步驟3:在試卷和試題之間是m:n的關係,他們的屬性按照原來的寫不用變,但是需要把試卷和試題的主鍵提取出來作為主鍵,建立乙個新的關係模型,注意:因為他們都是外來鍵所以每個下面要寫波浪線,他們兩個是主鍵,所以要畫一條直線
其他的er模型和關係模型題基本就是這個思路了。
每個關係模型只對應乙個實體型別或乙個聯絡型別
如:設有關係模式r(abcdeg),f是r上成立的fd集,f=,則(ac)+f為
分析:先分別看a、c、ac根據關係f=,可以推出什麼,a->b,所以閉包變成(abc)f,然後再看a、b、c、ab、ac、bc、abc分別可以推出什麼即可,因為沒有可以推出的,所以為abc
第一正規化:如果關係模式r中的每個關係r的屬性都是不可分的原子
第二正規化:如果關係為1nf,且每個非主屬性完全依賴於候選鍵(不存在區域性依賴)
第三正規化:如果關係是1nf,且每個非主屬性都不傳遞依賴於r的候選鍵
例題:設某校教材管理系統中,有乙個記錄各班級領用教材情況的關係模式:
r(教材編號,教材名稱,出版社,班級號,領用時間,領用數量)
如果規定:每個班級每次可領用多種教材,但每種教材只允許領用一次;同一種教材可被不同班級領用;不同班級可同時領用教材。
分析:第一正規化:教材編號->教材名稱;教材編號->出版社;(班級號,教材編號)->領用時間;(班級號,教材編號)->領用數量。 關鍵碼(班級號,教材編號)
第三正規化:r1(教材編號,教材名稱,出版社) r2(班級號,教材編號,領用時間,領用數量)
關係代數的五個基本操作
關係代數的四個組合操作
外連線:r和s做自然連線時,把原來應該捨棄的元組也保留在新關係中,同時在這些元組新增加的屬性上填上空值
優化:盡可能早地執行選擇操作,投影操作,避免直接做笛卡爾積
元組關係演算
例如:r(s):r是關係名,s是元組變數。s是r的乙個元組。
s[i]θu[j]:s和u是元組變數,θ是算術比較運算子,s[i]表示s元組的第i個分量。元組s的第i個分量和元組u的第j個分量滿足θ關係。
1)r1=表示:關係s的第1列中大於2的數對應的行擷取留下組成新的關係表。即如下:
2)r2=可以表示
r1=其實就是用xyz把關係的每一列表示出來
尾音:喜歡盲人摸象的故事,剝絲抽繭一點點得到真相。
資料庫系統原理 (1)
資料庫實現資料儲存,有了一套管理系統來管理資料 1 資料庫表,庫操作 注釋 單行注釋用 注意 要用空格隔開注釋內容 多行注釋用 例子 這是多行注釋 另外mysql還支援 鍵注釋,且不需要空格 基本語法 資料庫 建立 create database base1 使用 use 資料庫名 修改 刪除 dr...
資料庫 資料庫系統 1 資料庫系統概述
本節先對資料庫系統有個全貌的了解。資料庫 database,是長期儲存在計算機內 有組織的 可共享的大量資料的集合 資料庫管理系統 dbms,位於使用者與os之間的一層資料管理軟體,負責科學地組織和儲存資料 高效地獲取和維護資料,功能包括 資料庫系統 dbs,是資料庫 資料庫管理系統 應用程式 資料...
資料庫 資料庫系統原理
事務指的是滿足 acid 特性的一組操作,可以通過 commit 提交乙個事務,也可以使用 rollback 進行回滾。事務被視為不可分割的最小單元,事務的所有操作要麼全部提交成功,要麼全部失敗回滾。回滾可以用回滾日誌來實現,回滾日誌記錄著事務所執行的修改操作,在回滾時反向執行這些修改操作即可。資料...