版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第四章 數(shù)據(jù)庫的創(chuàng)建和使用,考點(diǎn) 數(shù)據(jù)庫的創(chuàng)建和使用、數(shù)據(jù)庫表的創(chuàng)建和使用(必考)、永久關(guān)系和參照完整性(必考)、數(shù)據(jù)庫常用函數(shù) 15分左右,本章內(nèi)容,VFP 數(shù)據(jù)庫概述 數(shù)據(jù)庫的創(chuàng)建 數(shù)據(jù)庫的使用 VFP數(shù)據(jù)字典概述 數(shù)據(jù)庫表 數(shù)據(jù)庫表的表屬性 永久關(guān)系與參照完整性 操作數(shù)據(jù)庫極其對象的幾個(gè)常用的函數(shù),4.1 VFP數(shù)據(jù)庫概述,數(shù)據(jù)庫是一個(gè)包容器,是許多相關(guān)的數(shù)據(jù)庫表的集合,它包括數(shù)據(jù)表以及表之間的關(guān)系。,因此,數(shù)據(jù)庫不僅把幾張表羅列在一起,而且還包括了表之間的關(guān)系。這些表及其它們之間的關(guān)系構(gòu)成了一個(gè)數(shù)據(jù)庫。,4.2 數(shù)據(jù)庫的創(chuàng)建,數(shù)據(jù)庫提供了如下的工作環(huán)境:存儲(chǔ)一系列的表,在表之間建立關(guān)系
2、,設(shè)置屬性和數(shù)據(jù)有效性規(guī)則使相關(guān)聯(lián)的表協(xié)同工作。每創(chuàng)建一個(gè)新的數(shù)據(jù)庫都將生成三個(gè)文件:數(shù)據(jù)庫文件(.dbc),關(guān)聯(lián)的數(shù)據(jù)庫備注文件(.dct)和關(guān)聯(lián)的數(shù)據(jù)庫索引文件(.dcx)。,4.2.1 數(shù)據(jù)庫的創(chuàng)建,1.數(shù)據(jù)庫的創(chuàng)建 1)界面操作 在“項(xiàng)目管理器”中新建數(shù)據(jù)庫 通過“新建”對話框 2)命令方式 CREATE DATABASE 數(shù)據(jù)庫名 | ? 2.VFP數(shù)據(jù)庫的組成 1)數(shù)據(jù)庫表 數(shù)據(jù)庫表是從屬于某一個(gè)數(shù)據(jù)庫的表。數(shù)據(jù)庫表與數(shù)據(jù)庫之間的相關(guān)性是通過表文件(.dbf)與庫文件(.dbc)之間的雙鏈接實(shí)現(xiàn)的。雙鏈接包括前鏈和后鏈。,2)視圖 在設(shè)計(jì)表時(shí),要把數(shù)據(jù)主題分解到不同的表,在使用表時(shí)
3、就反過來,把分散的表通過一定的關(guān)系連接成一個(gè)“虛表”,這張“虛表”就是視圖。視圖使數(shù)據(jù)暫時(shí)從數(shù)據(jù)庫中分離出來,成為游離數(shù)據(jù),以便在主系統(tǒng)之外收集和修改數(shù)據(jù)。,3)連接 連接是保存在數(shù)據(jù)庫中的一個(gè)定義,它指定了數(shù)據(jù)源的名稱。這里的數(shù)據(jù)源指遠(yuǎn)程數(shù)據(jù)源。一個(gè)遠(yuǎn)程數(shù)據(jù)源通常是一個(gè)遠(yuǎn)程數(shù)據(jù)庫服務(wù)器或文件,并且已為它在本地安裝了ODBC驅(qū)動(dòng)程序和設(shè)置了ODBC數(shù)據(jù)源名稱。(一般可在控制面板中的“ODBC數(shù)據(jù)源”設(shè)置。) 4)存儲(chǔ)過程 即保存在數(shù)據(jù)庫中的過程代碼,由用戶自定義函數(shù)或創(chuàng)建表與表之間的參照完整性規(guī)則時(shí)系統(tǒng)創(chuàng)建的函數(shù)組成。,4.3 數(shù)據(jù)庫的使用,1.打開數(shù)據(jù)庫 新建的數(shù)據(jù)庫,保存后自動(dòng)打開 打開數(shù)
4、據(jù)庫表時(shí),數(shù)據(jù)庫會(huì)自動(dòng)打開 在“項(xiàng)目管理器”中,單擊“修改” open database 命令 open database 庫名 exclusive|sharednoupdatevalidate 注:open database命令可以同時(shí)打開多個(gè)數(shù)據(jù)庫,并不會(huì)覆蓋之前的數(shù)據(jù)庫。,2.設(shè)置當(dāng)前數(shù)據(jù)庫 多次打開數(shù)據(jù)庫時(shí),最后打開的一個(gè)數(shù)據(jù)庫就是當(dāng)前數(shù)據(jù)庫。 方法: “常用”工具欄的“數(shù)據(jù)庫”下拉列表選擇當(dāng)前數(shù)據(jù)庫。 SET DATABASE TO 數(shù)據(jù)庫名。 DBC()返回當(dāng)前打開的數(shù)據(jù)庫的完整文件名。 DBUSED(數(shù)據(jù)庫名)返回指定的數(shù)據(jù)庫文件是否已經(jīng)打開的狀態(tài)。,3.關(guān)閉數(shù)據(jù)庫 “項(xiàng)目管理器
5、”的“關(guān)閉”按鈕 close database 命令(關(guān)閉當(dāng)前數(shù)據(jù)庫) 4.刪除數(shù)據(jù)庫 在windows窗口或用delete file命令刪除的數(shù)據(jù)庫,不刪除鏈接信息。而使用“項(xiàng)目管理器”中的“刪除”進(jìn)行刪除,則可刪除鏈接信息,使庫表變成自由表,數(shù)據(jù)字典是指存儲(chǔ)在數(shù)據(jù)庫中用于描述所管理的表和對象的數(shù)據(jù),即關(guān)于數(shù)據(jù)的數(shù)據(jù),稱為“元數(shù)據(jù)”。其擴(kuò)展了對數(shù)據(jù)的描述,從而增強(qiáng)了數(shù)據(jù)管理和控制功能。可以創(chuàng)建和指定的內(nèi)容: 表的字段擴(kuò)展屬性,表單中使用的默認(rèn)控件類等 表的主索引關(guān)鍵字 庫表的永久性關(guān)系 表的擴(kuò)展屬性 存儲(chǔ)過程,4.4 VFP數(shù)據(jù)字典概述,1. 數(shù)據(jù)庫表的創(chuàng)建 1)界面操作(打開“表設(shè)計(jì)器”)
6、 “項(xiàng)目管理器”中,數(shù)據(jù)庫中的表新建 “數(shù)據(jù)庫設(shè)計(jì)器”中,“設(shè)計(jì)器工具欄”新建表 在數(shù)據(jù)庫打開時(shí),文件新建表新建文件 2)命令 如數(shù)據(jù)庫已被打開,則使用creat table-sql創(chuàng)建表,如不用free,則該表不是自由表??衫靡恍┳泳洌╪ame、check等)擴(kuò)展表的表屬性和字段屬性。,4.5 數(shù)據(jù)庫表,2. 數(shù)據(jù)庫表的字段擴(kuò)展屬性 字段擴(kuò)展屬性:字段的顯示格式、輸入掩碼、默認(rèn)值、標(biāo)題、注釋、驗(yàn)證規(guī)則等。 設(shè)置方法: 界面:“表設(shè)計(jì)器” 命令:create(alter) table-sql (部分屬性) 1)字段顯示屬性 指定輸入和顯示字段的格式屬性。 字段的格式(format) 字段顯示
7、時(shí)的格式 輸入掩碼(input mask) 字段中輸入數(shù)據(jù)的格式 標(biāo)題(caption)和注釋(comment) 使表具有更好的可讀性,2)字段驗(yàn)證規(guī)則 用于限定字段的取值及取值范圍。 字段級規(guī)則和有效性信息: 字段級規(guī)則是字段中的數(shù)據(jù)的取值范圍,它是一個(gè)邏輯表達(dá)式,且當(dāng)前字段包含在該表達(dá)式中。 有效性信息也稱字段有效性說明,它是字符表達(dá)式,與規(guī)則配合使用,當(dāng)規(guī)則不滿足時(shí),顯示的確認(rèn)框中的說明信息。 例:cj:cj0 and cj=100 xh:len(alltrim(xh)=6 默認(rèn)值:為字段指定的初始值。 字段所指定的最初的值,其值必使與字段類型相同的表達(dá)式。 例:xb:男、 記帳日期:d
8、atetime(),注:如字段允許為NULL,則字段默認(rèn)值可設(shè)為“.NULL.”,否則不可設(shè)。 以上是用界面,即“表設(shè)計(jì)器”完成設(shè)置,也可用命令。 creat table-sql:check、error、defualt子句 其中:check:設(shè)置字段的有效性規(guī)則 error:有效信息 default:默認(rèn)值,例1:create table cj_temp(xh c(9) default 060409101,kcdh c(6),cj n(3,0) check cj=0 and cj=100),例2:create table cj_temp2(xh c(9),kcdh c(6),cj n(3,0)
9、 alter table cj_temp2 alter column xh set default 060409102 alter table cj_temp2 alter column cj set check cj=0 and cj=100,alter table-sql:set check、 set defualt、drop check 、drop defualt,3. 數(shù)據(jù)庫表的表屬性 設(shè)置方法: 界面:“表設(shè)計(jì)器”表 命令:creat table-sql(部分屬性) 1)長表名與表注釋 設(shè)置長表名后,該庫表在各種選項(xiàng)卡、窗口中均以長表名代替表名,長表名可與文件名同樣使用,但使用長表名
10、打開表時(shí),表所屬數(shù)據(jù)庫必須是打開的,并且所屬數(shù)據(jù)庫是當(dāng)前數(shù)據(jù)庫,否則不能打開它。 例:open database jxsj create table cj_temp3 name 學(xué)生成績表 (xh c(6),kcdh c(6), cj n(3,0) close tables all use cj_temp3 use 學(xué)生成績表,2)記錄驗(yàn)證 包括記錄有效性規(guī)則和有效性信息,用于定義記錄級校驗(yàn)規(guī)則及相應(yīng)的提示信息。字段有效性規(guī)則僅對當(dāng)前字段有效,而使用記錄有效性規(guī)則可以校驗(yàn)多個(gè)字段之間的關(guān)系是否滿足某種規(guī)則。 記錄有效性規(guī)則在記錄值改變時(shí)被激活。 例:alter table js set che
11、ck gzrqcsrq error 出生日期必須大于工作日期 alter table js drop check 3)表觸發(fā)器 是綁定在表上的邏輯表達(dá)式,當(dāng)表中的任何記錄被指定的操作命令修改時(shí),在進(jìn)行了其他所有檢查之后被激發(fā)。,數(shù)據(jù)庫表的觸發(fā)器:插入觸發(fā)器、更新觸發(fā)器、刪除觸發(fā)器。觸發(fā)器的返回值為.T. 或.F.,如為.T. ,則允許執(zhí)行相應(yīng)的操作,否則不執(zhí)行。 用create trigger 創(chuàng)建、delete trigger刪除觸發(fā)器: create trigger on 表名 for delete | insert | update as 表達(dá)式 例:create trigger on
12、kc for update as .f. delete trigger on 表名 for delete | insert | update 例:delete trigger on kc for update,4. 數(shù)據(jù)庫表的索引 主索引只能用在數(shù)據(jù)庫表上,需注意的幾點(diǎn): 主索引必是候選索引,其表達(dá)式的值對各條記錄必唯一 每張庫表只能設(shè)一個(gè)主索引 主索引的主要用途是為了建立表之間的永久關(guān)系,6. 在數(shù)據(jù)庫表中添加、與移去表 1)數(shù)據(jù)庫表的添加 添加表就是使自由表成為數(shù)據(jù)庫表,本質(zhì)上是建立表與數(shù)據(jù)庫之間的雙向鏈接。 界面操作:“項(xiàng)目管理器”數(shù)據(jù)庫表添加 “數(shù)據(jù)庫設(shè)計(jì)器”添加表 命令:add ta
13、ble 表名 name 長表名 注:使用此命令時(shí),數(shù)據(jù)庫處于打開狀態(tài),且為當(dāng)前數(shù)據(jù)庫,2)數(shù)據(jù)庫表的移去 移去表就是使數(shù)據(jù)庫表成為自由表,本質(zhì)是刪除數(shù)據(jù)庫表與數(shù)據(jù)庫之間的雙向鏈接。 界面操作:“項(xiàng)目管理器”數(shù)據(jù)庫表移去 “數(shù)據(jù)庫設(shè)計(jì)器”移去表 命令:remove table 表名 delete free table 表(意外的刪除了數(shù)據(jù)庫文件),7. 有關(guān)數(shù)據(jù)庫及數(shù)據(jù)庫表的幾點(diǎn)說明 數(shù)據(jù)庫表與自由表有區(qū)別 打開或說明非當(dāng)前數(shù)據(jù)庫中的表,用“!” 在移動(dòng)數(shù)據(jù)庫文件的存儲(chǔ)位置時(shí),需考慮雙向鏈接 在移去數(shù)據(jù)庫表時(shí),其中的字段、表擴(kuò)展屬性等會(huì)丟失 多次修改數(shù)據(jù)庫、數(shù)據(jù)庫表結(jié)構(gòu)之后,應(yīng)清理數(shù)據(jù)庫,4.6
14、 永久關(guān)系與參照完整性 1. 表之間的關(guān)系 (1)一對一關(guān)系 設(shè)A、B兩張表,A表中的一個(gè)記錄在B表中只有一個(gè)記錄與之對應(yīng),B表中的一個(gè)記錄在A表中也只有一個(gè)記錄與之對應(yīng)。在很多情況下,兩張表可以簡單地合并成一個(gè)表。,(2)一對多關(guān)系 如A表中的任意一個(gè)記錄在B表中可有多個(gè)記錄與之對應(yīng),而B表中的每個(gè)記錄,在A表中僅有一個(gè)記錄與之對應(yīng),則稱兩表之間存在一對多關(guān)系。A為主表,B為子表。,(3)多對多關(guān)系 若A表的一個(gè)記錄在B表中可對應(yīng)多個(gè)記錄,而B表中的一個(gè)記錄在A表中也對應(yīng)多個(gè)記錄,則稱為多對多關(guān)系。 遇到多對多關(guān)系時(shí),必須建立第三張表,把多對多關(guān)系分解成兩個(gè)一對多關(guān)系。第三張表就稱作“紐帶表
15、”。把兩張表的主關(guān)鍵字都放在這個(gè)紐帶表中。 對于紐帶表,除了包含兩個(gè)外部關(guān)鍵字外,還可以有其他字段。紐帶表的主關(guān)鍵字可以由兩個(gè)外部關(guān)鍵字組成。,2. 表之間的永久關(guān)系 它是庫表之間的一種關(guān)系,不僅在運(yùn)行時(shí)存在,而且一直保留,擁有永久關(guān)系的表必須在數(shù)據(jù)庫中。 表間的永久關(guān)系是使用索引建立的。永久關(guān)系的類型決定了所使用的索引的類型。在一對多中,主表必用主索引關(guān)鍵字或侯選索引關(guān)鍵字,子表則用普通索引關(guān)鍵字。一對一中,兩張表都用主索引關(guān)鍵字或侯選索引關(guān)鍵字。,(1)永久關(guān)系的作用 在“查詢和視圖設(shè)計(jì)器”中,自動(dòng)作為默認(rèn)聯(lián)接條件; 作為表單和報(bào)表的默認(rèn)臨時(shí)關(guān)系,在“數(shù)據(jù)環(huán)境設(shè)計(jì)器”中顯示; 用來存儲(chǔ)參照
16、完整性信息。,(2)永久關(guān)系的建立 確定兩張具有一對多或一對一關(guān)系的表 建立主表的主索引或侯選索引如是一對多,在子表中以外部關(guān)鍵字建立普通索引; 如是一對一,在子表中以與主表相同的關(guān)鍵字建立主索引或侯選索引。建立主表與子表的永久關(guān)系。 (3)刪除、編輯永久關(guān)系,3.參照完整性 是用來控制數(shù)據(jù)的一致性,尤其是控制數(shù)據(jù)庫相關(guān)表之間的主關(guān)鍵字和外部關(guān)鍵字之間數(shù)據(jù)一致性的規(guī)則。,1)參照完整性的一般要求(一對多) 子表的每一個(gè)記錄在對應(yīng)的父表中有一個(gè)父記錄。 在父表中修改記錄時(shí),如改了主關(guān)鍵字的值,則子表中相關(guān)記錄的外部關(guān)鍵字值必須同時(shí)改。 在子表中插入記錄時(shí),其外部關(guān)鍵字必須是主表主關(guān)鍵字值中的一個(gè)
17、。 在父表中刪除記錄,與該記錄相關(guān)的子表中的記錄必須全部刪除。,2)參照完整性的設(shè)置 用“表設(shè)計(jì)器”完成。參照完整性規(guī)則包括更新規(guī)則、刪除規(guī)則、插入規(guī)則。,4VFP數(shù)據(jù)完整性綜述 完整性包括:域完整性、實(shí)體完整性、參照完整性和用戶自定義完整性。 實(shí)體完整性:為記錄賦予數(shù)據(jù)完整性規(guī)則。如記錄有效性性規(guī)則。 參照完整性:指相關(guān)表之間的數(shù)據(jù)一致性。 域完整性:輸入到字段的數(shù)據(jù)的類型或值必須符合某個(gè)特定的要求。如字段有效性性規(guī)則。 用戶自定義完整性:指由用戶通過編程實(shí)現(xiàn)對數(shù)據(jù)完整性的約束。,4.7操作數(shù)據(jù)庫及其對象的幾個(gè)常用函數(shù),1DBC( )與DBUSED( )函數(shù) DBC( ):返回當(dāng)前打開的數(shù)據(jù)庫的完整文件名 DBUSED( ):返回指定數(shù)據(jù)庫文件是否已打開 例:?dbc() ?dbused(sjk),2.DBGETPROP()函數(shù): 返回當(dāng)前數(shù)據(jù)庫的屬性,或數(shù)據(jù)庫中字段、表、視圖的屬性。 語法:DBGETPROP(cName,cType,cProperty) cName:指定數(shù)據(jù)庫、字段、表或視圖的名稱。 cType:指定cName是否為當(dāng)前數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)心理學(xué)(心理輔導(dǎo))試題及答案
- 2026年計(jì)算機(jī)編程(Python高級編程)試題及答案
- 2026年?duì)I銷策劃(營銷渠道設(shè)計(jì))試題及答案
- 2025年高職第一學(xué)年(軟件技術(shù))Java編程綜合試題及答案
- 2026年網(wǎng)絡(luò)技術(shù)綜合(多協(xié)議應(yīng)用)試題及答案
- 2025年高職播音與主持藝術(shù)(節(jié)目主持技巧)試題及答案
- 2025年大學(xué)法醫(yī)學(xué)(法醫(yī)毒物分析)試題及答案
- 巴松介紹教學(xué)課件
- 2026年江漢區(qū)金融類國企招聘工作人員備考題庫及一套答案詳解
- 威寧介紹教學(xué)
- ERCP治療膽總管結(jié)石的護(hù)理
- 2025年國際政治格局:多極化與地緣政治風(fēng)險(xiǎn)
- 有害物質(zhì)管控標(biāo)準(zhǔn)
- T-CSUS 69-2024 智慧水務(wù)技術(shù)標(biāo)準(zhǔn)
- 國家開放大學(xué)法學(xué)本科《商法》歷年期末考試試題及答案題庫
- UL583標(biāo)準(zhǔn)中文版-2018電動(dòng)工業(yè)車輛UL中文版標(biāo)準(zhǔn)
- 2024年新華東師大版七年級上冊數(shù)學(xué)全冊教案(新版教材)
- 冀人版五年級科學(xué)上冊期末測試卷4份(含答案)
- 菜肴造型與盛裝工藝
- 甲狀腺癌醫(yī)學(xué)知識(shí)講座
- ABAQUS在隧道及地下工程中的應(yīng)用
評論
0/150
提交評論