資料庫基礎

2021-08-20 04:52:00 字數 4287 閱讀 8859

三層模式-兩級對映

內模式:資料以什麼格式儲存到物理檔案,如何優化。資料存放。物理級資料庫

對映:不改應用程式

概念模式:表。根據業務、應用分。概念級資料庫

對映:改表,不改應用程式

外模式:檢視。處理之後顯示、不要顯示全部的資訊、提高安全性、靈活性。使用者級資料庫

資料庫設計:

整個設計過程的流程及每個階段的產出物。

需求分析:整個系統對資料的要求(產出物:資料流圖、資料字典、需求說明書)

概念結構設計:產出物: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.鎖的...