程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第十三章-Delphi開發數據庫應用程序概述(一)(1)

第十三章-Delphi開發數據庫應用程序概述(一)(1)

編輯:Delphi

13.1 數據庫系統概述 

數據庫系統為我們提供了一種把與我們的工作和生活緊密相關的信息集合在一起的方法,它還提供了在某個集中的地方存儲和維護這些信息的方法。數據庫系統主要由三大部分組成:數據庫管理系統(DBMS:它是專門負責組織和管理數據信息的程序)、數據庫應用程序(它使我們能夠獲取、顯示和更新由DBMS存儲的數據)、數據庫(按一定結構組織在一起的相關數據的集合)。

一般來說,DBMS和數據庫應用程序都駐留在同一台計算機上並在同一台計算機上運行,很多情況下兩者甚至結合在同一個程序中,以前使用的大多數數據庫系統都是用這種方法設計的。但是隨著DBMS技術的發展,目前的數據庫系統正向客戶/服務器模式發展。客戶/服務器數據庫將DBMS和數據庫應用程序分開,從而提高了數據庫系統的處理能力。數據庫應用程序運行在一個或多個用戶工作站(客戶機)上,並且通過網絡與運行在其它計算機上(服務器)的一個或多個DBMS進行通信。

下面是數據庫系統中一些概念和述語。 

13.1.1 數據庫管理系統(DBMS) 

數據庫管理系統(DBMS)是用於描述、管理和維護數據庫的程序系統,是數據庫系統的核心組成部分。它建立在操作系統的基礎上,對數據庫進行統一的管理和控制。其主要功能有:

1. 描述數據庫:描述數據庫的邏輯結構、存儲結構、語義信息和保密要求等。

2. 管理數據庫:控制整個數據庫系統的運行,控制用戶的並發性訪問,檢驗數據的安全、保密與完整性,執行數據檢索、插入、刪除、修改等操作。

3.維護數據庫:控制數據庫初始數據的裝入,記錄工作日志,監視數據庫性能,修改更新數據庫,重新組織數據庫,恢復出現故障的數據庫。

4.數據通信 :組織數據的傳輸。

DBMS主要有四種類型:文件管理系統、層次數據庫系統、網狀數據庫系統和關系數據庫系統。因為目前關系數據庫系統應用最為廣泛,所以我們重點對關系數據庫系統中的幾個概念進行介紹。

關系數據庫(Relational Database):一個關系數據庫是由若干表組成。在Delphi中,數據庫概念對應到物理文件上是有一些不同的。對於dBASE、FoxPro、Paradox這三種數據庫系統,數據庫對應於某一個子目錄,而其它類型如MS Access、Btrieve則是指某個文件。這是因為前者的表為單獨的文件,而後者的表是聚集在一個數據庫文件中的。

表(Table):一個表就是一組相關的數據按行排列,象一張表格一樣。比如一個班所有學生的期末考試成績,存在一個表中,每一行對應一名學生,在這一行中,包括學生的學號、姓名以及各門課程的成績。

字段(Field):在表中,每一列稱為一個字段。每一個字段都有相應的描述信息,如數據類型、數據寬度等。

記錄(Record):在表中,每一行稱為一條記錄。

索引(Index):為了加快訪問數據庫的速度,許多數據庫都使用索引。 

13.1.2 數據庫應用程序

DBMS中存儲了大量的數據信息,其目的是為用戶提供數據信息服務,而數據庫應用程序正是與DBMS進行通信,並訪問DBMS中的數據,它是DBMS實現其對外提供數據信息服務這一目的的唯一途徑。簡單地說,數據庫應用程序是一個允許用戶插入、修改、刪除並報告數據庫中的數據的計算機程序。數據庫應用程序在傳統上是由程序員用一種或多種通用或專用的程序設計語言編寫的,但是近年來出現了多種面向用戶的數據庫應用程序開發工具,這些工具可以簡化使用DBMS的過程,並且不需要專門編程。Delphi就是一種強有力的數據庫應用程序開發工具。

用來生成數據庫應用程序的語言主要分為三大類型:

1.過程化語言

標准的計算機程序設計語言如Pascal、Basic和C都是過程化語言,這些語言可以通過某種“應用程序接口”(API)來創建數據庫應用程序,這種API由一組標准的函數(或調用)組成,這些函數和調用則擴展了語言的功能,使之能訪問數據庫中的數據。當程序設計人員用過程化語言創建數據庫應用時,必須把應用的代碼編寫成一系列的過程,每個過程執行應用的某一部分的工作,如一個過程查詢數據庫,而另一過程更新數據庫中的數據,然後不同的過程通過其他的用戶界面過程(例如菜單系統)聯系在一起,並且在應用中的適當地方運行。

