Delphi数据库编程课件_第1页
Delphi数据库编程课件_第2页
Delphi数据库编程课件_第3页
Delphi数据库编程课件_第4页
Delphi数据库编程课件_第5页
已阅读5页,还剩310页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

資料庫系統導論

1.1數據處理概念

1.1.1數據與資訊

1.數據

數據是指描述事物的符號,可以有多種形式。數字、文字、圖形、圖像和聲音等都是數據。

2.資訊

資訊是現實世界中的各種事物、事物的特徵及其聯繫等在人腦中的反映,是經過處理、加工提煉而用於決策制定或其他應用活動的數據。

3.數據與資訊的關係資訊和數據是兩個既有聯繫又有區別的概念,數據是資訊的載體,資訊是數據的內涵。同一資訊可以有不同的數據表示形式,而同一數據也可能有不同的解釋。

1.1.2數據處理與數據管理

從已知的、原始的或雜亂無章中的數據中推導出對人們有用的數據或資訊的過程稱為數據處理

數據管理是指數據的收集、整理、組織、存儲、查詢和傳送等各種操作,是數據處理的基本環節,是任何數據處理任務的共性部分。資料庫技術就是一門數據管理技術。

1.2數據管理技術的發展

用電腦進行數據管理由來已久,其發展經歷了三個階段:(1)人工管理階段

人工管理方式由於程式和數據檔基本上是綁在一起的,故數據的獨立性差,無法實現數據共用,數據冗餘度(同樣的數據出現多次稱為冗餘)大。

應用程式1應用程式2應用程式N數據檔1數據檔2數據檔N…………

人工管理方式

(2)檔管理階段檔管理階段的主要特點可概括為如下幾點:(1)輔助記憶體成為電腦系統不可缺少的組成部分,用來存放數據檔。(2)出現了檔管理系統。(3)數據檔可能重複利用,不再與某個應用程式綁在一起。檔管理階段的缺點:程式和文件相互依存、數據冗餘大、數據的不一致性以及不能反映企業間的業務聯繫。

應用程式1應用程式2應用程式N數據檔1數據檔2數據檔N檔管理系統…………檔管理方式

(3)資料庫管理階段與數據的檔管理方式相比,資料庫技術有如下主要特點:

1.數據共用性

2.具有較高的數據與程式的獨立性

3.便於對數據實行集中統一的控制

應用程式1應用程式2應用程式N邏輯檔1邏輯檔2邏輯性1邏輯檔N用戶1用戶2DBMS用戶NDB………………

資料庫管理方式

1.3數據模型

1.3.1資訊世界的術語

1.實體:實體是指客觀存在並可相互區分的事物,不但指人和物,而且事件、抽象的狀態和概念也可以看作實體。

2.屬性:是實體所具有的某一特徵,一個實體可由若干屬性來刻畫。

3.實體集:具有相同類特徵的實體集合稱為實體集。

4.聯繫:根據聯繫的特點可將其分成三種基本類型:1對1的聯繫,1對多的聯繫,多對多的聯繫。

5.關鍵字

6.值域:實體屬性的取值範圍。

1.3.2三大數據模型

1.層次模型

層次模型是指滿足下列條件的基本層次聯繫的集合:(1)有且僅有一個節點無父結點,此結點稱為根結點;(2)根結點以外的其他結點有且僅有一個父結點。

學院系部研究所班級教研室處科研究室層次模式示意圖

2.網狀模型

網狀模型具有以下特點:(1)可以有一個以上結點無父點(2)至少有一個結點具有一個多於一個的父結點。

ABBABCABCDABBABCABCD

圖狀模型示意圖

3.關係模型關係數據模型是三大經典模型中最晚發展有一種,是相對建模能力最強的一種,也是目前使用得最多的一種模型。關係應具有以下性質:(1)關係中不允許有相同的屬性名;(2)每一列的數據類型必須相同,且取自於同一個域;(3)不允許有相同的元組;(4)行的順序和列的順序可以任意排列;(5)關係的任何一個屬性都必須是不可再分的元素;(6)關係的結構相對固定,但元組的值與數目是隨時間的推移而經常變化的。

1.3.3數據模型的三要素

數據模型通常由下列三個部分組成:

1.數據結構數據結構是所研究對象的類型的集合,這些對象是資料庫的組成成分。一般可以分為兩類:一類是與數據類型、內容有關的對象,另一類是與數據之間聯繫有關的對象。

2.數據操作數據操作是指對數據模型中各種對象型的實例所允許執行的操作,包括操作及有關的操作規則。數據結構是對系統靜態特性的描述,數據操作是對系統動態特性的描述。

3.數據的完整性約束條件:數據的完整性約束條件是完整性規則的集合。

1.4資料庫系統體系結構

應用程式1UWA1應用程式2UWA2應用程式3UWA3外模式A外模式B模式外模式\模式映射外模式\模式映射內模式模式/內模式映射DBMS…………DBDB

資料庫的三級體系結構

SPARC結構對數據庫的組織從內到外分三個層次描述,分別稱為內模式、模式和外模式,三個模式反映了看待資料庫的三種不同數據觀點。SPARC結構如圖:SPARC結構對數據庫的組織從內到外分三個層次描述,分別稱為:(1)模式(2)內模式(3)外模式在三個模式之間存在著兩種映射:模式/外模式映射;模式/

模式映射採用映射技術還有以下好處:(1)保證了數據共用;(2)有利於數據的安全保密;(3)方便用戶使用資料庫。

1.5資料庫系統組成

基本電腦系統

資料庫(DB)資料庫管理系統(DBMS)資料庫應用程式資料庫管理員(DBA)

1.6資料庫管理系統的組成

一般來說DBMS由下列三類軟體組成:

(1)語言

1.程式設計語言

2.定義和運算元據庫的語言

(1)數據描述語言(DDL)(2)數據操縱/查詢語言(DML)(2)控制資料庫運行的程式(3)資料庫維護程式

1.7客戶/伺服器資料庫系統概述

按照當前流行的程式設計方法,可以將資料庫應用程式分為兩類:

(1)兩層結構的客戶/伺服器(C/S)資料庫應用程式。資料庫伺服器DB客戶機1客戶機2……客戶機n第一層第二層(2)三層C/S結構

資料庫伺服器DB客戶機1客戶機2……客戶機n第一層第二層應用伺服器第三層小結

本課主要講解了與資料庫有關的基本概念,包括數據處理與數據管理技術的發展、數據模型的基本概念、資料庫系統的體系結構、數組庫系統的組成以及資料庫管理系統的組成等,最後還介紹了客戶/伺服器結構的資料庫系統的構成。

關係資料庫基本理論

2.1關係資料庫的基本概念

