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

數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程(014)—— 關(guān)系數(shù)據(jù)庫練習(xí)題(一)

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程(014)—— 關(guān)系數(shù)據(jù)庫練習(xí)題(一)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程(014)—— 關(guān)系數(shù)據(jù)庫練習(xí)題(一)

一、簡答題

1、試述關(guān)系模型的三要素和關(guān)系操作語言的特點(diǎn)。

答案:

關(guān)系模型的三要素為數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和完整性約束。在關(guān)系模型中,無論是實(shí)體集還是實(shí)體集之間的聯(lián)系都是由關(guān)系表示的。

關(guān)系操作語言的特點(diǎn):(1)關(guān)系操作的方式是一次一集合方式。(2)關(guān)系操作語言是高度非過程化的語言。

2、定義并解釋下列術(shù)語,并說明它們之間的聯(lián)系和區(qū)別。

(1)主碼、候選碼、外碼

答案:

主碼和候選碼:若關(guān)系中的某一個屬性(屬性組),其值能唯一標(biāo)識一個元組,則稱該屬性(或?qū)傩越M)為候選碼。當(dāng)一個關(guān)系有多個候選碼時,選定其中的一個候選碼為主碼。如果關(guān)系中只有一個候選碼,這個唯一的候選碼就是主碼。

外碼:設(shè) F 是基本關(guān)系 R 的一個或一組屬性,但不是關(guān)系 R 的主碼(或候選碼),如果 F 與基本關(guān)系 S 的主碼 KS 相對應(yīng),則稱 F 是基本關(guān)系 R 的外碼。

(2)笛卡爾積、關(guān)系、元組、屬性、域

答案:

笛卡爾積:給定一組域 D1,D2,…,Dn,則域 D1,D2,…,Dn 的笛卡爾積為:

D1×D2×…×Dn={(d1,d2,…,dn) | di ∈ Di,i=1,2,…,n}

關(guān)系:域的笛卡爾積所包含的元組是多個域中的元素任意組合得到的,因此有很多元組沒有實(shí)際意義。從域的笛卡爾積中挑選中有意義的元組構(gòu)成的集合稱為關(guān)系。

元組:關(guān)系中的一行稱為一個元組,組成元組的元素稱為分量。

屬性:關(guān)系中的一列稱為一個屬性。屬性具有型和值,屬性的型指屬性名和取值范圍等,屬性的值指屬性具體的取值。屬性表示實(shí)體的特征。

域:域是一組具有相同數(shù)據(jù)類型的值集合。屬性的取值范圍稱為域。

(3)關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫

答案:

關(guān)系:關(guān)系是一張二維表,是從域的笛卡爾積中挑選中有一的元組構(gòu)成的集合。

關(guān)系模式:關(guān)系的描述稱為關(guān)系模式。關(guān)系模式可以表示為:R(U,D,Dom,F(xiàn)),其中 R 是關(guān)系名,U 為關(guān)系包含的屬性的集合,D 為屬性組 U 中屬性的域,Dom 為屬性向域的映像的集合,F(xiàn) 為屬性間數(shù)據(jù)依賴的集合。

關(guān)系數(shù)據(jù)庫:基于關(guān)系模型的數(shù)據(jù)庫稱為關(guān)系數(shù)據(jù)庫。在關(guān)系數(shù)據(jù)庫中,實(shí)體與實(shí)體之間的聯(lián)系都是用關(guān)系來表示的。其中,一個關(guān)系對應(yīng)一個實(shí)體集,關(guān)系中的一行對應(yīng)一個實(shí)體,關(guān)系中的一列對應(yīng)實(shí)體的一個屬性。

3、試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外碼的值可以為空?什么情況下允許為空?

答案:

關(guān)系模型有三類完整性:實(shí)體完整性,參照完整性和用戶自定義完整性。

實(shí)體完整性規(guī)則:若屬性 A 是基本關(guān)系 R 的主屬性,則屬性 A 不能為空值。

