DBMS中的關(guān)系數(shù)據(jù)模型
什么是關(guān)系模型
關(guān)系模型將數(shù)據(jù)庫(kù)表示為關(guān)系的集合。 表中的每一行代表一組相關(guān)的數(shù)據(jù)值。 表中的這些行表示真實(shí)世界的實(shí)體或關(guān)系。
表名和列名有助于解釋每行中值的含義。 數(shù)據(jù)表示為一組關(guān)系。 在關(guān)系模型中,數(shù)據(jù)存儲(chǔ)為表。 但是,數(shù)據(jù)的物理存儲(chǔ)與數(shù)據(jù)邏輯組織的方式無(wú)關(guān)。
一些流行的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)是:
關(guān)系模型概念
- 屬性:表中的列。 屬性是定義關(guān)系的屬性。 例如,Student_Rollno,NAME等。
- 表 - 在Relational模型中,關(guān)系以表格格式保存。 它與其實(shí)體一起存儲(chǔ)。 表有兩個(gè)屬性行和列。 行表示記錄,列表示屬性。
- 元組 - 一條記錄。
- 關(guān)系模式:與其屬性的關(guān)系的名稱。
- Degree:關(guān)系中屬性的總數(shù)稱為Degree。
- 基數(shù):總行數(shù)。
- 列:列表示特定屬性的值集。
- 關(guān)系實(shí)例 - RDBMS系統(tǒng)中一組有限的元組。 關(guān)系實(shí)例永遠(yuǎn)不會(huì)有重復(fù)的元組。
- key - 每行都有一個(gè),兩個(gè)或多個(gè)屬性,稱為關(guān)系鍵。
- 屬性域 - 每個(gè)屬性都有一些預(yù)定義的值和范圍,稱為屬性域

關(guān)系完整性約束
關(guān)系完整性約束是指有效關(guān)系必須存在的條件。 這些完整性約束源自數(shù)據(jù)庫(kù)所代表的迷你世界中的規(guī)則。
有許多類型的完整性約束。 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的約束大多分為三大類:
- 域約束
- 鍵約束
- 參照完整性約束
域約束
如果屬性值未出現(xiàn)在相應(yīng)的域中,或者它不屬于適當(dāng)?shù)臄?shù)據(jù)類型,則可能違反域約束。
域約束指定每個(gè)元組內(nèi)的值,并且每個(gè)屬性的值必須是唯一的。 這被指定為數(shù)據(jù)類型,包括標(biāo)準(zhǔn)數(shù)據(jù)類型整數(shù),實(shí)數(shù),字符,布爾值,可變長(zhǎng)度字符串等。
例:
Create DOMAIN CustomerName
CHECK (value not NULL)
鍵約束
可以唯一標(biāo)識(shí)關(guān)系中元組的屬性稱為表的鍵。 關(guān)系中不同元組的屬性值必須是唯一的。
例:
CustomerID是Customer Table的關(guān)鍵屬性, CustomerID = 1僅適用于CustomerName =“Google”。
參照完整性約束
參照完整性約束基于外鍵的概念。 外鍵是關(guān)系的重要屬性,在其他關(guān)系中引用。 當(dāng)關(guān)系引用不同或相同關(guān)系的鍵屬性時(shí),會(huì)發(fā)生引用完整性約束狀態(tài)。
例:

在上面的例子中,我們有兩個(gè)關(guān)系,Customer和Billing。
CustomerID = 1的元組在關(guān)系Billing中被引用兩次。 所以我們知道CustomerName = Google的結(jié)算金額為300美元
關(guān)系模型中的操作
對(duì)關(guān)系數(shù)據(jù)庫(kù)模型執(zhí)行的四個(gè)基本操作是
插入,更新,刪除和選擇。
- Insert用于將數(shù)據(jù)插入關(guān)系中
- 刪除用于從表中刪除元組。
- 修改允許您更改現(xiàn)有元組中某些屬性的值。
- 選擇允許您選擇特定范圍的數(shù)據(jù)。
操作時(shí)不得違反在關(guān)系數(shù)據(jù)庫(kù)模式上指定的完整性約束。

插入
insert操作給出了應(yīng)該插入關(guān)系的新元組的屬性值。
更新操作
您可以在以下給定的關(guān)系表中看到CustomerName ='Apple'從Inactive更新為Active。

刪除操作
要指定刪除,關(guān)系屬性的條件選擇要?jiǎng)h除的元組。

