MySQL系列之開篇 MySQL關系型數據庫基礎概念
一、基礎概念
數據(Data)是描述事物的符號記錄,是指利用物理符號記錄下來的、可以鑒別的信息。
1、數據庫(Database,DB)是指長期儲存在計算機中的有組織的、可共享的數據集合。數據要按照一定的數據模型組織、描述和存儲,具有較小的冗餘度、較高的數據獨立性,系統易於擴展,並可以被多個用戶分享。
數據的三個基本特點:
- 永久存儲
- 有組織
- 可共享
2、數據庫管理系統(DBMS)是專門用於建立和管理數據庫的一套軟件,介於應用程序和操作系統之間。 它實現數據庫系統的各種功能。是數據庫系統的核心。
- 數據定義功能
- 數據操作功能
- 數據庫的運行管理功能
- 數據庫的建立和維護功能
- 數據組織、存儲和管理功能
- 數據的安全保證
- 數據的備份功能
3、數據庫系統的構成有:
- 用戶(終端用戶)
- 程序(API)
- 應用程序:指以數據庫為基礎的應用程序
- 數據庫管理系統
- 數據庫管理員(DBA):負責數據庫的規劃、設計、協調、維護和管理等工作
- 數據庫
4、數據庫系統的架構:
- 單機架構
- 大型 主機/終端 架構
- 主從式架構 c/s :客戶/服務器結構(Client/Server,C/S)中, “客戶端”、“前臺”或“表示層”主要完成與數據庫使用者的交互任務; “服務器”、“後臺”或“數據層”主要負責數據管理。
- 分佈式架構
5、數據庫系統的結構
- 模式:也稱為概念模式或邏輯模式,是數據在邏輯上的視圖,即概念視圖
- 外模式:也稱為子模式或用戶模式 數據視圖,即用戶視圖
- 內模式:也稱為存儲模式,是內部視圖或存儲視圖
外模式/模式映像 保證瞭數據與程序的邏輯獨立性
內模式/模式映像 保證瞭數據與程序的物理獨立性
6、模型
模型(Model)是現實世界特征的模擬和抽象表達。
數據模型是對現實世界數據特征的抽象,描述的是數據的共性內容。
二、數據庫管理技術的發展
- 萌芽階段—–文件系統 使用磁盤文件來存儲數據
- 初級階段—–第一代數據庫 出現瞭網狀模型、層次模型的數據庫
- 中級階段—–第二代數據庫 關系型數據庫和結構化查詢語言
- 高級階段——新一代數據庫 “關系-對象”型數據庫
1、文件系統管理的缺點
- 編寫應用程序不方便
- 數據冗餘不可避免
- 應用程序依賴性
- 不支持對文件的並發訪問
- 數據間聯系弱
- 難以按用戶視圖表示數據
- 無安全控制功能
2、數據庫管理系統的優點
- 相互關聯的數據的集合
- 較少的數據冗餘
- 程序與數據相互獨立
- 保證數據的安全、可靠
- 最大限度地保證數據的正確性
- 數據可以並發使用並能同時保證一致性
三、關系型數據庫(RDBMS)概念
關系數據庫(Relation Database)是所有關系的集合,構成一個關系數據庫。 以關系模型作為數據的邏輯模型,並采用關系作為數據組織方式的一類數據庫,其數據庫操作建立在關系代數的基礎上。
- 表(Table)是一個二維的數據結構,由表名、列、若幹行數據組成。
- 關系 :關系就是二維表。並滿足如下性質: 表中的行、列次序並不重要
- 行row:表中的每一行,又稱為一條記錄Record或元組Tuple。表中的數據按行存儲。
- 列column:表中的每一列,稱為屬性Attribute,字段Field
- 分量(Component) :元組(行)中的一個屬性值,稱為分量。
- 鍵(Key):屬性(或屬性組)的值都能用來唯一標識該關系的元組,則稱這些屬性(或屬性組)為該關系的鍵。
- 主鍵(Primary key):用於惟一確定一個記錄的字段
- 外鍵(Foreign Key) 某個屬性(或屬性組)不是這個關系的主碼或候選碼,而是另一個關系的主鍵。
- 參照關系(Referencing Relation)和被參照關系(Referenced Relation):參照關系也稱為從關系,被參照關系也稱為主關系,它們是指以外鍵相關聯的兩個關系。
- 域domain:屬性的取值范圍,如,性別隻能是‘男’和‘女’兩個值。
- 數據類型(Data Type) 每個列都有相應的數據類型,它用於限制(或容許)該列中存儲的數據。
1、事務transaction
多個操作被當作一個整體對待
事務遵循ACID特性:
- A原子性:不可分割性,所有的動作要全做,要不都不做
- C一致性:保持數據一致性
- I隔離性:事務沒有完成無法看大最終數據
- dirty data 臟數據:事務沒做完的數據
- D持久性:持久影響,永久性
2、E-R模型(實體-聯系)
實體Entity:客觀存在並可以相互區分的客觀事物或抽象事件稱為實體。在E-R圖中用矩形框表示實體,把實體名寫在框內。
屬性:實體所具有的特征或性質
聯系:聯系是數據之間的關聯集合,是客觀存在的應用語義鏈。聯系有實體內部的聯系和實體之間的聯系。實體之間的聯系用菱形框表示。
聯系的類型:
- 一對一聯系(1:1)
- 一對多聯系(1:n)
- 多對多聯系(m:n)
3、關系型數據庫的歷史
- 1970年 IBM的E.F.Codd提出瞭關系模型,奠定瞭關系數據庫的理論基礎
- 20世紀70年代末關系方法理論研究和軟件系統的研制取得瞭重大突破
- 1981年 出現瞭比較成熟的關系數據庫管理技術,證實瞭關系數據庫的優點:高級的非過程語言接口、較好的數據獨立性。
- 20世紀80年代後 網狀模型和層次模型與底層實現的結合緊密,關系模型具有堅實理論基礎,成為主流數據模型。
4、關系數據模型的組成要素
數據模型的要素包括:
- 關系數據結構
- 關系操作集合
- 關系完整性約束
5、數據三要素
- 數據結構:包括兩類,一類是與數據類型、內容、性質有關的對象,比如關系模型中的域、屬性和關系等;另一類是與數據之間聯系有關的對象,它從數據組織層表達數據記錄與字段的結構。
- 數據的操作:
數據提取,在數據集合中提取感興趣的內容。
數據更新:變更數據庫中的數據。
- 數據的約束條件:是一組完整性規則的集合
實體(行)完整性 Entity integrity
域(列)完整性 Domain Integrity
參考完整性 Referential Integrity
6、約束constraint
- 主鍵約束:一個或多個字段的組合,填入的數據必須能在本表中唯一標識本行;必須提供數據,即NOT NULL,一個表隻能有一個。
- 惟一鍵約束:一個或多個字段的組合,填入的數據必須能在本表中唯一標識本行;允許為NULL,一個表可以存在多個。
- 外鍵約束:一個表中的某字段可填入的數據取決於另一個表的主鍵或唯一鍵已有的數據。
- 檢查約束:字段值在一定范圍內。
7、索引
將表中的一個或多個字段中的數據復制一份另存,並且此些需要按特定次序排序存儲。
8、關系運算
- 選擇:挑選出符合條件的行
- 投影:挑選出需要的字段
- 連接:表間字段的關聯
9、數據模型
- 數據抽象:
物理層:數據存儲格式,即RDBMS在磁盤上如何組織文件
邏輯層:DBA角度,描述存儲什麼數據,以及數據間存在什麼樣的關系
視圖層:用戶角度,描述DB中的部分數據
- 關系模型的分類:
基於對象的關系模型
半結構化的關系模型
四、RDBMS設計范式
設計關系數據庫時,遵從不同的規范要求,設計出合理的關系型數據庫,這些不同的規范要求被稱為不同的范式,各種范式呈遞次規范,越高的范式數據庫冗餘越小。
目前關系數據庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又稱完美范式)。
滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎上進一步滿足更多規范要求的稱為第二范式(2NF),其餘范式以次類推。
一般說來,數據庫隻需滿足第三范式(3NF)即可。
- 1NF:無重復的列,每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。除去同類型的字段,就是無重復的列。
說明:第一范式(1NF)是對關系模式的基本要求,不滿足第一范式(1NF)的數據庫就不是關系數據庫
- 2NF:屬性完全依賴於主鍵,第二范式必須先滿足第一范式,要求表中的每個行必須可以被唯一地區分。通常為表加上一個列,以存儲各個實例的唯一標識PK,非PK的字段需要與整個PK有直接相關性。
- 3NF:屬性不依賴於其它非主屬性,滿足第三范式必須先滿足第二范式。第三范式要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息,非PK的字段間不能有從屬關系。
到此這篇關於MySQL系列之開篇 MySQL關系型數據庫基礎概念的文章就介紹到這瞭,更多相關MySQL關系型數據庫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Entity Framework系統架構與原理介紹
- 新手入門Mysql–概念
- MySQL基礎快速入門知識總結(附思維導圖)
- MySQL與PHP的基礎與應用專題之數據完整性
- 教你使用VS Code的MySQL擴展管理數據庫的方法