參照完整性規(guī)則:若屬性 F 是基本關(guān)系 R 的外碼,它與基本關(guān)系 S 的主碼 Ks 相對應(yīng),則對于 R 中每個元組在 F 上的值必須取空值,或者等于 S 中某個元組的主碼值。當(dāng)外碼的值不清楚或不確定時,可以設(shè)為空值,此時參照關(guān)系中沒有對應(yīng)的記錄與之匹配。

用戶自定義完整性規(guī)則:用戶自定義的完整性就是針對某一具體應(yīng)用所定義的約束條件。

4、試述等值連接與自然連接的區(qū)別和聯(lián)系。

答案:等值連接是從關(guān)系 R 和 S 的笛卡爾積中選取 R.A 和 S.B 屬性值相等的元組。自然連接是一種特殊的等值連接,要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。

5、舉例說明參照完整性。

答案:

參照完整性是指參照關(guān)系中的外碼要從被參照關(guān)系的主碼中取值。例如,員工是參照關(guān)系,部門是被參照關(guān)系,部門號是部門表的主碼,是員工關(guān)系的外碼,則員工表的部門號要從部門表的部門號中去取,如下表所示。

部門表:

部門號 部門名 電話
D01 銷售部 3040111
D02 財務(wù)部 3040222
D03 人事部 3040333

員工表:

工號 姓名 性別 電話 部門
E001 王剛 3058444 D01
E002 李艷艷 3069777 D01
E003 張靜靜 3065123 D01
E004 王濤 3086999 D02
E005 張曉剛 3074666 D02

6、說明視圖與基本表的區(qū)別與聯(lián)系

答案:

基本表是實(shí)際存放數(shù)據(jù)的表。視圖表是從一個或幾個基本表導(dǎo)出的表,是一個虛擬表。數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖對應(yīng)的數(shù)據(jù),數(shù)據(jù)存放在基本表中。視圖定義好之后就可以像基本表一樣使用,可以對視圖進(jìn)行增、刪、改、查。也可以在一個視圖之上再定義新的視圖,對視圖中的數(shù)據(jù)進(jìn)行修改其實(shí)最終修改的是視圖對應(yīng)的基本表。反之,基本表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢到的數(shù)據(jù)也會隨之改變。

7、如果某關(guān)系的實(shí)例滿足下列條件之一,要表示該實(shí)例,有多少種不同的方法(考慮元組的順序和屬性的順序)。

(1)3 個屬性,3 個元組

(2)4 個屬性,5 個元組

(1)m 個屬性,n 個元組

答案:

(1)3!× 3!= 36

(2)4!× 5!= 24×120 = 2880

(3)m!× n!

8、針對如下表所示的關(guān)系 R 和 S 寫出 R ∪ S、R ∩ S 和 R - S。

關(guān)系 R:

tNO tName TEL Course
101 王明 62203546 數(shù)據(jù)結(jié)構(gòu)
202 張華 62209876 數(shù)據(jù)庫
303 趙娟 62208076 高等數(shù)學(xué)

關(guān)系 S:

tNO tName TEL Course
101 王明 62203546 數(shù)據(jù)結(jié)構(gòu)
102 孫儷 64309876 操作系統(tǒng)
103 郭德綱 63398076 計算機(jī)網(wǎng)絡(luò)

答案:

(1)R ∪ S

tNO tName TEL Course
101 王明 62203546 數(shù)據(jù)結(jié)構(gòu)
102 孫儷 64309876 操作系統(tǒng)
103 郭德綱 63398076 計算機(jī)網(wǎng)絡(luò)
202 張華 62209876 數(shù)據(jù)庫
303 趙娟 62208076 高等數(shù)學(xué)

(2)R ∩ S

tNO tName TEL Course
101 王明 62203546 數(shù)據(jù)結(jié)構(gòu)

(3)R - S

tNO tName TEL Course
202 張華 62209876 數(shù)據(jù)庫
303 趙娟 62208076 高等數(shù)學(xué)

9、設(shè)關(guān)系 R 和 S,其值如下表所示,求:

