日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【数据库复习】第二章关系数据库

發(fā)布時間:2025/3/21 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据库复习】第二章关系数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • 一、關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義
    • 1.1關(guān)系
    • 1.2關(guān)系模式
    • 1.3關(guān)系數(shù)據(jù)庫
    • 1.4關(guān)系模型的存儲結(jié)構(gòu)
  • 二、關(guān)系操作
  • 三、關(guān)系的完整性
  • 四、關(guān)系代數(shù)
    • 4.1傳統(tǒng)的集合運(yùn)算
    • 4.2專門的關(guān)系運(yùn)算
      • 4.2.1選擇(selection)
      • 4.2.2投影(projection)
      • 4.2.3連接(union)
      • 4.2.4除運(yùn)算(division)

一、關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義

1.1關(guān)系

現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來表示。

是一組具有相同數(shù)據(jù)類型的值的集合。例:整數(shù)、實(shí)數(shù)、介于某個取值范圍的整數(shù)、指定長度的字符串集合、{‘男’,‘女’}

笛卡爾積: 給定一組域D1,D2,…,Dn,允許其中某些域是相同的。
D1,D2,…,Dn的笛卡爾積為:
D1×D2×…×Dn = {(d1,d2,…,dn)|di?Di,i=1,2,…,n}
所有域的所有取值的一個組合;不能重復(fù)

元組(Tuple): 笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。(張清玫,計算機(jī)專業(yè),李勇)、 (張清玫,計算機(jī)專業(yè),劉晨) 等 都是元組 。

分量(Component): 笛卡爾積元素(d1,d2,…,dn)中的每一個值di 叫作一個分量,張清玫、計算機(jī)專業(yè)、李勇、劉晨等都是分量 。

基數(shù)(Cardinal number): 若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:M=M=M=∏i?1n\prod_{i-1}^{n}i?1n? mim_imi?

笛卡爾積的表示方法: 笛卡爾積可表示為一張二維表;表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域

關(guān)系: D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關(guān)系,表示為R(D1,D2,…,Dn)R:關(guān)系名 ,n:關(guān)系的目或度(Degree)

元組: 關(guān)系中的每個元素是關(guān)系中的元組,通常用t表示。

關(guān)系的表示: 關(guān)系也是一個二維表,表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域

屬性: 關(guān)系中不同列可以對應(yīng)相同的域;為了加以區(qū)分,必須對每列起一個名字,稱為屬性(Attribute);n目關(guān)系必有n個屬性

候選碼(Candidate key): 若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個元組,則稱該屬性組為候選碼。簡單的情況:候選碼只包含一個屬性

全碼(All-key): 最極端的情況:關(guān)系模式的所有屬性組是這個關(guān)系模式的候選碼,稱為全碼(All-key)

主碼: 若一個關(guān)系有多個候選碼,則選定其中一個為主碼(Primary key)

主屬性: 候選碼的諸屬性稱為主屬性(Prime attribute)。不包含在任何侯選碼中的屬性稱為非主屬性(Non-Prime attribute)或非碼屬性(Non-key attribute)

三類關(guān)系:

  • 基本關(guān)系(基本表或基表) :實(shí)際存在的表,是實(shí)際存儲數(shù)據(jù)的邏輯表示
  • 查詢表 :查詢結(jié)果對應(yīng)的表
  • 視圖表: 由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實(shí)際存儲的數(shù)據(jù)

基本關(guān)系的性質(zhì):

  • 列是同質(zhì)的(Homogeneous)
  • 不同的列可出自同一個域 ,其中的每一列稱為一個屬性 ,不同的屬性要給予不同的屬性
  • 列的順序無所謂,列的次序可以任意交換
  • 任意兩個元組的候選碼不能相同
  • 行的順序無所謂,行的次序可以任意交換
  • 分量必須取原子值,這是規(guī)范條件中最基本的一條

1.2關(guān)系模式

關(guān)系模式(Relation Schema)是,關(guān)系是。

關(guān)系模式是對關(guān)系的描述。

關(guān)系模式可以形式化地表示為:R(U,D,DOM,F)
R : 關(guān)系名
U : 組成該關(guān)系的屬性名集合
D : U中屬性所來自的域
DOM :屬性向域的映象集合
F :屬性間數(shù)據(jù)的依賴關(guān)系的集合

關(guān)系模式通??梢院営洖镽 (U) 或 R (A1,A2,…,An)
R: 關(guān)系名
A1,A2,…,An : 屬性名
注:域名及屬性向域的映象常常直接說明為屬性的類型、長度

關(guān)系模式

  • 對關(guān)系的描述
  • 靜態(tài)的、穩(wěn)定的

關(guān)系

  • 關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容
  • 動態(tài)的、隨時間不斷變化的

關(guān)系模式和關(guān)系往往籠統(tǒng)稱為關(guān)系,通過上下文加以區(qū)別。

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

關(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ù)庫的值: 關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合,通常稱為關(guān)系數(shù)據(jù)庫

1.4關(guān)系模型的存儲結(jié)構(gòu)

關(guān)系數(shù)據(jù)庫的物理組織:

  • 有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)中一個表對應(yīng)一個操作系統(tǒng)文件,將物理數(shù)據(jù)組織交給操作系統(tǒng)完成
  • 有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)從操作系統(tǒng)那里申請若干個大的文件,自己劃分文件空間,組織表、索引等存儲結(jié)構(gòu),并進(jìn)行存儲管理

二、關(guān)系操作

常用的關(guān)系操作:

  • 查詢操作:選擇、投影、連接、除、并、差、交、笛卡爾積
  • 選擇、投影、并、差、笛卡爾基是5種基本操作
  • 數(shù)據(jù)更新:插入、刪除、修改

關(guān)系操作的特點(diǎn)
集合操作方式:操作的對象和結(jié)果都是集合,一次一集合的方式

具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言:SQL(Structured Query Language)

三、關(guān)系的完整性

實(shí)體完整性和參照完整性: 關(guān)系模型必須滿足的完整性約束條件稱為關(guān)系的兩個不變性,應(yīng)該由關(guān)系系統(tǒng)自動支持
用戶定義的完整性: 應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束

實(shí)體完整性規(guī)則的說明:

  • 實(shí)體完整性規(guī)則是針對基本關(guān)系而言的。一個基本表通常對應(yīng)現(xiàn)實(shí)世界的一個實(shí)體集。
  • 現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。
  • 關(guān)系模型中以主碼作為唯一性標(biāo)識。
  • 主碼中的屬性即主屬性不能取空值。主屬性取空值,就說明存在某個不可標(biāo)識的實(shí)體,即存在不可區(qū)分的實(shí)體,這與第(2)點(diǎn)相矛盾,因此這個規(guī)則稱為實(shí)體完整性

參照完整性:

在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的,自然存在著關(guān)系與關(guān)系間的引用。

設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是R的外碼。
基本關(guān)系R稱為參照關(guān)系(Referencing Relation)
基本關(guān)系S稱為被參照關(guān)系(Referenced Relation) 或目標(biāo)關(guān)系(Target Relation)

關(guān)系R和S不一定是不同的關(guān)系。
目標(biāo)關(guān)系S的主碼Ks 和參照關(guān)系的外碼F必須定義在同一個(或一組)域上。
外碼并不一定要與相應(yīng)的主碼同名,當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時,往往取相同的名 字,以便于識別。

參照完整性規(guī)則: 若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為:

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

用戶定義的完整性:

  • 針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求
  • 關(guān)系模型應(yīng)提供定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不需由應(yīng)用程序承擔(dān)這一功能

四、關(guān)系代數(shù)

關(guān)系代數(shù)是一種抽象的查詢語言,它用對關(guān)系的運(yùn)算來表達(dá)查詢。
關(guān)系代數(shù):

  • 運(yùn)算對象是關(guān)系
  • 運(yùn)算結(jié)果亦為關(guān)系
  • 關(guān)系代數(shù)的運(yùn)算符有兩類:集合運(yùn)算符和專門的關(guān)系運(yùn)算符

傳統(tǒng)的集合運(yùn)算是從關(guān)系的“水平”方向即行的角度進(jìn)行。
專門的關(guān)系運(yùn)算不僅涉及行而且涉及列。

4.1傳統(tǒng)的集合運(yùn)算

R和S:
具有相同的目n(即兩個關(guān)系都有n個屬性)
相應(yīng)的屬性取自同一個域

R∪S:
仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成 :R∪S = { t|t ? R∨t ?S }

R - S :
仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成:R -S = { t|t?R∧t?S }

R∩S:
仍為n目關(guān)系,由既屬于R又屬于S的元組組成: R∩S = { t|t ? R∧t ?S } ;R∩S = R –(R-S)