2.1.1

關係與關係模式

在關係模型中,實體和實體之間的聯繫都由單一的數據結構——關係來描述,關係型資料庫都是由一張或多張相關聯的表(關係)組成。對關係資料庫中每一關係的結構的描述,稱為該關係的關係模式,也就是一個關係的型。2.1.2關係資料庫與關係資料庫模式

關係資料庫模式中所有的關係模式的具體關係的集合稱之為關係資料庫。圖示

2.1.3視圖

視圖通常是由關係資料庫模式的某個關係中滿足用戶給定條件的若干屬性列或元組組成,也可以是對若干個不同關係進行關係運算的結果,它反映的是局部邏輯結構。

教師編號姓名性別學位工作日期單位職稱0001王寧軍男學士94/07/15電腦講師1006陳平男碩士72/09/01力學副教授2008周華俊女碩士95/08/01電子電工講師

教師資訊表

課號課名班級學時教師編號00001C語言程式97電腦40000100003組合語言97電腦70000110002工程力學96工民建80100610006基礎力學98建工80100620004模擬電路97無線電通信702008

授課資訊表

2.1.4關鍵字

1.超關鍵字

2.候選關鍵字

3.主關鍵字

4.外部關鍵字

5.主屬性和非主屬性

基表1基表2基表3基表4視圖1視圖2視圖3視圖與表的關係示意圖

2.2關係的完整性

關係的完整性包括三類:

(1)實體完整性實體完整性是指在關係中的任何一個元組,主關鍵字值的任一分量都不允許為空。

(2)參照完整性

(3)用戶定義完整性由用戶針對數據的具體語義約束條件,來定義的完整性,稱用戶自定義完整性。如人的年齡可以規定在0~150之間取值,考試成績只能在0~100之間等。

2.3關係的數學定義

2.3.1一個日常生活中的關係

某社區有2名男同志和3名女同志,把男人看成一個集合M,把女人看成一個集合W,如下:

M={趙和平,李振華};

W={李小麗,張小琴,王麗婭}。若M集合和W集合存在著夫妻關係,則可能的夫妻關係如下:

{(趙和平,李小麗),(趙和平,張小琴),(趙和平,王麗婭),(李振華,李小麗),(李振華,張小琴),(李振華,王麗婭)}

在數學上把這種由兩個或多個集合中的值的所有可能組合稱“笛卡爾積”,本題的“笛卡爾積”可記為:M×W。

2.3.2關係的數學定義

1.域域(Domain)是值的集合。如:{1到100之間的整數},{男,女},{Mary,Tom}等都是域。域中元素的個數稱為域的基數,如有下列集合:D1={王小平,張亞,李軍},表示單位人員的集合;D2={教授,副教授,講師,助教},表示職稱的集合;D3={35,27,18},表示工齡的集合。其中D1的基數是3,D2的基數是4,D3的基數是3。2.笛卡爾積

給定一組域,,…,,這些域中可以有相同的域,則,,…,的笛卡爾積為:

××…×={(,,…,)|∈,i=1,2,…,n}其中每一個元素(,,…,)稱為一個元組,元素中的每一個稱為分量。當n的值為1時稱為單元組,當n的值為2時,稱為二元組,以此類推。若(i=1,2,…,n)的基數是,則笛卡爾積××…×的基數M為:3.關係

【例】教師關係例。有以下三個域:D1={張正義,姚小麗},教師姓名集合;D2={男,女},教師性別集合;D3={21,24},教師年齡集合。求D1×D2×D3

解:笛卡爾××的值可用左表表示:實際的教師資訊可能如右表

D1D2D3張正義男21張正義男24張正義女21張正義女24姚小麗男21姚小麗男24姚小麗女21姚小麗女24D1D2D3張正義男21姚小麗女242.4關係代數

2.4.1傳統的集合運算

1.並運算(UNION)

2.交運算(INTERSECTION)

3.差運算(DIFFERENCE)

4.關係的笛卡爾積

2.4.2專門的關係運算

1.選擇(SELECT)運算

2.投影(PROJECTION)運算

3.聯接運算(JOIN)

(1)內部聯接(InnerJoin)

(2)自然聯接運算(Naturaljoin)

(3)左外聯接(Leftouterjoin)

(4)右外聯接(Rightouterjoin)

(5)全外聯接(Fullouterjoin)

2.5關係的規範化

2.5.1存儲異常

【例】某校教務部要建立一個資料庫來描述教師與教研室的情況,面臨的對象有:教師編號(TNO)、教師姓名(TNAME)、教師主講的課程名(KNAME)、教師主講課程的次數(KTIME)、教研室代號(JNO)、教研室主任(JMN)等。通過分析可知上述對象之間有如下對應關係:(1)一個教研室有若干教師,但一個教師只屬於一個教研室;(2)一個教研室只有一個主任;(3)一名教師可以主講多門課程,每門課程可由多名教師主講;(4)每名教師主講每門課程有一定的次數。根據上述分析,我們可以考慮以下兩種資料庫模式的選擇方案。方案1:採用一個總的關係模式:方案2:採用三個關係模式:

2.5.2函數依賴的基本概念

1.函數依賴函數依賴根據其性質可分為完全函數依賴、部分函數依賴和傳遞函數依賴。2.完全函數依賴設R為任一給定關係,X,Y為其屬性或屬性組,若X

Y,且對X中的任何真子集X

都有XY,則稱Y完全函數依賴於X。記作:3.部分函數依賴設R為任一給定關係,X,Y為其屬性或屬性組,若X

Y,且在X中存在一個真子集X

,滿足X

Y,則稱Y部分函數依賴於X。記作:

4.傳遞函數依賴

設R為任一給定關係,X,Y,Z為其不同屬性子集,若X

Y,YX,Y

Z,則稱Z傳遞函數依賴於X,

2.5.3關係規範化的過程

1.第一範式任給關係R,如果R中每一屬性的值域中的每一個值都是不可分解的,則R為第一範式,記作R∈1NF。

教師編號所教課程0001程式設計0002程式設計,操作系統非規範化關係

教師編號所教課程0001程式設計0002程式設計0002操作系統規範化的關係

2.第二範式任給關係R,若R∈1NF,且其所有非主屬性都完全函數依賴於關鍵字,則R為第二範式,記作R∈2NF。3.第三範式任給關係R,若R∈2NF,且它的每一個非主屬性都不傳遞依賴於主關鍵字,則R屬性第三範式,記作R∈3NF。4.BCNF範式

BCNF(BoyceCoddNormalForm)是Boyce與Codd為解決3NF有時出現的插入與刪除操作異常問題而提出的

2.5.4關係分解的正確性