求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生學(xué)號,數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程:以MySQL為例,數(shù)據(jù)庫,python,大數(shù)據(jù)

求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生學(xué)號,數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程:以MySQL為例,數(shù)據(jù)庫,python,大數(shù)據(jù)

答案:

求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生學(xué)號,數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程:以MySQL為例,數(shù)據(jù)庫,python,大數(shù)據(jù)

求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生學(xué)號,數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程:以MySQL為例,數(shù)據(jù)庫,python,大數(shù)據(jù)

10、有如下關(guān)系:

學(xué)生(學(xué)號,姓名,年齡,所在系)

選課(課程號,課程名,先行課)

選課(學(xué)號,課程號,成績)

用關(guān)系代數(shù)完成如下查詢:

(1)求學(xué)過數(shù)據(jù)庫課程的學(xué)生的學(xué)號和姓名。

(2)求學(xué)過數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu)的學(xué)生的學(xué)號和姓名。

(3)求沒學(xué)過數(shù)據(jù)庫課程的學(xué)生的學(xué)號。

(4)求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生的學(xué)號。

答案:
求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生學(xué)號,數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程:以MySQL為例,數(shù)據(jù)庫,python,大數(shù)據(jù)

/*
create table stu(
    stu_id char(11) primary key,
    stu_name char(20),
    age int,
    dept char(20)
);
create table course(
    c_id char(5) primary key,
    c_name char(20),
    Advance_class char(20)
);
create table electives(
    stu_id char(11),
    c_id char(5),
    grade int
);
insert into stu values('20210224101','張宇',20,'管理系');
insert into stu values('20210224102','劉濤',21,'管理系');
insert into stu values('20210224103','劉蓓',20,'經(jīng)濟(jì)系');

insert into course values('C0001','高等數(shù)學(xué)',null);
insert into course values('C0002','計算機(jī)基礎(chǔ)',null);
insert into course values('C0003','數(shù)據(jù)庫','計算機(jī)基礎(chǔ)');
insert into course values('C0004','數(shù)據(jù)結(jié)構(gòu)','計算機(jī)基礎(chǔ)');

insert into electives values('20210224101','C0001',80),('20210224101','C0002',85),('20210224101','C0003',84),('20210224101','C0004',92);
insert into electives values('20210224102','C0001',80),('20210224102','C0003',80),('20210224102','C0004',90);
insert into electives values('20210224103','C0002',78),('20210224103','C0001',79),('20210224103','C0004',91);
*/

mysql> select * from stu;
+-------------+----------+------+-----------+
| stu_id      | stu_name | age  | dept      |
+-------------+----------+------+-----------+
| 20210224101 | 張宇     |   20 | 管理系    |
| 20210224102 | 劉濤     |   21 | 管理系    |
| 20210224103 | 劉蓓     |   20 | 經(jīng)濟(jì)系    |
+-------------+----------+------+-----------+
3 rows in set (0.03 sec)

mysql> select * from course;
+-------+-----------------+-----------------+
| c_id  | c_name          | Advance_class   |
+-------+-----------------+-----------------+
| C0001 | 高等數(shù)學(xué)        | NULL            |
| C0002 | 計算機(jī)基礎(chǔ)      | NULL            |
| C0003 | 數(shù)據(jù)庫          | 計算機(jī)基礎(chǔ)      |
| C0004 | 數(shù)據(jù)結(jié)構(gòu)        | 計算機(jī)基礎(chǔ)      |
+-------+-----------------+-----------------+
4 rows in set (0.00 sec)

mysql> select * from electives;
+-------------+-------+-------+
| stu_id      | c_id  | grade |
+-------------+-------+-------+
| 20210224101 | C0001 |    80 |
| 20210224101 | C0002 |    85 |
| 20210224101 | C0003 |    84 |
| 20210224101 | C0004 |    92 |
| 20210224102 | C0001 |    80 |
| 20210224102 | C0003 |    80 |
| 20210224102 | C0004 |    90 |
| 20210224103 | C0002 |    78 |
| 20210224103 | C0001 |    79 |
| 20210224103 | C0004 |    91 |
+-------------+-------+-------+
10 rows in set (0.00 sec)

