日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

(数据库系统概论|王珊)第二章关系数据库-第二节、第三节:关系操作和关系完整性

發(fā)布時(shí)間:2025/3/15 windows 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (数据库系统概论|王珊)第二章关系数据库-第二节、第三节:关系操作和关系完整性 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一:關(guān)系操作
    • (1)基本的關(guān)系操作
    • (2)關(guān)系數(shù)據(jù)語言的分類
  • 二:關(guān)系完整性約束
    • (1)實(shí)體完整性
    • (2)參照完整性
      • A:參照關(guān)系
      • B:外碼
      • C:參照完整性規(guī)則
    • (3)用戶自定義完整性

一:關(guān)系操作

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

關(guān)系模型常用關(guān)系操作如下。

關(guān)系操作的特點(diǎn)是集合操作方式,也即操作的對(duì)象和結(jié)果都是集合。也稱為一次一集合(set-at-a-time)的方式

  • 非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式稱為一次一記錄(record-at-a-time)

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

關(guān)系數(shù)據(jù)語言可分為三類,如下

下面是SQL的了解性內(nèi)容,可不看(下一章將會(huì)重點(diǎn)介紹)

特別地,SQL語言是一種高度非過程化的語言,用戶不必請(qǐng)求數(shù)據(jù)庫管理員為其建立特殊的存取路徑,存取路徑的選擇由關(guān)系數(shù)據(jù)庫管理系統(tǒng)的優(yōu)化機(jī)制來完成。例如,在一個(gè)存儲(chǔ)有幾百萬條記錄的關(guān)系中查找符合條件的某一個(gè)或某一些記錄,從原理上講可以有多種查找方法。例如,可以順序掃描這個(gè)關(guān)系,也可以通過某一一種索引來查找。不同的查找路徑(或者稱為存取路徑)的效率是不同的,有的完成某一個(gè)
查詢可能很快,有的可能極慢。關(guān)系數(shù)據(jù)庫管理系統(tǒng)中研究和開發(fā)了查詢優(yōu)化方法,系統(tǒng)可以自動(dòng)選擇較優(yōu)的存取路徑,提高查詢效率

二:關(guān)系完整性約束

關(guān)系完整性規(guī)則是對(duì)關(guān)系的某種約束條件,這些約束條件實(shí)際上是現(xiàn)實(shí)世界的要求,例如性別只能有男、女兩種取值

關(guān)系模型中有如下三類完整性約束

  • 實(shí)體完整性(entity integrity)
  • 參照完整性(referential integrity)
  • 用戶自定義完整性(user-defined integrity)

其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱為關(guān)系的兩個(gè)不變性

(1)實(shí)體完整性

實(shí)體完整性:若屬性A是基本關(guān)系RRR主屬性,則屬性A不能取空值

  • 例如“選修(學(xué)號(hào),課程號(hào),成績(jī))”關(guān)系中,若(學(xué)號(hào),課程號(hào))為主碼,則學(xué)號(hào)和課程號(hào)都不能取空值

(2)參照完整性

A:參照關(guān)系

(注意在關(guān)系表示中,下劃線表示主碼


【例1】如下兩個(gè)關(guān)系中,學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號(hào)”,也就是說,學(xué)生關(guān)系中的某個(gè)屬性的取值需要參照專業(yè)關(guān)系的屬性取值

【例2】如下三個(gè)關(guān)系中,選修關(guān)系引用了學(xué)生關(guān)系的主碼“學(xué)號(hào)”和課程關(guān)系的主碼“課程號(hào)”,也就是說,選修關(guān)系中某些屬性的取值需要參照其他關(guān)系的屬性取值

【例3】還有,同一關(guān)系內(nèi)部也可能存在引用關(guān)系。比如在學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡,班長(zhǎng))關(guān)系中,“學(xué)號(hào)”屬性是主碼,“班長(zhǎng)”屬性表示該學(xué)生所在班級(jí)的班長(zhǎng)的學(xué)號(hào),它引用了本關(guān)系“學(xué)號(hào)”屬性,即“班長(zhǎng)”必須是確實(shí)存在的學(xué)生的學(xué)號(hào)

B:外碼

外碼:設(shè)FFF是基本關(guān)系RRR的一個(gè)或一組屬性,但不是關(guān)系RRR的碼【例如這里FFF是學(xué)生關(guān)系的專業(yè)號(hào)】,KsK_{s}Ks?是基本關(guān)系SSS的主碼【例如這里KsK_{s}Ks?是專業(yè)關(guān)系的主碼】。若FFFKsK_{s}Ks?相對(duì)應(yīng),則稱FFFRRR的外碼(foreign key)【則稱專業(yè)號(hào)是學(xué)生關(guān)系的外碼】,并稱基本關(guān)系RRR參照關(guān)系(referencing relation)這里學(xué)生關(guān)系就是參照關(guān)系】,基本關(guān)系S為被參照關(guān)系(referenced relation)這里專業(yè)關(guān)系就是被參照關(guān)系】。關(guān)系RRRSSS不一定是不同的關(guān)系

  • 注意:外碼并不一定要與相應(yīng)的主碼同名,如上面第三個(gè)例子中,學(xué)生關(guān)系的主碼為學(xué)號(hào),外碼為班長(zhǎng)。不過,在實(shí)際應(yīng)用中為了便于識(shí)別,當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時(shí),往往給它們?nèi)∠嗤拿帧?/li>

上面三個(gè)例子的參照關(guān)系表示如下

C:參照完整性規(guī)則

參照完整性:若屬性或?qū)傩越MFFF是基本關(guān)系RRR外碼,它與基本SSS主碼相對(duì)應(yīng)(關(guān)系RRRSSS不一定是不同的關(guān)系),則對(duì)于RRR中每個(gè)元組在FFF上的值必須

  • 要么取空值(此時(shí)FFF的每個(gè)屬性值均為空值)
  • 要么等于SSS某個(gè)元組的主碼值

因此對(duì)于【例1】,學(xué)生關(guān)系中每個(gè)元組的專業(yè)號(hào)只能取下面兩類值

  • 空值:表示該學(xué)生尚未分配專業(yè)
  • 非空值(且該值必須是專業(yè)關(guān)系中某個(gè)元組的專業(yè)號(hào)值):表示該學(xué)生不能分配到一個(gè)不存在的專業(yè)中

而對(duì)于【例2】,按照道理來說“學(xué)號(hào)”和“課程號(hào)”也可以取兩類值,但是“學(xué)號(hào)”和“課程號(hào)”它作為的是選修關(guān)系的主碼,所以如果取空值的話將會(huì)違背實(shí)體完整性規(guī)則

對(duì)于【例3】,RRRSSS是同一個(gè)關(guān)系,“班長(zhǎng)”可以取兩類值

  • 空值:該班還沒有選出班長(zhǎng)
  • 非空值:班長(zhǎng)必須是班里的同學(xué)

(3)用戶自定義完整性

用戶自定義完整性1針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求,例如某個(gè)屬性必須取唯一值,某個(gè)非主屬性不能取空值等等

總結(jié)

以上是生活随笔為你收集整理的(数据库系统概论|王珊)第二章关系数据库-第二节、第三节:关系操作和关系完整性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。