R×S :
R: n目關(guān)系,k1個元組
S: m目關(guān)系,k2個元組
列:(n+m)列元組的集合
元組的前n列是關(guān)系R的一個元組
后m列是關(guān)系S的一個元組
行:k1×k2個元組

4.2專門的關(guān)系運(yùn)算

引入的記號 :

  • R,t∈\inR,t[Ai]: 設(shè)關(guān)系模式為R(A1,A2,…,An),它的一個關(guān)系設(shè)為R,t∈\inR表示t是R的一個元組,t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個分量
  • A,t[A], A ̄\overline{A}A 若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或?qū)傩越M。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。 A ̄\overline{A}A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的屬性組。
  • trts?\overgroup{t_rt_s}tr?ts?? R為n目關(guān)系,S為m目關(guān)系。tr∈\inR,ts∈\inS,trts?\overgroup{t_rt_s}tr?ts??稱為元組的連接。trts?\overgroup{t_rt_s}tr?ts??是一個n + m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。
  • 象集Zx: 給定一個關(guān)系R(X,Z),X和Z為屬性組。當(dāng)t[X]=x時,x在R中的象集(Images Set)為:Zx={t[Z]|t∈\inR,t[X]=x},它表示R中屬性組X上值為x的諸元組在Z上分量的集合

**學(xué)生-課程數(shù)據(jù)庫:**學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC

4.2.1選擇(selection)

選擇又稱為限制(Restriction)
選擇運(yùn)算符的含義:在關(guān)系R中選擇滿足給定條件的諸元組, σF? = {t|t∈\inR∧F(t)= ‘真’}
F:選擇條件,是一個邏輯表達(dá)式,取值為“真”或“假”,基本形式為:X1θY1,θ表示比較運(yùn)算符,它可以是>,≥,<,≤,=或<>

選擇運(yùn)算是從關(guān)系R中選取使邏輯表達(dá)式F為真的元組,是從行的角度進(jìn)行的運(yùn)算

4.2.2投影(projection)

從R中選擇出若干屬性列組成新的關(guān)系
πA? = { t[A] | t ?R }
A:R中的屬性列
投影操作主要是從列的角度進(jìn)行運(yùn)算

投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)

4.2.3連接(union)

連接也稱為θ連接
連接運(yùn)算的含義:從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組

A和B:分別為R和S上度數(shù)相等且可比的屬性組
θ:比較運(yùn)算符
連接運(yùn)算從R和S的廣義笛卡爾積R×S中選取R關(guān)系在A屬性組上的值與S關(guān)系在B屬性組上的值滿足比較關(guān)系θ的元組

等值連接(equijoin) :θ為“=”的連接運(yùn)算稱為等值連接

自然連接(Natural join) :自然連接是一種特殊的等值連接
兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組;在結(jié)果中把重復(fù)的屬性列去掉
自然連接的含義:R和S具有相同的屬性組B,自然連接還需要取消重復(fù)列,所以是同時從行和列的角度進(jìn)行運(yùn)算。

**懸浮元組(Dangling tuple):**兩個關(guān)系R和S在做自然連接時,關(guān)系R中某些元組有可能在S中不存在公共屬性上值相等的元組,從而造成R中這些元組在操作時被舍棄了,這些被舍棄的元組稱為懸浮元組。

**外連接(Outer Join):**如果把懸浮元組也保存在結(jié)果關(guān)系中,而在其他屬性上填空值(Null),就叫做外連接。左外連接(LEFT OUTER JOIN或LEFT JOIN):只保留左邊關(guān)系R中的懸浮元組。右外連接(RIGHT OUTER JOIN或RIGHT JOIN):只保留右邊關(guān)系S中的懸浮元組

4.2.4除運(yùn)算(division)

給定關(guān)系R (X,Y) 和S (Y,Z),其中X,Y,Z為屬性組。
R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。
R與S的除運(yùn)算得到一個新的關(guān)系P(X),是R中滿足下列條件的元組在 X 屬性列上的投影:
元組在X上分量值x的象集Yx包含S在Y上投影的集合,記作:R÷S={tr[X]|tr∈\inR∧πY(S)?\subseteq?Yx},Yx:x在R中的象集,x = tr[X]
除操作是同時從行和列角度進(jìn)行運(yùn)算。

總結(jié)

以上是生活随笔為你收集整理的【数据库复习】第二章关系数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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