--(1)求學(xué)過數(shù)據(jù)庫課程的學(xué)生的學(xué)號和姓名。
select s.stu_id, stu_name
from stu s,course c,electives e
where s.stu_id = e.stu_id and c.c_id = e.c_id
      and c_name = '數(shù)據(jù)庫';
      
--查詢結(jié)果如下
mysql> select s.stu_id, stu_name
    -> from stu s,course c,electives e
    -> where s.stu_id = e.stu_id and c.c_id = e.c_id
    ->       and c_name = '數(shù)據(jù)庫';
+-------------+----------+
| stu_id      | stu_name |
+-------------+----------+
| 20210224101 | 張宇     |
| 20210224102 | 劉濤     |
| 20210224103 | 劉蓓     |
+-------------+----------+
3 rows in set (0.06 sec)

--(2)求學(xué)過數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu)的學(xué)生的學(xué)號和姓名。
select s.stu_id, s.stu_name
from (select stu_id
      from electives
      where c_id = (select c_id from course where c_name = '數(shù)據(jù)庫')) x,
      electives e, stu s
where x.stu_id = s.stu_id and x.stu_id = e.stu_id and 
      e.c_id = (select c_id from course where c_name = '數(shù)據(jù)結(jié)構(gòu)');
      
--查詢結(jié)果如下
mysql> mysql> select s.stu_id, s.stu_name
    -> from (select stu_id
    ->       from electives
    ->       where c_id = (select c_id from course where c_name = '數(shù)據(jù)庫')) x,
    ->       electives e, stu s
    -> where x.stu_id = s.stu_id and x.stu_id = e.stu_id and 
    ->       e.c_id = (select c_id from course where c_name = '數(shù)據(jù)結(jié)構(gòu)');
+-------------+----------+
| stu_id      | stu_name |
+-------------+----------+
| 20210224101 | 張宇     |
| 20210224102 | 劉濤     |
+-------------+----------+
2 rows in set (0.00 sec)

--(3)求沒學(xué)過數(shù)據(jù)庫課程的學(xué)生的學(xué)號。
select stu_id 
from stu 
where stu_id not in
    (select e.stu_id
     from course c,electives e
     where c.c_id = e.c_id and c_name = '數(shù)據(jù)庫');

--查詢結(jié)果如下
mysql> select stu_id 
    -> from stu 
    -> where stu_id not in
    ->     (select e.stu_id
    ->      from course c,electives e
    ->      where c.c_id = e.c_id and c_name = '數(shù)據(jù)庫');
Empty set (0.07 sec)

--(4)求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生的學(xué)號。
select e.stu_id 
from electives e, course c 
where e.c_id = c.c_id and
      c_name = (select Advance_class from course where c_name = '數(shù)據(jù)庫');
      
--查詢結(jié)果如下
mysql> select e.stu_id 
    -> from electives e, course c 
    -> where e.c_id = c.c_id and
    ->       c_name = (select Advance_class from course where c_name = '數(shù)據(jù)庫');
+-------------+
| stu_id      |
+-------------+
| 20210224101 |
| 20210224103 |
+-------------+
2 rows in set (0.00 sec)

11、設(shè)有一個 SPJ 數(shù)據(jù)庫,包括 S、P、J、SPJ 四個關(guān)系:

S(SNO,SNAME,STATUS,CITY)–供應(yīng)商表S,應(yīng)商表代碼SNO,應(yīng)商表名稱SNAME,應(yīng)商表狀態(tài)STATUS,應(yīng)商表所在城市CITY

P(PNO,PNAME,COLOR,WEIGHT)–零件表P,零件代碼PNO,零件名稱PNAME,顏色COLOR,重量WEIGHT

J(JNO,JNAME,CITY)–工程項(xiàng)目表J,工程項(xiàng)目代碼JNO,工程項(xiàng)目名稱JNAME,工程項(xiàng)目所在城市CITY

