數據庫重拾

第一章:數據庫

1.  數據的4個特徵:安全

1) 數據有「型」和「值」之分。網絡

2) 數據受數據類型和取值範圍的約束。數據結構

3) 數據有定性表示和定量表示之分。併發

4) 數據應具備載體和多種表現形式。數據庫設計

2.數據庫定義工具

長期儲存在計算機中的、有組織的可共享的數據的集合。性能

 

數據庫的特色
   數據按必定的數據模型組織、描述和儲存
  較小的冗餘度
  數據獨立性較高
  易擴展
  可共享:
① 不一樣的用戶能夠按各自的用法使用數據庫中的 數據。
② 多個用戶能夠同時共享數據庫中的數據資源。
數據庫管理系統( DBMS
是專門用於管理數據庫的計算機系統軟件。數據庫管理系統可以爲數據庫提供 數據的定義、創建、維護、查詢和統計等操做功能,並完成對 數據完整性、安全性進行控制的功能
 

1、選擇題(20分,每小題2分):spa

1.數據庫系統的核心是_B___。
A.數據庫           B.數據庫管理系統
C.數據模型         D.軟件工具
2.SQL語言具備__B__的功能。
A.關係規範化、數據操縱、數據控制
B.數據定義、數據操縱、數據控制
C.數據定義、關係規範化、數據控制
D.數據定義、關係規範化、數據操縱
3.SQL語言的數據操縱語句包括 SELECT,INSERT,UPDATE和 DELETE,
最重要的,也是使用最頻繁的語句是__A__。
A.SELECT       B.INSERT       C.UPDATE       D.DELETE
4.在關係數據庫設計中,設計關係模式是__C__的任務。
   A.需求分析階段 B.概念設計階段 C.邏輯設計階段 D.物理設計階段
5.__C__是DBMS的基本單位,它是用戶定義的一組邏輯一致的程序序列。
   A.程序   B.命令   C.事務   D.文件
6.在數據庫中,產生數據不一致的根本緣由是__D__。????
A.數據存儲量太大
B.沒有嚴格保護數據
C.未對數據進行完整性控制
D.數據冗餘
7.下列SQL語句中,建立關係表的是__B__。
A.ALTER             B.CREATE
C.UPDATE            D.INSERT
8.數據庫的__B__是爲了保證由受權用戶對數據庫所作的修改不會影響數據一致性的損失。
A.安全性   B.完整性   C.併發控制   D.恢復
 
9.事務是數據庫進行的基本工做單位。若是一個事務執行成功,則所有更新提交;若是一個事務執行失敗,則已作過的更新被恢復原狀,好像整個事務從未有過這些更新,這樣保持了數據庫處於_____B___狀態。
  A.安全性   B.一致性   C.完整性   D.可靠性
 
10.對併發操做若不加以控制,可能會帶來數據的___D_問題。
   A.不安全   B.死鎖   C.死機   D.不一致
 
2、填空題(12分,4小題)
1.數據冗餘可能致使的問題有____________________和_____________________。
答案:①浪費存儲空間及修改麻煩     ②潛在的數據不一致性
 
2.數據庫在運行過程當中可能產生的故障有____________、_______________、___________。
答案:①Transaction failure ②System crash ③Disk failure
 
3.視圖是一個虛表,它是從_________中導出的表。在數據庫中,只存放視圖的________,不存放視圖的_____________。
答案:一個或幾個基本表、定義、視圖對應的數據
 
4.關係操做的特色是____________操做。
答案:集合
3、簡答題(共48分,每小題6分):
一、  如何建立表、修改表、刪除表?
        Create table 表名
          Alter table 表名
          Drop table 表名
 
二、  存儲過程的優勢是什麼?
存儲過程的優勢:
               1.提升性能
               2.減輕網絡擁塞
               3.一致性較好
               4.改善安全機制
三、  什麼是觸發器?觸發器有哪幾種?觸發器有什麼優勢?
一個觸發器是由T-SQL語句集組成的代碼塊,在響應某些動做時激活該語句集
       有insert,delete,update觸發器
       它防止了對數據的不正確、未受權的和不一致的改變
四、  常見的幾種約束有哪些?分別表明什麼意思?如何使用?
主鍵約束,外鍵約束,檢查約束,惟一約束,默認約束
        約束:在Create table或alter table時加約束
        (1)主鍵:PRIMARY KEY (主鍵字段) 保證了實體完整性,一個表只有一個主鍵,但一個主鍵可有包     含多個字段,主鍵字段不能爲空
           (2)惟一:UNIQUE (約束字段) 保證了實體完整性,一個表只有多個惟一約束,一個惟一約束可有包含多個字段
           (3)外鍵:FOREIGN KEY (外鍵字段) REFERENCES 主鍵表(主鍵字段) 保證了引用完整性,一個表能夠有多個外鍵
       (4)檢查:CHECK(檢查表達式) 保證了域完整性, 一個表中能夠有多個檢查性約束
     (5)默認值:DEFAULT (默認值的表達式或NULL) for 字段名 保證了域完整性,一個表能夠有多個默認值約束,可是一個字段只有一個                  默認值
 
五、什麼是數據庫的安全性?(5分)
數據庫的安全性是指保護數據庫以防止不合法的使用所形成的數據泄露、更改或破壞。
 
六、簡要說明事務的原子性。(5分)
事務的全部操做必須完成,不然事務將被撤消。也就是說,事務是做爲一個總體的單位處理,不能夠被分割
 
七、事務中的提交和回滾是什麼意思?(5分)
事務中的提交(COMMIT)是提交事務的全部操做。具體說就是將事務中全部對數據庫的更新寫回到磁盤上的物理數據庫中去,事務正常結束。
事務中的回滾(ROLLBACK)是數據庫滾回到事務開始時的狀態。具體地說就是,在事務運行的過程當中發生了某種故障,事務不能繼續執行,系統將事務中對數據庫的全部已完成的更新操做所有撤消,使數據庫回滾到事務開始時的狀態。
 
八、什麼是數據庫的數據獨立性?(5分)
數據獨立性表示應用程序與數據庫中存儲的數據不存在依賴關係,包括邏輯數據獨立性和物理數據獨立性。
邏輯數據獨立性是指局部邏輯數據結構(外視圖即用戶的邏輯文件)與全局邏輯數據結構(概念視圖)之間的獨立性。當數據庫的全局邏輯數據結構(概念視圖)發生變化(數據定義的修改、數據之間聯繫的變動或增長新的數據類型等)時,它不影響某些局部的邏輯結構的性質,應用程序沒必要修改。
物理數據獨立性是指數據的存儲結構與存取方法(內視圖)改變時,對數據庫的全局邏輯結構(概念視圖)和應用程序沒必要做修改的一種特性,也就是說,數據庫數據的存儲結構與存取方法獨立。
數據獨立性的好處是,數據的物理存儲設備更新了,物理表示及存取方法改變了,但數據的邏輯模式能夠不改變。數據的邏輯模式改變了,但用戶的模式能夠不改變,所以應用程序也能夠不變。這將使程序維護容易,另外,對同一數據庫的邏輯模式,能夠創建不一樣的用戶模式,從而提升數據共享性,使數據庫系統有較好的可擴充性,給 DBA維護、改變數據庫的物理存儲提供了方便。
4、設計題(本大題共2小題,每小題10分,共20分)
一、假定一個部門的數據庫包括如下的信息:  (10分)
職工的信息:職工號、姓名、住址和所在部門。
部門的信息:部門全部職工、經理和銷售的產品。
產品的信息:產品名、製造商、價格、型號及產品內部編號。
製造商的信息:製造商名稱、地址、生產的產品名和價格。
完成以下設計:
設計該計算機管理系統的E-R圖;
二、學生表:Student 學生表 (學號,姓名,性別,年齡,組織部門)
           Course 課程表 (編號,課程名稱)
               Sc 選課表 (學號,課程編號,成績)
表結構以下:
(1).寫一個SQL語句,查詢選修了’計算機原理’的學生學號和姓名
(2).寫一個SQL語句,查詢’周星馳’同窗選修了的課程名字
(3).寫一個SQL語句,查詢選修了5門課程的學生學號和姓名
       select sno,sname
              from student
              where sno in (
                            select sno
                            from sc
                            where cno = (
                                          select cno
                                          from course
                                          where cname='計算機原理'
                                           )
                             )
       (2)
              select cname
              from course
              where cno in (
                            select cno
                           from sc
                            where sno =
                                   (
                                       select sno
                                      from student
                                       where sname='周星馳'
                          )
                                   )
      
(3)
              select sno,sname
             From student
             Where sno in (
                            select sno
                            from sc
                            group by sno having count(sno)=5
                )
相關文章
相關標籤/搜索