資料庫原理前三章

临江柔發表於2024-06-14

第一章

1. 試說明資料、資料庫、資料庫管理系統和資料庫系統的概念。

答:資料是資料庫中儲存的基本物件,資料庫是存放資料的場所,資料庫管理系統是管理資料庫資料以及其功能的系統軟體,資料庫系統是由資料庫、資料庫管理系統、資料庫管理員和資料庫應用程式共同構成的系統。

5. 比較用檔案管理和用資料庫管理資料的主要區別。

答:檔案系統不能提供資料的獨立性,也不能提供資料共享、安全性等功能,這些需要客戶端程式設計實現,而資料庫管理系統很方便的實現這些功能。

6. 在資料庫管理方式中,應用程式是否需要關心資料的儲存位置和儲存結構?為什 ?

答:不需要,這些都由資料庫管理系統來維護。

7. 在資料庫系統中,資料庫的作用是什麼?

答:是儲存資料的倉庫,用來儲存資料。

8. 在資料庫系統中,應用程式可以不透過資料庫管理系統而直接訪問資料檔案嗎?

答:不可以。

10. 資料庫系統由哪幾部分組成,每一部分在資料庫系統中的作用大致是什麼?

答:包括3部分:資料庫、資料庫管理系統和應用程式。資料庫是資料的彙集,以一定的組織形式儲存在儲存介質上;資料庫管理系統是管理資料庫的系統軟體,可以實現資料庫的各種功能;應用程式專指以資料庫資料為基礎的程式。

第二章

3. 實體之間的聯絡有幾種?分別是哪些?請為每一種聯絡舉出一個例子。

答:三種:1:1;1:n;m:n;示例:老闆和公司,公司和員工,經理和員工。

5. 指明下列實體間聯絡的種類:

(1)教研室和教師(··一個教師只屬於一個教研室, 一個教研室可有多名教師)。 答:一對多

(2)商店和顧客。答:多對多

(3)國家和首都。答:一對一

6. 解釋關係模型中的主碼、外碼、主屬性、非主屬性的概念,並說明主碼、外碼的作用。

答:主碼是用於唯一確定表中一個元組的一個屬性或最小的屬性組。用於實現實體完整性。

外碼用於實現資料之間的關聯關係。

主屬性:候選鍵所包含的屬性。

非屬性:主屬性之外的其他屬性。

7. 指出下列關係模式的主碼:

(1)考試情況(課程號,考試性質,考試日期,考試地點)。假設一門課程在不同的日期可以有多次考試,但在同一天只能考一次。多門不同的課程可以同時進行考試。

答:課程號和考試日期

(2) 教師授課(教師號,課程號,授課時數,學年,學期)。假設一名教師在同一個學年和 學期可以講授多門課程,也可以在不同學年和學期多次講授同一門課程,對每門課程的講授 都有一個授課時數。

答:教師號、課程號、學年

(3) 圖書借閱(書號,讀者號,借書日期,還書日期)。假設一個讀者可以在不同的日期多 次借閱同一本書, 一個讀者可以同時借閱多本不同的圖書, 一本書可以在不同的時間借給不 同的讀者。但一個讀者不能在同一天對同一本書借閱多次。

答:書號、讀者、借書日期

  1. 設有如下兩個關係模式,試指出每個關係模式的主碼、外碼,並說明外碼的引用關係。 產品表(產品號,產品名稱,產品價格,生產日期),其中產品名稱有重複。銷售表(產品號,銷售時間,銷售數量),假設可同時銷售多種產品,但同一產品在 同一時間只銷售一次。

答:產品的主碼:產品號,無外碼。銷售的主碼:產品號和銷售時間,產品號為外碼。

9. 關係模型的資料完整性包含哪些內容?分別說明每一種完整性的作用。

答:實體完整性、參照完整性和使用者定義完整性。

實體完整性:保證表中的不儲存相同的資料,也不儲存無意義的資料。

參照完整性:用於描述實體之間的聯絡。

使用者定義完整性:限定屬性的取值範圍,保證資料庫中儲存的值與現實世界相符。

10. 資料庫系統包含哪三級模式?試分別說明每一級模式的作用?

答:外模式、模式、內模式。

外模式是對現實系統中使用者感興趣的整體資料結構的區域性描述,用於滿足不同使用者對資料的需求。

模式是資料庫中全體資料的邏輯結構和特徵的描述,滿足所有使用者對資料的需求。

內模式:對整個資料庫的底層表示,描述了資料的儲存位置和儲存方式。

11. 資料庫系統的兩級映像的功能是什麼?它帶來了哪些好處?

答:外模式/模式對映和模式/內模式映像。前者保證了當前模式發生變化時可以保證外模式不變,從而時使用者的應用程式不需要修改。後者保證了當內模式發生變化,比如儲存位置或儲存檔名改變,可以保證模式不變,從而使使用者不需要知道這些變化。

12. 資料庫三級模式劃分的優點是什麼?它能帶來哪些資料獨立性?

答:使使用者可以在邏輯層處理資料, 不需要關心具體的物理細節,同時當內模式或模式發生變化時,可以透過模式之間的映像關係,保持外模式不變,從而避免了修改應用程式,帶來了資料的邏輯獨立性和物理獨立性。

第三章

10寫出建立如下三張表的SQL 語句,要求在定義表的同時定義資料的完整性約束。

答:

create table 圖書表{

書號 nchar(6) primary key, 書名 nvarchar(30) not null,

第一作者 char(10) not null, 出版日期 smalldatetime,

價格 numeric(4, 1)

}

Create table 書店表{

書店編號 nchar(6) primary key, 店名 nvarchar(30) not null,

電話 char(8) check (電話 like`[0-9][0-9][0-9][0-9][0-9][0-9][0-9]

地址 varchar(40),

郵政編碼 char(6)

}

Create table 圖書銷售表{

書名 nchar(6) not null,

書店編號 nchar(6) not null,

銷售日期 smalldatetime not null;

銷售數量 smalldatetime check(銷售數量 >= 1);

}

11“圖書表”新增“印刷數量”列,型別為整數,同時新增約束,要求此列的取值 要大於等於1000。

答:Alter table 圖書表

Add 印刷數量 int check(印刷數量 >= 1000)

12刪除“書店表”中的“郵政編碼”列。

答:alter table 書店名

Drop column 郵政編碼

  1. “圖書銷售表”中的“銷售數量”列的資料型別改為整型。

答:alter table 圖書銷售表

Alter column 銷售數量 int

相關文章