SPJ(SNO,PNO,JNO,QTY)–供應(yīng)情況表SPJ,供應(yīng)商代碼SNO,零件代碼PNO,工程項(xiàng)目代碼JNO,供應(yīng)數(shù)量QTY,表示某供應(yīng)商供應(yīng)某種零件給某工程項(xiàng)目的數(shù)量。

請用關(guān)系代碼表示如下查詢:

(1)求供應(yīng)工程 J1 零件的供應(yīng)商號碼 SNO

(2)求供應(yīng)工程 J1 零件 P1 的供應(yīng)商號碼 SNO

(3)求供應(yīng)工程 J1 零件為紅色的供應(yīng)商號碼 SNO

(4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號

(5)求至少用了供應(yīng)商 S1 所供應(yīng)的全部零件的工程號

答案:

(1)πSNO(σJNO=‘J1’(SPJ))

(2)πSNO(σJNO=‘J1’ ∧ PNO=‘P1’(SPJ))

求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生學(xué)號,數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程:以MySQL為例,數(shù)據(jù)庫,python,大數(shù)據(jù)

12、有以下三個關(guān)系:

S(S#,SNAME,AGE,SEX,NP)–S(學(xué)生),S#(學(xué)號),SNAME(姓名),AGE(年齡),SEX(性別),NP(籍貫)

C(C#,CNAME,TEACHER)–C(課程),C#(課程號),CNAME(課程名),TEACHER(主講教師)

SC(S#,C#,GRADE)–SC(選修),S#(學(xué)號),C#(課程號),GRADE(成績)

請用關(guān)系代數(shù)表示如下查詢:

(1)查詢年齡大于 21 歲的男生的學(xué)號(S#)和姓名(SNAME)。

(2)查詢?nèi)繉W(xué)生都選修的課程的課程號(C#)和課程名(CNAME)。

(3)查詢籍貫為上海的學(xué)生的學(xué)號(S#)、姓名(SNAME)和選修的課程號(C#)。

(4)查詢選修了全部課程的學(xué)生的姓名(SNAME)和年齡(AGE)。

答案:

求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生學(xué)號,數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程:以MySQL為例,數(shù)據(jù)庫,python,大數(shù)據(jù)

13、某醫(yī)院病房管理信息如下:

科室:科室名稱,科室地址,科室電話

病房:病房號,床位號,所屬科室名

醫(yī)生:姓名,職稱,所屬科室名,年齡,工作證號

病人:病歷號,姓名,性別,診斷,主管醫(yī)生,病房號

其中,一個科室有多個病房、多個醫(yī)生,一個病房只能屬于一個科室,一個醫(yī)生只屬于一個科室,但可負(fù)責(zé)多個病人的診治,一個病人的主管醫(yī)生只有一個。

請完成以下設(shè)計:

(1)設(shè)計系統(tǒng)的 E-R 圖

(2)將該 E-R 圖轉(zhuǎn)換為關(guān)系模型

(3)指出每個關(guān)系的候選碼

答案:

(1)E-R 圖如下圖所示:

求學(xué)過數(shù)據(jù)庫的先行課的學(xué)生學(xué)號,數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程:以MySQL為例,數(shù)據(jù)庫,python,大數(shù)據(jù)

(2)E-R 圖對應(yīng)的關(guān)系模型如下:

科室(科室名稱,科室地址,科室電話)

病房(病房號,床位號,所屬科室名)

醫(yī)生(姓名,職稱,所屬科室名,年齡,工作證號)

病人(病歷號,姓名,性別,診斷,主管醫(yī)生,病房號)

(3)每個關(guān)系的候選碼如下:

科室:科室名稱

病房:病房號

醫(yī)生:工作證號

病人:病歷號文章來源地址http://www.zghlxwxcb.cn/news/detail-784326.html

到了這里,關(guān)于數(shù)據(jù)庫系統(tǒng)原理與應(yīng)用教程(014)—— 關(guān)系數(shù)據(jù)庫練習(xí)題(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包