0.數(shù)據(jù)庫系統(tǒng)開發(fā)基礎(chǔ)
數(shù)據(jù)庫系統(tǒng)主要由三大部分組成:
(1)數(shù)據(jù)庫(按一定結(jié)構(gòu)組織在一起的相關(guān)數(shù)據(jù)的集合)。
(2)數(shù)據(jù)庫管理系統(tǒng)(DBMS:它是專門負責(zé)組織和管理數(shù)據(jù)信息的程序)。
(3)數(shù)據(jù)庫應(yīng)用程序(它使用戶能夠獲取、顯示和更新DBMS存儲的數(shù)據(jù))。
0.1數(shù)據(jù)庫的基本概念
1.數(shù)據(jù)庫(DataBase) 數(shù)據(jù)庫簡單的定義是:有蘊含著一定的意義的數(shù)據(jù),一些按照一定的規(guī)律組織起來所組成的數(shù)據(jù)集合。在數(shù)據(jù)庫中除了用一些作為外部信息的數(shù)據(jù)之外,還有一些內(nèi)部信息數(shù)據(jù)。這些數(shù)據(jù)定義了數(shù)據(jù)庫的用戶及其相應(yīng)的權(quán)限,數(shù)據(jù)庫表單的定義等等,通常把存放這些數(shù)據(jù)的地方叫做數(shù)據(jù)字典。數(shù)據(jù)字典是有數(shù)據(jù)庫系統(tǒng)自行創(chuàng)建并自動維護的,它實際上也是數(shù)據(jù)庫的一組表和視圖,與其他的表單和試圖并沒有物理結(jié)構(gòu)上的區(qū)別,唯一不同的是它的內(nèi)容。
2.關(guān)系數(shù)據(jù)庫(Relational DataBase) 關(guān)系數(shù)據(jù)庫是由若干個表組成的,每一張二維表對應(yīng)著一種聯(lián)系。表的每一行稱為記錄;表的每一列叫做字段;域就是屬性的取值范圍。對于 DBASE、FoxPro、Paradox 這三種數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫對應(yīng)于某一個子目錄,而其他類型如 MS Access、BTrieve 則是指某個文件。
表(Table):一個表就是一組相關(guān)的數(shù)據(jù)按行排列,像一張表一樣。
字段(Field):在表中,每一列稱為一個字段。每一個字段都用相應(yīng)的描述信息,如數(shù)據(jù)類型、數(shù)據(jù)域等。
記錄(Record):在表中,每一行稱為一條記錄。
索引(Index):為了加快訪問數(shù)據(jù)庫的速度、許多數(shù)據(jù)庫都使用索引。
主鍵(Primary Key,PK):主鍵是對于這張表的惟一標識,即一個列或幾個列的組合。主鍵最顯著的特點就是在任何給定的條件,沒有兩個主鍵包含相同的值,這個稱作主鍵的惟一性原則。同時主鍵中每一個屬性都不能被去掉,而同時仍能夠保持主鍵的惟一性,這個我們稱作主鍵的最小性原則。
關(guān)系型數(shù)據(jù)庫系統(tǒng)具有很多優(yōu)點:
(1)關(guān)系數(shù)據(jù)庫有深厚的理論基礎(chǔ),它是基于關(guān)系代數(shù)和關(guān)系理論的模型。
(2)以二維表的形式表示數(shù)據(jù)。
(3)不需要用戶了解它在計算機中的物理存儲形式。
(4)用系統(tǒng)表來提供其本身的內(nèi)容和結(jié)構(gòu)。
(5)可以通過SQL語言來操縱。SQL語言是專門用于操作這種模型的語言。
3.數(shù)據(jù)庫管理系統(tǒng)(DBMS)
數(shù)據(jù)庫管理系統(tǒng)是一個用來管理數(shù)據(jù)庫的軟件,是數(shù)據(jù)庫能夠正常工作的核心。對數(shù)據(jù)庫的所有操作,包括創(chuàng)建各種數(shù)據(jù)庫的數(shù)據(jù)類型、表單、視圖、存儲過程,以及其他的數(shù)據(jù)庫應(yīng)用程序?qū)τ跀?shù)據(jù)庫中數(shù)據(jù)的讀取和修改,都是經(jīng)由數(shù)據(jù)庫管理系統(tǒng)完成的。當數(shù)據(jù)庫應(yīng)用程序把對于數(shù)據(jù)庫數(shù)據(jù)的操作指令通過數(shù)據(jù)庫管理系統(tǒng)的接口函數(shù)發(fā)送給數(shù)據(jù)庫管理系統(tǒng)后的一切工作都只是數(shù)據(jù)庫管理系統(tǒng)的的了,數(shù)據(jù)庫應(yīng)用程序所要做的就只是等候數(shù)據(jù)庫管理系統(tǒng)把它所需要的數(shù)據(jù)給它,然后進行加工處理。
4.數(shù)據(jù)庫應(yīng)用程序
數(shù)據(jù)庫應(yīng)用程序是通過DBMS訪問數(shù)據(jù)庫中的數(shù)據(jù)并向用戶提供數(shù)據(jù)服務(wù)的程序。簡單地說,它們是允許用戶插入、刪除和修改并報告數(shù)據(jù)庫中數(shù)據(jù)的程序。這種程序是由程序員使用通用或者專用的程序設(shè)計軟件開發(fā)的。
0.2 數(shù)據(jù)庫設(shè)計
1.數(shù)據(jù)庫的建立
創(chuàng)建一個數(shù)據(jù)庫的過程有以下幾個步驟:
(1) 確定數(shù)據(jù)庫的使用范圍。
(2) 確定支持數(shù)據(jù)庫所需要的字段。
(3) 將字段劃分成一些合理的數(shù)據(jù)表。 (4) 確定數(shù)據(jù)表之間的關(guān)聯(lián)。
在確定數(shù)據(jù)庫的需求后,要將這些需求劃分成幾個合理的數(shù)據(jù)表。 所謂合理的數(shù)據(jù)表,通常要滿足以下幾點:
- 數(shù)據(jù)表中的字段所描述的內(nèi)容有一定的聯(lián)系。
- 數(shù)據(jù)表中至少有一個字段的記錄不是重復(fù)的。
- 一個數(shù)據(jù)表與數(shù)據(jù)庫其他的數(shù)據(jù)表中至少一個能夠關(guān)聯(lián)。
- 一個數(shù)據(jù)表與數(shù)據(jù)庫其他的同一數(shù)據(jù)表不要有多對多的關(guān)聯(lián)。
2.數(shù)據(jù)表的結(jié)構(gòu)
在數(shù)據(jù)表結(jié)構(gòu)中需要一個關(guān)鍵字段,數(shù)據(jù)表中的數(shù)據(jù)就是按主關(guān)鍵字段的順序存放的,而且利用主關(guān)鍵字能夠高效地與其他數(shù)據(jù)表建立關(guān)聯(lián)。索引也是數(shù)據(jù)表常用的,在數(shù)據(jù)庫中,利用索引可以加快訪問速度。
0.3 數(shù)據(jù)庫應(yīng)用程序的開發(fā)
1.初步設(shè)計
設(shè)計階段要根據(jù)用戶的需求,定義數(shù)據(jù)庫和應(yīng)用程序的功能,確定用戶的需求功能哪些在設(shè)計階段實現(xiàn),哪些在程序中實現(xiàn)。
2.功能實現(xiàn)
將客戶需求功能分成幾個合理的功能塊,分別進行程序設(shè)計、調(diào)試。
常見的劃分方法上分成四個功能塊:
(1)信息處理
(2)數(shù)據(jù)庫管理
(3)系統(tǒng)維護
(4)輔助功能
信息處理是建立數(shù)據(jù)庫應(yīng)用程序的目的。設(shè)計數(shù)據(jù)庫應(yīng)用程序的目的是為客戶提供所需要的信息服務(wù),輔助管理工作,提高工作效率和水平。信息處理最基本的功能包括各類信息查詢,統(tǒng)計報表等功能,對于特定的應(yīng)用程序還可以有特定的功能。數(shù)據(jù)庫管理的主要功能是負責(zé)數(shù)據(jù)庫的更新、修改等。一個特定的數(shù)據(jù)庫管理操作要由它的用戶的權(quán)限決定,這個權(quán)限要由有權(quán)的用戶指定。系統(tǒng)維護的功能是保證數(shù)據(jù)庫應(yīng)用程序運行的可靠性和安全性,一般包括用戶管理,口令設(shè)置,各類系統(tǒng)變量和數(shù)據(jù)字典維護等。
3.運行和維護程序
用戶在使用應(yīng)用程序的過程中會對應(yīng)用程序提出一些建議和要求,根據(jù)用戶的建議和要求對數(shù)據(jù)庫應(yīng)用程序進行適當?shù)男薷暮屯晟?,從而提高程序的性能?/span>
0.4 SQL結(jié)構(gòu)化查詢語言基礎(chǔ)
0.4.1 SQL語言的發(fā)展
目前SQL語言被廣泛地使用,它具有強大的生命力,它使用所有數(shù)據(jù)庫用戶包括程序員、DBA管理員和終端用戶都受益非淺。
SQL語言具有以下優(yōu)點:
(1)SQL語言是所有關(guān)系數(shù)據(jù)庫的公共語言。
(2)SQL是非過程化查詢語言。
有兩種方式使用SQL語言:一種是在終端交互方式下使用,稱為交互式SQL語言;另一種是嵌入在高級語言編寫的程序中使用,稱為嵌入式SQL語言 。
0.4.2 SQL的基本查詢功能
SELECT語句是使用最多的SQL語句,它完成的是數(shù)據(jù)庫的查詢功能,SQL SELECT語句,從數(shù)據(jù)表中選擇出符合條件的記錄。
Distinct語句的作用是對某個表所選擇的字段數(shù)據(jù),忽略重復(fù)的情況,也就是說,針對某個字段查詢出來的記錄結(jié)果是惟一的。
1.TOP和ORDER BY語句
TOP語句實現(xiàn)從第一條或最后一條開始(利用ORDER BY條件子句),返回特定記錄的數(shù)據(jù)的功能。如果沒有加上ORDER BY條件的話,所得到的數(shù)據(jù),將會是隨機的數(shù)據(jù)。此外,在TOP語句之后,除了可以加上數(shù)字以外,還可以利用保留字PERCENT來查詢。排序參數(shù):ASC遞增順序排列,默認值。DESC遞減順序控制。
2.IN條件字句
指定要查詢哪一個外部數(shù)據(jù)庫的表。
3.HAVING條件子句
指定一特定的分組記錄,并滿足HAVING所指定的條件或狀態(tài),但條件是針對分組的條件設(shè)置。
4.GROUP BY條件子句
依據(jù)指定的字段,將具有相同數(shù)值的記錄合并成一條。
5.BETWEED…AND運算符
決定某一數(shù)值是否介于特定的范圍之內(nèi)。
6.LIKE操作數(shù)
將一字符串與另一特定字符串樣式比較,并將符合該字符串樣式的記錄過濾出來。
0.4.3 SQL的其他應(yīng)用
1.SQL數(shù)字函數(shù)
(1) AVG:算數(shù)平均數(shù)。
(2) COUNT:計算記錄條數(shù)。
(3) FIRST與LAST:返回某字段的第一條數(shù)據(jù)與最后一條數(shù)據(jù)。
(4) MAX與MIN:返回某字段最大值與最小值。
(5) SUM:返回某特定字段或是運算的總和數(shù)值。
2.SQL查詢的嵌套
嵌套的SQL查詢含義在于:在一個SQL語句中可以包含另一個SQL查詢語句,形成內(nèi)部嵌套的查詢類型,SELECT語句構(gòu)成的多層SQL查詢,必須用()將該語句括起來 。
3.SQL與數(shù)據(jù)庫的維護
(1) 表的建立CREATE TABLE語句:我們可以利用這個命令,來建立一個全新的表,但前提則是數(shù)據(jù)庫必須已經(jīng)存在。
(2) 表索引的建立CREATE INDEX語句:這個命令主要是對一個已經(jīng)存在的表建立索引 。
(3) 表的刪除DELETE語句:我們可以利用DELETE語句,將表中的記錄刪除。
(4) SELECT…INTO語句:可以通過這個命令,利用已經(jīng)存在的表查詢,來建立一個新表。
(5) INNER JOIN 操作數(shù):當某一個共同的字段數(shù)據(jù)相等時,將兩個表的記錄加以組合。
(6) UNION操作數(shù):可以通過UNION操作數(shù)來建立連接的查詢條件,UNION操作數(shù)可以將兩個以上的表或是查詢的結(jié)果組合起來。
(7) ALTER語句:在一個表建立后,利用ALTER語句,可以去修改表的字段設(shè)計。
(8) DROP語句:針對所指定的表或字段加以刪除,或是把索引刪除。
(9) INSERT INTO語句:新建一條數(shù)據(jù)到表當中。
(10) UPDATE語句:建立一個UPDATE的查詢,通過條件的限制來修改特定的數(shù)據(jù)。
本文來源于<Delphi 程序設(shè)計教程>(第3版)作者:楊長春
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。