上述這些過程化語言一般用來創建非數據庫應用程序,它們通常被稱為“第三代語言”(3GL)。還有一些過程化程序設計語言是某種特定的DBMS專用的,這些語言一般被稱為“第四代語言”(4GL),即數據庫專用語言。常見的數據庫專用的過程化語言如dBASE語言,Paradox數據庫的PAL語言等等。

2.結構化查詢語言(SQL)

結構化查詢語言(Structure Query Language)是基於關系模型的數據庫查詢語言,它是一種非過程化的程序語言,也就是說,沒有必要寫出將如何做某事情,只需寫出做到什麼就可以了。寫出的語句可看作是一個問題,稱為“查詢”(Query),針對這個查詢,得到所需的查詢結果。下面是一個例子: 

Select Name,Total from Class where Total>600 

這個查詢意為從數據庫表Class中將總分(Total)大於600的所有人選出來,並列出他們的姓名(Name)和總分(Total)。

把SQL描述為子語言更適當一些,因為它沒有任何屏幕處理或用戶輸入/輸出的能力。它的主要目的是為了提供訪問數據庫的標准方法,而不管數據庫應用的其余部分是用什麼語言編寫的,它既是為數據庫的交互式查詢而設計的(因此被稱為動態SQL),同時也可在過程化語言編寫的數據庫應用程序中使用(因此被稱為嵌入式SQL)。

3.其他語言

用於開發數據庫應用程序的語言中,還可以使用目前數常見的“面向對象程序設計”(OOP)語言,如C++、 Objact Pascal等,OOP代表了一種完全不同的程序設計方法,在這種程序設計方法中,活動被定義為在“對象”上發生的操作,而不是作為一系列過程來定義的。在數據庫應用程序中使用OOP語言的情況正在不斷增加。

開發數據庫應用程序使用的另一種語言是“宏”語言。宏語言不是一種完全的程序設計語言,它實際上是一個用戶手工輸入的表,這個表被輸入到應用程序中,以便自動執行一定的任務。對於某個特定應用的高級語言,宏語言通常可以在低檔DBMS軟件中或數據庫服務器的前端中找到。

最後,還有一種“Query-By-Example”(QBE,范例查詢)語言。嚴格地講QBE不是一種語言,它是面向用戶提供了一個或多個空表的界面,這些空表對應於數據庫中的表。用戶可以通過鍵盤選擇需要查詢的列,並在適當的列中填入條件從而定義查詢的檢索條件,然後DBMS就把QBE轉換成相應的動作,以完成用戶要求的查詢任務。 

13.2 Delphi的數據庫特性及功能簡介 

直到目前為止,計算機軟件的開發分為兩個不同的體系,其中一個體系是使用傳統的程序設計語言(如Pascal、Basic和C等)開發數值控制、數值運算等軟件,圍繞它們的重點是算術、數據結構以及近年產生的面向對象技術。另一個體系則是通用的數據庫管理軟件領域(數據庫應用程序的開發)。這兩個體系的發展都極為迅猛,但是二者並沒出現混合滲透跡象。如果使用數據庫語言進行傳統的算術編程,雖然也能完成相應的功能,但是其編程過程可能極為復雜。如果使用傳統的編程語言進行數據庫編程,通過調用專用的數據庫應用程序接口函數和過程,利用這些函數和過程提供的功能,可能也能做得比較完善,但這做起來大多是極其困難的。而Delphi結合了兩個體系的優點,它結合了傳統的編程語言Object Pascal和數據庫語言的強大功能,它即可以用於傳統的算術編程又可以用於數據庫編程,特別是Delphi具有強大的數據庫功能,利用Delphi的數據庫工具,我們根本不需要編寫任何Object Pascal代碼便可以創建一個簡單的數據庫應用。

Delphi是Borland公司於1994年底發布的用於開發數據庫應用程序的工具,它是面向對象的,它是目前開發客戶/服務器數據庫應用程序的強有力的工具。Delphi在Window3.1以上版本的系統環境下運行,目前具有兩個版本:Delphi的標准版本和客戶/服務器版本。標准版本包含一個Borland Database Engine的局部拷貝,它允許用戶創建能訪問dBASE、Paradox和Local InterBase 服務器的數據庫應用, 它還支持具有 ODBC 接口的數據庫。Delphi的客戶/服務器版本包括Borland SQL Link, 它能直接訪問 ORACLE 、 SyBase 和Microsoft SQL Server,Informix以及InterBase數據庫服務器。

Delphi可以訪問多種數據庫管理系統的數據庫,憑借窗體(Forms)和報表(Reports),BDE(Borland Database Engine)可以訪問諸如Paradox、dBASE、本地InterBase 服務器的數據庫,也可以訪問遠程數據庫服務器上的數據庫(如ORACLE、SyBase、Informix等客戶/服務器數據庫中的數據庫),或任何經ODBC(Open Database Connecticity) 可訪問的數據庫管理系統中的數據庫。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved