1. 程式人生 > 其它 >04735資料庫系統原理

04735資料庫系統原理

04735資料庫系統原理 一、資料庫管理系統主要功能有那些? 1.資料操縱功能 2.資料定義功能 3.資料庫的執行管理 4.資料庫的建立和維護 5.資料組織、儲存和管理功能 6.其他功能(網路通訊等) 二、資料庫系統階段的特點? 1.資料整合(主要目的) 2.資料獨立性高 3.資料共享性高 4.資料一致性 5.資料冗餘小 6.實施統一的管理與維護 7.減少應用程式的開發和維護的工作量 三、簡述模式/內模式映像 1.例如選用另一種儲存結構或者更換另一個儲存位置,為使資料庫系統的模式保持不變,不需要修改程式,DBA通常會對模式/內模式映像做出相應的調整,如此實現了概念模式不受內模式變化的影響,並保證了資料與程式之間的物理獨立性。 四、關係型模型的優點?
1.建立在嚴格的數學概念基礎之上 2.概念單一,統一用關係來表示實體與實體之間的聯絡 3.存取路徑對使用者透明,有更高的資料獨立性,更好的安全保密性 五、關係資料庫的基本特徵? 1.所有關係的集合構成關係資料庫 2.以關係模型作為資料的邏輯模型,並採用關係作為資料組織方式 3.其資料庫操作建立在關係代數基礎之上 六、簡述實體完整性約束定義 1.指關係的主屬性,主碼的組成不能為空,也就是關係的主屬性不能為null 2.關係對應現實中的實體集,現實中的實體是可以區分的,說明每個實體具有唯一標識 3.在關係模型中,是使用主碼的唯一標識,假設主碼取空,說明實體不可區分,這個假設顯然不正確 七、實體完整性主鍵的約束規則
1.每個表只能定義一個主鍵 2.主鍵的值必須唯一標識表中每行的記錄,且不能為null 3.複合主鍵不能包含不必要的多餘列 4.一個列名在複合主鍵的列表中只能出現一次 八、關係資料庫對關係的限定/要求 1.每個屬性是不可分解 2.每個關係只有一種關係模式 3.每個關係模式中的屬性必須命名,在同一個關係模式中,屬性名不同 4.同一個關係中不允許候選碼或者候選鍵的值完全相同 5.在關係中行序無關緊要,可以任意交換 6.在關係中列序無關緊要,可以任意交換 九、簡述完整性約束的作用物件 1.列級約束:對列的型別、取值範圍、精度等約束 2.元組約束:各個欄位的相互約束 3.表級約束:元組之間、關係之間的聯絡約束 十、完全函式依賴的定義
1.設R為任意給定關係,x,y為其屬性集,若x→y,且對x的任何真子集x’,都有x’→/y,則稱Y完全函式依賴x。 十一、資料庫設計的內容有哪些? 1.資料庫結構設計:是針對應用環境進行資料庫模式或者子模式的設計,包括資料庫概念結構設計、資料庫邏輯結構設計、物理結構設計 2.資料庫行為設計:是確定資料庫使用者行為和動作,通常是通過程式來實現 十二、資料庫的生命週期: 1.分為兩個階段,分別是資料庫分析與設計階段、資料庫實現與操作階段:其中資料分析與設計階段包括需求分析、概念設計、邏輯設計和物理設計四個環節;資料庫實現與操作階段包括:資料庫的實現、操作與監督、修改與調整三個子階段 十三、需求分析報告的成果 1.資料庫的應用功能目標 2.標明不同使用者檢視範圍 3.應用處理過程需求說明 4.資料字典 5.資料量 6.資料約束 6.1】響應時間 6.2】資料恢復 6.3】資料的完整性 6.4】資料的安全保密性 十四、資料庫控制語言的定義和語句 1.grant:授予許可權 2.revoke:收回許可權 十五、使用者變數與區域性變數、系統變數的區別 1.使用者變數宣告時,會在名稱前加@符號,同時已宣告的使用者變數存在整個會話中 2.區域性變數宣告時,沒有在前面加@符號,只能宣告在儲存過程體begin...end語句塊中使用 3.系統變數在名稱前加兩個@符號,應用於其他sql語句中 十六、檢視的定義與優點 1.定義: 1.1檢視是資料庫中的物件; 1.2是資料庫管理系統提供給使用者從多角度觀察資料庫中的資料的一種重要機制; 1.3是從一個表或者多個表或者其他檢視中通過查詢語句匯出的表, 1.4它也包含一系列帶有名稱的資料列和若干條資料行,且有自己的檢視名 2.優點: 2.1集中分散資料 2.2簡化查詢語句 2.3重用sql語句 2.4保護資料安全 2.5共享所需資料 2.6更改資料格式 十七、儲存過程體的好處 1.可增強sql語言的功能性和靈活性 2.良好的封裝性 3.高效能 4.可減少網路流量 5.可作為安全機制保護資料庫的安全性和資料完整性 十八、為什麼要使用遊標 1.使用select語句資料檢索時,會返回一組稱為結果集的資料行,這些資料無法一行一行的處理,所以需要遊標 十九、使用遊標的注意事項 1.遊標只用於儲存過程或者儲存函式中,不能單獨在查詢操作中使用 2.在儲存過程和儲存函式中可以定義多個遊標,但在begin...end語句塊中每個遊標的名字必須唯一 3.遊標不是一條select語句,是select語句檢索出來的結果集 二十、儲存函式與儲存過程的區別是什麼 1.儲存過程有輸出引數;儲存函式不能有輸出引數,因為儲存函式本身就是輸出引數 2.儲存過程的呼叫需要使用call;儲存函式可以直接進行呼叫,不需要使用call語句 3.儲存過程中不允許包含return語句,儲存函式必須包含一條return 二十一、觸發器的定義與作用 定義:1.是使用者定義在關係表上的由事件驅動的資料庫物件,也是一種保證資料完整性的方法 作用:實現主鍵與外來鍵不能保證複雜的參照完整性和資料一致性,從而有效的保護表中的資料 二十二、事務的概念與特徵 概念:使用者定義的一個數據操作序列,這些操作可作為一個完整的工作單元,要麼全部執行、要麼全部不執行,是不可分割的工作單位 特徵:1.原子性 2.一致性 3.隔離性 4.持續性 二十三、簡述併發操作的問題 1.丟失更新:假設有T1和T2兩個事務,當他們同時對同一資料進行修改,T2的事務提交結果會破壞T1提交的結果,導致TI的修改丟失 2.不可重複讀:假設有T1和T2兩個事務,T1讀取資料後,事務T2執行更新操作,導致事務T1無法再現前一次的讀取結果 3.讀髒資料:假設有兩個事務T1和T2,T1修改了某一資料,並寫回磁碟,T2讀取同一資料後,由於某種原因T1被撤銷了,這時T1讀取的是原值,T2讀取到的值就與資料庫不一樣 二十四、封鎖的工作原理 1.若事務T對資料D加了X鎖,則所有別的事務對資料D的鎖請求都必須等到事務T釋放鎖 2.若事務T對資料D加了S鎖,則別的事務還可以對資料D請求S鎖,而對資料D的X鎖必須等到事務T釋放 3.事務執行資料庫操作時,都要請求相應的鎖,即對讀請求S鎖,對更新請求X鎖,這個過程一般都是DBMS執行操作時自動隱含進行的 4.事務一直佔有獲得的鎖直到結束時釋放 二十五、簡述封鎖的級別(又稱封鎖的一致性級別或者封鎖的隔離度) 1.0級封鎖:封鎖的事務不重寫其他非0級封鎖事務的未提交的更新資料 2.1級封鎖:不允許未提交的更新資料。防止丟失更新 3.2級封鎖:既不重寫也不讀未提交的更新資料,防止讀髒資料 4.3級封鎖:不讀未提交的更新資料,也不寫未提交資料 保證多個事務併發執行的“可序列化” 二十六、預防死鎖的方法 1.一次性鎖請求 2.鎖請求排序 3.序列化處理 4.資源剝奪 二十七、第一代的兩類資料庫共同特點是什麼? 1.支援三級模式 2.用存取路徑來表示資料間的聯絡 3.獨立的資料定義語言 4.導航的資料操縱語言 二十八、第二代資料庫系統的成果及優點 成果:1.奠定了關係模型的理論基礎 2.研究了關係資料語言 3.研製了大量的RDBMS的原型 優點:模型簡單清晰、理論基礎好、資料獨立性強、資料庫語言非過程化和標準化 二十九、資料探勘所具備的功能: 1.聚類 2.概念描述 3.關聯分析 4.分類與預測 5.孤立點檢測 6.趨勢和演變分析 三十、資料倉庫的特徵 1.面向主題 2.整合性 3.資料的非易失性 4.資料的時變性 一百、需要記住的單詞 1.default:給定預設值 2.ifexists :加判斷 3.autoincrement :自增長 4.primarykey: 主鍵 foreignkey 外來鍵 5.modify:只會修改指定列資料型別 change還能修改列明 6.rename:重新賦予表名 7.showcolumns :查看錶結構 8.createuniqueindex :建立唯一索引 9.between...and 和in :判定範圍 10.createview 名字 as select :建立檢視 正常刪除:drop 通過檢視操作基本表:新增(insertinto)、修改(update) 刪除 11.delimiter $$ :修改結束符 12.createprocedure :建立儲存過程 call 呼叫儲存過程 drop procedure 刪除儲存過程 13.declare :宣告區域性變數 14. declarecursor:宣告遊標 open 開啟遊標 fetch...into 讀取遊標資料 close 關閉遊標 15.createfunction 建立儲存函式 select 呼叫儲存函式 dropfunction 刪除儲存函式 16.restrict :限制策略 cascade:級聯策略 setnull:置空策略 noaction :實施策略 17.createtrigger 建立觸發器 有insert觸發器 update觸發器 delete觸發器 18.commit:提交 rollback:回滾 19.select into...outfile :備份資料 loaddata....infile :恢復資料 20.(建立表:createtable表名 (屬性1資料型別notnullautoincrement,屬性2。。。。。primarykey(屬性));):