複習資料

《數據庫技術》複習

 

第一章

基本概念:

關係數據模型

是由若干個關係模式組成的集合。

關係模式

關係模式的實例稱爲關係,每個關係可以看成由行和列交叉組成的二維表格,表中的一行稱爲一個元組,可以用來標識實體集中的一個實體。(實體:實際存在的個體。)

關係

表中的列稱爲屬性,列名集屬性名,表中的屬性名不能相同。列的取值範圍稱爲域,同列具有相同的域,不同的列也可以有相同的域。

性質:表中的任意兩行(元組)不能相同。

屬性值具有原子性,不可分解。

沒有重複的元組。

理論上沒有行序,但是有時候使用時可以有行序。

主鍵

能唯一標識表中不同行的屬性或屬性組稱爲主鍵。

關係完整性

關係模型的完整性規則是對數據的約束。

  1. 實體完整性,這是指關係的主屬性不能爲空值。空值就是指不知道或是不能使用的值,並不是指空字符串。
  2. 參照完整性,如果關係的外鍵R1與關係R2中的主鍵相符,那麼外鍵的每個值必須在關係R2中主鍵的值中找到或者是空值。
  3. 用戶定義完整性,針對某一具體的實際數據庫的約束條件。它由應用環境決定,反映某一具體應用所涉及的數據必須滿足要求。關係模型提供定義和檢驗這類完整性的機制,以便用統一的、系統的方法處理,而不必由應用程序承擔這一功能。

範式理論

範式是設計數據庫時所遵循的規則,主要用於消除數據庫表中的冗餘數據,改進數據庫整體組織,增強數據的一致性,增加數據庫設計的靈活性。

第一範式:如果關係模式R的每個關係r的屬性都是不可分的數據項,那麼就稱R是第一範式的模式。即列不可再分。

第二範式:如果關係模式R是第一範式,且每個非主屬性完全函數依賴於候選鍵,那麼就稱R是第二範式的模式。即屬性依賴。

第三範式:如果關係模型R是第二範式,且關係模型R(U,F)中的所有非主屬性對應任何候選鍵都不存在傳遞依賴,則關係R是屬於第三範式的模式。即非依賴傳遞。

考試內容主要以選擇題、問題分析題爲主。

例如:

①範式是設計數據庫時所遵循的規則,如果學生表的聯繫方式屬性列即有手機號又有郵箱,則認爲學生表是不符合【 A 】。

A.第一範式           B. 第二範式     C. 第三範式          D. 第四範式

②關係模型中爲了保證對數據的約束,提供了相應的規則,請簡述這些規則是如何約束關係模型的完整性的。(見關係完整性)

 

第二章

基本概念:

物理存儲結構(包括哪些文件,各自作用是什麼)

存在磁盤中的操作系統文件所組成,包括數據文件(*.dbf)控制文件(*.ctl)和重做日誌文件(*.log)。

數據文件:指存儲數據庫數據的文件。

控制文件:很小的二進制文件,用於描述和維護數據庫的物理結構。

重做日誌文件:是記錄數據庫中所有修改信息的文件。

邏輯存儲結構(組成及其關係)

主要包括表空間、段、區和數據塊。

一個數據庫由一個表空間組成;一個表空間由一個或多個段組成;一個段由一個或多個區組成;一個區由一個或多個數據塊組成。

表空間的大小等於構成該表空間的所有數據文件大小的總和。表空間用於存儲用戶在數據庫中創建的所有內容。

段視爲一個單位的數據庫對象,例如表或索引。段是數據庫終端用戶將處理的最小存儲單位。

區是磁盤空間分配的最小單位。

數據塊是用來管理存儲空間的最基本單位。

Oracle的進程結構(包括哪些,各自作用)

DBWn進程 (Database Writer 數據庫寫入):將數據庫緩衝區中的數據寫入數據文件的進程。

LGWR進程(Log Writer 日誌寫入):負責管理日誌緩衝區的一個後臺進程,用於將日誌緩衝區中的日誌數據寫入磁盤的日誌文件中。

CKPT進程(Check Point 檢查點):一般在發生日誌切換時自動產生,用於縮短實例恢復所需的時間。

SMON進程(System Monitor系統監控):用於數據庫實例出現故障或系統崩潰時,通過將聯機重做日誌文件中的條目應用於數據文件,執行崩潰恢復。

