1. 程式人生 > >資料庫相關理論知識整理複習

資料庫相關理論知識整理複習

什麼是DBMS?

Database Management System(DBMS)資料庫管理系統是一個為儲存和管理資料庫的軟體包。

資料庫技術發展歷史

(1)從資料模型的發展來看:

  • 無管理(60年代之前):科學計算
  • 檔案系統:簡單的資料管理
  • 資料管理需求不斷增長,資料庫管理系統應運而生

檔案系統vsDBMS

  • 應用程式負責資料在記憶體和二級儲存裝置之間的資料交換(比如快取、基於頁面的存取)
  • 不同的查詢編寫不同的程式碼
  • 應用保證資料的一致性,特別是多使用者的應用環境
  • 回覆機制
  • 安全和存取控制

資料庫的分類

(2)從體系結構的發展來看

  • 集中式:主機+啞終端(無計算能力,僅有輸入輸出裝置)
  • 分散式資料庫
  • Client/Server結構
  • 三層/多層結構

(3)從應用領域的拓展來看

  • OLTP(線上事務處理過程)
  • 工程資料庫(CAD,CAM)
  • 演繹資料庫(知識庫,知識管理,需要推理過程)
  • 多媒體資料庫(視訊點播)
  • 時態資料庫
  • 空間資料庫
  • 資料倉庫、資料探勘(OLAP)

資料庫研究的趨勢

資料的來源越來越多,資料量不斷增長

大資料(4V+1O):資料量大(Volume)、型別繁多(Valety)、價值密度低(Value)、速度快時效高(Velocity)、資料是線上的(Online)

提供了統計分析、決策支援等功能

  • OLAP(Online Analytical Processing)和OLTP(Online Transaction Processing)
  • 資料探勘
  • 機器學習
  • ……

資料模型

  • 資料模型是描述資料的一組概念和定義。

  • 資料模式是基於資料模型的資料描述。

  • 關係資料模型是目前用的最多的資料模型。

    基本概念:關係,簡要地說就是存在行和列的表

    每個關係都有一個模式(schema),描述表中的列和相關的資訊

多級抽象

多個外(檢視)模式,一個概念(邏輯)模式,一個物理模式

  • 檢視描述使用者從不同的角度看這些資料(用來呈現資料,相當於一張虛擬的表)
  • 概念模式定義了資料的邏輯模式,ER圖,表結構
  • 物理模式描述了資料的儲存細節,例如索引等

資料的獨立性

  • 資料的邏輯獨立性:保護使用者免受資料邏輯結構變化的影響(使用者不用知道資料庫內部發生的一些查詢優化等,可以當做黑盒使用)
  • 資料的物理獨立性:保護使用者免受資料物理儲存變化的影響(使用者不用知道資料放在物理裝置上的位置)

日誌

日誌中記錄的動作:

  • Ti時刻寫一個數據物件:原值和新值

    (日誌必須在改變資料之前,把資訊記錄在磁碟上)

  • Ti時刻提交commits/取消aborts:日誌記錄顯示了這個動作

DBA(資料庫管理員)的要求

  • 設計邏輯/物理模式
  • 處理安全和授權問題
  • 資料的可用性,恢復機制
  • 資料庫的調整

關係模型與關係型資料庫

關係模型是在1970年由IBM的研究員E.F.Codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。

關係型資料庫是指採用了關係模型來組織資料的資料庫。

關係模型中常用概念:

  • 關係:可以理解為一張二維表,每個關係都具有一個關係名,就是通常說的表名
  • 元組:可以理解為二維表中的一行,在資料庫中經常被稱為記錄
  • 屬性:可以理解為二維表中的一列,在資料庫中經常被稱為欄位
  • 域:屬性的取值範圍,也就是資料庫中某一列的取值限制
  • 關鍵字:一組可以唯一標識元組的屬性,資料庫中常稱為主鍵,由一個或多個列組成
  • 關係模式:指對關係的描述。其格式為:關係名(屬性1,屬性2, … … ,屬性N),在資料庫中成為表結構

關係型資料庫正規化

  • 第一正規化(1NF):關係中的每個屬性都不可再分。也就是說,一個表中的每個屬性必須只能是一個值,而不能是一個表。舉個反例:
    ((),)

  該表不滿足1NF,因為選課表中又嵌套了學生表。

  第一正規化是關係型資料庫基本要求。

  • 第二正規化(2NF):在1NF的基礎上,表中所有屬性完全依賴於主鍵。所謂的A屬性依賴於B屬性,就是指A屬性的值是由B屬性決定的,例如姓名依賴於學號,年齡依賴於學號。舉個反例:
(,,,,,)

  該表不滿足2NF,因為(課程名稱) → (學分),(學號) → (姓名, 年齡),而該表的主鍵是(學號,課程名稱),課程名稱和學號各自都不是主鍵,因此存在元素由非主鍵決定。

  不符合2NF的表可能存在資料冗餘,更新異常,插入異常,刪除異常的問題。

  • 第三正規化(3NF):在2NF的基礎上,屬性不依賴於其他非主屬性,也就是表中所有屬性不存在傳遞依賴。舉個反例:
(,,,,,)

  該表滿足2NF,因為每個屬性都由學號決定。但是該表不滿足3NF,因為存在以下傳遞依賴:(學號) → (所在學院) → (學院地點, 學院電話)。

  不符合3NF的表也會存在資料冗餘,更新異常,插入刪除異常的情況。

  • BC正規化(BCNF):在3NF的基礎上,主屬性不依賴於主屬性。舉個反例:
()

  該表的主鍵就是(學號,課程名稱,教師),但是如果一個教師只教一門課程的話,那麼就存在(教師) → (課程名稱),也就是主元素之間存在著依賴關係。

  • 第四正規化(4NF):在BCNF的基礎上,要求把同一表內的多對多關係刪除。

  • 第五正規化(5NF):從最終結構重新建立原始結構。

  當正規化等級不斷提高,資料庫的冗餘越來越少,出錯的可能也越來越小,資料所佔用的空間也越來越小。但是,查詢時需要的時間代價會增大(主要體現在表的連線操作,需要做笛卡爾積)。因此,正規化數不是越高越好,應當權衡時間代價和空間代價,選擇適合業務場景的正規化。

相關推薦

資料庫相關理論知識整理複習

什麼是DBMS? Database Management System(DBMS)資料庫管理系統是一個為儲存和管理資料庫的軟體包。 資料庫技術發展歷史 (1)從資料模型的發展來看: 無管理(60年代之前):科學計算 檔案系統:簡單的資料管理 資料管

五、Hibernate相關理論知識

持久化物件的狀態 Hibernate的持久化類 Java類與資料庫的某個表建立了對映關係.這個類就稱為是持久化類. 持久化類 = Java類 + hbm的配置檔案 Hibernate的持久化類的狀態 Hibernate為了管理持久化類:將持久化類分成了三個狀態:

SPI相關理論知識總結

SPI 1簡述     SPI(SerialPeripheral Interface):序列外設介面。SPI,是一種全雙工(可以同時(瞬時)進行訊號的雙向傳輸(A→B且B→A))、同步的通行匯流排。目前傳輸速度可以達到幾Mbps,資料傳輸速度總體來說比I2C匯流排要快。SP

MySql資料庫相關基礎知識

mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+--------

爬蟲-相關知識整理(更新)

