三層模式-兩級對映
內模式:資料以什麼格式儲存到物理檔案,如何優化。資料存放。物理級資料庫
對映:不改應用程式
概念模式:表。根據業務、應用分。概念級資料庫
對映:改表,不改應用程式
外模式:檢視。處理之後顯示、不要顯示全部的資訊、提高安全性、靈活性。使用者級資料庫
資料庫設計:
整個設計過程的流程及每個階段的產出物。
需求分析:整個系統對資料的要求(產出物:資料流圖、資料字典、需求說明書)
概念結構設計:產出物:e-r模型,和資料庫管理系統無關的模型,可以用sql server、oracle、my sql,是一種資料的表達。
轉成關係模式:轉成文字表達(表)的格式
邏輯結構設計:產出物:關係模式(規範化理論)
物理設計
區域性e-r圖合成全域性e-r圖
逐步整合:2+1+1+1
一次整合
衝突:屬性衝突(屬性域、屬性取值)、命名衝突(同名異義、異名同義)、結構衝突(抽象級別不同,表和列)
聯絡
1-1 1-n 可以轉換為2-3個關係模式
n-n 可以轉換為3個關係模式
關係代數
笛卡爾積:s1×s2 不會去掉相同字段
投影:選列 πsno,sname(s1)或π1,2(s1)
選擇:6.
連線:蝴蝶
等值連線:=
自然連線:不寫條件:預設相同的字段做等值,去掉相同字段。
關係代數:除法運算
選課表rs(學生名、課程名) 課程表s(課程名)
rs÷s :解決的問題:找出選擇了所有課程的學員名單
規範化理論--函式依賴
學號->姓名
部分函式依賴:主鍵的乙個部分可以確定其他某乙個屬性
傳遞函式依賴:a->b->c (b×->a)
規範化理論--價值與用途
非規範化的關係模式可能存在的問題:資料冗餘、更新異常、插入異常、刪除異常等。
安全和效能衝突
規範化理論--鍵
超鍵:唯一標識元組(可以是單個鍵或是鍵的組合,可能存在冗餘屬性)
候選鍵:超鍵消除多餘屬性後能夠唯一標識元組的鍵
主鍵:候選鍵任選乙個
外來鍵:其他關係的主鍵
規範化理論--求候選鍵
圖示法:
將關係模式化為「有向圖」的形式
找出入度為0的結點,嘗試遍歷這個圖
如果沒有入度為0的結點,找中間結點(既有入度,也有出度)
ab:表示組合鍵是候選鍵
a和b:表示有兩個候選鍵
規範化理論--正規化
1nf:屬性值都是不可分的原子值
2nf:消除非主屬性對候選鍵的部分依賴
3nf:消除非主屬性對候選鍵的傳遞依賴(如果沒有非主屬性,則至少為3nf)
bcnf:消除主屬性對候選鍵的部分依賴和傳遞依賴(每個決定因素必定包含某個候選碼)
規範化程度越高,資料密度越小。
規範化理論--模式分解
保持函式依賴的分解:所有的函式依賴都保持到新的關係模式中,沒有缺失
無損分解:可以還原(如rar),通過連線關係又可以還原成原始表
·**法:行:拆分後的表;列:原始屬性 連線之後有一行包含全部的屬性,則是無損的
·公式法:適合一分為二 r1和r2交集->(r1-r2)或(r2-r1)在原始的關係中,則是無損的
有損:不能還原
資料庫併發控制
事務:封裝多個操作,如轉賬(要麼全做,要麼全不做)。原子性、一致性(執行前後的狀態一致)、隔離性(互不影響)、持續性(執行後的影響是持續的)
併發:為了提高效率
併發可能產生的問題:丟失更新、不可重複讀、讀「髒」資料
解決方案:
封鎖協議:
讀鎖加上去之後還能加讀鎖。寫鎖上面不能加鎖。
一級:讀之前加x鎖(其他事務不能對資料進行寫操作)。防止丟失更新。
二級:讀之前加x鎖(寫鎖)和s鎖(讀鎖)。防止丟失更新和讀髒資料
**:讀之前加x鎖和s鎖,直到事務結束才釋放。都能防止。
兩段鎖協議:可序列化,可能發生死鎖。
封鎖機制
資料庫完整性約束:
實體完整性(主鍵)、參照完整性(外來鍵/空)、使用者自定義完整性
觸發器完成更加複雜的要求
資料庫安全:
措施:
使用者標識和鑑定:身份認證
訪問控制:對使用者進行授權
密碼的儲存和傳輸:對遠端終端資訊用密碼保護
檢視的保護:對檢視進行授權,不同許可權的使用者使用不同的檢視
審計:使用者對資料庫的操作記錄下來,用日誌
資料庫備份和恢復:
冷備份:靜態備份,在資料庫停止狀態下備份(拷貝檔案)
熱備份:動態備份,執行時備份
完全備份:備份所有資料
差量備份:上一次完全備份後變化的資料(變化量較大,但是恢復方便)
增量備份:上一次備份後變化的資料(備份速度快,但是恢復慢,要把每乙個增量版全部執行一遍)
靜態海量轉儲:系統無執行事務時進行,轉儲全部資料庫
動態海量轉儲:轉儲其間允許對資料庫進行訪問或修改,全部
動態增量轉儲:轉儲更新過的資料
日誌檔案:對資料庫的任何操作先寫日誌,再寫資料檔案。以防資料恢復不完整。
資料庫故障與恢復:
事務本身的可預期故障:本身邏輯的問題,可設定rollback語句
不可預期的故障:算數溢位、違反儲存保護,可通過日誌,撤銷修改,回退到原始狀態
系統故障:資料庫或作業系統停止運轉,可通過檢查點方法
介質故障:外存被破壞,可使用日誌重做業務
分布式資料庫--體系結構
集中式資料庫(原有的)根據聯網的需求發展成為分布式資料庫。
分片透明性:水平分片:某段資料存在不同的位置
垂直分片:把錶不同的列存在不同的位置
混合分片
資料庫優化
集中式資料庫:硬體系統、系統軟體、資料庫設計(表與檢視,索引,sql優化(限制條件順序修改,如先做判斷篩選,然後做等值連線、以不相干子查詢代替相干子查詢、只檢索需要的列、用帶in的條件子句代替or子句、把資料庫連線存在緩衝池中))、應用軟體(資料庫連線池)
分布式資料庫:通訊代價:全域性查詢樹的變換、多副本策略、查詢樹的分解、半連線和直接連線
資料倉儲與資料探勘
廣泛應用於bi:商業智慧型
資料倉儲:面向主題(資料庫:面向業務)、整合的、相對穩定的(非易失的)、反映歷史變化(隨著時間變化,資料匯入)
資料來源:抽取、清理(資料格式統
一、冗餘資料清除)、裝載(放入資料倉儲)、重新整理(定期新增資料)
資料倉儲:資料集市:先建部門級,再建企業級
olap伺服器:(分析處理工作):查詢、報表、分析、資料探勘工具
資料探勘:決策樹、神經網路、遺傳演算法、關聯規則挖掘演算法
分類:關聯分析(挖掘出隱藏在資料間的相互關係)、序列模式分析(分析資料間的前因後果)、分類分析(分成不同類別)、聚類(共性聚合成大的類別)分析
聯邦資料庫
特徵:分布性、異構性、自治性、透明性
分類:緊耦合、松耦合
nosql:not only sql
併發效能高;海量資料儲存、查詢效率高;向外擴充套件(把集群的100臺機器擴充套件為200臺);特定應用領域;鍵值索引
不足:成熟度不夠;開源資料庫產品的支援度不夠;資料探勘和商務智慧型支援不足;資料庫專家少
反規範化技術(逆規範化技術):
規範化程度越高,拆分表,每個表粒度過小,關聯多表查詢,增加處理時間和查詢時間
技術手段:
增加冗餘列、增加派生型冗餘列(以空間換時間,犧牲一些規範程度)、重新組表、分割表
大資料技術:
資料量大、速度快、多樣性、資料有價值
(volume,velocity,variety,value)
高度可擴充套件性、高效能、高容錯性、支援異構環境、較短的分析延遲、易用且開放的介面、較低成本、向下相容性
資料庫 資料庫基礎
什麼是sql 結構化查詢語言 structtured query language sql的作用 啟動mysql.exe,連線伺服器後,就可以使用sql來操作伺服器了。類似php中操作mysql的語句就是sql語句 sql標準 由國際標準化組織 iso 制定的,對dbms 資料庫管理系統 的統一操作...
資料庫基礎 資料庫設計
一 資料庫生命週期 1.週期 需求分析,概念結構設計,邏輯設計,物理設計,系統實施,系統執行和維護。2.響應的文件 二 正規化 一般資料庫要求規範化到第三正規化,視具體需求重新調整。第一正規化 1nf 強調列的原子性,即列不能分為多列。第二正規化 2nf 關係屬於第一正規化,且每乙個非主屬性完全函式...
資料庫基礎
一.資料庫事物特徵 1.atomic 原子性 不可分割 2.consistency 一致性 參照完整 3.isolation 隔離性 防止併發 4.durability 永續性 永久儲存資料 二.事物和併發 1.併發問題 第一類丟失,髒讀,虛讀,不可重複讀,第二類丟失更新 不可重複讀的特例 2.鎖的...