国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【數(shù)據(jù)庫概論】第二章 關(guān)系型數(shù)據(jù)庫

這篇具有很好參考價值的文章主要介紹了【數(shù)據(jù)庫概論】第二章 關(guān)系型數(shù)據(jù)庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

2.1 關(guān)系數(shù)據(jù)庫

2.1.1關(guān)系

關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)十分簡單,只包含單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系。在用戶看來,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張扁平的二維表。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)雖然簡單卻能表達豐富的語義。在關(guān)系模型中,現(xiàn)實世界的實體以及實體之間的聯(lián)機都是用單一的關(guān)系結(jié)構(gòu)類型來表示。

  1. 域(domain)
    定義:域是一組具有相同數(shù)據(jù)類型的值的集合。例如學生數(shù)據(jù)庫中所有的學生名字,或者性別的取值只有男或女,這就是性別的域。

  2. 笛卡爾積
    在一組域D1,D2,D3…Dn中的笛卡爾積是:D1xD2xD3…Dn 。其中每一個元素(d1,d2,d3,…dn)稱為一個n元組,元素中每一個di稱之為一個分量一個域允許的不同取址的個數(shù)稱為這個域的基數(shù)。笛卡爾積可以表示為一個二位表,表中的每一列來自一個域。

  3. 關(guān)系
    D1xD2xD3x…xDn的子集叫做在域D1,D2,D3…Dn上的關(guān)系,表示為R(D1,D2,D3…Dn),R表示關(guān)系的名字,n是關(guān)系的。比如一個實體:學生(學號,姓名,班級,院系),其中R為學生,n為4。

關(guān)系中每個元素是關(guān)系中的元組,使用t來表示。關(guān)系是笛卡爾積的有限子集,表的每一行對應(yīng)一個元組,表的每一列對應(yīng)一個域。由于域可以相同,為了區(qū)分,必須給每一列起一個名字,稱之為屬性。n目關(guān)系有n個屬性。

如果關(guān)系中某一屬性的值能夠唯一的標識一個元組,而其子集不能,則稱該屬性組為候選碼(比如學生表中的學號,通過學號可以確定是哪個學生,但是靠班級或者性別是不行的)。如果一個關(guān)系中有多個候選碼,則可以選擇其中一個作為主碼(primary key)。候選碼的各個屬性稱為主屬性。不包含在任何候選碼中的屬性稱為非主屬性。在最簡單的情況下,關(guān)系模式所有的屬性都是這個關(guān)系模式的候選碼,稱為全碼

關(guān)系可以有三種類型:基本關(guān)系、查詢表和視圖表?;娟P(guān)系就是實際存在的表;查詢表是查詢結(jié)果對應(yīng)的表;視圖表是由基本表或其它視圖表導出的表,是虛表,不對應(yīng)實際存儲的數(shù)據(jù)。

因此,基本關(guān)系具有一下六條性質(zhì):
(1)列是同質(zhì)的,也就是每一列中的數(shù)據(jù)都是同一類型的來自同一個域的
(2)不同的列可能來自同一個域,稱每個列為一個屬性。比如學生的出生年份和入學年份兩個不同的屬性是來自同一個域的
(3)列的順序無所謂,次序可以交換
(4)任意兩個元組的候選慢不能取相同的值
(5)行的順序也無所謂
(6)分量必須取原子值,每一個分量必須是不可分的數(shù)據(jù)項

關(guān)系模型中要求關(guān)系必須是規(guī)范化的,滿足上述條件的。規(guī)范化的關(guān)系簡稱為范式(Normal Form,NF)

2.1.2關(guān)系模式

關(guān)系是元組的集合,因此關(guān)系模式必須指出這個元組集合的結(jié)構(gòu)。關(guān)系的描述稱為關(guān)系模式,可表示為:

R(U,D,DOM,F)
R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為U中屬性來自的域,DOM為屬性向域的映像集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。

2.1.3關(guān)系數(shù)據(jù)庫

在一個給定的應(yīng)用領(lǐng)域中,所有關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。

關(guān)系數(shù)據(jù)庫的型又稱為關(guān)系數(shù)據(jù)路模式,是對關(guān)系數(shù)據(jù)庫的描述。關(guān)系數(shù)據(jù)庫模式包含若干域的定義。

2.2 關(guān)系操作

2.2.1 基本的關(guān)系操作

常用的關(guān)系操作包括查詢(query)、插入(insert)、刪除(delete)和修改(update)。關(guān)系的查詢表達能力強,查詢的基本操作是選擇(select)、投影(project)、連接(join)、除(divide)、并(union)、差(except)、交和笛卡爾積,這些在后面都會介紹。關(guān)系操作的特點是集合操作方式,就是操作的對象和結(jié)果都是集合。這部分會在后面詳細介紹