把組合屬性分解為不可再分的屬性非規範化關係1NF2NF3NFBCNF消去非主屬性對主關鍵字的部分函數依賴消去非主屬性對主關鍵字的傳遞函數依賴消去所有部分函數依賴,包括主屬性對候選關鍵字的部分函數依賴使每一個決定因素都包含候選碼

關係分解的過程

通過一個實例來說明關係分解的正確性。

在某學校中,一個學生(學號屬性名為S#)只在一個系(系號屬性名為DEPT)學習,一個系只有一名系主任(姓名屬性名為MN),下表是該學校的一個實際關係,其關係模式為R(S#,DEPT,MN)。可見在該關係中,MN傳遞函數依賴於S#,故需對之進行關係分解。可有三種方法:

S#DEPTMNS1D1張五S2D1張五S3D2李四S4D3王一1.分解成三個關係:R1(S#),R2(DEPT),R3(MN)

S#S1S2S3S4關係R1

DEPTD1D2D3

關係R2

MN張五李四王一關係R3

2.分解成兩個關係:R1(S#,DEPT),R2(S#,MN)

S#DEPTS1D1S2D1S3D2S4D3關係R1

S#MNS1張五S1張五S2李四S3王三關係R2

3.分解成兩個關係:R1(S#,DEPT)和R2(DEPT,MN)

S#DEPTS1D1S2D1S3D2S4D3

關係R1

DEPTMNS1張五S2李四S3王三

關係R2

小結

本課主要講解關係資料庫的理論基礎,為進一步深入學習關係資料庫的原理與應用打下基礎。本課在討論關係資料庫的基本概念的基礎上,探討了關係的數字定義、關係的完整性、關係代數的一些基本操作、函數依賴與關係的規範化等學習關係資料庫必須要瞭解的理論基礎。關係代數與關係的規範化是本章的重點。

實體聯繫模型(E-R模型)

3.1E—R模型

3.1.1三個世界

事物類事物性質實體集實體屬性檔記錄資料項目現實世界資訊世界數據世界3.1.2E-R模型的組成要素及表示方法

1.E-R圖的組成要素及其畫法2.實體間不同聯繫情況的E-R圖表示法【例

】兩個實體集之間的一對一的聯繫的繪製方法。假設某學院有若干個系,每個系只有一個主任。則主任和系之間是一對一的關係。主任和系的屬性分別如下:主任——編號,姓名,年齡,學歷;系——系編號,系名,主任和系之間是一個管理關係

實體名聯繫名屬性名實體表示屬性表示聯繫表示解:描述主任和系之間的E-R圖可如下圖:

1主任系管理1姓名年齡學歷編號系編號系名任職時間【例

】兩個實體集之間的一對多的聯繫的繪製方法。假設在某倉庫管理系統中,有兩個實體集:倉庫和商品。倉庫用來存放商品,且規定一類商品只能存放在一個倉庫中,一個倉庫可以存放多件商品。倉庫和商品之間是一對多的聯繫。倉庫和商品的屬性分別如下:倉庫——倉庫號,地點,面積聯單

商品——商品號,商品名,價格在存放聯繫中要反映出存放商品的數量。

解:描述倉庫和商品之間的E-R圖可如下圖所示

1倉庫商品存放n地點面積倉庫號商品號價格數量商品名【例】兩個實體集之間的多對多的聯繫的繪製方法。

假設在某教務管理系統中,一個教師可以上多門課,一門課也可以由多個老師去上。教師和課程之間是多對多的聯繫。教師和課程可用以下屬性來描述:教師——教師號,教師名,職稱

課程——課程號,課程名,班級在“講授”聯繫中應能反映出教師的授課品質。

解:描述教師和課程之間的E-R圖可如下圖所示。

m教師課程講授n教師名職稱教師號課程號班級品質課程名3.2E—R圖的設計方法

E-R圖通常都應經過以下兩個階段:

(1)針對每一用戶畫出該用戶資訊的局部E—R圖,確定該用戶視圖的實體、屬性和聯繫。需注意的是:能作為屬性的就不要作為實體,這有利於E—R圖的簡化。

(2)綜合局部E—R圖,生成總體E—R圖。在綜合過程中,同名實體只能出現一次,還要去掉不必要的聯繫,以便消除冗餘。一般來說,從總體E—R圖必須能導出原來的所有局部視圖,包括實體、屬性和聯繫。

【例

】某學校管理系統中有三個部門:後勤部、學生處和財務處。後勤部用來管理學生的住宿;教務處用來管理學生選課和教師任課;財務處用來管理發放教師的工資。

後勤部涉及到的實體及實體之間的聯繫如下:

學生:屬性有學號、姓名、性別、年齡、專業和入學時間宿舍:樓號、房間、檔次學生與宿舍的聯繫是一個學生只能住在一個宿舍,一個宿舍能住多個學生,學生住宿要交租金。教務處涉及到的實體及實體之間的聯繫如下:學生:屬性有學號、姓名、性別、年齡、專業和入學時間教師:屬性有教師號、姓名、性別、職稱、專業課程:屬性有課程號、課程名、學時數、專業各實體關係描述如下:一個學生可以選多門課,一門課可以由多個學生選修;一個教師可以教多門課,一門課也可以由多個老師教;學生選修某門課有一個成績;教師教某門課有一個品質評價。

財務處涉及到的實體及實體之間的聯繫如下:

教師:屬性有教師號、姓名、性別、職稱、專業工資:屬性有基本工資、加班工資、扣稅、工資編號教師和工資的聯繫是:一個教師只能領一份工資,一份工資只能由一個教師領,領工資時應注明是某月工資。解:先根據題意設計出各部門的局部E-R圖

n學生宿舍住1租金學生姓名專業學號宿舍樓號檔次年齡性別入學時間房間號(a)後勤部的局部E-R圖

教師姓名職稱教師號課程課程號學時數課程名性別專業專業m教師課程講授n品質學生選修mn成績(b)教務處的局部E-R圖(學生同(a)圖)

工資扣稅基本工資加班工資工資編號工資教師領11月份1m學生住宿舍n1教師課程選修mn講授n領工資1(c)財務處的局部E-R圖(教師同(b)圖)

某學校管理系統的全局E-R圖

3.3E—R模型到關係模型的轉換

把E-R圖轉換為關係模型可遵循如下原則

:

(1)對於E—R圖中每個實體集,都應轉換為一個關係,該關係應包括對應實體的全部屬性,並應根據關係所表達的語義確定哪個屬性或哪幾個屬性組作為“主關鍵字”,主關鍵字用來標識實體。(2)對於E—R圖中的聯繫,情況比較複雜,要根據實體聯繫方式的不同,採取不同的手段加以實現。下麵著重討論聯繫的轉換方法。

3.3.1兩實體集間1:n聯繫

兩實體集間1:n聯繫,可將“一方”實體的主關鍵字納入“n方”實體集對應的關係中作為“外部關鍵字”,同時把聯繫的屬性也一併納入“n方”對應的關係中。3.3.2兩實體集間m:n聯繫對於兩實體集間m:n聯繫,必須對“聯繫”單獨建立一個關係,用來聯繫雙方實體集。該關係的屬性中至少要包括被它所聯繫的雙方實體集的“主關鍵字”,並且如果聯繫有屬性,也要歸入這個關係中。

3.3.3兩實體集間的1:1的聯繫

假設A實體集與B實體集是1:1的聯繫,聯繫的轉換有三種方法:

①把A實體集的主關鍵字加入到B實體集對應的關係中,如果聯繫有屬性也一併加入;

②把B實體集的主關鍵字加入到A實體集對應的關係中,如果聯繫有屬性也一併加入;

③建立第三個關係,關係中包含兩個實體集的主關鍵字,如果聯繫有屬性也一併加入。

小結

把現實世界轉換成為電腦能夠處理的數據世界,需經過兩個階段:第一個階段需使用概念模型把現實世界抽象成資訊世界,第二階段是使用實施模型把資訊世界轉換為數據世界。最常用的概念模型為E-R模型,E-R模型的三個基本要素是實體、屬性和聯繫。設計E-R圖一般經過兩個步驟,第一步是抽象出各部門的局部E-R圖,第二步是把局部E-R圖組合成全局E-R圖。E-R圖只是資訊的一種抽象表示,還需把它轉化成相應的實施數據模型才能轉化為數據庫中的數據。把E-R圖轉化為關係模型,不但要把實體轉化成關係,而且在關係中還應反映出E-R圖中各實體集之間的聯繫。

資料庫設計

4.1資料庫設計概述

4.1.1資料庫設計的目標資料庫設計有兩個最重要的目標:滿足應用功能需求和良好的資料庫性能。滿足應用功能需求,主要是指把用戶當前應用以及可預知的將來應用所需要的數據及其聯繫能全部準確地存放於資料庫之中,並能根據用戶的需要對數據進行規定的合理的增、刪、改、顯示等操作。良好的資料庫性能,主要是指數據庫應具有良好的存儲結構、良好的數據共用性、良好的數據完整性、良好的數據一致性及良好的安全保密性能等。

4.1.2資料庫設計的內容

1.資料庫的結構特性設計資料庫的結構特性設計是確定資料庫的框架和數據結構(邏輯結構特徵)。

2.資料庫的行為特性設計資料庫的行為特性設計是指確定資料庫用戶的行為和動作,並根據其行為特性設計出資料庫的子模式。

3.資料庫的物理模式設計資料庫的物理模式設計要求是:根據資料庫結構的動態特性,在特定的RDBMS環境下,把資料庫的邏輯結構模型加以物理實現,從而得出資料庫的存儲模式和存取方法。

4.1.3資料庫設計的特點與過程

1.資料庫設計的特點:資料庫設計是一種“反復探尋,逐步求精”的過程。

2.資料庫設計的過程

如下圖

單位或組織資料庫的邏輯設計資料庫的行為設計分析用戶需求E-R模型設計邏輯模式設計分析用戶需求模組功能說明編寫程式代碼存儲結構的選擇屬性的確定索引的確定資料庫的物理設計加載實驗數據並調試運行應用程式的調試、運行與維護滿意?不是加載資料庫資料庫系統的運行與維護不4.2資料庫邏輯設計

4.2.1資料庫邏輯設計的步驟邏輯設計階段的目標是產生合理的資料庫模式,可分為三個階段:分別是收集和分析用戶需求、概念模式設計和邏輯模式設J計。第一階段主要分成四個步驟,分別如下:第一步:分析用戶活動,產生“用戶活動圖”。第二步:確定系統範圍,產生“系統範圍圖”。第三步:分析用戶活動所涉及到的數據,產生“數據流圖”。第四步:分析系統數據,產生數據字典。第二階段可分為兩個步驟,分別如下:第一步:根據局部E-R模型,產生局部“E-R模型”。第二步:對局部E-R模型進行綜合,產生總體E-R模型,並建立“總體E-R圖”。第三階段也可分成兩個步驟,分別如下:第一步:把總體E-R圖轉換成模式。第二步:對模式進行優化,產生符合要求的合理最優的模式。

4.2.2收集和分析用戶需求

通過一個醫院資訊管理系統來說明這四個步驟應完成的功能。

【例】某醫院資訊管理系統要完成以下功能:

辦理病歷(第一次來院治病時辦理病歷);查詢藥品情況(根據要求查詢某種類或全部藥品資訊);病人專案入庫(病人所用藥、所做檢查等治療資訊存入到指定的資料庫中);催交欠費(根據病人專案計算出總費用,減去預交費用,若超過某一限度則催交欠費)。

1.分析用戶活動

接受申請病人數據存檔列印病歷封面接受申請查藥品資訊列印藥品目錄清單接受申請專案資訊的錄入與保存列印專案資訊接受申請查專案資訊計算逾期專案與費用並列印辦理病歷藥品查詢專案入庫催交欠費發給病人發給查詢人交給病人交給病人用戶醫院的業務流程所得到的“用戶活動圖”

2.確定系統範圍

上圖中虛線框內的部分屬於系統範圍,而框外部分則需人工處理。

3.分析用戶活動所涉及到的數據

(1)數據流圖(DFD)的概念數據流圖是一種能全面描述系統邏輯模型的主要工具,它可以用少數幾種符號綜合地反映出數據在系統中的流動、存儲和處理情況。(2)數據流圖的特徵

抽象性——數據流圖完全舍去了具體的物質,只剩下數據的流動、加工處理和存儲。概括性——數據流圖可以把系統中的不同業務處理過程聯繫起來,形成一個整體。(3)數據流圖的組成

畫數據流圖應注意以下幾點:數據流圖中反映的是數據流而不是控制流,這是與一般程式流程圖的最大不同之處;在對數據流圖中各個成份命名時,應該體現命名的含義;流入檔或流出檔的數據流不必命名,因為檔案名本身已經表示了數據內容;源點和終點不是必須的,因為它們是屬於系統之外的事物,但畫出源點和終點有助於理解數據流的來龍去脈。

SD1P1D2F1P2D3EF2(4)數據流圖的畫法

一般地說,畫數據流圖應遵循“由外向內,逐步細化”的原則。逐步細化是指:逐一描述系統內部數據流,一般從每個業務的輸入端開始向輸出端推進,每當經過使數據流的組成或數值發生變化的地方,就用一個“加工”將其連接起來,這個“加工”正是實現這一數據變化的。注意,不要把相互無關的數據畫成一個數據流,也不要把作為一個處理單位的數據畫成二個數據流。如果牽涉到檔,則應表示出“檔”與“加工”的讀寫關係。

4.分析系統數據

(1)數據字典的概念數據流圖表達了數據和處理的關係,數據字典則是系統中各類數據描述的集合,是進行數據收集和數據分析所獲得的結果。數據字典是關於資料庫中數據的描述,通常稱“元數據”,元數據不是數據本身。數據字典在資料庫設計中佔有非常重要的地位,是概念模式設計、邏輯模式設計和物理設計的主要依據。(2)通過數據流圖構成數據字典數據字典是對數據流圖中的四個成份進行描述的產物,它和數據流圖共同構成“系統說明書”。

①數據流的描述

②檔的描述

③資料項目的描述

④加工的描述

4.2.3概念模型設計(E-R圖設計)

1.局部E-R模型的設計局部E-R模型設計的任務是根據需求上一步驟產生的各個功能模組的數據流圖和數據字典中的相關數據,設計出各個功能模組的局部E—R圖。

數據抽象、設計局部E-R圖對局部E-R圖集成,生成總體E-R圖用戶滿意NY概念模型的設計步驟

2.總體E-R模型的設計

局部E-R圖之間的衝突主要有3類:屬性衝突、命名衝突和結構衝突。(1)屬性衝突

①屬性域衝突,即屬性值的類型、取值範圍不同。

②屬性取值單位衝突。(2)命名衝突

①同名異義衝突,即不同意義的對象在不同的部門的局部E-R圖中具有相同的名字。

②異名同義衝突,即意義相同的對象在不同的部門的局部E-R圖中具有不同的名字。(3)結構衝突

①同一對象在不同的應用中具有不同的抽象。

②同一實體在不同的局部E-R圖中的屬性組成不一致,即包含的屬性個數和屬性排列次序不完全相同。

③實體之間的聯繫在不同的局部E—R圖中呈現不同的類型。這類衝突的解決方法是根據應用的語義對實體聯繫的類型進行綜合或調整。

4.2.4邏輯模式設計

邏輯模式設計的實質是把E-R圖轉換為具體的DBMS支持的數據模型。把E-R圖轉換為關係模型的方法,通常分兩步進行:初步設計和優化設計。1.初步設計——把E-R圖轉換為關係模型具體的轉換方法請參見3.3節。2.優化設計——對模式進行調整和改善所謂優化,就是從提高效率的角度出發,對模式結構作進一步的凋整和改良。優化是在性能預測的基礎上進行的,一般用三方面指標來衡量:(1)單位時間內所訪問的邏輯記錄個數要少;(2)單位時間內數據傳送量要少;(3)系統佔用的存儲空間儘量要少。【例】要查詢病人資訊時,經常按住院病人和門診病人分類查詢,為改善性能,使得單位時間內訪問邏輯記錄的個數儘量少,請給出一種分解方法。原來的病人關係為:病人(病歷號、姓名、性別、年齡、職業、通信地址、電話號碼、是否醫保)可對其進行水準分解,使其成為兩個關係住院病人(病歷號、姓名、性別、年齡、職業、通信地址、電話號碼、是否醫保)門診病人(病歷號、姓名、性別、年齡、職業、通信地址、電話號碼、是否醫保)4.3資料庫物理設計

4.3.1存儲結構的選擇選擇何種存儲結構,與選定的DBMS類型有關,對於層次式或網狀式DBMS,存儲結構的選擇與應用有密切關係。對於關係式資料庫,用戶能夠干預的事情很少,最多只能選定索引方法或給出輔助索引,以便在程式中可以按倒排檔方式查詢數據,而存取路徑是由系統安排的。4.3.2屬性的存儲類型的確定不同DBMS系統的數據類型稍微有點區別,因此需要針對不同的DBMS來確定每個屬性的存儲類型。資料庫管理系統提供的資料庫設計工具就具有設計屬性的存儲類型的功能,如VisualFoxPro提供的“表設計器”,VisualBasic提供的“可視化數據管理器”,Delphi提供的“DataBaseDesktop”等。4.3.3表的索引結構的確定

4.3.4存取路徑的確定

4.4資料庫的實現、運行與維護

4.4.1資料庫的實現該階段主要完成以下三項工作:(1)建立實際資料庫結構。(2)裝入試驗數據對應用程式進行調試。(3)裝入實際數據,進入試運行狀態。4.4.2資料庫的運行與維護運行維護階段的主要任務如下:(1)對日常資料庫操作進行維護(2)維護資料庫的結構(3)維護資料庫的安全性與完整性(4)監測並改善資料庫運行性能(5)根據用戶要求對數據庫現有功能進行擴充(6)及時改正運行中發現的系統錯誤

4.5編寫技術文檔

4.5.1編寫系統說明書系統說明書主要由數據流圖和數據字典組成。它用來表達用戶對系統的要求,軟體人員根據“系統說明書”進行資料庫的構造和應用程式的設計。

4.5.2編寫技術說明書技術說明書主要包括如下內容:

(1)用戶活動圖、數據流圖和數據字典。(2)局部E-R圖和總體E-R圖。(3)對於層次和網狀數據類型應指出各種記錄型及其聯繫,指出關鍵字。對於關係數據類型,應指出關係模式、關係模式之間的聯繫、關係的關鍵字。(4)在資料庫設計階段產生的每個表格的名稱、字段的屬性、索引的名稱和索引字段(或索引運算式)(5)應用程式的總體結構框圖,各主要模組的流程圖,詳細的程式代碼。小結

本章主要介紹資料庫系統的開發過程,對數據庫系統的開發過程中的每個階段進行了詳盡的闡述。資料庫設計包括三個部分的內容,分別是結構特性的設計、行為特性的設計和數據庫的物理模式設計。資料庫的開發過程基本上可分成三個階段,分別是邏輯設計階段、物理設計階段、資料庫的運行與調試及維護階段。在邏輯設計階段主要是分析用戶需求,產生用戶活動圖,根據用戶活動圖設計出數據流圖和數據字典,最後根據數據流圖和數據字典設計出資料庫模式。物理設計階段的任務主要是確定數據的物理結構、屬性的類型、索引等。資料庫的運行與調試及維護階段的主要任務是對數據庫進行維護,使資料庫運行良好。資料庫系統作為軟體產品提交時還必須提交相應的文檔資料,文檔資料主要包括系統說明書、技術說明書和使用說明書。

Delphi7與資料庫

6.1Delphi7支持的資料庫種類

6.1.1Delphi7訪問資料庫的基本方法

6.1.2Delphi7支持的資料庫類型

Delphi7所支持的資料庫類型主要有以下幾種:(1)dBase資料庫(.DBF)(2)Paradox資料庫(3)ASCII碼檔(.TXT)(4)本地InterBase伺服器(.GDB)(5)Access資料庫(.MDB)(6)各種資料庫伺服器(7)可以通過ODBC與其他資料庫建立連接

6.2利用Delphi7開發資料庫應用程式的模式

6.2.1利用Delphi7開發單層資料庫應用程式的方法

在不使用BDE與BDE數據集,也不使用IAppServer介面的情況下,直接用資料庫檔作為數據源,在數據控制組件的配合下進行資料庫應用程式的開發,稱為基於檔的單層資料庫應用程式

6.2.2利用Delphi7開發兩層資料庫應用程式的方法

1.基於BDE的兩層資料庫應用程式

2.基於ADO的兩層資料庫應用程式

6.2.3利用Delphi7開發多層資料庫應用程式的方法

1.基於DataSnap技術的多層資料庫應用程式

DataSnap技術原先稱MIDAS技術,該結構的資料庫應用程式與兩層結構的資料庫應用程式相比,多了一個應用伺服器,與數據訪問有關的功能以數據提供者(Providers)的身份運行在應用伺服器上。2.邏輯三層結構的資料庫應用程式

6.3ODBC的概念和配置ODBC數據源的方法

6.3.1ODBC的概念從物理上看,ODBC實際上由五個層次組成:

(1)數據源名

(2)應用程式

(3)ODBC管理器(Administrator)

(4)驅動程式管理器(DriverManager)

(5)ODBCAPI

(6)數據源

6.3.2DSN的概念

DSN可分成如下3種

:

系統DSN(SystemDSN):這種DSN可以被登錄到系統中的所有用戶使用。用戶DSN(UserDSN):這種DSN是為特定用戶建立的,只能被建立它的用戶使用。文檔DSN(FileDSN):用於文檔的DSN。

6.3.3Access資料庫的系統DSN的配置

為前面建立的“教學”資料庫建立一個系統DSN,DSN名為“jiaoxue”,使用的操作系統為WindowsXP,具體步驟如下

:

1.打開ODBC數據源管理器

2.選擇數據源類型並添加數據源

3.選擇驅動數據源的驅動程式

4.設置數據源參數

5.完成

6.3.4SQLServer資料庫的系統DSN的配置

為SQLServer2000自帶的資料庫Pubs建立一個系統DSN,名為“SQLPubs”,使用的操作系統為WindowsXP,步驟如下:

1.方法同Access數據源名的配置

2.方法同Access數據源名的配置

3.選擇驅動數據源的驅動程式

4.為數據源命名並選擇SQL伺服器

5.設置登錄ID和密碼

6.選擇資料庫

7.測試數據源

8.完成

6.4使用DatabaseDesktop進行資料庫管理

6.4.1DatabaseDesktop的作用

1.創建和維護資料庫

DatabaseDesktop應用程式可以直接創建和維護Paradox資料庫,但不僅是用於創建Paradox表,幾乎當前所有格式的資料庫表均可以通過它來創建。

2.維護資料庫別名

在DatabaseDesktop應用程式中,可以實現別名的創建和刪除等操作。

3.創建SQL檔和執行SQL命令

6.4.2DatabaseDesktop的工作目錄和私有目錄的設定

通過把D:\ZP子目錄設為工作目錄來說明工作目錄的設定方法,具體步驟如下:

(1)執行【Tools】→【DatabaseDesktop】命令,啟動DatabaseDesktop應用程式。(2)執行【File】→【WorkingDirectory】命令,出現【SetWorkingDirectory】對話框。在【WorkingDirectory】文本框中可以輸入工作目錄名,也可以通過單擊【browse】按鈕,在【DirecoryBrower】對話框中選擇相應目錄“D:\ZP”,單擊【OK】按鈕。也可以通過別名來選擇工作目錄。

6.4.3資料庫別名的建立

資料庫別名有兩種:公共別名(PublicAlias)和專案別名(ProiectAlias)。通過為子目錄“D:\Delphi\JWGL”建立一個公共資料庫別名JWGL來說明資料庫別名的創建方法。創建步驟如下:(1)在DatabaseDesktop應用程式中執行【Tools】→【AliasManager】命令,出現【AliasManager】對話框。

(2)單擊【New】按鈕以創建資料庫別名。在【Databasealias】列表框中輸入“JWGL”,在【Drivertype】列表框中選擇【STANDARD】類型,此時將出現一個PATH文本框,在該文本框中輸入路徑“d:\Delphi\JWGL”,或單擊【Browse】按鈕,在彈出的【DirectoryBrowser】對話框中找到所需要的目錄“d:\Delphi\JWGL”,然後單擊【OK】按鈕,退出【DirectoryBrowser】。

(3)單擊【AliasManager】對話框上的【OK】按鈕,系統將彈出對話框,詢問用戶是否將資料庫別名保存到BDE配置檔IDAPI32.CFG中,單擊【是】按鈕即可。

6.4.4資料庫表的建立

Delphi的本地資料庫為dBase資料庫和Paradox資料庫,利用DatabaseDesktop可以很方便地創建這兩類資料庫表。創建一個Paradox資料庫表的步驟如下

:

(1)在DatabaseDesktop應用程式中,執行【File】→【New】→【Table】命令,出現【CreateTable】對話框。在【Tabletype】列表框中可以選擇表的類型。(2)選擇默認的類型“Paradox7”並單擊【OK】按鈕,系統將彈出【CreateParadox7Table】對話框。在該對話框中可以定義表的結構,即表的每個字段的字段名、字段類型、字段寬度和主鍵等,並可建立索引。

(3)在【FieldName】列輸入字段名,如“學號”,然後在【Type】列單擊滑鼠右鍵,出現“字段類型”下拉菜單,在該菜單中選中類型【Alpha】,然後在【Size】列的下麵單擊,輸入字段寬度為“6”。關於字段類型的具體含義請參考有關Paradox資料庫的書籍。如果要把“學號”字段設為主鍵,可在該行的【Key】列雙擊滑鼠右鍵,將會出現一個“*”,代表該列是主鍵。如果要取消主鍵,可再雙擊該處,“*”號將消失。

(4)按Enter鍵把游標移到下一行,可接著創建下一個字段。(5)還可以為表創建“輔助索引(又稱第二索引)”,方法是在圖6-29所示的對話框中,在【TableProperties】列表框中選中“SecondaryIndexes”,然後再單擊【Define】按鈕,出現【DefineSecondaryIndex】(定義第二索引)對話框,如圖6-32所示。在該對話框中選中需要定義的索引字段,如“姓名”,然後單擊按鈕,把選中的字段移動到【Indexedfields:】對話框中即可。

圖6-29【CreateParadox7Table】對話框

(6)輔助索引屬性設置好後,單擊【OK】按鈕,將會出現

【SaveIndexAs】(保存索引)對話框,給索引取一個名字“XM”,然後單擊【OK】按鈕,索引定義完成。(7)表結構創建好後,單擊【Saveas】按鈕,出現【SaveTableAs】(保存表)對話框。可以通過選中資料庫別名和選擇保存檔夾兩種方式確定資料庫表保存的位置。本題選擇保存位置為“D:\Delphi”檔夾,表名為“學生”,設置完成後單擊【保存】按鈕,表結構將保存起來,表結構創建完畢。(8)資料庫表的結構創建後,應向其中輸入數據。

小結

Delphi既是一種可視化編程語言,又是一種資料庫應用程式開發的利器,本章對利用Delphi進行資料庫應用程式開發的相關知識進行了一個概要性的講解。主要介紹Delphi支持的資料庫類型、使用Delphi開發兩層和多層資料庫應用系統的模式、ODBC的基本概念、DSN的創建等內容。最後介紹Delphi自帶的DatabaseDesktop應用程式,著重講解使用該應用程式創建和使用資料庫別名、創建和使用表的方法。

使用BDE組件開發資料庫應用程式8.1使用BDE組件開發資料庫應用程式的一般方法8.1.1使用BDE組件開發資料庫應用程式的模式

1.BDE組件

BDE組件均位於【BDE】組件頁中,其作用是與實際的物理資料庫建立聯繫,從物理資料庫中提取資訊,或把資訊的修改存放到物理資料庫中。2.DataAccess組件

DataAccess組件位於【DataAccess】組件頁中,該類組件是連接BDE組件和數據控制組件的橋樑。3.DataControls組件

8.1.2常用的BDE組件簡介

8.2TTable組件的使用

8.2.1TTable組件的常用屬性

1.DatabaseName屬性

2.TableName屬性

3.TableType屬性

4.Active屬性

5.ReadOnly屬性

6.Modified屬性

7.FieldCount屬性

8.RecordCount屬性

9.RecNo屬性

10.RecordSize屬性

11.Fields屬性

12.Bof屬性

13.Eof屬性

14.Filter屬性

15.CachedUpdates屬性

【例8-1】

顯示與TTable組件相連接的數據表的相關屬性。程式設計介面如圖8-3所示,使用TTable組件與數據表“學生”相連接。程式運行時在ListBox1中顯示表中的所有字段名,在編輯框Edit1中顯示表名,在編輯框Edit2中顯示字段數,在編輯框Edit3中顯示記錄數,在編輯框Edit4中顯示記錄號,在編輯框Edit5中顯示記錄長度。程式運行介面如圖8-4所示。分析:為使TTable組件與物理資料庫連接起來,至少應設置它的DatabaseName屬性和TableName屬性。為使TTable組件中的數據集能夠使用,應把它的Active屬性設為True。為使程式在一開始運行時就能顯示出所有字段的字段名,可在窗體的OnCreate事件中使用一個迴圈,在迴圈中把Fields數組的每個元素的FieldName屬性值添加到ListBox1列表框。顯示數據表的其他屬性,可通過相應的屬性名來實現。

8.2.2TTable組件的常用方法

1.FieldByName方法該方法用於引用數據集中的某個字段,該方法的函數形式如下:FunctionFieldByName(ConstFieldName:string):Tfield【例8-2】

編寫一個顯示字段名稱和選中字段的主要屬性的程式。程式的設計介面如圖8-5所示,程式的運行介面如圖8-6所示。程式執行時,首先把當前目錄下的學生表中的字段填充到列表框ListBox1中,當在ListBox1中選中某字段後,該字段的相應屬性值將顯示在對應的編輯框中。

分析:顯示字段名的方法同例8-1。當在ListBox1上單擊以選中某個字段時,可通過TTable組件的FieldByName方法以列表框中選中的列表項作為參數來訪問對應字段的屬性。需注意的是編輯框中只能顯示字串數據,因此當字段屬性不是字串數據時,應把它轉換為字串數據。2.記錄指針移動方法

【例8-3】

編寫一個資料庫應用程式,用來流覽和維護當前目錄下“學生表”中的數據,要求程式的流覽和維護功能均使用組件來實現。程式的設計介面如圖8-7所示,程式的運行介面如圖8-8所示。

分析:可使用TDataSource組件建立TTable組件與數據控件組件之間的聯繫,使用TDBNavigator來實現記錄指針的移動,使用TDBEdit來顯示TTable組件數據集的當前記錄的內容。

【例8-4】

編寫一個資料庫應用程式,用來流覽當前目錄下“學生表”中的數據,要求記錄指針的移動採用移動記錄指針的方法。程式的設計介面如圖8-9所示,程式的運行介面如圖8-10所示。程式運行時單擊相應的按鈕,將實現記錄指針的相應移動。分析:為使在程式運行時,單擊相應的按鈕可實現記錄指針的相應移動,應在按鈕的OnClick事件代碼中調用相應的記錄指針移動方法。3.查詢記錄的相關方法

TTable組件提供了4種查詢記錄的方法

:

(1)GotoKey方法:該方法用於精確查找;(2)FindKey方法:該方法是實現精確查找的另一種方法,它和GotoKey一樣均是一個函數過程,格式如下:functionFindKey(constKeyValues:arrayofconst):Boole

(3)GotoNearest和FindNearest用於模糊查找。

4.數據操作相關方法

【例8-6】

編寫一個對當前目錄下的學生表進行維護的程式,要求該程式能夠完成記錄的增加、插入、修改和刪除等功能,對於增加和修改功能,程式應能提供確定和取消操作。程式的設計介面如圖8-13所示,程式的運行介面如圖8-14所示。程式運行時,單擊相應的按鈕將完成相應的數據表的維護操作。分析:調用相應的TTable組件的方法實現相應的數據操作功能。

8.2.3TTable組件的常用事件1.Before×××事件

2.After×××事件

3.On×××事件

【例8-7】

為例8-6添加一條關於刪除的參照完整性驗證:如果必修課成績表中有當前學生的選課,則不允許刪除當前記錄。再給“確定”操作增加一個提示功能:當執行Post成功時,將顯示“保存成功”的提示資訊。

分析:假設Table1連接學生表,Table2連接必修課成績表,在Table1組件中執行刪除操作發生之前,將發生BeforeDelete事件,可在該事件中根據Table1組件的當前記錄的學號值在Table2組件中查找相應的學號,如果找到則不能刪除,系統可拋出一個異常來終止刪除操作。Post方法執行成功後,將會發生AfterPost事件,可在該事件中顯示提示資訊。8.3TDataSource組件的使用

TDataSource組件是使用最多的數據訪問組件,用來連接數據集組件和數據控制組件。

TDataSource組件的屬性比較少,最重要的是DataSet屬性。該屬性指出要與哪一個數據集組件建立聯繫,它的屬性值是某一個數據集組件

8.4常用數據控制組件及其使用方法

8.4.1數據控制組件的常用屬性及使用方法

1.基本屬性

(1)DataSource屬性

(2)DataField屬性

2.使用方法

(1)在介面上添加TTable組件。(2)在介面上添加一個TDataSource組件。(3)在介面上添加數據控制組件。

8.4.2常用的數據控制組件

【例8-8】

編寫一個對學生表進行顯示和修改的程式。程式有兩個窗體Form1和Form2,設計時的Form1和Form2如圖8-20和圖8-21所示。程式執行時,首先出現Form1,在Form1上的網格控件上雙擊,將會出現Form2。在Form2中將顯示雙擊的當前記錄的值,可以對它進行修改,修改完成後單擊“確定”按鈕將會把修改的結果存放到數據表中並返回到Form1窗口,單擊“取消”按鈕將取消用戶所做的修改操作並返回Form1窗口。分析:為使Form2中的數據控制組件能夠和Form1中數據控制組件顯示同一個數據集的內容,應把Form2上相應的數據控制組件的DataSource屬性設置成與Form1上的數據控制組件使用的TDataSource組件的名稱。

【例8-9】

編寫一個必修課成績表的輸入程式,要求輸入學號使用一個TDBLookUpComboBox組件,該組件從學生表中提取學號資訊,讓用戶選擇輸入。程式的設計介面如圖8-22所示,程式的運行介面如圖8-23所示。分析:輸入成績時,學號必須是一個具體的學生的學號,因此可從學生表中提取出學生學號資訊供用戶選擇以減少輸入錯誤。

【例8-10】

設計一個動物圖片流覽程式,用來流覽資料庫別名DBDEMOS下的animals.dbf表中的BMP字段中存放的動物照片。程式的設計介面如圖8-24所示,程式的運行介面如圖8-25所示。分析:顯示資料庫中圖像字段的內容,應使用TDBImage組件。

【例8-11】

用DatabaseDesktop應用程式創建一個名為RSDA的數據表,該表有4個字段:編號、姓名、性別和婚姻狀況。表的結構如圖8-26所示。然後編寫一個對該數據表進行維護的資料庫應用程式,程式的設計介面如圖8-27所示,程式的運行介面如圖8-28所示。分析:由於性別只有兩種情況,故可用DBRadioGroup組件供用戶選擇輸入。婚姻狀況是互斥的,可通過TDBCheckBox組件來輸入或顯示。8.5主從表資料庫應用程式的編寫方法

【例8-12】

以DBDEMOS資料庫別名下的customer.db作為主表,以orders.db作為從表,以CustNo字段作為主從表聯繫的字段建立主從表應用程式。程式的設計介面如圖8-29所示,程式的運行介面如圖8-30所示。程式運行時在主表中選定一個客戶,從表將顯示相應客戶的訂單資訊。8.6通過程式創建資料庫表

1.FieldDefs屬性2.IndexDefs屬性3.CreateTable方法【例8-13】通過編程的方式在當前目錄下生成一個名為RYGL的Paradox表,該表有四個字段,分別為:BH(編號,字元型,8個位元組,必填字段)、XM(姓名,字元型,10個位元組,必填字段)、NL(年齡,整型)和HF(婚否,邏輯型)。同時還為該表創建了兩個索引,分別為BH(索引字段為BH,是主鍵索引)、XM(索引字段為XM)。並給該表添加兩條記錄,內容為:

01001001王和平

23True01001002李小華

21False

程式的設計介面如圖8-33所示,程式的運行介面如圖8-34所示。分析:建立數據表,首先要定義表的字段,可通過TTable組件的FieldDefs屬性的AddFieldDef屬性來實現。如果表有索引,還必須要定義索引,可通過TTable組件的IndexDefs屬性的AddIndexDef屬性來實現。字段和索引均定義好後,可通過調用TTable組件的CreateTable方法來建立表。8.7TTable組件編程綜合實例

【例8-14】使用TTable組件實現“圖書流覽與維護程式”,該程式的功能要求如下。(1)建立一個名為TSXX的表,表的結構如圖8-35所示。

(2)按鈕的功能實現與狀態設置。

①如果數據表中無記錄,則除【添加】按鈕外的其他按鈕均不可

②一開始,【確定】和【取消】按鈕不可用,單擊【添加】或【修改】按鈕後,【確定】和【取消】按鈕可用,此時其他各按鈕均不可用。當單擊【確定】或【取消】按鈕後,這兩個按鈕不可用,其他各個按鈕均可用。

③當記錄指針處於檔尾時,【後移】和【末記錄】按鈕不能用,當記錄指針處於【檔頭】時,【前移】和【首記錄】按鈕不能用。(3)顯示各字段內容的組件不再使用DataControls組件頁上的組件,而是使用像Tedit,TCheckBox等的一般組件。(4)查詢使用FindKey方法來實現。

8.8其他BDE組件

8.8.1TStoreProc組件

(1)StoredProcName屬性

(2)Params屬性

(3)ParamCount屬性

(4)Create方法

(5)ExecProc方法

8.8.2TDatabase組件1.TDatabase組件的常用屬性

(1)AliasName屬性

(2)Connected屬性

(3)

DatabaseName屬性

(4)Exclusive屬性

(5)KeepConnection屬性

2.TDatabase組件的常用事件

(1)ApplyUpdates方法

(2)Close方法

(3)Commit方法

(4)Rollback方法

(5)StartTransaction方法

小結

利用BDE組件中的TTable組件能夠快速地開發出功能強大的資料庫應用程式。TTable組件的作用主要是建立與物理表的連接,然後可通過TDataSource組件把TTable組件和數據控制組件連接起來,通過數據控制組件來顯示或修改數據表的內容。數據控制組件有很多種,每一種都有特定的功能和用途,使用它們一般都要設置它們的DataSource屬性和DataField屬性。本章詳細介紹TTable組件、TdataSource組件和常用的多種數據控制組件的屬性、方法和事件及它們的使用方法,並通過實例進行演示講解。在此基礎上,本章還通過編制一個非常典型的資料庫流覽和維護的程式對本章的內容進行綜合。本章的最後還對其他常用的BDE組件進行簡單介紹。

使用TQuery組件和SQL語言編程9.1TQuery組

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论