13.1.2 數(shù)據(jù)庫應(yīng)用程序
DBMS中存儲了大量的數(shù)據(jù)信息,其目的是為用戶提供數(shù)據(jù)信息服務(wù),而數(shù)據(jù)庫應(yīng)用程序正是與DBMS進(jìn)行通信,并訪問DBMS中的數(shù)據(jù),它是DBMS實(shí)現(xiàn)其對外提供數(shù)據(jù)信息服務(wù)這一目的的唯一途徑。簡單地說,數(shù)據(jù)庫應(yīng)用程序是一個允許用戶插入、修改、刪除并報(bào)告數(shù)據(jù)庫中的數(shù)據(jù)的計(jì)算機(jī)程序。數(shù)據(jù)庫應(yīng)用程序在傳統(tǒng)上是由程序員用一種或多種通用或?qū)S玫某绦蛟O(shè)計(jì)語言編寫的,但是近年來出現(xiàn)了多種面向用戶的數(shù)據(jù)庫應(yīng)用程序開發(fā)工具,這些工具可以簡化使用DBMS的過程,并且不需要專門編程。Delphi就是一種強(qiáng)有力的數(shù)據(jù)庫應(yīng)用程序開發(fā)工具。
用來生成數(shù)據(jù)庫應(yīng)用程序的語言主要分為三大類型:
1.過程化語言
標(biāo)準(zhǔn)的計(jì)算機(jī)程序設(shè)計(jì)語言如Pascal、Basic和C都是過程化語言,這些語言可以通過某種“應(yīng)用程序接口”(API)來創(chuàng)建數(shù)據(jù)庫應(yīng)用程序,這種API由一組標(biāo)準(zhǔn)的函數(shù)(或調(diào)用)組成,這些函數(shù)和調(diào)用則擴(kuò)展了語言的功能,使之能訪問數(shù)據(jù)庫中的數(shù)據(jù)。當(dāng)程序設(shè)計(jì)人員用過程化語言創(chuàng)建數(shù)據(jù)庫應(yīng)用時,必須把應(yīng)用的代碼編寫成一系列的過程,每個過程執(zhí)行應(yīng)用的某一部分的工作,如一個過程查詢數(shù)據(jù)庫,而另一過程更新數(shù)據(jù)庫中的數(shù)據(jù),然后不同的過程通過其他的用戶界面過程(例如菜單系統(tǒng))聯(lián)系在一起,并且在應(yīng)用中的適當(dāng)?shù)胤竭\(yùn)行。
上述這些過程化語言一般用來創(chuàng)建非數(shù)據(jù)庫應(yīng)用程序,它們通常被稱為“第三代語言”(3GL)。還有一些過程化程序設(shè)計(jì)語言是某種特定的DBMS專用的,這些語言一般被稱為“第四代語言”(4GL),即數(shù)據(jù)庫專用語言。常見的數(shù)據(jù)庫專用的過程化語言如dBASE語言,Paradox數(shù)據(jù)庫的PAL語言等等。
2.結(jié)構(gòu)化查詢語言(SQL)
結(jié)構(gòu)化查詢語言(Structure Query Language)是基于關(guān)系模型的數(shù)據(jù)庫查詢語言,它是一種非過程化的程序語言,也就是說,沒有必要寫出將如何做某事情,只需寫出做到什么就可以了。寫出的語句可看作是一個問題,稱為“查詢”(Query),針對這個查詢,得到所需的查詢結(jié)果。下面是一個例子:
Select Name,Total from Class where Total>600
這個查詢意為從數(shù)據(jù)庫表Class中將總分(Total)大于600的所有人選出來,并列出他們的姓名(Name)和總分(Total)。
把SQL描述為子語言更適當(dāng)一些,因?yàn)樗鼪]有任何屏幕處理或用戶輸入/輸出的能力。它的主要目的是為了提供訪問數(shù)據(jù)庫的標(biāo)準(zhǔn)方法,而不管數(shù)據(jù)庫應(yīng)用的其余部分是用什么語言編寫的,它既是為數(shù)據(jù)庫的交互式查詢而設(shè)計(jì)的(因此被稱為動態(tài)SQL),同時也可在過程化語言編寫的數(shù)據(jù)庫應(yīng)用程序中使用(因此被稱為嵌入式SQL)。
3.其他語言
用于開發(fā)數(shù)據(jù)庫應(yīng)用程序的語言中,還可以使用目前數(shù)常見的“面向?qū)ο蟪绦蛟O(shè)計(jì)”(OOP)語言,如C++、 Objact Pascal等,OOP代表了一種完全不同的程序設(shè)計(jì)方法,在這種程序設(shè)計(jì)方法中,活動被定義為在“對象”上發(fā)生的操作,而不是作為一系列過程來定義的。在數(shù)據(jù)庫應(yīng)用程序中使用OOP語言的情況正在不斷增加。
開發(fā)數(shù)據(jù)庫應(yīng)用程序使用的另一種語言是“宏”語言。宏語言不是一種完全的程序設(shè)計(jì)語言,它實(shí)際上是一個用戶手工輸入的表,這個表被輸入到應(yīng)用程序中,以便自動執(zhí)行一定的任務(wù)。對于某個特定應(yīng)用的高級語言,宏語言通常可以在低檔DBMS軟件中或數(shù)據(jù)庫服務(wù)器的前端中找到。
最后,還有一種“Query-By-Example”(QBE,范例查詢)語言。嚴(yán)格地講QBE不是一種語言,它是面向用戶提供了一個或多個空表的界面,這些空表對應(yīng)于數(shù)據(jù)庫中的表。用戶可以通過鍵盤選擇需要查詢的列,并在適當(dāng)?shù)牧兄刑钊霔l件從而定義查詢的檢索條件,然后DBMS就把QBE轉(zhuǎn)換成相應(yīng)的動作,以完成用戶要求的查詢?nèi)蝿?wù)。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |