(数据库系统概论|王珊)第二章关系数据库-第一节:关系数据结构及其形式化定义
文章目錄
- 一:關(guān)系
- (1)域
- (2)笛卡爾積
- (3)關(guān)系
- A:基本概述
- B:碼相關(guān)概念
- C:關(guān)系的三種類型
- 二:關(guān)系模式
- 三:關(guān)系數(shù)據(jù)庫
- (1)基本概念
- (2)關(guān)系數(shù)據(jù)庫的型與值
前面說過,數(shù)據(jù)模型由以下三部分構(gòu)成
- 數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)操作
- 數(shù)據(jù)的完整性約束條件
而如今最為重要的數(shù)據(jù)模型便是關(guān)系模型。本書所學(xué)的關(guān)系數(shù)據(jù)庫就是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng),因此本章重點(diǎn)研究的也是以下三個(gè)部分
- 關(guān)系數(shù)據(jù)結(jié)構(gòu)(本節(jié)介紹)
- 關(guān)系操作集合(第二節(jié)介紹)
- 關(guān)系完整性約束條件(第三節(jié)介紹)
然后第四節(jié)和第五節(jié)分別介紹關(guān)系代數(shù)和關(guān)系演算
一:關(guān)系
前面說過,關(guān)系模型建立在嚴(yán)格的數(shù)學(xué)概念之上,只包含單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系,在用戶看來關(guān)系就是一張二維表
(1)域
域:是一組具有相同數(shù)據(jù)類型的值的集合
- 如自然數(shù)、整數(shù)、實(shí)數(shù)
(2)笛卡爾積
笛卡爾積:是一種域上面的集合運(yùn)算,得到每個(gè)域中元素的所有可能的組合,它可以表示為一張二維表,在笛卡爾積中有
- 元組:每一行是一個(gè)元組,比如 (張清玫,計(jì)算機(jī)專業(yè),李勇)、(張清玫,計(jì)算機(jī)專業(yè),劉晨)等都是元組 ;
- 分量:每一行中每一個(gè)元素都是一個(gè)分量,比如張清玫、計(jì)算機(jī)專業(yè)、李勇、劉晨等都是分量
比如下面的D1D_{1}D1?、D2D_{2}D2?和D3D_{3}D3?個(gè)域
如果讓他們做笛卡爾積,也就是排列組合,那么就會(huì)形成下面一張二維表
由此可知,該笛卡爾積的基數(shù)為2×2×3=12,也即有12個(gè)元組
上面的笛卡爾積中很多元組是沒有意義的(例如在實(shí)際情形中一個(gè)導(dǎo)師一般專注于一個(gè)研究方向)。所以該笛卡爾積的一個(gè)子集才是有意義的,才可以表示導(dǎo)師和研究生的關(guān)系,例如
- 表SAP
(3)關(guān)系
A:基本概述
關(guān)系:笛卡爾積(D1D_{1}D1?×D2D_{2}D2?,…,DnD_{n}Dn?)的子集叫做在域D1D_{1}D1?、D2D_{2}D2?,…,DnD_{n}Dn?的關(guān)系,表示為R(D1D_{1}D1?、D2D_{2}D2?,…,DnD_{n}Dn?),其中
- R:關(guān)系名
- n:關(guān)系的目或度(n=1時(shí)稱為單元關(guān)系,n=2時(shí)稱為二元關(guān)系)
關(guān)系既然是笛卡爾積的子集(有限子集),所以關(guān)系也是一張二維表
- 表的每一行對應(yīng)一個(gè)元組,表的每一列對應(yīng)一個(gè)域
- 由于域可以相同,為了區(qū)分,必須對每列起一個(gè)名字,稱為屬性(比如上面的表中研究生和導(dǎo)師都是人,為了區(qū)分,所以才取了不同的名字)
B:碼相關(guān)概念
以下面關(guān)系為例
候選碼:若關(guān)系中的某一屬性組(注意是組不是某單個(gè)屬性,當(dāng)然有時(shí)屬性組也可能只有一個(gè)屬性)能唯一地標(biāo)識一個(gè)元組,而其子集不能,則該屬性組稱之為候選碼
- 上面關(guān)系中,學(xué)號是無法區(qū)分的,因?yàn)閷W(xué)號雖然不重復(fù),但一個(gè)學(xué)生可能會(huì)對應(yīng)多個(gè)課程,這就導(dǎo)致學(xué)號無法唯一標(biāo)識一個(gè)元組。因此這里(學(xué)號,課程名)可以作為一個(gè)候選碼
- 需要注意的是候選碼不一定只有一個(gè),可能有多個(gè),只要滿足條件即可,但在本例中確實(shí)只有一個(gè)
超碼:能夠唯一標(biāo)識一條記錄的屬性或?qū)傩约?#xff0c;超碼是候選碼的擴(kuò)充,候選碼是最小的超碼
- 上面關(guān)系中,(學(xué)號、課程名)是候選碼,那么它的超集,例如(學(xué)號、課程名、姓名)、(學(xué)號、課程名、性別)就是超碼
主碼:某個(gè)能夠唯一標(biāo)識一條記錄的最小屬性集(候選碼中的“人選之子”)
- 候選碼可能有多個(gè),但是數(shù)據(jù)庫設(shè)計(jì)者在設(shè)計(jì)時(shí)會(huì)根據(jù)實(shí)際需求選擇一個(gè)候選碼作為主碼
外碼:是本關(guān)系的屬性且不是碼,而是另一個(gè)關(guān)系的主碼(后續(xù)會(huì)詳細(xì)介紹)
全碼:這是一種特殊情況:關(guān)系的所有屬性組是這個(gè)關(guān)系模式的候選碼
主屬性和非屬性:包含在候選碼中的屬性(注意是集合,不是某個(gè)候選碼)稱為主屬性;不包含在候選碼中的屬性稱為非主屬性
- 上面關(guān)系中,姓名、性別和期末分?jǐn)?shù)都是非主屬性
C:關(guān)系的三種類型
關(guān)系可以有三種類型
- 基本關(guān)系(又稱為基本表):實(shí)際存在的表,是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示
- 查詢表:查詢結(jié)果對應(yīng)的表
- 視圖表:由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)
其中基本關(guān)系滿足以下性質(zhì)(作了解即可)
二:關(guān)系模式
在(數(shù)據(jù)庫系統(tǒng)概論|王珊)第一章緒論-第三節(jié):數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)中講過型和值的概念
- 型(type):對某一類數(shù)據(jù)的結(jié)構(gòu)和屬性的說明
- 值(value):是型的一個(gè)具體賦值
在關(guān)系數(shù)據(jù)庫中,關(guān)系模式就是型,關(guān)系就是值,關(guān)系模式是對關(guān)系的描述,具體來說要描述以下方面
- 元組集合的結(jié)構(gòu)(由哪些屬性構(gòu)成、這些屬性來自哪些域、屬性與域之間的映像關(guān)系)
- 元組語義以及完整性約束
- 屬性之間的數(shù)據(jù)依賴關(guān)系
關(guān)系模式:關(guān)系模式就是對關(guān)系的描述,可以表示為
R(U,D,DOM,F)R(U,D,DOM,F)R(U,D,DOM,F)
- RRR:關(guān)系名
- UUU:組成該關(guān)系的屬性名集合
- DDD:UUU中屬性所來自的域
- DOMDOMDOM:屬性向域的映像集合
- FFF:屬性間數(shù)據(jù)的依賴關(guān)系集合(此部分屬于第六章:關(guān)系數(shù)據(jù)理論的內(nèi)容)
關(guān)系模式通常可以簡記為(重點(diǎn)用)
R(U)R(U)R(U)
或
R(A1,A2,...,An)R(A_{1},A_{2},...,A_{n})R(A1?,A2?,...,An?)
- RRR:關(guān)系名
- A1,A2,...,AnA_{1},A_{2},...,A_{n}A1?,A2?,...,An?:屬性名
- “域名”及“屬性向域的映像”常常直接說明為屬性的類型和長度
三:關(guān)系數(shù)據(jù)庫
(1)基本概念
關(guān)系數(shù)據(jù)庫:在一個(gè)給定的應(yīng)用領(lǐng)域中,所有關(guān)系的集合構(gòu)成的一個(gè)關(guān)系數(shù)據(jù)庫
(2)關(guān)系數(shù)據(jù)庫的型與值
關(guān)系數(shù)據(jù)庫的型:也稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,包括
- 若干域的定義
- 在這些域上定義的若干關(guān)系模式
關(guān)系數(shù)據(jù)庫的值:這些關(guān)系模式在某一時(shí)刻對應(yīng)的關(guān)系的和,通常就叫做關(guān)系數(shù)據(jù)庫
總結(jié)
以上是生活随笔為你收集整理的(数据库系统概论|王珊)第二章关系数据库-第一节:关系数据结构及其形式化定义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【tool】测试用例检查表范例
- 下一篇: mysqldump表损坏问题