版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第11章 設計數據庫應用程序本章我們首先介紹了數據庫和數據庫系統的基礎知識。然后討論了Delphi數據庫體系結構及其特點。接著以常用的ADO數據庫接口為例,詳細講解了Delphi數據庫應用程序的設計方法和設計過程。最后還進一步介紹了SQL數據庫編程11.1 數據庫和數據庫系統11.2 Delphi數據庫體系結構11.3 基于ADO的數據庫應用程序11.4 SQL數據庫編程11.5 本章小結11.1 數據庫和數據庫系統
數據庫提供了一種把相關信息集合在一起的方法,它是一個數據的有機集合,它可以使我們在某個集中的地方存儲和維護這些信息。一個數據庫系統則主要由以下三大部分組成: 數據庫按一定結構組織在一起的相關數據的集合數據庫管理系統(DBMS)它是專門負責組織和管理數據信息的程序 數據庫應用程序它使我們能夠獲取、顯示和更新由DBMS存儲的數據11.1.1 數據庫管理系統
數據庫管理系統(DBMS)是用于描述、管理和維護數據庫的程序系統,是數據庫系統的核心組成部分。它建立在操作系統的基礎上,對數據庫進行統一的管理和控制。其主要功能有:描述數據庫管理數據庫 維護數據庫 數據通信11.1.1 數據庫管理系統
關系數據庫模型是數據的邏輯表示,只需考慮數據間的關系而不必關心數據的物理結構。關系數據庫中包括: 表(Table) 字段(Field) 記錄(Record) 索引(Index)從表/明細表外鍵字段/列主鍵記錄/行主表11.1.2 數據庫應用程序 DBMS中存儲了大量的數據信息,其目的是為用戶提供數據信息服務,而數據庫應用程序正是與DBMS進行通信,并訪問DBMS中的數據,它是DBMS實現其對外提供數據信息服務這一目的的唯一途徑。簡單地說,數據庫應用程序是一個允許用戶插入、修改、刪除數據庫中數據的計算機程序。數據庫應用程序在傳統上是由程序員用一種或多種通用或專用的程序設計語言編寫的,而Delphi正是一種強大的數據庫應用程序開發(fā)工具。11.1.3 數據庫安全
數據庫往往包含了一些敏感信息。為了保護這些信息,不同的數據庫有不同的保護策略。有的數據庫如Paradox和dBASE,僅僅在表格級或字段級提供了安全保護,當一個用戶試圖訪問受保護的表格時,必須輸入口令。當口令被認可,用戶只能看到允許的字段。11.2 Delphi數據庫體系結構Delphi是目前開發(fā)器數據庫應用程序的強有力的工具。Delphi擁有自己的BDE(BorlandDatabaseEngine)數據庫驅動接口,它允許用戶創(chuàng)建并訪問dBASE、Paradox和InterBase數據庫;通過BorlandSQLLink,Delphi能直接訪問Oracle、Sybase、DB2、SQLServer、Informix以及InterBase數據庫服務器。Delphi還支持ODBC、ADO等微軟的數據庫訪問標準。Delphi對于分布式數據庫及多層架構的應用還有自己成熟的DataSnap、dbGo等解決方案。11.2.1 本地數據庫和遠程數據庫本地數據庫位于本地磁盤或局域網上。典型的本地數據庫有Paradox、dBASE、FoxPro和Access。遠程數據庫通常位于遠程計算機(數據庫服務器)上,用戶通過SQL來訪問遠程數據庫中的數據,正是基于這個原因,遠程數據庫有時候也叫SQL服務器或者叫RDBMS。典型的SQL服務器有Interbase、Oracle、Sybase、Informix、MicrosoftSQLServer和DB2。11.2.2 選擇合適的體系結構
一個數據庫應用程序在邏輯上通常由數據庫訪問鏈路和用戶界面兩部分組成。典型的數據庫應用程序的體系結構:用戶界面與數據訪問鏈路分開的結構11.2.3 連接數據庫服務器直接連接數據庫服務器11.2.3 連接數據庫服務器多層數據庫應用程序的體系結構11.2.4 Delphi數據庫組件介紹1. 數據集和連接組件BDEADOdbExpressInterBase11.2.4 Delphi數據庫組件介紹2. 數據訪問組件組件面板DataAccess頁上的組件用于連接數據集組件和數據控制組件,以便數據感知控件能無差別地存取數據庫,而不受各種數據庫訪問機制的影響。其中最常用的是數據源TDataSource組件。還包含了TClientDataset和TDataSetProvider組件。11.2.4 Delphi數據庫組件介紹3. 數據控制組件Delphi的數據庫控制組件通常稱為數據感知控件。這是因為數據庫控制組件有自動感知數據的能力位于組件面板DataControls頁的數據感知控件11.3 基于ADO的數據庫應用程序 ADO是ActiveXDataObject的簡稱,是Microsoft來訪問數據庫接口。通過ADO可以快速訪問各種數據資源,包括關系數據庫和非關系型數據庫、郵件和文件系統、文本和圖像以及任何自定義的業(yè)務對象。ADO是目前Windows平臺的主流數據庫接口。11.3 基于ADO的數據庫應用程序ADO組件說明TADODataSet
代表一個ADO數據庫,可以從一個或多個表中檢索數據TADOTable
代表一個表,可以從單個表中檢索數據TADOQuery
用SQL語句查詢數據集;可以執(zhí)行DDL(DataDefinitionLanguage)命令,諸如CREATETABLE,DROPTABLE等TADOStoreProc
用于執(zhí)行存儲過程,可以返回結果,也可以執(zhí)行DDL命令TADOCommand
可以執(zhí)行不需要返回結果的命令,也可以從一個表中檢索數據TADOConnection
用于連接一個ADO數據庫。多個ADO組件可共享這個連接來執(zhí)行命令、檢索數據和數據庫對象進行操作。特別是當多個ADO組件需要共享ADO連接并且保持同步時,應當使用ADOConnection來連接數據庫11.4 SQL數據庫編程SQL語言作為關系數據庫管理系統中的一種通用的結構查詢語言,已經被眾多的數據庫管理系統所采用。Delphi與使用SQL語言的數據庫管理系統兼容,在使用Delphi開發(fā)數據庫應用程序時,我們可以嵌入SQL語言編程。11.4.1 SQL語言簡介1. SQL的歷史 在70年代初,E.E.Codd首先提出了關系模型。70年代中期,IBM公司在研制SYSTEMR關系數據庫管理系統中研制了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976年11月的IBMJournalofR&D上公布的。1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2和SQL/DS數據庫系統中也實現了SQL。1989年,美國ANSI采納在ANSIX3.135-1989報告中定義的關系數據庫管理系統的SQL標準語言,稱為ANSISQL89,該標準替代ANSIX3.135-1986版本。該標準也被國際標準化組織(ISO)和美國聯邦政府所采納。目前,所有主要的關系數據庫管理系統都支持并遵守ANSISQL89標準。2. SQL的特點SQL是非過程化語言。SQL是統一的語言。SQL是所有關系數據庫的公共語言11.4.1 SQL語言簡介3.SQL語言的基本語法
ALTERTABLE用于改變現存表的結構。
CREATEINDEX用于在一個或多個列上創(chuàng)建索引。
CREATETABLE用于創(chuàng)建一個新數據庫表。
CREATEVIEW用于為一個或多個表創(chuàng)建視圖。
DELETEDELETE從表中刪除一個或多個行。11.4.1 SQL語言簡介2.SQL語言的命令
CREATEDATABASE用于創(chuàng)建一個數據庫。
DROP永久刪除數據庫對象(表、視圖、索引等)。
INSERT插入一行到表中。
SELECT用于從一個或多個表(或視圖)中提取數據。
UPDATE用于更新表中的一個或多個行。11.4.1 SQL語言簡介11.4.2 使用SQL編程
在Delphi中用于實現對SQL語言編程的主要有Query類組件和StoredProc類組件。主要作用如下:Query類組件——執(zhí)行SQL命令,其通過SQL下載得到的數據集可供數據控制組件使用。StoredProc類組件——在數據庫服務器上創(chuàng)建和執(zhí)行存儲過程,只返回結果。11.4.2 使用SQL編程1. Query類組件Query類組件是一個數據集組件,他們都是TDataSet的派生類,與Table類組件具有很多共同的特性。在Delphi數據庫開發(fā)應用中,SQL語句是通過Query類組件傳遞到要訪問的數據庫系統的數據庫引擎中,并由該數據庫引擎具體執(zhí)行SQL語句,以實現對數據的操作,而不是由Delphi自己來實施具體的SQL動作。Query類組件提供了一些Table類組件所不具備的強大功能,例如:多表聯接查詢復雜的嵌套查詢和條件查詢明確需要按SQL語言進行的操作11.4.2 使用SQL編程
在SQL編程中使用Query類組件的具體方法步驟如下:(1) 為Query類組件設置數據庫連接。(2) 為Query類組件設置SQL屬性。(3) 執(zhí)行SQL命令。11.4.2 使用SQL編程2. 靜態(tài)和動態(tài)SQL在Delphi應用程序中編寫和使用的SQL語句有兩種:即靜態(tài)SQL語句和動態(tài)SQL語句。前者是在程序設計階段,將SQL命令文本作為Query類組件的SQL屬性值設置。而后者是通過編程在SQL語句中包含一系列的參數,在程序運行過程中各參數值是可變的,即可以動態(tài)地給SQL語句中的參數賦值。11.4.2 使用SQL編程靜態(tài)方式是把SQL命令作為Query類組件的SQL屬性值進行設置,即在程序設計期輸入SQL語句。程序運行時,當該Query類組件的Active屬性為True時,便自動執(zhí)行SQL屬性中設置的SQL命令。如果是SQL查詢命令,那些通過TDataSource組件與該Query類組件相連接的數據感知控件就能顯示查詢到的結果。11.4.2 使用SQL編程3. 帶參數的SQLSQL語句可以不帶參數,把字段名稱和值固定在SQL語句中。如果用參數的話,查詢就靈活得多,應用程序不需要改寫SQL語句本身,只要修改參數的值,就能使SQL語句執(zhí)行不同的查詢功能。在執(zhí)行SQL語句之前,Query類組件會自動把實際的值替換SQL語句中的參數,即使并沒有顯式地調用Prepare函數。11.4.2 使用SQL編程4. 執(zhí)行SQL語句當指定了SQL語句并且提供了參數后,即編寫好SQL程序之后,就可以執(zhí)行SQL語句了。在設計期和運行期都可以執(zhí)行SQL語句。要在設計期執(zhí)行SQL語句,只要把Active屬性設為True。不過,在設計期能執(zhí)行的SQL語句,僅限于SELECT語句,而不能是INSERT、UPDATE或DELETE語句。11.4.3 示例程序:SQL查詢窗體1. 設計查詢窗體在前面圖書管理系統的示例程序中,主窗體TMainForm中有一段代碼用于創(chuàng)建查詢子窗體TQueryBookForm,實現數據查詢。這個窗體TQueryBookForm就是現在我們要講解的用SQL語句實現的查詢單元。11.4.3 示例程序:SQL查詢窗體圖11-17查詢窗體界面設計11.4.3 示例程序:SQL查詢窗體2. 使用TADOQueryTADOQuery是Query類組件,用來對一個或多個表進行查詢。我們要執(zhí)行的SQL查詢語句也是通過該組件的SQL屬性來指定的。TADOQuery既可以用SQL的DML(DataManipulationLanguage)來檢索數據,也可以用SQL的DDL(DataDefinitionLanguage)來創(chuàng)建或刪除數據庫的元對象。不過SQL語句必須能夠被ADO驅動程序認可。3. 編寫應用邏輯代碼11.5 本章小結數據庫是數據的有機集合,便于集中存儲和維護互相關聯的數據。一個數據庫系統主要由數據庫、數據庫管理系統、數據庫應用程序3大部分組成。數據庫管理系統(DBMS)是用于描述、管理和維護數據庫的程序系統。主要有四種類型:文件管理系統、層次數據庫系統、網狀數據庫系統和關系數據庫系統。關系數據庫模型是數據的邏輯表示,只需考慮數據間的關系而不必關心數據的物理結構。關系數據庫中包括有:表、字段、記錄、索引等數據庫對象。11.5 本章小結數據庫應用程序與DBMS進行通信,并訪問DBMS中的數據,是DBMS實現其對外提供數據信息服務的唯一途徑。簡單地說,數據庫應用程序是一個允許用戶插入、修改、刪除數據庫中數據的計算機程序。結構化查詢語言(SQL)是基于關系模型的數據庫查詢語言,它是一種非過程化的程序語言,也就是說,沒有必要寫出將如何做某事情,只需寫出做到什么就可以了。Delphi編寫數據庫應用程序時可以使用SQL。數據庫往往包含了一些敏感信息。為了保護這些信息,不同的數據庫有不同的保護策略。大部分需要用戶輸入用戶名和口令才能登錄到數據庫服務器。11.5 本章小結本地數據庫位于本地磁盤或局域網上,采取基于文件的鎖定策略,數據存儲量較小,安全性較差。典型的本地數據庫有Paradox、dBASE、FoxPro和Access。遠程數據庫通常位于遠程計算機(數據庫服務器)上,用戶通過SQL來訪問遠程數據庫中的數據。遠程數據庫容量大,性能高、安全性好,并提供了基于事務的多用戶支持。目前流行的遠程數據庫系統有SQLServer、Oracle、Sybase、DB2、Informix和MySQL。11.5 本章小結典型的數據庫應用程序的體系結構包括了數據庫訪問鏈路和用戶界面。對于多層的體系結構還包括用于業(yè)務邏輯的中間層。通過Delphi數據庫體系結構中的數據感知控件、數據訪問組件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026中國中檢陜西公司招聘兼職審核員、市場專員考前沖刺密卷(易錯題)附答案詳解
- 2026廣西玉林市福綿區(qū)福保后勤服務管理有限公司招聘業(yè)務員1人考前沖刺密卷附答案詳解【預熱題】
- 2026上海市皮膚病醫(yī)院皮膚內科文員崗位招聘1人備考題庫完整附答案詳解
- 2026中國科學院西雙版納熱帶植物園人事處招聘1人(云南)考前沖刺試卷及答案詳解一套
- 2026河北張家口市公安局崇禮分局招聘警務輔助人員的50人考前沖刺試卷往年題考附答案詳解
- 樂理面試問答題目及答案
- 中原傳媒集團有限公司筆試題目大全及答案
- 俄羅斯人相關試題及答案
- 校史知識問答題目與答案
- 2026年浙江省政務服務中心(窗口人員)招聘筆試參考試題及答案詳解
- 民政局預算管理制度
- 八年級物理上冊(人教版2024)-新教材解讀培訓課件
- 文化課堂合作協議書
- 合伙企業(yè)股權結構協議書
- 中小學課堂教學電子產品使用與管理策略及實施方案
- 水利工程施工監(jiān)理規(guī)范(SL288-2014)用表填表說明及示例
- GB/T 17469-2024汽車制動器襯片摩擦性能評價小樣臺架試驗方法
- 供應商來料質量報告(年度與月度)
- 消防作戰(zhàn)訓練安全總結
- 數字貨幣概論 課件 第5章 穩(wěn)定幣的原理與實現
- 選煤廠員工培訓課件
評論
0/150
提交評論