PMON進程(Process Monitor 進程監控):用於在用戶進程出現故障時執行進程恢復操作,負責清理內存存儲區和釋放該進程所使用的資源。

ARCn進程(Archive Process 歸檔):用於將寫滿的日誌文件複製到歸檔日誌文件中,防止日誌文件組中的日誌信息由於日誌文件組的循環使用而被覆蓋。

RECO進程(Recovery 恢復):進程存在於分佈式數據庫系統中,用於自動解決在分佈式數據庫中出現的事務故障。

Oracle的內存結構

系統全局區是Oracle爲系統分配的一組共享的內存結構,可以包含一個數據庫實例的數據或控制信息。包含數據緩衝區,日誌緩衝區, 共享池,大型池,Java池等。

程序全局區是Oracle系統分配給一個進程的私有內存區域。通過SHOW PARAMETER查看該參數的信息。

數據字典

是由Oracle自動創建並更新的一組表,它是Oracle數據庫的重要組成部分,提供了數據庫結構、數據庫對象空間分配和數據庫用戶等有關的信息。數據字典的所有者爲sys用戶,而數據字典表和數據字典視圖都被保存在system表空間裏。

 

 

 

考試內容主要以選擇題、問題分析題爲主。

例如:

  • 請簡述Oracle數據庫保存在物理介質上的文件有哪些,其作用是什麼?

數據文件,控制文件,日誌文件。

   數據文件:指存儲數據庫數據的文件。

   控制文件:很小的二進制文件,用於描述和維護數據庫的物理結構。

   重做日誌文件:是記錄數據庫中所有修改信息的文件。

  • 試分析Oracle的邏輯存儲結構的組成。

一個數據庫由一個表空間組成;一個表空間由一個或多個段組成;一個段由一個或多個區組成;一個區由一個或多個數據塊組成。

③當系統突然掉電時,以下哪個對象的數據不會丟失?【 D 】

A. 數據緩衝區      B. 共享池             C. 日誌緩衝區             D. 日誌文件

④下面哪個進程負責將日誌緩衝區中的日誌數據寫入磁盤的日誌文件【 B 】

A. DBWn進程                  B. LGWR進程       C. CKPT進程                 D. SMON進程

⑤下面關於數據字典的說法,錯誤的是【 C  】。

A. 數據字典是由Oracle自動創建並更新的一組表

B. 數據字典的所有者爲sys用戶

C. 數據字典可以讀寫,用戶可以更改其中的數據信息和結構

D. 數據字典提供了數據庫結構、數據庫對象空間分配和數據庫用戶等有關信息。

⑥對於創建好的表,如果想要了解其信息,可以查詢數據字典【 C 】

A. user_functions                                B. user_source    

C. dba_tables                                      D. user_files

⑦P37三、1、2;P36 二、1、3、5

  1. 下面對數據文件的敘述中,正確的是( C )
  1. 一個表空間只能對應一個數據文件
  2.  一個數據文件可以對應多個表空間
  3.  一個表空間可以對應多個數據文件
  4. 數據文件存儲了數據庫中的所有日誌信息
  1. 下面哪種後臺進程用於將數據緩衝區中的數據寫入數據文件?( B )

A.LGWR    B. DBWn   C. CKPT  D.ARCn

3.  解析後的SQL語句會緩存在SGA的哪個區域中?( C )

    A. Java池  B.大型池  C.共享池  D.數據緩衝區

 

 

 

 

 

 

 

 

 

 

 

 

第三章

掌握SQL*Plus的基本命令,describe、save、get、start、edit、spool

DESCRIBE:可以返回數據庫中所存儲的對象的描述。可以列出各個列以及各個列的屬性。

SAVE:可以將當前緩衝區的內容保存到文件中。

save file_name(無法保存到沒有創建的文件)

GET:讀取文件內容到緩衝區(不執行)

GET file_name

START:讀取文件中的內容到緩衝區(然後在SQL*plus中運行這些內容)

EDIT:將緩衝區中的內容複製到一個名爲afiedt.buf(默認)文件中。

SPOOL:將SQL*plus中的輸出結果複製到一個指定文件中(屏幕錄製)

SPOOL file_name   結束 SPOOL OFF

考試內容主要以選擇題爲主。

例如:

  • P62二、3,5;三、1,

 

第四章

基本概念:表空間

P63-66表空間的創建語法,重點掌握例4.1

考試內容主要以選擇題、問題分析題爲主。

例如:

  • P86 二、4、5;P87三、5

 