2.2.2關(guān)系數(shù)據(jù)語言的分類

早期的關(guān)系操作能力通常用代數(shù)方式活著邏輯方式來表示,分別稱為關(guān)系代數(shù)關(guān)系演算。關(guān)系代數(shù)用對關(guān)系的運算來表達查詢需求,關(guān)系元算則使用謂語來表達查詢要求。另外還有一種介于關(guān)系代數(shù)和關(guān)系演算之間的結(jié)構(gòu)化查詢語言(SQL),具有豐富的查詢功能,是集查詢、數(shù)據(jù)定義和數(shù)據(jù)控制語言于一體的關(guān)系數(shù)據(jù)語言。我們的重點是在于學習SQL語言。

2.3 關(guān)系的完整性

關(guān)系模型中有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性

2.3.1 實體完整性

實體完整性規(guī)則:如果屬性A是基本關(guān)系R的主屬性(主鍵),則A不能取空值。比如學生(學號、姓名、專業(yè)號、班級號)這個表中學號為主碼,則學號不可為空。

規(guī)則說明如下:

  • 實體完整性規(guī)則是針對基本關(guān)系而言的,一個基本表通常對應(yīng)現(xiàn)實世界的一個實體集合(比如學生表集合對應(yīng)現(xiàn)實中的所有學生)
  • 現(xiàn)實世界中的實體是可以區(qū)分的,也就是他們是具有某種唯一的標識的,錄入每個學生都是獨立的個體。相應(yīng)的,關(guān)系模型中以主碼為唯一性標識。
  • 因此主碼中的屬性不能取空值,主碼為空意味著該實體無法被唯一的標識,也就是該實體是無法被區(qū)分的。

也就是在學生表中,為了區(qū)分學生,必須要求作為主鍵的學號不能為空,如果學號為空,那么一旦出現(xiàn)重名的學生,就會無法區(qū)分兩個學生,從而使得關(guān)系數(shù)據(jù)庫出現(xiàn)邏輯錯誤??傊?,實體完整性要求主鍵不能取空值。

2.3.2 參照完整性

現(xiàn)實世界之中實體之間往往存在某種聯(lián)系,在關(guān)系模型中實體和實體之間的聯(lián)系也是用關(guān)系來描述的。比如學生的班級號和班級表中的班級號是有聯(lián)系的。因此定義了一種參考關(guān)系來說明實體和實體之間的聯(lián)系,先看如下例子

比如有如下兩個表:

學生(學號、姓名、班級號、專業(yè)號)
專業(yè)(專業(yè)號、專業(yè)名)

那么學生表的專業(yè)號信息均來自于專業(yè)表,那么學生表中就不可以出現(xiàn)專業(yè)表中不存在的專業(yè)。

定義:設(shè)F是基本關(guān)系R的一個或一組屬性,但是不是R的主碼,K是基本關(guān)系S的主碼。如果F和K相對應(yīng),則稱F是R的外碼(Foreign Key),并且稱R為參照關(guān)系,S為被參照關(guān)系或目標關(guān)系。

參照完整性規(guī)則是定義外碼和主碼之間的引用關(guān)系:
若屬性或者屬性組F是基本關(guān)系R的外碼,他和基本關(guān)系S的主碼K相對應(yīng),則對于R中每個元組在F上的只必須:

  • 或者取空值(F中的每個屬性值都是空值)
  • 或者等于S中某個元組的主碼值

回到剛才的兩個表,其中學生表中的專業(yè)號和專業(yè)表中的專業(yè)號之間有外鍵關(guān)系:

學生(學號、姓名、班級號、專業(yè)號)
專業(yè)(專業(yè)號、專業(yè)名)

學生表中的“專業(yè)號”屬性是參照專業(yè)表中的“專業(yè)號”的,那么可以有兩種情況:

  • 空值,表示還沒有給學生分配專業(yè)
  • 非空,但是值必須是專業(yè)表中存在的值
    也就是不可以出現(xiàn)不存在的專業(yè)號

2.3.3 用戶定義的完整性

用戶定義的完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反應(yīng)某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足語義要求。比如說規(guī)定學生成績不可以有負數(shù)等等。在很早之前的關(guān)系數(shù)據(jù)庫管理系統(tǒng)是沒有提供定義和檢驗這些完整性的功能,所有都需要應(yīng)用程序編寫者負責,麻煩而且安全性不夠高。

2.4 關(guān)系代數(shù)

關(guān)系代數(shù)是一種抽象的查詢語言,他用對關(guān)系的運算來表達查詢。關(guān)系代數(shù)的運算可以分為傳統(tǒng)集合運算和專門的關(guān)系運算兩種類型。其中傳統(tǒng)的集合運算將關(guān)系看成元組的集合,其運算是從行角度進行的;而專門電費集合關(guān)系運算不僅涉及行,而且涉及列。

