




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第2章章 關系數(shù)據(jù)模型關系數(shù)據(jù)模型 2.1 數(shù)據(jù)模型概述2.2 關系模型基礎2.3 在SQL中定義關系模式2.4 代數(shù)查詢語言2.5 關系上的約束Page 12.1 數(shù)據(jù)模型概述數(shù)據(jù)模型概述 數(shù)據(jù)模型數(shù)據(jù)模型(data model)是用于描述數(shù)據(jù)或信是用于描述數(shù)據(jù)或信息的符號息的符號. 在信息世界內采用的是概念模型在信息世界內采用的是概念模型. 在數(shù)據(jù)庫中采用的數(shù)據(jù)模型主要由三部分在數(shù)據(jù)庫中采用的數(shù)據(jù)模型主要由三部分組成組成: 數(shù)據(jù)結構數(shù)據(jù)結構 relational model = tables; network and hierarchical models = graphs/trees.
2、 操作操作 約束約束Page 22.1 數(shù)據(jù)模型概述數(shù)據(jù)模型概述 一些重要的數(shù)據(jù)模型一些重要的數(shù)據(jù)模型: 關系數(shù)據(jù)模型關系數(shù)據(jù)模型, 包括對象關系模型的拓展包括對象關系模型的拓展; 半結構化數(shù)據(jù)模型半結構化數(shù)據(jù)模型, 包括包括 XML(擴展標記語言擴展標記語言) 和相關的標準和相關的標準; 網(wǎng)狀網(wǎng)狀(Network)模型模型 與層次與層次( Hierarchical )模型模型 高級數(shù)據(jù)模型高級數(shù)據(jù)模型 The Entity/Relationship Model Object Definition LanguagePage 3 關系數(shù)據(jù)模型簡介,例如:描述電影信息的movies關系movies
3、(title, year, length, genre)2.1 數(shù)據(jù)模型概述數(shù)據(jù)模型概述Page 4半結構化模型簡介: 半結構化數(shù)據(jù)類似樹或圖 半結構化模型采用XML(eXtensive Makeup Language, 可擴展標記語言)描述2.1 數(shù)據(jù)模型概述數(shù)據(jù)模型概述Page 5 1939 length 231 drama 1977 length 124 sciFi 1992 length 95 comedy 2.1 數(shù)據(jù)模型概述數(shù)據(jù)模型概述Page 6幾種建模方法比較: 關系模型得到普遍應用 半結構化模型在互聯(lián)網(wǎng)應用中得到發(fā)展2.1 數(shù)據(jù)模型概述數(shù)據(jù)模型概述Page 72.1 數(shù)據(jù)模型
4、概述數(shù)據(jù)模型概述l為什么使用關系模型為什么使用關系模型? 它提供了一種簡單的、有限的方法對數(shù)據(jù)進行建模它提供了一種簡單的、有限的方法對數(shù)據(jù)進行建模. 它對這些數(shù)據(jù)提供了一套有限的,但是很有效的操作集它對這些數(shù)據(jù)提供了一套有限的,但是很有效的操作集. 它使我們可以使用高級的程序設計語言,如它使我們可以使用高級的程序設計語言,如SQL, 在較高的層次上進行在較高的層次上進行開發(fā)開發(fā).Page 8titleyearlengthgenre Gone With the Wind1939231 drama Star Wars1977124 sciFi Waynes World1992 95 comedy2
5、.2 關系模型基礎關系模型基礎 關系關系: 關系模型為人們提供了一種表達數(shù)據(jù)的單一的關系模型為人們提供了一種表達數(shù)據(jù)的單一的方法方法. 一張二維表被稱作一個關系一張二維表被稱作一個關系. 每個關系有一個關系名每個關系有一個關系名.MoviesPage 92.2.1 屬性屬性 Attribute: 關系的列稱之為屬性關系的列稱之為屬性. 關系的每個屬性有一個名稱關系的每個屬性有一個名稱, 描述所在列的語義描述所在列的語義. 一個關系中的兩個屬性不可重名一個關系中的兩個屬性不可重名.titleyearlengthgenreGone With the Wind1939231dramaStar War
6、s1977124sciFiWaynes World199295comedyMoviesAttributes(columnheaders)Page 102.2.2 模式模式 關系模式關系模式 = 關系名關系名+ 屬性集屬性集. Example: Movies (title, year, length, genre) or Movies (title: string, year: integer, length: integer, genre: string) 改變關系模式中屬性的順序改變關系模式中屬性的順序, 不影響關系的不影響關系的語義語義. Example: Movies (year, ti
7、tle, length, genre)Page 112.2.2 模式模式 在關系數(shù)據(jù)庫中,數(shù)據(jù)庫是由一個或多個關在關系數(shù)據(jù)庫中,數(shù)據(jù)庫是由一個或多個關系組成。系組成。 關系數(shù)據(jù)庫關系數(shù)據(jù)庫 = collection of relations. 關系數(shù)據(jù)庫模式關系數(shù)據(jù)庫模式= set of all relation schemas in the database. Page 12titleyearlengthgenre Gone With the Wind1939231 drama Star Wars1977124 sciFi Waynes World1992 95 comedy2.2.3 元組
8、元組 Tuples: 關系中除含有屬性名所在行以外的其它行稱作元組關系中除含有屬性名所在行以外的其它行稱作元組. 關系中可以沒有元組關系中可以沒有元組. 每個元組相對于關系的每個屬性,都有一個對應的每個元組相對于關系的每個屬性,都有一個對應的分量值分量值. Tuples(rows)MoviesPage 132.2.3 元組元組 元組的表達元組的表達 單獨表示一個元組時,常用逗號隔開各個分量,單獨表示一個元組時,常用逗號隔開各個分量,并用圓括號括起來并用圓括號括起來. Example: (Star Wars, 1977, 124, sciFi) 當單獨表示元組時,屬性名不出現(xiàn)。當單獨表示元組時,
9、屬性名不出現(xiàn)。 We should always use the order in which the attributes were listed in the relation schema.Page 142.2.4 域域 Domains: 每個屬性所允許的值集稱之為該屬性的域每個屬性所允許的值集稱之為該屬性的域. 關系模型要求每個屬性的值具有原子性,即不關系模型要求每個屬性的值具有原子性,即不可再分可再分. 所以,域必須是基本的數(shù)據(jù)類型所以,域必須是基本的數(shù)據(jù)類型, 如:如: integer, char(n), date, time. We can represent a schema
10、as: Movies ( title: string, year: integer, length: integer, genre: string) Page 152.2.5 關系的等價表示關系的等價表示 Relations are sets of tuples, not lists of tuples. 在關系中,元組的排列順序是無關的在關系中,元組的排列順序是無關的. 任一元組在關系中只能出現(xiàn)一次任一元組在關系中只能出現(xiàn)一次. We can reorder the tuples of a relation, without changing the relation. We can reo
11、rder the attributes of a relation, without changing the relation. P13/Fig. 2-4.Page 162.2.6 關系實例關系實例 The schema of a relation is relatively static, while the tuples change over time. Relation instances: 一個給定關系在某一時刻的元組的集合稱為一個給定關系在某一時刻的元組的集合稱為該關系的一個實例該關系的一個實例. 關系的實例是隨時間變化的關系的實例是隨時間變化的. The set of tupl
12、es that are in the relation “now” is “current instance(當前實例當前實例)”. 數(shù)據(jù)庫中常常只保存關系的當前實例。數(shù)據(jù)庫中常常只保存關系的當前實例。Page 172.2.7 關系上的鍵關系上的鍵 Key(鍵鍵): 鍵由關系的一組屬性構成,通過定義鍵,可以鍵由關系的一組屬性構成,通過定義鍵,可以保證在關系實例中,任意兩個元組在定義為鍵保證在關系實例中,任意兩個元組在定義為鍵的屬性集上取值不完全相同的屬性集上取值不完全相同. Example: Students ( Sno, name, gender, birthdate ) Movies (
13、title, year, length, genre )Page 182.2.7 關系上的鍵關系上的鍵l Example: Movies ( title, year, length, genre, studioName, starName ) title, year 是鍵嗎是鍵嗎? title, year, starName 成績成績 ( 學號學號, 課號課號, 成績成績 ) 學號學號, 課號課號Page 192.2.8 數(shù)據(jù)庫模式示例數(shù)據(jù)庫模式示例 The database schema in this book: Movies(title, year, length, genre, stu
14、dioName, producerC#) MovieStar(name, address, gender, birthdate) StarsIn(movieTitle, movieYear, starName) MovieExec(name, address, cert#, netWorth) Studio(name, address, presC#) cert# - 證書號證書號 MovieExec 電影制片電影制片Page 202.2.8 數(shù)據(jù)庫模式示例數(shù)據(jù)庫模式示例為某商品銷售公司構作一個銷售業(yè)務數(shù)據(jù)庫系統(tǒng),該系統(tǒng)至少應管理為某商品銷售公司構作一個銷售業(yè)務數(shù)據(jù)庫系統(tǒng),該系統(tǒng)至少應管理以下
15、內容:以下內容: 公司分為多個下屬部門公司分為多個下屬部門(Department),如,如“江蘇銷售部江蘇銷售部”,“上上海銷售部海銷售部”等。每個部門有若干銷售員等。每個部門有若干銷售員(Salesman),每個銷售員有,每個銷售員有唯一的員工號唯一的員工號(如如“E0025”)和身份證號,也包含姓名、性別、出生和身份證號,也包含姓名、性別、出生日期、電話等信息。一個銷售員僅屬于一個部門,且每個部門有日期、電話等信息。一個銷售員僅屬于一個部門,且每個部門有一個銷售員擔任部門經理。一個銷售員擔任部門經理。 。 系統(tǒng)應管理客戶信息系統(tǒng)應管理客戶信息(Customer)(Customer),包含:
16、名稱、省、市、單位名,包含:名稱、省、市、單位名稱、電話等。稱、電話等。 系統(tǒng)應管理所有銷售的商品系統(tǒng)應管理所有銷售的商品(Product):制造商:制造商(如如“春蘭春蘭”、“海海爾爾”)、種類、種類(如如“摩托車摩托車”、“空調機空調機”)、規(guī)格、規(guī)格(如如“MT125”型摩型摩托車、托車、“RE1500”型空調型空調)、價格、功能及性能描述。、價格、功能及性能描述。 該系統(tǒng)用銷售訂單該系統(tǒng)用銷售訂單(Sales order)表示銷售業(yè)務。每個訂單有一個訂表示銷售業(yè)務。每個訂單有一個訂單號和簽訂日期,且對應一個客戶和一個銷售員。一個訂單至少單號和簽訂日期,且對應一個客戶和一個銷售員。一個訂
17、單至少銷售一種產品銷售一種產品( (Salesitem) ),并可銷售多種產品,且每種產品應確,并可銷售多種產品,且每種產品應確定其銷售數(shù)量和單價,以計算銷售金額。定其銷售數(shù)量和單價,以計算銷售金額。Page 212.2.8 數(shù)據(jù)庫模式示例數(shù)據(jù)庫模式示例l 關系數(shù)據(jù)庫模式:關系數(shù)據(jù)庫模式: Customer (custid, name, prov, city, phone, unit) Product (prodid, factory, type, spec, price, desc) Salesman (empid, idno, name, gender, phone, deptid) De
18、partment (deptid, name, headerid) Salesorder (orderno, signdate, empid, custid) Salesitem (orderno, lineno, prodid, unitprice, quantity) Page 222.2 關系模型基礎關系模型基礎 Exercise:p15 2.2.1 課內練習課內練習Page 232.3 在在SQL中定義關系模式中定義關系模式 SQL:Structured Query Language SQL的主要內容的主要內容: DQL (select):DQL is primarily a quer
19、y language, for getting information from a database. DML (insert, delete, update) DDL (create, drop, alter, .):SQL also includes a data-definition component for describing database schemas. DCL (grant, revoke, .)Page 242.3.1 SQL中的關系中的關系 SQL 區(qū)分三類關系區(qū)分三類關系: 存儲的關系,稱為表。這是通常要處理的一種關系,存儲的關系,稱為表。這是通常要處理的一種關系
20、,它在數(shù)據(jù)庫中存儲,可以對其元組進行查詢和更新它在數(shù)據(jù)庫中存儲,可以對其元組進行查詢和更新. 視圖,視圖, 通過計算來定義的關系。這種關系的數(shù)據(jù)并通過計算來定義的關系。這種關系的數(shù)據(jù)并不真正存儲在數(shù)據(jù)庫中不真正存儲在數(shù)據(jù)庫中, 但是可以在需要的時候被構但是可以在需要的時候被構造出來。造出來。 臨時表臨時表, 它在執(zhí)行查詢或更新時,由它在執(zhí)行查詢或更新時,由 SQL 處理程序臨處理程序臨時構造。這些臨時表會在處理結束后被刪除,不會寫時構造。這些臨時表會在處理結束后被刪除,不會寫入數(shù)據(jù)庫中入數(shù)據(jù)庫中.Page 252.3.2 數(shù)據(jù)類型數(shù)據(jù)類型 關系中的所有屬性都必須有一個數(shù)據(jù)類型關系中的所有屬性都
21、必須有一個數(shù)據(jù)類型.1. Character strings of fixed or varying length. Char(n), Varchar(n) 2. Bit strings of fixed or varying length. Bit(n), bit varying(n)3. Integer values.Tinyint, Smallint, Int | Integer, Bigint4. Floating-point numbers Real, double, float Decimal | dec(precision, scale), numeric(precision,
22、scale) 5. Dates and timesDate yyyy-mm-ddTime hh:mm:ss.sssss6. Boolean True, False, UnknownPage 26create table movies ( title char(30), year int, length int, genre char(10), studioname char(30), producerc int );2.3.3 簡單的表定義簡單的表定義 Page 27create table students ( sid char(9), name char(8), sex char(2) )
23、;sidnamesexB12070101劉夢女B12070102朱正潔女B12070103閆文柯女B12070104季曉倩女B12070105吳塵女B12070106曹雪寧女students2.3.3 簡單的表定義簡單的表定義 Page 282.3.3 簡單的表定義簡單的表定義 Create a tableCREATE TABLE salesman( empid char(5) PRIMARY KEY, idno char(18) UNIQUE, name char(8) NOT NULL, gender bit NOT NULL, phone char(20), deptid int NUL
24、L); 注意,在一個數(shù)據(jù)庫中,不可以出現(xiàn)重名的表注意,在一個數(shù)據(jù)庫中,不可以出現(xiàn)重名的表.說明主鍵說明主鍵說明唯一性說明唯一性說明不可為空說明不可為空默認允許空值默認允許空值Page 292.3.4 修改關系模式修改關系模式 Delete a table DROP TABLE salesman; Modify the schema of an existing relation ALTER TABLE R Add column-name datatype NOT NULL; ALTER TABLE R Drop column-name; Example:Alter Table salesman
25、 Add birthdate date;Page 302.3.5 缺省值缺省值 使用缺省值使用缺省值: 創(chuàng)建或修改元組時創(chuàng)建或修改元組時, 有時并不知道元組的所有分有時并不知道元組的所有分量值量值. SQL provides the NULL value as default value. 當我們說明屬性及其數(shù)據(jù)類型時,我們可以加當我們說明屬性及其數(shù)據(jù)類型時,我們可以加上關鍵字上關鍵字 DEFAULT 以及一個適當?shù)闹祦碚f明缺以及一個適當?shù)闹祦碚f明缺省值省值(默認值默認值).Page 312.3.5 缺省值缺省值 Example:CREATE TABLE salesorder ( ordern
26、o int PRIMARY KEY, signdate date NOT NULL DEFAULT getdate(), empid char(5) NOT NULL, custid char(4) NOT NULL,) ; 對于整型數(shù),對于整型數(shù), SQL Server中有一種常用的缺省值:中有一種常用的缺省值:IDENTITY(n1, n2) orderno int IDENTITY(1000, 1) PRIMARY KEY, DEFAULT DATE 1900-01-01Page 322.3.6 說明鍵說明鍵 SQL 語句中有兩種說明主鍵的方式語句中有兩種說明主鍵的方式.1. 在屬性被列
27、入關系模式時,聲明其為主鍵在屬性被列入關系模式時,聲明其為主鍵.Example: CREATE TABLE department( deptid int PRIMARY KEY, name char(40) NOT NULL, headerid char(5) NULL);Page 332.3.6 說明鍵說明鍵2. 在模式聲明的項目表中增加表項,說明一個或一在模式聲明的項目表中增加表項,說明一個或一組屬性是主鍵組屬性是主鍵.Example: CREATE TABLE salesitem( orderno int, lineno int, prodid char(6) NOT NULL, uni
28、tprice decimal(8, 2) NOT NULL, quantity int NOT NULL, Primary Key (orderno, lineno) );Page 342.3.6 說明鍵說明鍵 The distinguish and relationship between Primary Key and Unique. 關系中的任意兩個元組不能在關系中的任意兩個元組不能在Primary Key的所有屬性或的所有屬性或Unique 的屬性集上完全相同的屬性集上完全相同. 任何違反該約束的操作企圖都會被系統(tǒng)拒絕任何違反該約束的操作企圖都會被系統(tǒng)拒絕. 每張表有且僅有一個每張表有
29、且僅有一個Primary Key, 但可以有任意多個但可以有任意多個 Unique 項項. An Unique attribute can be NULL. Attributes in Primary Key are not allowed to have NULL.Page 352.3 在在SQL中定義關系模式中定義關系模式 Exercise:P20 2.3.1 a) - d) 屬性的數(shù)據(jù)類型可參考屬性的數(shù)據(jù)類型可參考 P29 2.4.1給出的數(shù)據(jù)值來確定。給出的數(shù)據(jù)值來確定。Page 362.4 代數(shù)查詢語言代數(shù)查詢語言 數(shù)據(jù)模型不僅僅是用來描述數(shù)據(jù)的結構,也包含數(shù)據(jù)模型不僅僅是用來描述數(shù)
30、據(jù)的結構,也包含對這些數(shù)據(jù)進行查詢或更新的方法,即運算對這些數(shù)據(jù)進行查詢或更新的方法,即運算. 關系模型上的運算有兩種方式,一種是代數(shù)的方關系模型上的運算有兩種方式,一種是代數(shù)的方式,叫做關系代數(shù);一種是邏輯的方式,稱作關式,叫做關系代數(shù);一種是邏輯的方式,稱作關系演算,例如:系演算,例如:Datalog. 關系代數(shù)包含一些簡單但是功能強大的方法,可關系代數(shù)包含一些簡單但是功能強大的方法,可以從給定關系構造出新關系。以從給定關系構造出新關系。Page 372.4.2 關系代數(shù)關系代數(shù) 代數(shù)表達式由一些操作符和操作數(shù)組成。代數(shù)表達式由一些操作符和操作數(shù)組成。在關系代數(shù)中:在關系代數(shù)中: 操作數(shù)是
31、關系或表示關系的變量,操作數(shù)是關系或表示關系的變量, 它們可它們可以通過運算產生新的關系以通過運算產生新的關系. 操作符是表示特定運算的符號,這些運算可操作符是表示特定運算的符號,這些運算可以由給定關系構造出新關系以由給定關系構造出新關系. 關系代數(shù)可以作為關系的查詢語言關系代數(shù)可以作為關系的查詢語言.Page 382.4.3 關系代數(shù)概述關系代數(shù)概述傳統(tǒng)的關系代數(shù)運算主要有以下四類傳統(tǒng)的關系代數(shù)運算主要有以下四類:1.通常的集合運算通常的集合運算: 并并, 交,差交,差2.除去關系的某一部分的運算除去關系的某一部分的運算: 選擇選擇: 消除關系的某些行消除關系的某些行 (tuples)投影投
32、影: 消除關系的某些列消除關系的某些列 (attributes)3.組合兩個關系的元組的操作:組合兩個關系的元組的操作:笛卡爾積笛卡爾積: 將兩個關系中的元組以所有可能的方式配對,將兩個關系中的元組以所有可能的方式配對,形成一個新關系。形成一個新關系。連接連接:將兩個關系中的元組按一定的條件配對,形成一將兩個關系中的元組按一定的條件配對,形成一個新關系。個新關系。Natural joinTheta-join4.重命名重命名: 不影響關系中的元組不影響關系中的元組, 但是改變關系的屬性名或關但是改變關系的屬性名或關系名,即改變關系的模式系名,即改變關系的模式.Page 392.4.4 關系上的集
33、合操作關系上的集合操作 Operations on sets R and S: RS = t | tR or tS ,R與與S的并集,是由的并集,是由屬于屬于R或屬于或屬于S, 或既屬于或既屬于R又屬于又屬于S的元素構成的元素構成的集合的集合, 每個元素在集合中只出現(xiàn)一次每個元素在集合中只出現(xiàn)一次. RS = t | t R and tS , R與與S的交集,是的交集,是由既屬于由既屬于R又屬于又屬于S的元素構成的集合的元素構成的集合. R S = t | tR and not tS , R與與S的差集,的差集,是由屬于是由屬于R但不屬于但不屬于S的元素構成的集合的元素構成的集合. 注意注意
34、R S 不同于不同于 S R.Page 402.4.4 關系上的集合操作關系上的集合操作 R 與與 S 應滿足的條件應滿足的條件: R與與S必須有同樣的模式必須有同樣的模式(有同樣的屬性集,對應有同樣的屬性集,對應相同的數(shù)據(jù)類型相同的數(shù)據(jù)類型). 集合運算前,集合運算前,R 與與S 的屬性必須調整為相同的的屬性必須調整為相同的順序順序.Page 41舉例Page 42舉例Page 43舉例Page 44舉例Page 452.4.5 投影投影 Projection(投影投影): 關系關系R的投影產生一個只包含的投影產生一個只包含R的部分列的新的部分列的新關系關系. R1 := A1,A2,An
35、(R) R1 是一個只包含關系是一個只包含關系 R 的的A1, A2, , An 列的新列的新關系關系. R1 的模式是的模式是: R1(A1, A2, , An). 投影運算會消除運算結果中的重復元組投影運算會消除運算結果中的重復元組.Page 462.4.5 投影投影titleyearlengthgenrestudioNameProducerC#ProducerC#Star WarsGalaxy QuestWayness World19771999199212410495sciFicomedycomedyFoxDreamWorksDreamWorksParamount12345678909
36、9999titleyearlengthStar WarsGalaxy QuestWayness World19771999199212410495genre sciFi comedyMovies title,year,length(Movies)g e n re(Movies)Page 472.4.6 選擇選擇 Selection(選擇選擇): 對關系對關系R的選擇運算產生一個包含的選擇運算產生一個包含R的元組子的元組子集的新關系集的新關系. R1 := C(R) R1 的模式與的模式與R相同相同. R1 中的元組是中的元組是R中滿足給定條件中滿足給定條件C的元組,的元組,C是是一個含有一個含
37、有R的屬性的邏輯表達式的屬性的邏輯表達式. 條件表達式條件表達式 C: 運算對象運算對象: 常數(shù)或常數(shù)或R的屬性的屬性 運算符運算符: = NOT AND ORPage 482.4.6 選擇選擇titleyearlengthgenrestudioNameProducerC#Star WarsGalaxy Quest19771999124104sciFicomedyFoxDreamWorks1234567890length 100(Movies): titleyearlengthgenrestudioNameProducerC#Star Wars1977124sciFiFox12345lengt
38、h 100 AND studioName =FOX(Movies):titleyearlengthgenrestudioNameProducerC#ProducerC#Star WarsGalaxy QuestWayness World19771999199212410495sciFicomedycomedyFoxDreamWorksParamount123456789099999Movies Page 492.4.7 笛卡爾積笛卡爾積 Cartesian product(笛卡爾積笛卡爾積): 兩個集合兩個集合R與與S的笛卡爾積是一個有序的元的笛卡爾積是一個有序的元素對的集合,其第一個元素是素
39、對的集合,其第一個元素是R中的任意元中的任意元素,第二個元素是素,第二個元素是S中的任意元素中的任意元素 。 is the set of pairs that can be formed by choosing the first element of the pair to be any element of R and the second any element of S. 表示為表示為: RS 若若R和和S是關系,是關系, RS也是關系。也是關系。Page 502.4.7 笛卡爾積笛卡爾積 RS : 結果關系的模式,其屬性集是由結果關系的模式,其屬性集是由R的屬性集與的屬性集與S的屬性
40、集的屬性集“并并”起來構成的。起來構成的。 若屬性若屬性A既是既是R的屬性,也是的屬性,也是S的屬性,為加以的屬性,為加以區(qū)別,我們用區(qū)別,我們用R.A表示來自表示來自R的的A屬性,用屬性,用S.A表表示來自示來自S的的A屬性。屬性。 結果關系中的元組是結果關系中的元組是R中的元組和中的元組和S中的元組中的元組以所有可能的方式組合所構成的,這些元組以所有可能的方式組合所構成的,這些元組的前一部分分量值來自的前一部分分量值來自R,后一部分分量值來,后一部分分量值來自自S. 結果關系中的元組個數(shù)是結果關系中的元組個數(shù)是 NRNS.Page 512.4.7 笛卡爾積笛卡爾積AB1324BCD2495
41、7106811AR.BS.BCD1113332224442492495710571068116811RSRS Example:Page 522.4.8 自然連接自然連接 Natural join(自然連接自然連接): 與積相比,我們更經常使用與積相比,我們更經常使用連接連接操作。此時操作。此時兩個關系中的一對元組需要滿足一定的匹配兩個關系中的一對元組需要滿足一定的匹配條件方能連接起來。條件方能連接起來。 自然連接是最常用的連接方式。自然連接是最常用的連接方式。 關系關系R與與S自然連接需要滿足自然連接需要滿足: 有同名屬性有同名屬性. 同名屬性值相等同名屬性值相等. 表示為表示為: R S 或
42、或: R SPage 532.4.8 自然連接自然連接 設關系設關系R與與S的模式中有同名屬性的模式中有同名屬性A1, A2, . , An ,r和和s分別是來自分別是來自R和和S的元組,當且僅當?shù)脑M,當且僅當r和和s在屬性在屬性A1, A2, . , An 的分量值都對應相等時,的分量值都對應相等時, r和和s才能才能配對,配對, 作為結果關系中的元組。作為結果關系中的元組。 若若r和和s連接成為連接結果中的一個元組,則該元連接成為連接結果中的一個元組,則該元組被稱作組被稱作連接元組,連接元組,連接元組在連接元組在R和和S的屬性的屬性并集并集的每個屬性上均有一個分量值,且在的每個屬性上均有
43、一個分量值,且在R的屬性集的屬性集上的值與上的值與r相同,在相同,在S的屬性集上的值與的屬性集上的值與s相同。相同。 注意,自然連接會在結果集中作投影,去掉同名注意,自然連接會在結果集中作投影,去掉同名屬性的副本。屬性的副本。Page 542.4.8 自然連接自然連接AB1324BCD24957106811RSExample:R S ABCD13245768 注意:若關系注意:若關系R與關系與關系S沒有同名屬性,沒有同名屬性, 則則R與與S的的自然連接是無效的。自然連接是無效的。Page 552.4.8 自然連接自然連接BCD227338 4 510UVExample:U V ABC16927
44、8 3 8 7ABCD116227 3 3 8 4 510 連接時,若某元組與另一關系中的任何元組皆不匹配,則該元組被稱作懸掛元組懸掛元組. Page 562.4.8 自然連接自然連接Example: 求姓名為張平的學生的各科成績求姓名為張平的學生的各科成績.Sname=張平張平(Students Enrollment) snosnameclass01張平230102李立230103王寧2302Students Enrollmentsnosnameclasscnoscore01張平2301c18001張平2301c27802李立2301c29003王寧2302c175snocnoscore01
45、c18003c17501c27802c290EnrollmentStudentssnosnameclasscnoscore01張平2301c18001張平2301c278Page 572.4.9 連接連接Theta-join:使用任意條件配對元組。使用任意條件配對元組。表示為表示為: R C S計算步驟計算步驟:先計算先計算R和和S的積;的積;在計算結果中選擇滿足條件在計算結果中選擇滿足條件C的元組。的元組。Page 58 = A D (U V) ?2.4.9 Theta-JoinsBCD2273384510UVExample:U A D V ABC169278387AU.BU.CV.BV.C
46、D111692227833387227773388845101010 = A =100(movies):Page 63舉例:查詢選數(shù)據(jù)庫系統(tǒng)原理課程的同學姓名sidcidB12070101B1801020SB12070101B1801041SB12070101B1801381SB12070101B1801020Sname(title=數(shù)據(jù)庫系統(tǒng)原理數(shù)據(jù)庫系統(tǒng)原理 (courses) enroll students)studentsenrollsidnamesexB12070101劉夢女B12070102朱正潔女B12070103閆文柯女B12070104季曉倩女B12070105吳塵女B120
47、70106曹雪寧女Page 64舉例:查詢劉夢同學所選的課程名title (name=劉夢劉夢 (students) enroll courses )studentsenrollsidcidB12070101B1801020SB12070101B1801041SB12070101B1801381SB12070101B1801020SsidnamesexB12070101劉夢女B12070102朱正潔女B12070103閆文柯女B12070104季曉倩女B12070105吳塵女B12070106曹雪寧女students2.4.11 命名和重命名命名和重命名 Renaming: 算符算符: S (
48、A1, A2,An) (R) 結果關系名為結果關系名為S,與,與R有完全相同的元組。有完全相同的元組。S的的屬性分別命名為屬性分別命名為A1, A2, ., An, 按從左至右的順按從左至右的順序序. 算符算符: S (R) 結果關系名為結果關系名為S,與,與R有完全相同的屬性,與有完全相同的屬性,與R有完全相同的元組。有完全相同的元組。Page 662.4.11 命名和重命名命名和重命名AB1324BCD24957106811RSAR.BS.BCD1113332224442492495710571068116811RS RS1 (X, C, D) (S) ABXCD1113332224442
49、492495710571068116811Example:An equivalent expression: RS (A, B, X, C, D) (RS) Page 67Snonamebirthdays1 Rose1992-10-10s2 Jack1991-12-10s3 Kate1992-10-102.4.11 命名和重命名命名和重命名 Example: Student(Sno, name, birthday) 求同一天生日的同學(學號對)求同一天生日的同學(學號對) s1.Sno, s2.Sno, s1.birthday(S1(Student) S2 (Student) s1.birth
50、day s2.birthday AND s1.Sno s2.SnoSnonamebirthdays1 Rose1992-10-10s2 Jack1991-12-10s3 Kate1992-10-10S1S2Page 682.4.12 運算之間的聯(lián)系運算之間的聯(lián)系 有些運算可由其它關系運算表示有些運算可由其它關系運算表示. RS R (R S)-join: R c S c (R S)Natural join:R S L (c (R S) C 是形如是形如 R.A1 = S.A1 AND R.A2 = S.A2 AND . AND R.An = S.An 的條件表達式,的條件表達式,A1, A2,
51、 ., An 是是R 和和S的共有屬的共有屬性性. L是所有是所有R中的屬性以及在中的屬性以及在S中但不在中但不在R中的屬性的列中的屬性的列表表.Page 692.4.12 運算之間的聯(lián)系運算之間的聯(lián)系 這三類運算可由其它運算導出的運算稱作這三類運算可由其它運算導出的運算稱作派生運算派生運算或導出運算;或導出運算; 其它類運算:并,差,選擇,投影,笛卡其它類運算:并,差,選擇,投影,笛卡爾積,和重命名運算則稱作爾積,和重命名運算則稱作基本運算?;具\算。Page 70舉例A B1 26 7B C D2 3 42 3 57 8 10A R.B S.B C D1223412235127810672
52、3467235677810RSR SA R.B S.B C D1223412235677810R.B=S.B(R S)A B C D1 2 3 41 2 3 56 7 8 10A,R.B,C,D(R.B=S.B(R S)Page 71 可通過賦值語句命名一些臨時關系,以簡化復雜可通過賦值語句命名一些臨時關系,以簡化復雜的關系代數(shù)表達式的關系代數(shù)表達式. 賦值語句中所用到的符號包括:賦值語句中所用到的符號包括: 關系名及用圓括號括起的屬性名列表關系名及用圓括號括起的屬性名列表. 關系名關系名Answer 習慣上用來表示最后一步運算的結果習慣上用來表示最后一步運算的結果. 賦值號賦值號 := 賦值
53、號右邊的任意代數(shù)表達式賦值號右邊的任意代數(shù)表達式.Example: Movies (title, year, length, genre, studioName)R(t, y, l, g, s) := length 100 (Movies) S(t, y, l, g, s) := studioName = FOX (Movies) Answer(title, year) := t, y (R S )2.4.13 代數(shù)表達式的線性符號代數(shù)表達式的線性符號Page 722.4.14 Example設設R(A,B) 與與 S(A,B) 是有相同模式的關系是有相同模式的關系, 下列關下列關于關系代數(shù)表
54、達式的等價判斷中,哪一個是正于關系代數(shù)表達式的等價判斷中,哪一個是正確的確的? I. RS = R - (R - S) II. RS = S - (S - R) III. RS = R SA) I only B)I and II only C) I, II, and III D) None of the abovePage 732.4.14 Example下列四個關系代數(shù)表達式中,哪一個與其余三下列四個關系代數(shù)表達式中,哪一個與其余三個不等價?它們都基于關系個不等價?它們都基于關系R(A,B) 和和S(B,C). A) A, B (R S)B)R B (S)C)R( A (R) B (S) )
55、D) A, R.B (R S)Page 742.4.14 Example1.求既選修求既選修c1 課程,亦選修課程,亦選修 c2 課程的學生學號課程的學生學號. Sno(Cno= c1 (Enrollment) Sno(Cno = c2 (Enrollment)2.求沒有選修求沒有選修c1課程的學生學號課程的學生學號. Sno(Enrollment) Sno(Cno = c1 (Enrollment) )Sno(Cno= c1 and Cno = c2 (Enrollment) ?Sno(Cno c1 (Enrollment) ?SnoCnoScore01c18003c17501c27802c
56、290EnrollmentorPage 753.求獲得求獲得c1課最高分的學生學號課最高分的學生學號. Sno (Cno= c1 (Enrollment) ) - - E1.Sno (E1(Enrollment) E2 (Enrollment) E1.Score E2.Score AND E1.Cno =c1 AND E2.Cno =c1EnrollmentE1E2E1.SnoE1.CnoE1.ScoreE2.SnoE2.CnoE2.Score01c18002c19003c17501c18003c17502c190SnoCnoScore01c18003c17501c27802c190SnoCn
57、oScore01c18003c17501c27802c190Page 762.4.14 ExampleCustomer (custid, name, prov, city, phone, company) Product (prodid, factory, type, spec, price, desc) Salesman (empid, idno, name, gender, phone, deptid) Department (deptid, name, headerid) Salesorder (orderno, signdate, empid, custid) Salesitem (orderno, lineno, prodid, u
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務合同和技術承包
- 個人勞務分包合同簡本
- 綠化護坡施工方案
- 產品測評表-產品用戶反饋收集
- 生物化學分析實驗技術練習題集
- 商場餐飲經營商鋪租賃合同
- 農民宅基地轉讓合同
- 臨汾低溫冷庫施工方案
- 杭州室內球場施工方案
- 鋁合金飛廊及蓋板施工方案
- 高中通用技術人教高二下冊目錄新型抽紙盒-
- 畜牧場經營管理
- 課程思政示范課程申報書(測繪基礎)
- ALeader 阿立得 ALD515使用手冊
- 神華陜西國華錦界電廠三期工程環(huán)評報告
- 飛行員航空知識手冊
- GB/Z 19848-2005液壓元件從制造到安裝達到和控制清潔度的指南
- GB/T 34936-2017光伏發(fā)電站匯流箱技術要求
- GB/T 12618.4-2006開口型平圓頭抽芯鉚釘51級
- 紅金大氣商務風領導歡迎會PPT通用模板
- 學前教育學00383-歷年真題-試卷
評論
0/150
提交評論