第五章

表的創建和修改、完整性約束、索引的概念、視圖的創建、序列的創建和使用。

考試內容主要以選擇題、操作題、程序題爲主。

例如:

①Oracle中視圖的定義是【  】

A. 一個基表中導出的基表

B. 一個基表中導出的虛表

C. 一個或幾個基表或視圖中導出的基表

D. 一個或幾個基表或視圖中導出的虛表

②根據如下所示內容,寫出表創建語句,注意屬性的數據類型及表的完整性約束。

序號

列名

含義

數據類型

長度

約束

1

CID

課程號

字符型(char)

4

主鍵

2

cname

課程名

字符型(varchar)

20

非空

3

Cfen

學分

整數(number)

 

範圍【1,10】

 

成績表sc(學號sno,課程號cno,成績grade)

 

具體示例可以參看P107頁

注意建表時,性別的約束,外鍵的約束。

學分範圍的約束:check(cfen>=0 and cfen<=100)

多個屬性構成主鍵的寫法:constraint PK_SC primary key(sno,cno)

P91-92頁示例,表的屬性列添加,刪除等操作

③創建視圖V_Student,要求列名用中文名稱(學號,姓名, 性別,年齡), 視圖返回的成績在80分以上的學生。

視圖的創建P113-115

④P124二、5,6;

 

第七、八章

重點:數據庫的增、刪、改、查,select的語法及其各個子句,事務的概念和提交回滾;子查詢和高級查詢(主要是2個表的高級查詢)。

考試內容主要以選擇題、操作題、程序題爲主。

例如:

  • 請查詢emp表中員工人數大於3的部門編號和人員數。
  • 向sc表插入一條記錄(1001,1000,79)
  • SQL語句將爲計算列SAL*12生成別名Annual Salary語句正確的是【 】
  1. SELECT ename,sal*12 ‘Annual Salary’ FROM emp;
  2.  SELECT ename,sal*12 ”Annual Salary” FROM emp;
  3.  SELECT ename,sal*12  as  Annual Salary FROM emp;
  4. SELECT ename,sal*12 is  Annual Salary  FROM emp;
  • 修改emp表中smith所在部門編號爲200
  • 查詢工資在3000-5000的員工姓名和ID號
  • 查詢工資高於Smith的所有員工
  • 查詢所有男員工的信息。
  • 查詢每個部門工資最高的員工信息。
  • P169二、1-5;三1,5;P195三、2,4,5;

 

第九章

PL/SQL程序的基本語法(變量定義、條件選擇語句、循環語句),能夠讀懂程序。瞭解異常的概念。

考試內容主要以選擇題、操作題、程序題爲主。

例如:

  • 閱讀如下程序,給出程序運行結果

declare

a number:=100;

b number:=10;

begin

              if a>10 then

                     b:=20;

              elsif a>40 then

                     b:=30;

              else

                     b:=50;

              end if;

              dbms_output.put_line(b);

end;

  •  請根據成績分數給出優良中差的輸出結果,P206
  • PL/SQL程序設計中,拋出異常的字句是【   】

A. throw          B. throws         C. raise         D. cast

④P220二、2,3,4,;三、2

 

第十章

存儲過程的定義與調用(in和out參數的概念),函數的定義與調用,存儲過程與函數的區別,觸發器的定義與概念

考試內容主要以選擇題、問題分析題、操作題、程序題爲主。

例如:

  •  定義了一個存儲過程create or replace procedure getsum(pid in number),下列執行該存儲過程的語句正確的是【 】
  1. Exec getsum(pid=100) 
  2. Execute getsum
  3. Exec getsum(1000)
  4. Exec getsum(pid->19)
  • 創建一個存儲過程,可以根據學號,查詢該學生的成績,並輸出成績等級。
  • 給出調用上述存儲過程的語句
  • 定義觸發器的語句是什麼?
  • P242 二、1、2、3、4;三1,2;

 

第十二章

用戶、角色的創建與管理,權限授予的基本語法

考試內容主要以選擇題、問題分析題、操作題爲主。

例如:

  • 創建用戶yang,密碼爲1234
  • 創建角色teacher,並將角色分配給用戶yang
  • 將emp表的查詢權限賦給yang,並允許其將權限傳播給其他用戶
  • P285二、5;三、1,2;

 

 

 

請仔細理解書上例題

發佈了190 篇原創文章 · 獲贊 41 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章