超文本 ram 可選 header 報告 exceptio ppa head 遠程 requests庫主要方法 import requests requests.request(method, url, **kwargs) """構造一個請求,支撐下面各種

資料庫基礎知識整理複習總結

### 1、資料庫底層 MySQL資料庫的底層是B+樹。說到B+樹,先說下B樹,B樹也叫多路平衡查詢樹,所有的葉子節點位於同一層,具有以下特點:1)一個節點可以容納多個值;2)除非資料已滿,不會增加新的層,B樹追求最少的層數;3)子節點中的值與父節點的值有嚴格的大小對應關係。一般來說,如果父節點有a個值,那

JSON相關知識整理

數據 帶寬 逗號 使用 t對象 n) 防止 一個 ava JSON 全稱:JavaScript Object Notation ,一種輕量級的數據交換格式 示例:{"name":"eric","age":24} {"first":{"name":"eric","

UBNT ex-r +netgear gs105e v2 +ap 設置vlan 步驟記錄 及相關知識整理

style list read 地址 img net 重復 dns 進入 設備連接:路由器ex-r的eth0 連接 光貓撥號,eth3連接交換機gs105e,交換機gs105e的eth3連接無線ap 需求:路由器撥號上網,通過不同ssid的無線網絡可以連接不同vlan,且交

貝葉斯網路(belief network)及相關知識整理

貝葉斯網路(belief network)及相關知識 頻率派:認為theta是個固定的未知常數。認為樣本是隨機的,重點研究樣本分佈 貝葉斯派:認為theta是不確定的未知數。認為樣本是固定的,重點研究引數theta的分佈   貝葉斯的思考方式不同於傳統“非黑即白,非0即1”的思考方

資料庫知識整理 - 關係資料庫標準語言SQL(二)- 超良心的資料查詢整理

主要內容 資料查詢 基本語法 單表查詢 1. 選擇表中的若干列 2. 選擇表中的若干元組 3. ORDER BY子句 4. 聚集函式 5. GROUP BY子句 連線查詢 1. 等值與非等值連線查詢 2. 自身連線 3. 外

資料庫相關知識回顧

資料庫相關回顧 DBMS主要特性 1. 資料訪問的高效和課擴充套件性 2.縮短應用開發時間 3.資料獨立性(物理/邏輯) 4.資料完整性和安全性 5.併發訪問和魯棒性 摘要 本文以MySQL資料庫為研究物件,討論與資料庫索引相關的一些話題。特別需要說明的是,MySQL支援諸多儲存

python爬蟲相關知識整理

1.徹底理解cookie,session,token 2.反爬蟲技巧 3.python(字元編碼) 檔案以什麼編碼儲存的,就以什麼編碼方式開啟。而檔案編碼儲存時候使用的編碼方式是右下角的編碼方式,而解碼的時候是使用文件開頭申明的編碼方式,兩種編碼不同的時

Bitmap 優化與相關知識整理

Bitmap圖片佔用記憶體計算: Bitmap圖片在載入到記憶體的時候是按照:寬*高*畫素點位數來計算的。你可以把圖片看成是由width行、height列的矩陣組成,每一個矩陣元素代表一個畫素點,每一個畫素點都是1byte整數倍的資料,這個資料越大,表示的色彩就越豐富,圖片的顯示質量就越高。Bi

【c#】連線資料庫相關知識

知識回顧 1、儲存過程: 是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程

連結串列相關知識整理

標語:如果懼怕前面跌宕的山岩,生命永遠只能是死水一潭 連結串列 定義:連結串列是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過連結串列中的指標連結次序實現的。 比較: 陣列 連結串列 如何建立連結串列 頭插法

Centos系統相關知識整理

1: man 線上查詢 man ls 2: ls 顯示本目錄下的檔案及目錄 ls -a 顯示本目錄下的所有檔案及目錄(包括隱藏目錄和檔案)ls -l 顯示本目錄下所有檔案的屬性ls -l | grep ^d 只顯示目錄名ls -l | grep ^f 只顯示檔名ls -G 以顏色

python基礎知識整理5——類方法、靜態方法和繼承相關問題

類方法和靜態方法 method - 通過例項呼叫 - 可以引用類內部的任何屬性和方法 classmethod - 無需例項化 - 可以呼叫類屬性和類方法 - 無法取到普通的成員屬性和方法 staticmethod - 無需例項化 - 無法渠道類內部的任何

spring相關知識整理

一.spring ioc容器 容器的功能:載入配置檔案中定義的bean,將所有bean 集中在一起(存在一個hashMap中),當有需求的時候分配bean(通過bean的去map 中get(key))。 1.BeanFactory容器(最簡單) 1)適用於輕量級的應用程

資料庫知識整理 - 併發控制

主要內容 前提 併發操作帶來的資料不一致性 封鎖 兩種基本封鎖型別  封鎖協議 活鎖和死鎖 活鎖 死鎖 併發排程的可序列性 兩段鎖協議 封鎖的粒度 多粒度封鎖 意向鎖 鎖的強度 &nb

mongodb服務遷移相關知識整理

因為遷移專案中用到的mongodb這個資料庫。這裡整理一下。 常用操作 show dbs; use 資料庫名: show collections; db.表名.find() db.表名.find().count() db.表名.find().limit(5);查看錶的前5條資料。