在上面給出的示例中,從表中刪除了CustomerName =“Apple”。
如果刪除的元組由同一數(shù)據(jù)庫(kù)中其他元組的外鍵引用,則Delete操作可能違反參照完整性。
選擇操作
在上面給出的示例中,選擇了CustomerName =“Amazon”

參考資料
- python測(cè)試開(kāi)發(fā)項(xiàng)目實(shí)戰(zhàn)-目錄
- python工具書(shū)籍下載-持續(xù)更新
- python 3.7極速入門(mén)教程 - 目錄
- 討論qq群630011153 144081101
- 原文地址
- 本文涉及的python測(cè)試開(kāi)發(fā)庫(kù) 謝謝點(diǎn)贊!
- 本文相關(guān)海量書(shū)籍下載
- https://www.tutorialspoint.com/sqoop/sqoop_installation.htm
- https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html
- https://www.softwaretestinghelp.com/top-4-etl-testing-tools/
創(chuàng)建關(guān)系模型的最佳實(shí)踐
- 數(shù)據(jù)需要表示為關(guān)系集合
- 應(yīng)在表格中清楚地描述每種關(guān)系
- 行應(yīng)包含有關(guān)實(shí)體實(shí)例的數(shù)據(jù)
- 列必須包含有關(guān)實(shí)體屬性的數(shù)據(jù)
- 表格的單元格應(yīng)該包含單個(gè)值
- 應(yīng)為每列提供唯一的名稱
- 沒(méi)有兩行可以相同
- 屬性的值應(yīng)來(lái)自同一個(gè)域
使用Relational模型的優(yōu)點(diǎn)
- 簡(jiǎn)單性 :關(guān)系數(shù)據(jù)模型比分層和網(wǎng)絡(luò)模型更簡(jiǎn)單。
- 結(jié)構(gòu)獨(dú)立性 :關(guān)系數(shù)據(jù)庫(kù)僅涉及數(shù)據(jù)而不涉及結(jié)構(gòu)。 這可以改善模型的性能。
- 易于使用 :關(guān)系模型很容易,因?yàn)榘泻土械谋砀穹浅W匀磺乙子诶斫?/li>
- 查詢功能 :使SQL等高級(jí)查詢語(yǔ)言可以避免復(fù)雜的數(shù)據(jù)庫(kù)導(dǎo)航。
- 數(shù)據(jù)獨(dú)立性 :無(wú)需更改任何應(yīng)用程序即可更改數(shù)據(jù)庫(kù)的結(jié)構(gòu)。
- 可擴(kuò)展 :對(duì)于許多記錄,行或字段數(shù),應(yīng)擴(kuò)大數(shù)據(jù)庫(kù)以增強(qiáng)其可用性。
使用Relational模型的缺點(diǎn)
- 一些關(guān)系數(shù)據(jù)庫(kù)對(duì)字段長(zhǎng)度有限制,不能超過(guò)。
- 隨著數(shù)據(jù)量的增長(zhǎng),關(guān)系數(shù)據(jù)庫(kù)有時(shí)會(huì)變得復(fù)雜,并且數(shù)據(jù)之間的關(guān)系變得更加復(fù)雜。
- 復(fù)雜的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)可能導(dǎo)致孤立的數(shù)據(jù)庫(kù),其中信息無(wú)法從一個(gè)系統(tǒng)共享到另一個(gè)系統(tǒng)。
小結(jié)
- Relational數(shù)據(jù)庫(kù)模型將數(shù)據(jù)庫(kù)表示為關(guān)系集合(表)
- 屬性,表,元組,關(guān)系模式,度,基數(shù),列,關(guān)系實(shí)例,是關(guān)系模型的一些重要組成部分
- 關(guān)系完整性約束是指有效關(guān)系必須存在的條件
- 如果屬性值未出現(xiàn)在相應(yīng)的域中,或者它不屬于適當(dāng)?shù)臄?shù)據(jù)類型,則可能違反域約束
- 插入,選擇,修改和刪除是在關(guān)系模型中執(zhí)行的操作
- 關(guān)系數(shù)據(jù)庫(kù)僅涉及數(shù)據(jù),而不涉及可以改善模型性能的結(jié)構(gòu)
- 關(guān)系模型的優(yōu)點(diǎn)是簡(jiǎn)單性,結(jié)構(gòu)獨(dú)立性,易用性,查詢能力,數(shù)據(jù)獨(dú)立性,可伸縮性。
- 有少數(shù)關(guān)系數(shù)據(jù)庫(kù)對(duì)字段長(zhǎng)度有限制,不能超過(guò)。