




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
完整性的要求 數(shù)據(jù)庫中數(shù)據(jù)的正確性、相容性 約束的實現(xiàn) DBMS支持對約束的聲明 for data 使用觸發(fā)器(觸發(fā)程序) for action (event),SQL中的約束和觸發(fā)程序,約束是基于數(shù)據(jù)變化的 Trigger則是基于對表的操作(動作)的 當指定的表上發(fā)生特定的操作,系統(tǒng)便激活Trigger程序 大部分DBMS產(chǎn)品均支持Trigger 觸發(fā)器類型 Insert / Update / Delete Before / After,舉例: CREATE TRIGGER reminder ON titles FOR INSERT, UPDATE, DELETE AS EXEC masterxp_sendmail MaryM, Dont forget to print a report for the distributors. GO,觸發(fā)器可以強制比用 CHECK 約束定義的約束更為復雜的約束。 與 CHECK 約束不同,觸發(fā)器可以引用其它表中的列。 觸發(fā)器可通過數(shù)據(jù)庫中的相關表實現(xiàn)級聯(lián)更改;不過,通過級聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。 觸發(fā)器也可以評估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對策。 一個表中的多個同類觸發(fā)器(INSERT、UPDATE 或 DELETE)允許采取多個不同的對策以響應同一個修改語句。 激發(fā)一個外部動作,觸發(fā)器的用途,存儲過程是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中。用戶通過指定存儲過程的名稱并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。,存儲過程(Stored Procedure),存儲過程-示例,Create Procedure update_dept (IN old_dept_num INT, IN new_dept_num INT, IN new_dept_name Char(20), IN new_dept_head_id INT) BEGIN ATOMIC Insert Into Department (dept_id,dept_name, dept_head_id) Values (new_dept_num, new_dept_name, new_dept_head_id);,Update employee Set dept_id = new_dept_num Where dept_id=old_dept_num; Delete From department Where dept_id=old_dept_num; END Execute update_dept 123,212,cs,98001,數(shù)據(jù)訪問接口,交互式SQL 嵌入的SQL CLI和ODBC、JDBC OLE DB,嵌入式SQL,宿主語言 處理復雜運算,執(zhí)行復雜過程 豐富的庫函數(shù) 數(shù)據(jù)庫訪問的困難 嵌入的SQL 方便的數(shù)據(jù)庫訪問 事務處理能力 上下文無關,無法處理復雜過程,嵌入式SQL,處理復雜過程 宿主語言 訪問數(shù)據(jù)庫 嵌入的SQL語句,嵌入式SQL,宿主語言與嵌入的SQL語句 不同的體系 DB廠商提供庫函數(shù) 需對SQL語句進行預編譯宿主語言的體系 SQL語句宿主語言的函數(shù)調(diào)用(參數(shù)) 統(tǒng)一編譯目標程序 嵌入式SQL語句 由EXEC SQL引導、以;結(jié)尾 EXEC SQL Delete From 學生;,匹配失衡問題,數(shù)據(jù)模型之間的匹配 SQL關系數(shù)據(jù)模型 宿主語言傳統(tǒng)數(shù)據(jù)模型 整數(shù)、實數(shù)、指針 尋找兩者之間的平衡點 SQL數(shù)據(jù)以單個元組出現(xiàn) 避免元組的集合(組合),SQL/宿主語言的接口,變量 儲存數(shù)據(jù)的單元 SQL/宿主語言通過變量傳遞信息 共同的變量集合共享變量 以傳統(tǒng)的方式在宿主語言中使用 在SQL語句中使用(以:作前綴),變量的聲明,宿主變量 僅用于宿主語言的語句中 共享變量 可在宿主語言、嵌入的SQL語句中使用 共享變量聲明段,變量的聲明,int i = 2,j = 3; EXEC SQL BEGIN DECLARE SECTION; char 學號8,姓名20; char 所在系6; EXEC SQL END DECLARE SECTION;,使用共享變量,嵌入式SQL中,以共享變量替代具體的值 在運行時獲得變量的值,使用共享變量,Update、Insert中直接使用,替代值 EXEC SQL Update 學生 Set 所在系 = :所在系 Where 姓名 = :姓名; 在Select-From-Where中需注意 單元組 多元組:引入游標(Cursor),逐行處理,單元組查詢語句,只返回一個元組的Select-From-Where語句 Select-Into-From-Where EXEC SQL Select 學號 Into :學號 From 學生 Where 姓名 = :姓名; 注意返回值的狀態(tài)判定,游標Cursor,Cursor是系統(tǒng)為用戶開設的一個數(shù)據(jù)緩沖區(qū),存放SQL語句的執(zhí)行結(jié)果 用戶可以逐行讀?。ㄌ幚恚㏒elect結(jié)果集中的數(shù)據(jù) Cursor result Set Cursor Position,動態(tài)SQL,語句可變 條件可變 數(shù)據(jù)庫對象、查詢條件均可變,SQL中的事務,是構(gòu)成單一邏輯工作單元的操作集合 事務管理器 事務恢復機制 并發(fā)調(diào)度機制,事務的性質(zhì)ACID,原子性: 事務是原子的,要么都做,要么都不做 一致性: 保證數(shù)據(jù)庫的一致性 從一個一致狀態(tài)另一個一致狀態(tài) 隔離性: 事務相互隔離 持久性 一旦事務提交成功,更新則將永久有效,SQL中的事務事務的結(jié)束,提交 COMMIT 事務成功結(jié)束,永久保存修改 將上次提交后的修改,全部保存 回滾 ROLLBACK 事務異常終止,撤消修改,恢復原值 將上次提交后的修改,全部撤消,SQL編程嵌入式,嵌入式SQL DBMS提供的高級語言方式 Host Variable & Share Variable 直接使用SQL語句 需預編譯 各DBMS廠商均提供相應的工具,SQL編程CLI(API),CLI(Call Level Interface) 定義了一套可以從宿主語言調(diào)用的公共函數(shù) 提供一套API,通過函數(shù)調(diào)用,實現(xiàn)對DBMS的操作 DBLib、OCI、 ODBC、JDBC 逐步替代嵌入式SQL,Application,Oracle,OCI,Oracle 的CLI模型,ODBC(Open DataBase Connectivty :開放數(shù)據(jù)庫互連),ODBC是Microsoft Windows Open Standards Architecture (WOSA,Windows開放服務體系)的重要組成部分,由Microsoft公司于1991年底發(fā)布,短短幾年已成為事實上的工業(yè)標準.它建立了一組規(guī)范,提供了一套分層(隨著層的擴展,數(shù)據(jù)服務能力不斷的增強)的標準API(支持SQL),它解決了嵌入式SQL接口的非規(guī)范核心,數(shù)據(jù)應用系統(tǒng)用它來訪問任何提供了ODBC驅(qū)動程序(一組DLL)的數(shù)據(jù)庫,結(jié)束了過去針對不同的數(shù)據(jù)庫系統(tǒng)開發(fā)須掌握相應數(shù)據(jù)訪問API的時代.事實上,可將ODBC體系看作統(tǒng)一的數(shù)據(jù)訪問界面,而使這種統(tǒng)一的數(shù)據(jù)訪問成為可能的就是各數(shù)據(jù)庫產(chǎn)品廠商提供的相應的ODBC Provider(ODBC提供者即ODBC 驅(qū)動)。,結(jié)合ODBC API調(diào)用順序描敘工作流程:初始化(分配環(huán)境-分配連接句柄-與服務器連接-分配語句句柄)-SQL處理(語句處理和檢索部分)-終止(釋放語句句柄-與服務器斷開-釋放連接句柄-釋放環(huán)境),OLE DB (Object Link and Embedding DataBase),OLE DB作為一種數(shù)據(jù)訪問接口體系,體現(xiàn)了Microsoft的通用數(shù)據(jù)訪問(UDA)策略的理念.UDA能夠通過標準接口來訪問各種類型的數(shù)據(jù).同于ODBC體系它也提供了一套標準API,不過OLE DB API是完全基于COM的,其特點是采用了多層模型.在COM通信層的一側(cè)是數(shù)據(jù)另一側(cè)則是數(shù)據(jù)使用者.這種基于COM的通信可被概括為在抽象對象(如DataSource、Session、Command 和 Rowset)上執(zhí)行的操作.因此,當使用者連接到DataSource,打開 Session,發(fā)出Command,并返回數(shù)據(jù)Rowset時,便會出現(xiàn)這種情況. 事實上,OLE DB是系統(tǒng)級的編程接口,它定義了一組COM接口,這組接口封裝了各種數(shù)據(jù)系統(tǒng)的訪問操作,這組接口為數(shù)據(jù)使用者和數(shù)據(jù)提供者建立了標準,OLE DB還提供了一組標準的服務組件,用于提供查詢、緩存、數(shù)據(jù)更新、事務處理等操作,因此數(shù)據(jù)提供方只需實現(xiàn)一些簡單的數(shù)據(jù)操作.在使用方就可以獲得全部的數(shù)據(jù)控制能力.,OLE DB組成,數(shù)據(jù)提供者(Data Provider) 提供數(shù)據(jù)存儲的組件和數(shù)據(jù),數(shù)據(jù)小到普通的文本文件、大到主機上的復雜數(shù)據(jù)庫,或者電子郵件存儲,都是數(shù)據(jù)提供者的例子.有 的文檔把這些軟件組件的開發(fā)商也稱為數(shù)據(jù)提供者. 數(shù)據(jù)服務提供者(Data Service Provider) 位于數(shù)據(jù)提供者之上、從過去的數(shù)據(jù)庫管理系統(tǒng)中分離出來、獨立運行的功能組件,例如查詢處理器和游標引擎(Cursor Engine),這些組件使得數(shù)據(jù)提供者提供的數(shù)據(jù)以表狀數(shù)據(jù)(Tabular Data)的形式向外表示(不管真實的物理數(shù)據(jù)是如何組織和存儲的),并實現(xiàn)數(shù)據(jù)的查詢和修改功能.SQL Server 7.0 的查詢處理程序就是這種組件的典型例子. 數(shù)據(jù)消費者(Data Consumer) 任何需要訪問數(shù)據(jù)的系統(tǒng)程序或應用程序,除了典型的數(shù)據(jù)庫應用程序之外,還包括需要訪問各種數(shù)據(jù)源的開發(fā)工具或語言.,1、統(tǒng)計有學生選修的課程門數(shù) 2、求選修了數(shù)據(jù)庫課的學生的平均年齡 3、求劉宇老師所授課程的每門課程的學生平均值 4、統(tǒng)計每門課程的學生選修人數(shù)。要求輸出課程號和人數(shù), 查詢結(jié)果按人數(shù)降序排列,若人數(shù)相同,按課程號升序排列 5、檢索學號比汪同學大,而年齡比他小的學生姓名 6、求年齡大于女同學平均年齡的男學生姓名和年齡 7、求年齡大于所有女同學年齡的男學生姓
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 62232:2025 EN-FR Determination of RF field strength,power density and SAR in the vicinity of base stations for the purpose of evaluating human exposure
- 2025年工程造價師考試試卷及答案
- 2025年環(huán)境科學研究生入學考試試題及答案
- 2025年精益生產(chǎn)與質(zhì)量管理基礎知識考試試卷及答案
- 2025年農(nóng)產(chǎn)品質(zhì)量安全檢測考試試卷及答案
- 2025年抗結(jié)劑項目合作計劃書
- 2025年稀土-鐵超磁致伸縮單晶材料項目合作計劃書
- 家具潔凈護理流程
- 新人培訓指南
- 新能源太陽能熱發(fā)電EPC總承包項目合規(guī)性評估與保障協(xié)議
- GB/T 26218.3-2011污穢條件下使用的高壓絕緣子的選擇和尺寸確定第3部分:交流系統(tǒng)用復合絕緣子
- GB/T 10575-1989無水氯化鋰
- 2023年陜西中考副題
- 速凍食品生產(chǎn)許可證審查細則
- 2023年清華大學考博英語真題及答案詳解
- 超長混凝土結(jié)構(gòu)無縫(跳倉法)施工技術課件
- 心肺復蘇中國專家共識解讀
- 風電場工作安全培訓課件
- 初中生入團申請書500字(通用9篇)
- 胸腔鏡下肺大泡切除術課件
- 6.3 心理課堂-職業(yè)生涯規(guī)劃實踐課(生涯幻游-體驗自己十年后一天的生活)
評論
0/150
提交評論