聯結運算可以把兩個或多個文件中的數據按照某種條件組合成一個新的數據庫文件。例如,從學生文件和教師文件可以產生一個學生一教師對照表文件。
聯結運算要求同時打開多個數據庫文件,每個數據庫文件分別存放在各自的內存工作區中,各個工作區各有一個指針,用來指出哪一個記錄是當前記錄。
10個工作區中有一個而且隻有一個是活動工作區。用來修改文件內容或結構的命令隻對活動工作區中的文件有效,對其它工作區中的文件無效。而有關數據檢索等命令中,用戶既可以使用活動工作區的數據,也可以使用其它工作區中現行記錄的數據。使用其它工作區中的數據時,必須指出該工作區的別名及有關的字段名,形式為:(別名)(字段名);它表示把活動工作區中的文件裏的記錄(從第1個開始),與別名所指出的工作區中的文件中的每一個記錄作比較。如果滿足規定的條件,則從兩個記錄中選擇所需要的字段(若不指出需要的字段,則表示兩個文件的全部字段),組成一個新記錄放入新的數據庫文件中,直到兩個文件中所有記錄都相互比較過為止。
顯然,命令執行的時間比較長,而且當兩個文件都相當大、符合條件的情況又很多時,可能會產生一個極其龐大的新數據庫文件,這是使用時必須注意的。
3.多文件檢索操作
同時打開的若幹文件,在活動區文件記錄指針移動時,並不引起其它工作區中指針的修改,這在某些應用中很不方便,它可以協助解決這個問題。這條命令的格式是:該命令的功能是把活動工作區中的文件與(別名)所指出的工作區中的文件,通過它們的公共關鍵字段而連接起來(稱為建立了關係)。其中,(別名)所指的工作區中的文件,必須預先建立並打開按照該關鍵字段所生成的一個索引文件。這樣,活動區中數據庫文件的任何引起記錄指針變化的操作,均會使(別名),區中的記錄指針按照索引文件中給出的邏輯順序而移動,把指針定位在關鍵字段值相等的第1個記錄上。
如果命令中便用的是數值表達式,則活動工作區中指計變化時,區中將以表達式計算的結果作為記錄序號,把指針定位在對應記錄上。在這種情況下,(別名)區中的數據庫文件不再使用索引文件。
無論哪種情況,如果(別名)區中無法找到匹配的記錄,指針將定位在文件最末記錄的後麵。
一個活動工作區隻能與一個(別名)區建立關係。
三、數據計算
dBASEⅢ的計算功能比較簡單,它直接提供了一些常用的統計操作,如彙總、求平均值、統計計數等,也可以借助於存儲變景和函數實現一些複雜的運算。
四、報表生成
在大量實際問題中,數據處理的最終結果要求能以報表的形式從計算機中打印輸出,因而數據庫管理係統的功能之一是自動生成報表。報表生成的過程分為兩步:設計報表格式和填表並輸出。
1.報表格式的設計
報表格式的設計需要使用dBASEⅢ命令。
2.報表輸出
設計了報表格式文件之後,就可以把數據庫文件的內容以報表形式輸出。報表輸出命令的格式為:它把指定範圍中滿足規定條件的所有記錄以報表格式文件描述的形式生成一張報表。如果不指定範圍和條件,即為全部記錄,如果報表格式中要求進行分類列表求和,則數據庫文件必須預先經過分類處理或產生並打開相應的索引文件。
本例用來生成一張學生入學成績報表,其中包括姓名、年級、總分、物理、化學、英語,並要求按年級給出分類列表但不進行分部求和。有關的應用程序及打印出來的報表,其中報表格式文件是預先設計好的,這裏不搏給出設計過程,讀者可自行練習。
3.目標的生成
除了生成報表外,dBASEⅢ還可以用來打印標簽。所謂標簽,是指從數據庫文件中敢出需要的字符串類型的數據,按照預先指定的格式,在標簽紙上麵打印出來。
標簽打印的格式由標簽格式文件給出,該文件使用下麵的兩條命令來建立或修改:它為指定範圍中滿足規定條件的每一個記彔接照要求。命令中的dBASEⅢ用來打印測試標簽,以便調節標簽紙在打印機上的位置。
第五節 應用程序舉例
本節通過一個微機用戶管理係統的設計,介紹UMS應用程序的開發過程,供讀者參考。
一、UMS的功能
該應用程序的目的是對用戶使用機器的情況(上機時間、使用機號、運行情況等)進行登錄管理。供隨時檢索。
1.上機登記
輸入上機證號碼後,自動檢索登錄文件,判明是否有上機資格,如果沒有上機資格,提請辦理申請手續,然後上機。如果有上機資格,則查問是否有空閑講器,有分配上機,否則請等待。
2.下機登記
登記下機時間,撤消所占用的機器,需要時登錄運行情況。
3.檢索
按各種不同的要求檢索用戶上機情況,檢索的關鍵字有:①證號②姓名③日期④任意條件4辦理申請手續
如用戶的證號、姓名,用機期限等。
二、數據庫文件設計
1.用機登記文件UR.DBF
數據庫文件用於記錄機器的使用情況。
三、應用程序的設計
整個係統由兩部分組成:主程序和過程文件。
1.主程序:主程序通過主菜單讓操作人員(用戶)選擇要執行的項目,主菜單是通過實用程序設計的。
相應的格式文件,該文件是實用程序自動生成。
2.過程文件中含11個應用程序,它們分別用來實現有關的菜單項目。用於上機登記,要求輸入的信息是上機證號碼,然後根據情況進行如下操作:
①沒有申請或用機期限已過,進行申請或重新申請;②如果符合上機條件但沒有空閑機器,則請等待;③能上機則請按指定的機號上機,並自動修改機器情況文件。
四、揉作
假設A盤是dBASEⅢ係統盤,B盤上記錄著UMS的數據庫文件和應用程序。打入下列命令:
於是屏幕上顯示出主菜單。首先選擇B,在機器情況文件中填入機房裏可供使用的所有計算機的編號、型號和計算機可使用標記。該文件僅在首次使用UMS時需進行數據輸入,在以後添加了新機器或在某些機器發舉故障時才需要進行修改,此後的操作即可按菜單班行,這裏不再經行。