2.4.1 傳統(tǒng)集合運算

傳統(tǒng)集合運算是二目運算,包含并、交、差、笛卡爾積四種。我們設(shè)計兩個表R和S

  1. 并集(Union)
    并集使用 ∪ 表示,其中 (R ∪ S) 表示 R 和 S 的并集,見圖c。并集運算是將兩個集合中出現(xiàn)的行組成一張新表,由屬于 R 或?qū)儆?S 的行組成。
  2. 交集(intersection)
    交集使用 ∩ 標識,其中R ∩ S 表示 R 和 S 的交集,見圖d。交集運算是將兩個集合中的公共行組合成一張新表,由既屬于 R 又屬于 S 的行組成。
  3. 差(expect)
    差集使用 ? 表示,其中 R ? S 表示 R 和 S 的差,見圖e。差運算是提取屬于 R 但不屬于 S 的行。
  4. 笛卡爾積(cartesian product)
    R × S 表示 R 和 S 的笛卡爾積,如圖f所示,R 和 S 的笛卡爾積是一個 n+m 列的元素的集合。元素的前 n 列是關(guān)系 R 的一個元組,后 m 列是關(guān)系 S 的一個元組。

2.4.2 專門的關(guān)系運算

專門關(guān)系運算包括選擇、投影、連接、除運算。

1.選擇(Selection)

選擇又稱為限制,在關(guān)系R中選擇滿足給定條件的元組。比如說查詢學生表中年齡大于20的學生

2.投影(Projection)

關(guān)系R上的投影上是從R中選擇若干屬性列組成新關(guān)系。比如在學生(學號,姓名,班級,專業(yè))這個關(guān)系中,選擇學號和姓名兩列組成新關(guān)系。

3.連接(Join)

連接是從兩個關(guān)系的笛卡爾積中選取屬性之間滿足一定條件的元組。連接分為等值連接、非等值連接和自然連接,其區(qū)別可以看下圖,下圖是對R中的B列和S中的B列進行等值、非等值和自然連接。其中:文章來源地址http://www.zghlxwxcb.cn/news/detail-748844.html

  1. 等值連接會從關(guān)系R和S的廣義笛卡爾積中選取A、B屬性值相等的元組。
  2. 非等值連接則可以使用大于或等于進行連接。
  3. 自然連接是一種特殊的等值連接,他要求兩個關(guān)系中進行比較的屬性必須是同名的屬性組,并且在結(jié)果中將重復的屬性列去掉。

    兩個關(guān)系R和S進行自然連接的時候,選擇兩個關(guān)系在公共屬性上等值的元組構(gòu)成新的關(guān)系。此時關(guān)系R中某些元組可能在S中不存在公共屬性上相等的元組,從而造成R中這些元組被舍棄了,同樣地,S中某些元組也會被舍棄。這些被舍棄的數(shù)組稱為懸浮數(shù)組。
    如果把懸浮數(shù)組也保存在結(jié)果關(guān)系中,而在其他屬性上填上空值NULL,那么這種連接稱之為外連接。在進行R join S的時候,只保留左邊關(guān)系R中的懸浮數(shù)組稱為左外連接(left join),只保留右邊關(guān)系S中的懸浮數(shù)組稱為右外連接(right join)

    左外連接=自然連接+左側(cè)表的失配元組(與空元組連接)
    右外連接=自然連接+右側(cè)表的失配元組(與空元組連接)
    全外連接=自然連接+兩側(cè)表的失配元組(與空元組連接)
  4. 除運算(division)
    設(shè)關(guān)系R除以關(guān)系S的結(jié)果為T,則T包含所有在R但是不在S中的屬性以及其值,而且T的元組和S的元組的所有集合都在R中。

