資料庫基礎知識3

2021-10-12 07:18:56 字數 2950 閱讀 1286

關係模型

乙個關係就是乙個table

關係模型就是處理table的,它是由三部分組成

描述db各種資料的基本結構形式

描述table與table之間所肯發生的各種操作(關係運算)

描述這些操作所應遵循的約束一傲劍(約束完整性)

三要素:

資料結構:relation/table

資料操作:

基本的:∪、—、×(廣義積)、π(投影)、δ  (選擇)

擴充套件的:∩、  (連線)、÷

[以上是資料語言]

完整性約束:實體完整性、參照完整性、使用者自定義完整性

關係運算:關係代數和關係演算

關係演算:元組演算和域演算

關係代數示例:基於集合的運算,操作物件和結果都是集合,是一次一集合的操作,而非關係型的資料操作通常是一次一記錄的操作

基於關係代數設計的資料庫語言(isbl):用計算機可識別的符號表徵關係代數的運算符號(計算機語言)

r:f :表選擇,f表條件

r%表示投影運算

元組演算示例:基於邏輯的運算

基於元組演算設計的資料庫語言(ingres系統的quel):用計算機可識別的符號表徵元組演算的運算符號

域演算示例:基於示例的演算

基於域演算設計的資料庫語言(qbe:query by example)

嚴格定義表:(從數學角度)

域:在表中,列的值的取值範圍;一組值的集合,這組值具有相同的資料型別;

集合中元素的個數稱為域的基數;

元組及所有可能合成的元組:笛卡爾積

一組域(d1,d2,d3,d4…dn)的笛卡爾積為:

d1×d2×d3×d4×…×dn=

笛卡爾積(d1,d2,d3,…,dn)稱為乙個n-元組

元組(d1,d2,d3,…,dn)每乙個值di叫做乙個分量

元組(d1,d2,d3,…,dn)是從每乙個域任取乙個值所形成的一種組合,笛卡爾積是所有這張可能組合的集合,即:笛卡爾積是由n個域形成的所有可能的n-元組集合

若d1的基數mi,則笛卡爾積的基數(元組的個數)為m1×m2×m3×…×mn

在表中,列的值為域的值

由於笛卡爾積中的元組並不是都有意義,因此我們要找出有某種意義的元組,某種意義的元組形成的組合稱為關係。某種意義可以由表的名字去表達(描述);

即關係是一組域的笛卡爾積的子集,笛卡爾積中具有某一方面意義的那些元組被稱為·乙個關係;在關係中,由於關係的不同列可能來自同乙個域,為了區分,需要為每乙個列起乙個名字,即為屬性名(列名)

關係可用r(a1:d1,a2:d2,…,an:dn)表示,可簡記為r(a1,a2,…,an),這種描述又被稱為關係模式或表標題

r是關係的名字,ai是屬性,di是屬性所對應的域,n是關係的度或者是目,關係中元組的數目稱為關係的基數

關係模式r(a1:d1,a2:d2,…,an:dn)中屬性項域的映像在很多dbms中一般直接說明為屬性的長度、型別等

關係模式與關係:

同一關係模式下,有很多關係

關係模式是關係的結構,關係是關係模式在某一時刻的資料

關係模式是穩定的,而關係是某一時刻的值,是隨時間可能變化的

關係的特性:

列是同質的:即每一列中的分量來自同一域,是同一型別的資料;

不同的列可以來自同乙個域,稱其中的每乙個列為乙個屬性,不同的屬性要給予不同的屬性名

關係模式r(a1:d1,a2:d2,…,an:dn)中ai必須不同,di可以相同

列位置互換性:區分哪一列是靠列名 列位置的變換不影響

行位置互換性:區分哪一行是靠某一或者某幾列的的值(關鍵字/鍵碼/碼字)

關係是以內容(名字/值)來區分的,而不是屬性在關係的位置來區分的

理論上,關係的任意兩個元組不能完全相同(關係是乙個集合,集合要求:集合內不能有重複的元素),但現實應用中,表(table)可能並不完全遵循此特性,故說表和關係有相同性,也有細微的差別 元組相同是指元組的每個分量均相同

屬性不可再分性:符合第一正規化(不能存在復合屬性和多值屬性)

關係中的一些重要概念:

候選碼/候選鍵 :關係中的乙個屬性/屬性組,其值能唯一標識乙個元組,若從該屬性組中去掉任意乙個屬性,它就不具備這一性質了,這樣的屬性/屬性組稱為候選碼

盡量不要改變候選碼

有時候關係中有多個候選碼(這時候就要定乙個作為主鍵)

主碼/主鍵 :

當有多個候選碼時候選定乙個作為主碼

dbms以主碼為主要線索管理關係中的各個元組

主屬性和非主屬性 :

包含在任何乙個侯選碼中的屬性被稱為主屬性,而其它屬性被稱為非主屬性

最簡單:候選碼為乙個屬性

最極端:所有屬性構成這乙個候選碼,稱為全碼

外碼/外來鍵:

關係r中的乙個屬性組,它不是r的候選碼,但它與另乙個關係s的候選碼相對應,則稱這個屬性組為r的外碼或外來鍵

兩個關係通常是靠外碼連線起來的,即兩個關係的元組,靠著外碼可以連線城乙個大的元組

完整性約束

實體完整性(對主碼而言的):

關係的主碼中屬性值不能為空

空置 無意義/不知道/不存在的值 在關係模型中用」?「來表徵

意義:關係中的元組對應到現實世界相互之間可區分的乙個個個體,這些個體是通過主碼來唯一標識的;若主碼為空,則出現不可標識的個體,這是不允許的

有空值時候需要特殊處理。

參照完整性(外碼):

外碼可以取空值,取空值意味著沒有/還未,若為非空值,則值必須是從它在另乙個作為主碼的表中取值

外碼關係到資料的一致性,連線的正確性

使用者自定義完整性:

使用者針對具體的應用環境定義的完整性約束條件

比如學號:必須是十位整型數字,前四位必須是年度,當前年度與他們的查必須在4以內

dbms對關係完整性的支援:

對於使用者自定義完整性(屬性和屬性組合):它使使用者可以自行定義有關的完整性條件

當有更新操作發生時,dbms會自動按照完整性約束條件檢驗更新操作的正確性,即是否符合使用者自定義完整性

實體完整性和參照完整性由dbms系統自動支援

資料庫基礎知識

資料定義 定義基本表 create table 表名 列名 資料型別 列級完整性約束條件 列名 資料型別 列級完整性約束條件 表級完整性約束條件 後面用到的表 1 學生 表 student 由學號 sno 姓名 sname 性別 s 年齡 sage 所在系 sdept 5個屬性組成,可記為 stud...

資料庫 基礎知識

e r模型 實體 聯絡模型 entity relationship model,e r模型 實體是指現實中區別於其他物件的一種 物體 或一件 事情 例如一名學生,乙個專案等等。同乙個型別中所有的實體被叫做實體集,對應於資料庫的一張表,乙個實體則對應於一條記錄。不同的任務之間,就是通過聯絡關係整合到一...

資料庫基礎知識

一 1 ddl 資料庫定義語句,建立資料表 dml 資料庫操作語言 dcl 資料控制語言 dql 資料查詢語言 2 資料查詢,sql語句 看課堂作業 查詢結果是表。3 聚集函式的一般格式 會使用 distinct all 列名 4 檢視 從乙個或幾個基本表 或檢視 匯出的表,與基本表不同,是乙個虛表...