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