到了這里,關(guān)于【數(shù)據(jù)庫概論】第二章 關(guān)系型數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 第二章-數(shù)據(jù)傳輸安全

    第二章-數(shù)據(jù)傳輸安全

    VPN虛擬專用網(wǎng) :在ISP運營商公用網(wǎng)絡(luò)中搭建專用的安全數(shù)據(jù)通道 VPN :隧道 – 封裝技術(shù) 常見VPN :IPSec VPN、MPLS VPN、GRE VPN、SangFor VPN、PPTP VPN、L2TP VPN / L2F VPN 1)按應(yīng)用場景分(業(yè)務(wù)類型) Client-LAN VPN(access VPN)客戶端到網(wǎng)絡(luò):PPTP VPN、L2TP VPN / L2F VPN、SSL VPN、IPSec VPN LAN-LAN V

    2024年01月23日
    瀏覽(26)
  • 【第二章:數(shù)據(jù)的表示和運算】

    【第二章:數(shù)據(jù)的表示和運算】

    探討的兩大主題:一步步遞進 那么現(xiàn)在就需要探究 數(shù)據(jù)如何以2進制的形式在計算機中表示的呢?? 那么還有就是計算機如何進行數(shù)據(jù)的算術(shù)和邏輯運算的?? 我們平常使用的是10進制的數(shù)據(jù),然而計算機能夠識別的是2進制的01序列串。 主要是權(quán)重的不同。一方面符號表示

    2024年02月04日
    瀏覽(26)
  • SV學習——數(shù)據(jù)類型(第二章)

    SV學習——數(shù)據(jù)類型(第二章)

    verilog有1995和2001版本,而SV是verilog的延伸,SV發(fā)布的時候直接就是3.0,之后可能不再存在verilog,而是統(tǒng)一用SV。SV是完全兼容verilog的。verilog文件以.v結(jié)尾,SV文件以.sv結(jié)尾。語法是全部兼容的,SV是verilog的擴展和延伸。 verilog中有reg和wire兩種數(shù)據(jù)類型,都是四值邏輯 0,1,x,

    2024年02月10日
    瀏覽(25)
  • 大數(shù)據(jù)之路-日志采集(第二章)

    大數(shù)據(jù)之路-日志采集(第二章)

    阿里巴巴的日志采集體系方案包括兩大體系: Ap us.JS Web(基于瀏覽器)日志采集技術(shù)方案: UserTrack APP 端(無線客戶端 日志采集技術(shù)方案。 本章從瀏覽器的頁面日志采集、無線客戶端的日志采集以及我們遇到的日志采集挑戰(zhàn)三塊內(nèi)容來闡述間里巴巴的日志采集經(jīng)驗。 瀏覽器

    2024年01月25日
    瀏覽(24)
  • 數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)內(nèi)容-----第二章算法

    算法 是指,解決問題或執(zhí)行任務(wù)的一系列步驟、規(guī)則或指令的有序集合。它可以用來解決各種不同的問題,例如搜索、排序、優(yōu)化、圖像和語音識別等。在計算機科學中,算法通常用于編寫程序以實現(xiàn)特定任務(wù)。算法可以被用于各種不同的領(lǐng)域,如人工智能、機器學習、數(shù)據(jù)

    2024年02月06日
    瀏覽(26)
  • 【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(3)

    【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(3)

    大家好,很高興又和大家見面了?。?! 在上一篇中,咱們介紹了順序表的基本概念,以及通過C語言實現(xiàn)順序表的創(chuàng)建和對表長的修改。今天咱們將詳細介紹一下使用C語言實現(xiàn)順序表的增刪改查。接下來,跟我一起來看看今天的內(nèi)容吧?。?! 我們先來回顧一下上一篇的內(nèi)容,

    2024年02月04日
    瀏覽(28)
  • 【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(1)

    【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(1)

    大家好,很高興又和大家見面啦?。。慕裉扉_始,我們將進入線性表的學習。 線性表是算法題命題的重點。這類算法題實現(xiàn)起來比較容易且代碼量較少,但是要求具有最優(yōu)的性能(時間復雜度、空間復雜度),因此,我們應(yīng)該牢固掌握線性表的各種基本操作(基于兩種存儲

    2024年02月03日
    瀏覽(28)
  • 【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(4)

    【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(4)

    大家好,很高興又和大家見面啦?。?! 在前面的內(nèi)容中我們介紹了線性表的第一種存儲方式——順序存儲,相信大家經(jīng)過前面的學習應(yīng)該已經(jīng)掌握了對順序表的一些基本操作了。今天,我們將開始介紹線性表的第二種存儲方式——鏈式存儲。 線性表中的數(shù)據(jù)元素在存儲時,

    2024年02月04日
    瀏覽(26)
  • 【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(2)

    【數(shù)據(jù)結(jié)構(gòu)】第二章——線性表(2)

    大家好,很高興又和各位見面啦?。。≡谏弦粋€篇章中,我們簡單了解了一下線性表的基礎(chǔ)知識以及一下重要的術(shù)語。在今天的篇章中我們將來開始正式介紹線性表的順序存儲——又稱順序表。我們將會在本章介紹什么是順序表,對于順序表的操作我們又應(yīng)該如何實現(xiàn)。接下

    2024年02月03日
    瀏覽(23)
  • 第二章 數(shù)據(jù)處理篇:transforms

    第二章 數(shù)據(jù)處理篇:transforms

    教程參考: https://pytorch.org/tutorials/ https://github.com/TingsongYu/PyTorch_Tutorial https://github.com/yunjey/pytorch-tutorial 詳細的transform的使用樣例可以參考:ILLUSTRATION OF TRANSFORMS 你得到的原始數(shù)據(jù),可能并不是你期望的用于模型訓練的數(shù)據(jù)的形式,比如數(shù)據(jù)中圖像的大小不同、數(shù)據(jù)的格式不

    2024年02月08日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包