數(shù)據(jù)庫系統(tǒng)及應(yīng)用基礎(chǔ)課件_第1頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用基礎(chǔ)課件_第2頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用基礎(chǔ)課件_第3頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用基礎(chǔ)課件_第4頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用基礎(chǔ)課件_第5頁
已閱讀5頁,還剩353頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1章資料庫系統(tǒng)概述1.1數(shù)據(jù)管理技術(shù)的三個(gè)階段1.2資料庫與資料庫系統(tǒng)1.3數(shù)據(jù)模型與數(shù)據(jù)模式1.4資料庫系統(tǒng)的發(fā)展趨勢(shì)1.1數(shù)據(jù)管理技術(shù)的三個(gè)階段1.1.1數(shù)據(jù)管理技術(shù)概述1.1.2數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段返回目錄1.1.1數(shù)據(jù)管理技術(shù)概述(1)電腦應(yīng)用 科學(xué)計(jì)算:解決數(shù)值計(jì)算問題 數(shù)據(jù)處理:為數(shù)據(jù)密集型應(yīng)用 數(shù)據(jù)處理就是對(duì)原始數(shù)據(jù)進(jìn)行科學(xué)地採集、整理、存儲(chǔ)、加工和傳送,從繁雜的數(shù)據(jù)中獲取所需的資料,提取有用的數(shù)據(jù)成分作為指揮生產(chǎn)、優(yōu)化管理的決策依據(jù)。(2)數(shù)據(jù)處理的幾個(gè)特點(diǎn) ①?涉及的數(shù)據(jù)量大,記憶體中只能存放一小部分,大部分都將保存在磁片等輔助記憶體中; ②?數(shù)據(jù)需長期保留在電腦系統(tǒng)中,並不隨某個(gè)程式的執(zhí)行完畢而消失; ③?數(shù)據(jù)常常需要共用,包括供多個(gè)單位、多個(gè)應(yīng)用程式共用。(3)資料庫系統(tǒng) 顯著特點(diǎn)是:可靠的數(shù)據(jù)存儲(chǔ)與管理(含共用),高效的數(shù)據(jù)存取和方便的應(yīng)用開發(fā)等

返回1.1.2數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段1.人工管理:基於人工 主要特徵:

(1)電腦系統(tǒng)不提供對(duì)用戶數(shù)據(jù)的管理功能

(2)數(shù)據(jù)不能共用

(3)不單獨(dú)保存數(shù)據(jù)2.檔系統(tǒng):基於操作系統(tǒng) 主要弊?。?/p>

(1)檔系統(tǒng)提供的功能有限,不能滿足應(yīng)用程式對(duì)數(shù)據(jù)訪問日益增長的要求。

(2)數(shù)據(jù)的冗餘和不一致性。

(3)數(shù)據(jù)的無結(jié)構(gòu)性。3.資料庫管理系統(tǒng):當(dāng)前人們進(jìn)行數(shù)據(jù)管理的主要形式。

基本功能:

(1)支持對(duì)大量或超大量數(shù)據(jù)的存儲(chǔ)、管理與控制

(2)給用戶或應(yīng)用程式提供了良好的資料庫語言

a.數(shù)據(jù)定義語言DDL(DataDefinitionLanguage)

b.數(shù)據(jù)操作語言DML(DataManipulationLanguage)或查詢語言(QueryLanguage)

返回1.2資料庫與資料庫系統(tǒng)1.2.1資訊和數(shù)據(jù)1.2.2資料庫的基本概念1.2.3資料庫系統(tǒng)的組成返回目錄1.2.4資料庫系統(tǒng)的分層結(jié)構(gòu)1.2.5資料庫管理員(DBA)與資料庫用戶1.2.1資訊和數(shù)據(jù)資訊

資訊: 資訊是反映客觀世界中各種事物的特徵和變化的組合,是經(jīng)過加工處理並對(duì)客觀世界產(chǎn)生影響的數(shù)據(jù)。 資訊是對(duì)數(shù)據(jù)的解釋,是經(jīng)過加工處理後的一種數(shù)據(jù)形式,它能提高人們對(duì)事物認(rèn)識(shí)的深刻程度,對(duì)決策或行為有現(xiàn)實(shí)或潛在的價(jià)值。 特點(diǎn): 往往有它的時(shí)間性,也依賴於使用資訊的人們。2.數(shù)據(jù) 是為了人們對(duì)客觀世界的瞭解與交流,常常需要對(duì)各種事物進(jìn)行描述,對(duì)事物描述的特定符號(hào)。 是反映客觀世界的資訊載體,是載荷資訊可以鑒別的符號(hào),這些符號(hào)包括數(shù)字、文字、圖像和語音等。3.數(shù)據(jù)和資訊的聯(lián)繫與區(qū)別 人們通過解釋、推論、歸納、分析和綜合等方法,從數(shù)據(jù)中獲取有意義的內(nèi)容就稱為資訊。數(shù)據(jù)是資訊存在的一種形式,只有通過解釋或處理才能成為有用的資訊。同樣的數(shù)據(jù)可因載體的不同表現(xiàn)出不同的形式,而資訊則不會(huì)隨資訊載體的不同而改變。

返回1.2.2資料庫的基本概念資料庫是為滿足某一組織中許多用戶的許多應(yīng)用系統(tǒng)的需要,而在電腦系統(tǒng)中所建立起來的相互關(guān)聯(lián)的數(shù)據(jù)的集合,這些數(shù)據(jù)按照一定的數(shù)據(jù)模型來組織和存儲(chǔ),並能為所有的應(yīng)用業(yè)務(wù)所共用。在資料庫中,數(shù)據(jù)的最小單位是資料項(xiàng)目(或字段),或者是記錄,記錄由資料項(xiàng)目組成

返回1.2.3資料庫系統(tǒng)的組成資料庫系統(tǒng)(Databasesystem)是指一個(gè)完整的、能為用戶提供資訊服務(wù)的系統(tǒng)組成:三個(gè)部分

(1)電腦系統(tǒng)和電腦網(wǎng)絡(luò)

(2)資料庫與資料庫管理系統(tǒng) 是一個(gè)介於資料庫與用戶之間的管理軟體,是資料庫系統(tǒng)的核心。

a.對(duì)用戶:資料庫管理系統(tǒng)能為他們提供各種有關(guān)資料庫的服務(wù)功能(包括資料庫的定義、資料庫的查詢與記錄的更新、插入與刪除等),使他們不要關(guān)心這些資料庫提供的服務(wù)功能是如何具體實(shí)現(xiàn)的。

b.對(duì)數(shù)據(jù)庫:資料庫管理系統(tǒng)要實(shí)現(xiàn):對(duì)數(shù)據(jù)的存儲(chǔ)管理;解決許多用戶共用資料庫時(shí)可能產(chǎn)生的衝突;保證數(shù)據(jù)的正確性、一致性和完整性;提供對(duì)數(shù)據(jù)庫訪問的安全機(jī)制;防止非法用戶進(jìn)入資料庫管理系統(tǒng),對(duì)數(shù)據(jù)進(jìn)行非法竊取或非法修改。

c.典型產(chǎn)品

(3)基於資料庫的應(yīng)用軟體系統(tǒng)

返回1.2.4資料庫系統(tǒng)的分層結(jié)構(gòu)

為了針對(duì)資料庫系統(tǒng)的三大組成部分,解決對(duì)數(shù)據(jù)的抽象認(rèn)識(shí),可將資料庫系統(tǒng)中的數(shù)據(jù),按從底向上的順序描述成如下的三層分層結(jié)構(gòu)。物理層:是最底層,基於操作系統(tǒng)。 它給出了複雜而詳細(xì)的底層數(shù)據(jù)結(jié)構(gòu),具體說明資料庫中的數(shù)據(jù)在存儲(chǔ)介質(zhì)上是如何存放的,以及對(duì)這些數(shù)據(jù)的相關(guān)操作。它的物質(zhì)基礎(chǔ)是相關(guān)的電腦硬體。邏輯層:中間層 它是針對(duì)DBMS的管理人員需要使用的數(shù)據(jù),該層描述資料庫中應(yīng)當(dāng)存儲(chǔ)哪些數(shù)據(jù)以及這些存儲(chǔ)的數(shù)據(jù)相互之間有些什麼關(guān)係視圖層:最高層 它是針對(duì)廣大資料庫用戶如何看待他們的應(yīng)用業(yè)務(wù)系統(tǒng)所需要的數(shù)據(jù)的。 在視圖層上,用戶所看到的只是一組應(yīng)用程式和若干個(gè)視圖,這些視圖是在視圖層上定義的,它遮罩了資料庫邏輯層的實(shí)現(xiàn)細(xì)節(jié),還提供了防止非法用戶訪問資料庫某些部分的安全機(jī)制。一個(gè)視圖就像是一個(gè)窗口,它從某個(gè)特定的視角來反映資料庫。

返回1.2.5資料庫管理員(DBA)與資料庫用戶資料庫管理員(DBA) 是指專業(yè)的資料庫設(shè)計(jì)與維護(hù)(特別是對(duì)部門或單位的資料庫系統(tǒng))人員。

主要職責(zé): ①根據(jù)用戶的需求,理解DBMS需要存儲(chǔ)什麼數(shù)據(jù)以及如何使用數(shù)據(jù),利用數(shù)據(jù)定義語言DDL定義數(shù)據(jù)模式,定義存儲(chǔ)結(jié)構(gòu)和存取方式;修改數(shù)據(jù)模式和物理存儲(chǔ)組織。 ②數(shù)據(jù)訪問授權(quán) ③定義數(shù)據(jù)的完整性約束。 ④數(shù)據(jù)備份、日誌維護(hù)和故障恢復(fù)。資料庫用戶 主要包括:終端用戶和數(shù)據(jù)庫應(yīng)用軟體系統(tǒng)的開發(fā)者

返回1.3數(shù)據(jù)模型與數(shù)據(jù)模式

1.3.1數(shù)據(jù)模型1.3.2數(shù)據(jù)模式1.3.3典型數(shù)據(jù)模型簡(jiǎn)介返回目錄1.3.1數(shù)據(jù)模型1.數(shù)據(jù)模型

定義: 它是一組嚴(yán)格定義的概念的集合,它們精確地描述了數(shù)據(jù)、數(shù)據(jù)之間的相互聯(lián)繫、對(duì)數(shù)據(jù)的操作以及有關(guān)的語義約束規(guī)則。

E.F.Codd指出:“一個(gè)數(shù)據(jù)模型實(shí)質(zhì)上就是向用戶提供的一組規(guī)則,規(guī)定用戶如何組織數(shù)據(jù)結(jié)構(gòu)以及允許對(duì)它們執(zhí)行哪些相應(yīng)的操作。”

組成:(三要素) (1)數(shù)據(jù)結(jié)構(gòu) 它是指所研究的對(duì)象類型的集合,這些對(duì)象類型包括:數(shù)據(jù)屬性(包括類型、內(nèi)容和性質(zhì))和數(shù)據(jù)相互之間的聯(lián)繫。 它是建立數(shù)據(jù)模型的基礎(chǔ)。 (2)數(shù)據(jù)操作 數(shù)據(jù)操作是指對(duì)於資料庫中各種對(duì)象的實(shí)例,允許對(duì)它們執(zhí)行的操作的集合,資料庫對(duì)數(shù)據(jù)的操作主要包括查詢與更新兩項(xiàng)功能。 (3)數(shù)據(jù)的完整性約束規(guī)則 它是指定義數(shù)據(jù)的約束條件,即在給定的數(shù)據(jù)模型中,規(guī)定數(shù)據(jù)及其聯(lián)繫所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的資料庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。2.三級(jí)數(shù)據(jù)模型

(1)概念數(shù)據(jù)模型 概念數(shù)據(jù)模型(Conceptualdatamodel)對(duì)應(yīng)於視圖層,是面向電腦用戶、面向現(xiàn)實(shí)世界的數(shù)據(jù)模型,與DBMS無關(guān),不依賴於具體的電腦系統(tǒng)。 概念數(shù)據(jù)模型主要有:E-R模型、EER模型、OO模型以及IDEFIX模型等。 (2)邏輯數(shù)據(jù)模型 邏輯數(shù)據(jù)模型(Logicaldatamodel)反映數(shù)據(jù)的邏輯結(jié)構(gòu),例如檔、記錄和字段等,它與DBMS有關(guān)。 邏輯數(shù)據(jù)模型主要有:關(guān)係數(shù)據(jù)模型、層次數(shù)據(jù)模型和網(wǎng)狀數(shù)據(jù)模型。 (3)物理數(shù)據(jù)模型 物理數(shù)據(jù)模型(Physicaldatamodel)反映數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),例如存儲(chǔ)介質(zhì)的物理塊、指針和索引等。

返回1.3.2數(shù)據(jù)模式1.數(shù)據(jù)模式

它是指以選定某種數(shù)據(jù)模型為工具,對(duì)一個(gè)具體單位被處理對(duì)象的具體數(shù)據(jù)進(jìn)行描述。 它反映一個(gè)單位的各種事務(wù)的結(jié)構(gòu)、屬性、聯(lián)繫和約束,實(shí)質(zhì)上是用數(shù)據(jù)模型對(duì)一個(gè)單位的具體實(shí)現(xiàn)(或模擬),它是相對(duì)穩(wěn)定的,數(shù)據(jù)模式的取值稱之為實(shí)例,同一數(shù)據(jù)模式允許有很多的實(shí)例。2.三級(jí)數(shù)據(jù)模式 (1)外模式 它是面向各類最終用戶的,也稱為用戶模式。它最接近用戶,是資料庫用戶看到的數(shù)據(jù)視圖?;蛘哒f外模式是利用邏輯數(shù)據(jù)模型對(duì)用戶所用到的那部分?jǐn)?shù)據(jù)進(jìn)行的描述。 (2)概念模式 也稱邏輯模式,是用邏輯數(shù)據(jù)模型對(duì)一個(gè)單位的數(shù)據(jù)描述,包括現(xiàn)實(shí)世界中實(shí)體的性質(zhì)與聯(lián)繫,定義記錄、資料項(xiàng)目、數(shù)據(jù)的完整性約束及記錄之間的聯(lián)繫。它描述了資料庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)與特徵,整個(gè)資料庫只有一個(gè)概念模式,它是所有用戶公共的數(shù)據(jù)視圖。 (3)內(nèi)模式 也稱存儲(chǔ)模式,是用物理數(shù)據(jù)模型對(duì)數(shù)據(jù)的描述,對(duì)一般用戶是透明的。

返回1.3.3典型數(shù)據(jù)模型簡(jiǎn)介1.邏輯數(shù)據(jù)模型(1)層次數(shù)據(jù)模型(2)網(wǎng)狀數(shù)據(jù)模型(3)關(guān)係數(shù)據(jù)模型2.概念數(shù)據(jù)模型:E-R模型

(1)什麼是E-R模型 人們?cè)陂_發(fā)一個(gè)應(yīng)用系統(tǒng)時(shí),在對(duì)用戶的需求充分瞭解後就要進(jìn)行概念設(shè)計(jì),根據(jù)需求分析把緊密相關(guān)的數(shù)據(jù)組織在一起,繪製出資料庫結(jié)構(gòu)的初步藍(lán)圖。它是面向用戶的,不涉及到任何具體的DBMS。E-R數(shù)據(jù)模型就是供用戶(或設(shè)計(jì)者)來繪製這種藍(lán)圖的行之有效的工具。 (2)E-R模型的兩個(gè)重要概念

a.實(shí)體 實(shí)體(Entity)是對(duì)能被人們識(shí)別的獨(dú)立存在的對(duì)象的描述,它是對(duì)現(xiàn)實(shí)世界中事、物、概念等的抽象。 實(shí)體一般均具有若干特徵,這些特徵我們稱為該實(shí)體的屬性。

b.聯(lián)繫 ①?1∶1(一對(duì)一)聯(lián)繫。 ②?1∶n(一對(duì)多)聯(lián)繫。

3)m∶n(多對(duì)多)聯(lián)繫

返回1.4資料庫系統(tǒng)的發(fā)展趨勢(shì)

1.4.1概述1.4.2面向?qū)ο蟮馁Y料庫系統(tǒng)1.4.3資料庫技術(shù)與多學(xué)科技術(shù)的有機(jī)結(jié)合返回目錄1.4.4面向?qū)嶋H應(yīng)用的資料庫研究1.4.1概述1.簡(jiǎn)單數(shù)據(jù)類型 處理數(shù)字、日期、字元型數(shù)據(jù)的簡(jiǎn)單應(yīng)用。 2. 關(guān)係資料庫無法處理的複雜數(shù)據(jù)類型 存儲(chǔ)並檢索複雜的嵌套數(shù)據(jù)(如材料單——BOM表)、複合數(shù)據(jù)(如集合、數(shù)組、結(jié)構(gòu))、多媒體數(shù)據(jù)(如圖像、語音、文本)、網(wǎng)路數(shù)據(jù)(如電子郵件、電子文檔、網(wǎng)站的各種元素)、用電腦輔助設(shè)計(jì)CAD繪製的工程圖紙和用GIS(地理資訊系統(tǒng))提供的空間數(shù)據(jù)等,關(guān)係資料庫都無法實(shí)現(xiàn)對(duì)它們的管理,正是實(shí)際中湧現(xiàn)出這樣許多的問題,促使資料庫系統(tǒng)技術(shù)不斷推向新的高度。

返回1.4.3資料庫技術(shù)與多學(xué)科技術(shù)的有機(jī)結(jié)合1.分佈式資料庫系統(tǒng)2.多媒體資料庫3.工程資料庫

返回2.1關(guān)係資料庫及其基本特徵2.1.1基本概念1.實(shí)體及其聯(lián)繫實(shí)體——存在於人們意識(shí)之外的客觀對(duì)象,如讀者、圖書等聯(lián)繫——三種不同類型的聯(lián)繫,1-1,1-n,n-n關(guān)係——二維表,由行和列組成。關(guān)係方法用表中的行描述一個(gè)實(shí)體,用表中列描述實(shí)體的屬性,用外鍵描述實(shí)體間的聯(lián)繫

2.元組、屬性、主鍵與外鍵

元組—表中的每行,元組不容許重複,表中任意兩行不能完全相同屬性—表中的每列,分為屬性名與屬性值,屬性名不容許重複主屬性—在一個(gè)表中能起區(qū)分作用的屬性,主屬性可能由兩個(gè)或多個(gè)屬性組成,主屬性也稱為主鍵外鍵—其他表的主屬性,外鍵是描述兩個(gè)表之間關(guān)係的基本手段3.數(shù)據(jù)結(jié)構(gòu)、操作與約束數(shù)據(jù)結(jié)構(gòu)——用怎樣的數(shù)據(jù)形式描述應(yīng)用中所涉及的各種實(shí)體及實(shí)體間的聯(lián)繫,關(guān)係方法使用二維表描述實(shí)體及其聯(lián)繫數(shù)據(jù)操作——提供哪些數(shù)據(jù)操作手段,以讓用戶方便迅速地對(duì)數(shù)據(jù)進(jìn)行各種處理,關(guān)係方法提供的數(shù)據(jù)操作有選擇、投影、連接三種。數(shù)據(jù)約束——避免產(chǎn)生不相容數(shù)據(jù)的一種控制機(jī)制,有屬性約束、字段間約束和表間約束三種。2.1.2關(guān)係資料庫的基本特徵1.有堅(jiān)實(shí)的理論基礎(chǔ)2.數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、易於理解3.對(duì)用戶提供了較全面的操作支持4.得到了眾多開發(fā)商的支持5.視圖機(jī)制

E-R模型及其到關(guān)係模型的轉(zhuǎn)化

1.對(duì)實(shí)體的進(jìn)一步討論

(1)實(shí)體是能被相互區(qū)分的客觀對(duì)象。這種客觀對(duì)象可能是人、物等實(shí)際的對(duì)象,也可能是一個(gè)事件。如一個(gè)學(xué)生、一本書、一個(gè)學(xué)校、一輛車、一張發(fā)票等都是一個(gè)實(shí)體。(2)要注意實(shí)體集和實(shí)體的差別。某某學(xué)生是一個(gè)實(shí)體,而一個(gè)班、一個(gè)系、一個(gè)學(xué)校的學(xué)生組成一個(gè)實(shí)體集。在有些討論中,並未在字面上對(duì)其嚴(yán)格區(qū)分,但根據(jù)上下文應(yīng)能從概念上對(duì)其進(jìn)行區(qū)分。(3)實(shí)體有獨(dú)立實(shí)體和弱實(shí)體之分。

2.屬性

(1)簡(jiǎn)單屬性和複合屬性——不可進(jìn)一步分割的屬性稱為簡(jiǎn)單屬性,與此對(duì)應(yīng),由簡(jiǎn)單屬性組合成的屬性稱為複合屬性。

(2)單值屬性和多值屬性——如果實(shí)體集中的每一個(gè)實(shí)體在某個(gè)屬性上都只有惟一值,稱這樣的屬性為單值屬性(相反,如某個(gè)實(shí)體在一個(gè)屬性上有多個(gè)值,稱這樣的屬性為多值屬性。

(3)基本屬性和導(dǎo)出屬性

——完全獨(dú)立的屬性稱為基本屬性,依賴於其他屬性的屬性稱為導(dǎo)出屬性

(4)碼

——能完全區(qū)分該實(shí)體集中的每個(gè)實(shí)體的屬性(或?qū)傩越M合)稱為“碼”

3.聯(lián)繫

聯(lián)繫是實(shí)體間的一種關(guān)聯(lián)關(guān)係,即不同實(shí)體間的對(duì)應(yīng)關(guān)係。從參與聯(lián)繫的兩個(gè)實(shí)體集的數(shù)量關(guān)係來說,聯(lián)繫可分為1∶1,1∶n,m∶n等三種。對(duì)於m∶n的聯(lián)繫一般設(shè)置專門的關(guān)係表來表徵這種聯(lián)繫在1∶1,1∶m中,用一個(gè)外鍵來表徵這種聯(lián)繫4.E-R圖舉例

銷售存放供銷商產(chǎn)品倉庫員工零部件使用供應(yīng)生產(chǎn)屬於部門地址在在建立E-R模型的一個(gè)原則建立的E-R模型應(yīng)該反映所模擬對(duì)象的本質(zhì)(針對(duì)某一研究過程),原研究對(duì)象中與研究過程有關(guān)的一些特徵、過程都應(yīng)該從所建立的模型中得到反映並很容易地得到解答。如對(duì)於一個(gè)製造型企業(yè),下述問題是重要的:①

企業(yè)有那些產(chǎn)品、每種產(chǎn)品由那些零部件組成;②

每種零部件的當(dāng)前庫存數(shù)量;③

零部件供應(yīng)商及地址;在圖2-1所建立的模型中,對(duì)這些問題都能很容易獲得解答,如:實(shí)體類產(chǎn)品回答企業(yè)有哪些產(chǎn)品,產(chǎn)品類與零部件的聯(lián)繫回答了每種產(chǎn)品由哪些零部件組成。

2.2.2E-R模型到關(guān)係模型的轉(zhuǎn)化

1.獨(dú)立實(shí)體到關(guān)係模式的轉(zhuǎn)化

——一個(gè)獨(dú)立實(shí)體轉(zhuǎn)化為一個(gè)關(guān)係模式(即一張關(guān)係表),實(shí)體碼轉(zhuǎn)化為關(guān)係表的關(guān)鍵屬性、其他屬性轉(zhuǎn)化為關(guān)係表的屬性

2.弱實(shí)體到關(guān)係模式的轉(zhuǎn)化

——弱實(shí)體依賴於獨(dú)立實(shí)體,在進(jìn)行轉(zhuǎn)化時(shí),弱實(shí)體也轉(zhuǎn)化為一個(gè)關(guān)係表,弱實(shí)體與獨(dú)立實(shí)體間依賴關(guān)係通過定義約束關(guān)係來表示

3.

1∶1聯(lián)繫到關(guān)係模式的轉(zhuǎn)化

——在兩個(gè)實(shí)體關(guān)係表中各自增加一個(gè)外鍵即可

4.

1∶n聯(lián)繫到關(guān)係模式的轉(zhuǎn)化

——在n方(即1對(duì)多關(guān)係的多方)實(shí)體類型表中增加一個(gè)屬性,將對(duì)方的關(guān)鍵字作為外來碼處理5.

m∶n聯(lián)繫到關(guān)係模式的轉(zhuǎn)化——單獨(dú)建立一個(gè)關(guān)係表,分別用兩個(gè)實(shí)體的碼作為外鍵6.多元聯(lián)繫到關(guān)係模式的轉(zhuǎn)化——所謂多元聯(lián)繫,即是說該聯(lián)繫涉及兩個(gè)以上的實(shí)體。如一個(gè)課程表,涉及了班級(jí)、課程、教室、教師等四個(gè)實(shí)體。轉(zhuǎn)化時(shí),應(yīng)建立一個(gè)單獨(dú)的關(guān)係表,將該聯(lián)繫所涉及的全部實(shí)體的碼作為該關(guān)係表的外鍵,再加上適當(dāng)?shù)钠渌麑傩裕赫n表(班號(hào),課程號(hào),教師號(hào),教室號(hào),周次)7.自聯(lián)繫到關(guān)係模式的轉(zhuǎn)化——分清兩部分實(shí)體在聯(lián)繫中的身份,按普通二元關(guān)係處理

2.3關(guān)係模式的規(guī)範(fàn)化

2.3.1函數(shù)依賴概述

定義1設(shè)R=R(A1,A2,…,An)是一個(gè)關(guān)係模式(A1,A2,…,An是R的屬性),X∈(A1,A2,…,An),Y∈(A1,A2,…,An),T1,T2是R的兩個(gè)任意元組,即T1=T1(A1,A2,…,An),T2=T2(A1,A2,…,An),如果,當(dāng):T1(X)=T2(X)成立時(shí),總有:T1(Y)=T2(Y)稱X決定Y,或稱Y函數(shù)依賴於X。記為:X→Y。

定義2R,X,Y如定義1所設(shè),如果X→Y成立,但對(duì)X的任意真子集X1,都有X1→Y不成立,稱Y完全函數(shù)依賴於X,否則,稱Y部分函數(shù)依賴於X。所謂完全依賴是說明在依賴關(guān)係的決定項(xiàng)(即依賴關(guān)係的左項(xiàng))中沒有多餘屬性,有多餘屬性就是部分依賴。

定義3

設(shè)X,Y,Z是關(guān)係模式R的不同屬性集,若:X→Y(並且Y→X不成立),Y→Z,稱X傳遞決定Z,或稱Z傳遞函數(shù)依賴於X。

定義1——定義3是判斷一個(gè)關(guān)係是否一個(gè)“好關(guān)係”的基礎(chǔ)2.3.2關(guān)係模式的規(guī)範(fàn)化

1.主屬性與非主屬性

定義4

設(shè)關(guān)係模式R(A1,A2,…,An),A1,A2…,An是R的屬性,X是R的一個(gè)屬性集,如果:①?X→(A1,A2…,An)②?對(duì)於X的任意真子集X1,X1—>(A1,A2,…,An)都不成立稱屬性集X是關(guān)係模式R的一個(gè)候選關(guān)鍵屬性。

習(xí)慣上把候選關(guān)鍵屬性稱為候選關(guān)鍵字,關(guān)鍵屬性稱為關(guān)鍵字

(2)主屬性和非主屬性一個(gè)關(guān)係模式R可能有多個(gè)候選關(guān)鍵屬性,而一個(gè)候選關(guān)鍵屬性又可能有多個(gè)屬性,這樣,R的所有屬性Ai(i=1,2,…,N)按是否屬於一個(gè)候選關(guān)鍵屬性被劃分為兩類:主屬性和非主屬性。定義5

設(shè)Ai是關(guān)係模式R的一個(gè)屬性,若Ai屬於R的某個(gè)候選關(guān)鍵屬性,稱Ai是R的主屬性,否則,稱Ai為非主屬性。應(yīng)該注意的是,一般說來,單個(gè)主屬性並不能作為候選關(guān)鍵屬性。

2.第一範(fàn)式

對(duì)關(guān)係模式的規(guī)範(fàn)化要求分成從低到高不同的層次,分別稱為第一範(fàn)式,第二範(fàn)式、第三範(fàn)式、Boyce-Codd範(fàn)式、第四範(fàn)式和第五範(fàn)式。定義6

當(dāng)關(guān)係模式R的所有屬性都不能分解為更基本的數(shù)據(jù)單位時(shí),稱R是滿足第一範(fàn)式的,簡(jiǎn)記為1NF。

3.第二範(fàn)式定義7

如果關(guān)係模式R滿足第一範(fàn)式,並且R的所有非主屬性都完全依賴於R的每一個(gè)候選關(guān)鍵屬性,稱R滿足第二範(fàn)式,簡(jiǎn)記為2NF。

設(shè)R=R(讀者編號(hào),工作單位,圖書編號(hào),借閱日期,歸還日期)——滿足第一範(fàn)式,屬性集(讀者編號(hào),圖書編號(hào))是R的一個(gè)候選關(guān)鍵字,但非主屬性“工作單位”非完全依賴於“(讀者編號(hào),圖書編號(hào))”

R不滿足2NF4.第三範(fàn)式定義8

設(shè)R是一個(gè)滿足第一範(fàn)式條件的關(guān)係模式,X是R的任意屬性集,如果X非傳遞依賴於R的任一個(gè)候選關(guān)鍵字,稱R滿足第三範(fàn)式,簡(jiǎn)記為3NF。由候選關(guān)鍵字的定義,R的任何屬性X肯定是函數(shù)依賴於R的每一個(gè)候選關(guān)鍵字的,這裏假設(shè)的條件只是這種依賴關(guān)係應(yīng)該是“非傳遞”的,換句話說,在R中沒有哪個(gè)屬性充當(dāng)了這種函數(shù)依賴關(guān)係的傳遞角色,因而,在3NF中,關(guān)係模式R的任何非主屬性對(duì)候選關(guān)鍵字的依賴都是直接的,從而非主屬性間不存在函數(shù)依賴關(guān)係,非主屬性和候選關(guān)鍵字的部分屬性間也沒有函數(shù)依賴關(guān)係(這後面的一點(diǎn)限制也保證了符合第三範(fàn)式的關(guān)係模式一定符合第二範(fàn)式)。

關(guān)於3NF,有一個(gè)重要結(jié)論,我們對(duì)這個(gè)結(jié)論只敘述而不進(jìn)行形式證明。定理若關(guān)係模式R符合3NF條件,則R一定符合2NF條件

5.

BCNF

定義9

設(shè)R是一個(gè)關(guān)係模式,若R的每一個(gè)函數(shù)依賴關(guān)係的左部都是R的一個(gè)候選關(guān)鍵字,稱R滿足Boyce-Codd規(guī)範(fàn),簡(jiǎn)記為BCNF??梢宰C明,BCNF是比3NF更強(qiáng)的規(guī)範(fàn)(證明略),即符合BCNF條件的關(guān)係模式一定符合3NF條件,但反過來卻不成立。儘管在很多情況下,3NF也就是BCNF,但是,二者是不等價(jià)的,可以設(shè)計(jì)出符合3NF而不符合BCNF的關(guān)係實(shí)例。

2.3.3關(guān)係模式的分解

1.關(guān)係模式分解的一般問題符合了3NF(或BCNF)規(guī)範(fàn)標(biāo)準(zhǔn)的關(guān)係模式,就會(huì)有比較好的性質(zhì),不會(huì)出現(xiàn)數(shù)據(jù)冗餘、不一致或插入、刪除異常等情況,但是,在實(shí)際應(yīng)用過程中,所建立的許多關(guān)係並不符合3NF,這就出現(xiàn)將一個(gè)不滿足3NF條件的關(guān)係模式改造為符合3NF模式的要求,這種改造的方法就是對(duì)原有關(guān)係模式進(jìn)行分解

所謂關(guān)係模式的分解,就是對(duì)原有關(guān)係在不同的屬性上進(jìn)行投影,從而將原有關(guān)係分解為兩個(gè)或兩個(gè)以上的含有較少屬性的多個(gè)關(guān)係

引例:設(shè)R=(員工號(hào),姓名,部門,月份,月度獎(jiǎng))關(guān)鍵屬性(員工號(hào),月份),R中的非主屬性“姓名”和“部門”都只部分依賴於關(guān)鍵屬性中的“員工號(hào)屬性,因此R不符合2NF,將R分解為兩個(gè)關(guān)係:R1=(員工號(hào),姓名,部門)R2=(員工號(hào),月份,月度獎(jiǎng))R1、R2符合3NF,並且R1、R2經(jīng)過連接運(yùn)算可得到R無損分解Heath定理

設(shè)關(guān)係模式R(A,B,C),A,B,C是R的屬性集。如果:

A→B並且A→C則:R和投影(A,B),(A,C)的連接等價(jià)。Heath定理告訴我們,只要將關(guān)係R的某個(gè)候選關(guān)鍵字分解到每個(gè)子關(guān)係中,就會(huì)同時(shí)保持稱為連接不失真和依賴不失真。

2.

3NF分解

任何關(guān)係都可以無損地分解為多個(gè)3NF關(guān)係:(1)如果R不滿足1NF標(biāo)準(zhǔn),先對(duì)其屬性進(jìn)行分解,使其滿足1NF

(2)R符合1NF標(biāo)準(zhǔn)但不符和2NF標(biāo)準(zhǔn)時(shí),分解R使其滿足2NF

,分解步驟如下:R=(S1,S2,X1,X2)PrimaryKey(S1,S2)/*(S1,S2)作為關(guān)鍵字S1→X1/*X1部分函數(shù)依賴於R的候選關(guān)鍵字(S1,S2)對(duì)R分解成R1和R2:R1=(S1,S2,X2)PrimaryKey(S1,S2)/*R1以(S1,S2)作為關(guān)鍵字R2=(S1,X1)PrimaryKey(S1)/*R2以S1作為關(guān)鍵字這樣的分解是無損的,如果R1,R2還不滿足2NF標(biāo)準(zhǔn),可以繼續(xù)上述分解過程,直到每個(gè)分解後的關(guān)係模式都滿足要求為止

2.4資料庫的完整性與安全性

資料庫的完整性是指存儲(chǔ)在資料庫中的數(shù)據(jù)應(yīng)該正確、彼此相容、安全,因而資料庫系統(tǒng)應(yīng)該對(duì)每一組操作過程進(jìn)行審查,防止破壞相容性的數(shù)據(jù)被寫入資料庫系統(tǒng);而安全性是指防止人們對(duì)數(shù)據(jù)有意無意的破壞,因而系統(tǒng)應(yīng)該提供一種訪問控制機(jī)制,防止無權(quán)者進(jìn)入系統(tǒng)和有權(quán)者超許可權(quán)訪問資料庫。

數(shù)據(jù)是否完整與正確,系統(tǒng)是根據(jù)一組規(guī)則來進(jìn)行判斷的。符合這一組規(guī)則的數(shù)據(jù)就是相容的,否則就是不相容的。

相容性規(guī)則稱為數(shù)據(jù)的約束,一組操作所引起的數(shù)據(jù)更新如果破壞了數(shù)據(jù)約束,系統(tǒng)就會(huì)拒絕。

2.4.1關(guān)係模式的約束

1、屬性約束單個(gè)屬性的取值範(fàn)圍

2、元組(數(shù)據(jù)表)約束屬性間的邏輯關(guān)係約束3、資料庫(表間)約束數(shù)據(jù)表間的邏輯關(guān)係約束

2.4.2數(shù)據(jù)恢復(fù)與併發(fā)控制

1、事務(wù)及其特徵:事務(wù),就是一組不可分割的操作原子性

——組成事務(wù)的全部操作要麼全做,要麼全不做

一致性

——資料庫系統(tǒng)由上一個(gè)一致性狀態(tài)經(jīng)一個(gè)事務(wù)轉(zhuǎn)化為下一個(gè)一致性狀態(tài)

隔離性

——事務(wù)間是相互隔離的。當(dāng)有T1和T2兩個(gè)事務(wù)同時(shí)作用於一個(gè)資料庫時(shí),要麼T1先進(jìn)行完,要麼T2先進(jìn)行完,對(duì)數(shù)據(jù)庫的訪問在事務(wù)級(jí)上該是串行的,兩者隔離,相互不干擾。持久性——事務(wù)對(duì)數(shù)據(jù)庫的作用效果是持久的,一旦完成,其操作結(jié)果將永久有效

2.事務(wù)恢復(fù)

事務(wù)恢復(fù)指撤銷一個(gè)已經(jīng)開始但因某種原因尚未完成的事務(wù),使資料庫恢復(fù)到事務(wù)開始前的狀態(tài),事務(wù)恢復(fù)並不是撤銷一個(gè)已經(jīng)完成的事務(wù)。從資料庫的設(shè)計(jì)者角度,事務(wù)並非原子的,一個(gè)事務(wù)所包括的許多操作步只能一一分步進(jìn)行,當(dāng)執(zhí)行到中間過程時(shí)倘因某種原因而不能完成後續(xù)操作,就應(yīng)該撤銷業(yè)已進(jìn)行了的工作,以保證事務(wù)的原子特性。

現(xiàn)代資料庫系統(tǒng)對(duì)數(shù)據(jù)的修改一般是分兩步進(jìn)行的:首先將修改的所有操作都放在了一個(gè)臨時(shí)表中,第二步將這種修改提交(COMMIT)到正式的資料庫中,一個(gè)事務(wù)提交一次,發(fā)佈提交命令的地方稱為提交點(diǎn)。所以,事務(wù)是兩個(gè)提交點(diǎn)之間的操作序列

3.介質(zhì)恢復(fù)

介質(zhì)恢復(fù)的基本思想是進(jìn)行系統(tǒng)備份,比如每天備份一次,當(dāng)資料庫系統(tǒng)遇上什麼不能恢復(fù)的故障時(shí),用備份系統(tǒng)恢復(fù)當(dāng)前系統(tǒng)。當(dāng)然,採用介質(zhì)備份是有代價(jià)的,一般說來,介質(zhì)備份不能恢復(fù)到最新狀態(tài)

4.併發(fā)控制

當(dāng)兩個(gè)以上的事務(wù)同時(shí)存儲(chǔ)一個(gè)資料庫時(shí),可能會(huì)發(fā)生三種問題。(1)丟失更新(2)未提交依賴問題(3)不一致分析解決上述問題的基本策略是進(jìn)行數(shù)據(jù)封鎖,即在進(jìn)行數(shù)據(jù)更新(或數(shù)據(jù)統(tǒng)計(jì)分析)時(shí)封鎖記錄(或整個(gè)數(shù)據(jù)表),使其他事務(wù)在記錄封鎖期間無法訪問該記錄

2.4.3安全性

資料庫系統(tǒng)的安全性是靠訪問控制來實(shí)現(xiàn)的

訪問許可權(quán)分配表

B1數(shù)據(jù)表B2數(shù)據(jù)表B3數(shù)據(jù)表A1用戶流覽更新更新A2用戶更新流覽A1用戶可以流覽B1數(shù)據(jù)表、並可以對(duì)B2、B3數(shù)據(jù)表實(shí)施更新操作;A2用戶可以更新B1數(shù)據(jù)表、並流覽B2數(shù)據(jù)表,但對(duì)B3數(shù)據(jù)表無訪問許可權(quán)2.4.4數(shù)據(jù)字典

現(xiàn)代的資料庫應(yīng)用系統(tǒng)一般都非常龐大,管理的數(shù)據(jù)對(duì)象眾多,這些數(shù)據(jù)又成為了管理對(duì)象,數(shù)據(jù)字典就是以管理資料庫對(duì)象為目的的一種輔助工具,它可以幫助開發(fā)者井井有條的管理自己的各種數(shù)據(jù)表、視圖、資料庫等數(shù)據(jù)對(duì)象,並幫助形成各種交流文檔。數(shù)據(jù)字典是應(yīng)用開發(fā)的一種有力工具。數(shù)據(jù)字典的數(shù)據(jù)是由系統(tǒng)自動(dòng)建立和維護(hù)的,也就是說:當(dāng)用戶建立了一個(gè)新的數(shù)據(jù)對(duì)象時(shí),數(shù)據(jù)字典中將自動(dòng)插入有關(guān)該對(duì)象的數(shù)據(jù),當(dāng)用戶修改了或刪除了該對(duì)象時(shí),系統(tǒng)也會(huì)自動(dòng)地將這種修改與刪除及時(shí)反映到數(shù)據(jù)字典中

1.資料庫對(duì)象及數(shù)據(jù)字典的基本內(nèi)容

(1)數(shù)據(jù)表①

字段

字段名、字段約束、字段訪問許可權(quán)分配。②

元組

元組約束,插入規(guī)則、刪除規(guī)則、更新規(guī)則。③

索引

關(guān)於表的索引字段和索引方式說明。④

數(shù)據(jù)表的說明,表的訪問許可權(quán)分配(2)數(shù)據(jù)視圖①

字段

字段來源;②

元組

元組的篩選和連接規(guī)則;③

視圖

視圖的說明。(3)資料庫①

表間約束;②

表的存儲(chǔ)空間說明;③

用戶關(guān)於資料庫的用戶情況說明。2.數(shù)據(jù)字典的作用(1)方便開發(fā)人員編寫調(diào)試系統(tǒng)

(2)便於開發(fā)交流,方便開發(fā)過程管理

(3)方便系統(tǒng)移交

2.5資料庫設(shè)計(jì)的一般過程

2.5.1需求分析

1.調(diào)研分析、確認(rèn)設(shè)計(jì)邊界

2.整理資料,初步確定目標(biāo)系統(tǒng)的功能和數(shù)據(jù)結(jié)構(gòu)

3.編寫需求分析報(bào)告2.5.2關(guān)係資料庫的概念設(shè)計(jì)

1.確定設(shè)計(jì)任務(wù)2.選定設(shè)計(jì)工具

3.確定面向用戶的數(shù)據(jù)子模式

4.確定面向全局的概念模式

2.5.3關(guān)係資料庫的邏輯設(shè)計(jì)

1、表的結(jié)構(gòu)定義2.定義表的約束3.定義數(shù)據(jù)的各種操作

3.1SQL基礎(chǔ)SQL是關(guān)係型資料庫管理系統(tǒng)的標(biāo)準(zhǔn)語言??梢杂脕韴?zhí)行各種各樣的操作。當(dāng)用戶需要處理資料庫中的數(shù)據(jù)時(shí),就可以通過SQL語言發(fā)出請(qǐng)求,資料庫對(duì)SQL請(qǐng)求進(jìn)行處理,並將處理的結(jié)果其返回給用戶。電腦系統(tǒng)SQL請(qǐng)求資料庫管理系統(tǒng)資料庫數(shù)據(jù)SQL是一種能夠控制資料庫管理系統(tǒng)並能與之交互的綜合性語言劃分為如下幾類:1.?數(shù)據(jù)定義(Datadefinition)語言用於定義被存放的數(shù)據(jù)的結(jié)構(gòu)和組織,以及資料項(xiàng)目之間的關(guān)係;2.?數(shù)據(jù)檢索(Dataretrieval)語言用戶或應(yīng)用程式通過SQL語言從資料庫中檢索到並能使用符合條件的數(shù)據(jù);3.?數(shù)據(jù)操作(Datamanipulation)語言用戶或應(yīng)用程式通過SQL語言更改資料庫,增加新數(shù)據(jù)、刪除舊數(shù)據(jù)、修改已有數(shù)據(jù);4.?數(shù)據(jù)控制(Datacontrol)語言用戶或應(yīng)用程式通過SQL語言控制其對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作。3.1.2SQL語句語

句說

明語

句說

明數(shù)

據(jù)

理SELECT檢索資料庫中的數(shù)據(jù)INSERT插入新的數(shù)據(jù)行DELETE刪除數(shù)據(jù)行UPDATE修改數(shù)據(jù)數(shù)

據(jù)

義CREATETABLE建立一個(gè)新表DROPTABLE*刪除一個(gè)表ALTERTABLE*修改一個(gè)表的結(jié)構(gòu)CREATEVIEW建立一個(gè)視圖DROPVIEW*刪除一個(gè)視圖CREATEINDEX*建立一個(gè)索引DROPINDEX*刪除一個(gè)索引存

儲(chǔ)

制GRANT授予用戶存取許可權(quán)REVOKE取消用戶存取許可權(quán)事

制COMMIT提交事務(wù)ROLLBACK回滾事務(wù)編

SQLDECLARE定義一個(gè)查詢游標(biāo)OPEN打開查詢數(shù)據(jù)的游標(biāo)FETCH檢索查詢結(jié)果的一行CLOSE關(guān)閉游標(biāo)帶*號(hào)的不是ANSI/ISOSQL1標(biāo)準(zhǔn)的內(nèi)容。3.1.3標(biāo)量操作符算術(shù)運(yùn)算符有:+(加)、-(減)、*(乘)、/(除)、%(取模)。。比較運(yùn)算符有:<、>、=、>=、<=、<>。字串運(yùn)算符有:+?!?”實(shí)現(xiàn)字串之間和連接操作。。布爾操作符有:NOT、AND、OR。布爾操作符在資料庫中有兩個(gè)不同的約定,取決於其是應(yīng)用於位串還是用於其他數(shù)據(jù)類型。操作符NOT、AND和OR應(yīng)用於所有數(shù)據(jù)類型。位運(yùn)算符有:&(與)、|(或)、^(異或)、~(求反)。3.1.4謂詞謂詞定義應(yīng)用於表中行的邏輯條件。SQL語言支持下列關(guān)係操作符:BETWEEN操作符IN操作符LIKE操作符ULL操作符ALL和ANY操作符EXISTS函數(shù)3.1.5集合函數(shù)函數(shù)說明AVG(expr)一列中值的平均值。列中只能包含數(shù)值型數(shù)據(jù)COUNT(expr),COUNT(*)一列中的值數(shù)(如果將一個(gè)列名指定為expr)或表中的行數(shù)或組中的行值(如果指定*)。COUNT(expr)忽略空值,但COUNT(*)在計(jì)數(shù)中包含它們MAX(expr)列中的最大值(文本數(shù)據(jù)類型按字母順序排在最後的)。忽略空值MIN(expr)列中的最小值(文本數(shù)據(jù)類型按字母順序排在最前的)。忽略空值SUM(expr)列中值的合計(jì)。列中只能包含數(shù)值型數(shù)據(jù)3.1.6數(shù)量函數(shù)函

數(shù)說

明ABS(n)返回?cái)?shù)值運(yùn)算式中n的絕對(duì)值(即負(fù)值返回的是正值)COS(n)計(jì)算n的余弦值。n以及結(jié)果值為FLOAT數(shù)據(jù)類型EXP(n)計(jì)算en

的值LOG(n)計(jì)算n的自然對(duì)數(shù)值(即以e為底)POWER(X,Y)計(jì)算XY值SIN(n)計(jì)算n的正弦值。n以及返回的結(jié)果值為FLOAT數(shù)據(jù)類型SQRT(n)計(jì)算n的平方根TAN(n)計(jì)算n的正切值。n以及結(jié)果值為FLOAT數(shù)據(jù)類型1數(shù)值函數(shù)2日期函數(shù)函

數(shù)說

明DATEDIFF(item,dat1,dat2)計(jì)算兩個(gè)日期dat1和dat2之差,並以值item指定的單位作為整數(shù)返回結(jié)果DATEADD(item,number,date)添加item指定的單位的數(shù)字number到指定的日期date中3字串函數(shù)函

數(shù)說

明LOWER(Z1)將串Z1的所有大寫字母變?yōu)樾懽帜?。原來小寫的字母和?shù)字及其他字元不變RIGHT(Z,length)返回串Z中的最後Length個(gè)字元SPACE(length)返回含有由length指定的長度的空格的串SUBSTRING(Z,a,Length)創(chuàng)建串Z中從位置a開始的部分字串,長度為Length3.1.7空值空值(NULL)是指定給列的特殊值??罩抵噶兄械馁Y訊未知或不可用。在布爾操作AND、OR和NOT中,空值是由下列真值表而指定。ANDTRUEFALSENULLTRUETRUEFALSENULLFALSEFALSEFALSEFALSENULLNULLFALSENULLAND運(yùn)算真值表

ORTRUEFALSENULLTRUETRUETRUETRUEFALSETRUEFALSENULLNULLTRUENULLNULLNOTTRUEFALSENULLFALSETRUENULLOR運(yùn)算真值表

NOT運(yùn)算真值表

3.2SQL數(shù)據(jù)定義語言本節(jié)介紹有關(guān)數(shù)據(jù)定義語言(DDL)的所有SQL語言語句,DDL語句分為三組:第一組包括創(chuàng)建對(duì)象的語句;第二組包括修改對(duì)象的語句;第三組包括刪除對(duì)象的語句。3.2.1創(chuàng)建資料庫對(duì)象一個(gè)資料庫包含許多不同的對(duì)象。資料庫的所有對(duì)象可以是物理的或邏輯的。物理對(duì)象與數(shù)據(jù)在物理設(shè)備(盤)上的組織有關(guān),邏輯對(duì)象描述資料庫的用戶視圖。資料庫、表、列和視圖(虛擬表)是邏輯對(duì)象的例子。3.2.2資料庫的創(chuàng)建資料庫的創(chuàng)建語句(CREATEDATABASE)的一般形式為:CREATEDATABASE資料庫名[ON[PRIMARY]資料庫檔1{,資料庫檔2}...][LOGON資料庫檔3{,資料庫檔4}...][FORRESTORE]理想的情況下,只有有限的用戶被授權(quán)可創(chuàng)建資料庫。系統(tǒng)安裝之後,只有系統(tǒng)管理員有這個(gè)特權(quán)。系統(tǒng)管理員可以通過GRANTCREATEDATABASE語句將這個(gè)特權(quán)授給其他用戶。資料庫的創(chuàng)建者稱為該資料庫的所有者,並對(duì)數(shù)據(jù)庫和其對(duì)象有特殊的權(quán)利。3.2.3基本表的創(chuàng)建基本表的創(chuàng)建語句(CREATETABLE)在當(dāng)前打開的資料庫中創(chuàng)建一個(gè)新數(shù)據(jù)表。語句的基本形式為:CREATETABLE表名[字段1類型1[NOTNULL/NULL][{,字段2類型2[NOTNULL/NULL]}...]]table_name是所創(chuàng)建的數(shù)據(jù)表的名字。Col_name1,Col_name2,...是表中列的名。Type1,Type2...是相應(yīng)列的數(shù)據(jù)類型(。表名字與擁有者名一起在資料庫中必須是唯一的,同樣,列名字在表中也必須是唯一的。如果說明為NOTNULL,則列中不允許分配空值資料庫創(chuàng)建之後,在資料庫中創(chuàng)建表的特權(quán)授給系統(tǒng)管理員和數(shù)據(jù)庫擁有者。SQL的數(shù)據(jù)類型TypeWidthnPrecision說

明CHARN—寬度為n的字元字段INTEGER——整型D——日期型T——日期時(shí)間型NNd寬度為n、有d位小數(shù)的數(shù)值型字段FNd寬度為n、有d位小數(shù)的浮點(diǎn)數(shù)值型字段B—d雙精度型Y——貨幣型L——邏輯型MEMO——備註型G——通用型3.2.4修改數(shù)據(jù)表結(jié)構(gòu)修改數(shù)據(jù)表結(jié)構(gòu)語句(ALTERTABLE)有下列基本形式:ALTERTABLE表名;ADD字段類型[NULL|IDENTITY][,字段類型[NULL|IDENTITY];ALTERCOLUMN字段類型{NULL|IDENTITY}[{,Col_nameTypeNULL|IDENTITY}...]3.2.5刪除資料庫對(duì)象刪除資料庫對(duì)象語句的形式:DROPDATABASE資料庫1{,資料庫2...}可以刪除一個(gè)或多個(gè)數(shù)據(jù)庫。這意味著資料庫DBMS系統(tǒng)中刪除,構(gòu)成該資料庫所用的全部操作系統(tǒng)檔都被刪除。使用下列語句可以從資料庫中刪除一個(gè)或多個(gè)表:DROPTABLE表名1{,表名2...}3.3簡(jiǎn)單SQL數(shù)據(jù)查詢語言3.3.1SELECT語句的基本形式查詢是SQL語言的核心。用於表達(dá)SQL查詢的SELECT語句是功能最強(qiáng),也是功能最複雜的SQL語句。使用這個(gè)語句使從資料庫(甚至從多個(gè)數(shù)據(jù)庫)的一個(gè)或多個(gè)表中查詢資訊成為可能。SELECT語句執(zhí)行的結(jié)果是產(chǎn)生符合條件的所有數(shù)據(jù)記錄的另一個(gè)表,也稱為結(jié)果集。一個(gè)完整的SELECT語句包括6個(gè)子句。①?SELECT子句列出所有要求SELECT語句檢索的資料項(xiàng)目;②?FROM子句列出包含索要查詢數(shù)據(jù)的表;③?WHERE子句提供SQL只查詢某些行的數(shù)據(jù),也就是執(zhí)行查詢的條件;④?GROUPBY用以制定匯總查詢,即不是對(duì)每一行產(chǎn)生一個(gè)查詢結(jié)果,而是將相似的行進(jìn)行分組,再對(duì)每一組產(chǎn)生一個(gè)匯總結(jié)果;⑤?HAVING子句告訴SQL只產(chǎn)生由GROUPBY得到的某些組的結(jié)果;⑥?ORDERBY子句將查詢結(jié)果按照一列或多列中的數(shù)據(jù)排序。SELECT語句最簡(jiǎn)單的形式包含SELECT和FROM子句。這種形式的SELECT語句格式是:SELECT[ALL|DISTINCT]字段列表FROM表名[表別名][{,tab_alias2}]...]tab_1,tab_2,...是被檢索的表名。tab_alias1,tab_alias2,...是被檢索表的別名。別名是相應(yīng)表的另一個(gè)名字,它可以用簡(jiǎn)短的方式引用表,或用作引用同一物理表的兩個(gè)邏輯實(shí)例。column_list包含下列一個(gè)或多個(gè)說明。星號(hào)(*)表示在FROM子句中指定表的全部列。3.3.2WHERE子句WHERE子句就是用來指定這些查詢條件的,主要可以分為如下幾類:①?比較條件

通過比較兩個(gè)運(yùn)算式的值,選取使比較運(yùn)算式成立的數(shù)據(jù)行。②?範(fàn)圍條件

判斷一個(gè)運(yùn)算式的值是否落在某一個(gè)指定的範(fàn)圍內(nèi),選取落在範(fàn)圍內(nèi)的數(shù)據(jù)行。③?組屬條件

判斷一個(gè)運(yùn)算式的值是否落在某一組指定的組內(nèi),選取屬於這一組內(nèi)的數(shù)據(jù)行。④?模式匹配條件

判斷一個(gè)包含字串的數(shù)據(jù)列的值是否匹配某一指定的模式,選取於模式相匹配的數(shù)據(jù)行。⑤?空值條件

判斷某個(gè)列是否有空值,選取為空值或不為空值的數(shù)據(jù)行。WHERE子句條件可以包含單個(gè)條件或多個(gè)條件。多個(gè)條件可以使用布爾操作符AND、OR和NOT建立。涉及NULL值的查詢,為檢索列中有NULL值的行,SQL包括操作符IS[NOT]NULL。LIKE是將列值與特定模式相比較的操作符,一般形式為:COLUMN[NOT]LIKE'模式'模式中的通配符有特殊的解釋。其中的兩個(gè)為百分號(hào)(%)表示任意零個(gè)或多個(gè)字元序列,下劃線(_)表示任意單個(gè)字元。3.3.3GROUPBY子句GROUPBY子句將一列或多列具有相同列值的行定義為一組,按組輸出查詢結(jié)果。3.3.4集合函數(shù)SQL語言支持5個(gè)集合函數(shù):MIN、MAX、SUM、AVG、COUNT。集合函數(shù)MIN和MAX分別計(jì)算列中的最小值和最大值。如果有WHERE子句,MIN和MAX函數(shù)返回所選行的最大值和最小值。集合函數(shù)SUM計(jì)算列中值的總和,SUM函數(shù)的參數(shù)必須是數(shù)值型的。集合函數(shù)AVG計(jì)算列中所有值的平均值,AVG函數(shù)的參數(shù)必須是數(shù)字型的。集合函數(shù)COUNT,COUNT([DISTINCT]列名)計(jì)算指定列Col_name中非空值的個(gè)數(shù);COUNT(*)計(jì)算表中的行數(shù),或WHERE條件為真的行數(shù)。3.3.5HAVING子句HAVING子句定義應(yīng)用到分組行中的條件,HAVING子句對(duì)分組行的意義與WHERE子句對(duì)每個(gè)行的意義是相同的。它的語法是:HAVING條件這裏條件包含集合函數(shù)或常量。WHERE和HAVING子句都是條件子句,但兩者在功能上是明顯不同的:HAVING子句則對(duì)結(jié)果組進(jìn)行選擇,使不滿足條件的結(jié)果行不出現(xiàn)在查詢結(jié)果中。此外,HAVING子句只能用在有GROUPBY(分組)子句查詢中。3.3.6ORDERBY子句ORDERBY子句定義查詢結(jié)果中行的特定順序。這個(gè)子句有下列語法:ORDERBY{[列名|列編號(hào)[ASC|DESC]]},...列名定義顯示順序,列編號(hào)是可選的說明,按SELECT列表中所有列的順序來標(biāo)識(shí)(1代表第1列,2代表第2列,等等)。ASC指明按昇冪排列,DESC指明按降序排列,缺省的為ASC。3.3.7簡(jiǎn)單子查詢SQL語句提供將列值與另一個(gè)SELECT語句結(jié)果比較的能力。嵌套在另一個(gè)SELECT語句的WHERE子句中的SELECT語句稱為子查詢,子查詢中的第一個(gè)SELECT語句通常稱為外查詢,相對(duì)應(yīng)的內(nèi)查詢指的是第二個(gè)SELECT語句。內(nèi)查詢總是首先計(jì)算,外查詢接受內(nèi)查詢的值。子查詢有兩種:簡(jiǎn)單子查詢、相關(guān)子查詢。簡(jiǎn)單子查詢中內(nèi)查詢一次計(jì)算出精確值,相關(guān)子查詢與簡(jiǎn)單子查詢區(qū)別在於其值由外查詢的變數(shù)決定。因此,相關(guān)子查詢的內(nèi)查詢每當(dāng)系統(tǒng)從外查詢檢索一個(gè)新行時(shí)都要進(jìn)行計(jì)算估值。3.4複雜SQL數(shù)據(jù)查詢語言SQL提供一種查詢方法,能將存儲(chǔ)於不同數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行連接查詢。在SELECT語句中的FROM子句指定要連接的表,表名後的字母稱為該表的別名,WHERE子句指定了需要連接的表的連接條件。連接條件不必一定使用等號(hào)。使用一般連接條件(也就是,使用其他比較操作符而不是等號(hào))的連接操作稱為比較連接。3.5SQL數(shù)據(jù)操作語言除了已在前面介紹的SELECT語句之外,還有另外三個(gè)DML語句:INSERT,UPDATE和DELETE。像SELECT語句那樣,三個(gè)修改語句或是對(duì)表進(jìn)行操作或是對(duì)視圖進(jìn)行操作。3.5.1INSERT語句INSERT語句將行(或行的部分)插入表中。它有兩種不同的形式:INSERTINTO表名[(字段1[,字段2,...])];VALUES(運(yùn)算式1[,運(yùn)算式2,...])INSERTINTO表名FROMARRAY數(shù)組名|FROMMEMVAR使用第一種形式,將一行(或行的部分)插入到表tab_name或視圖view_name的基表中;第二種形式的INSERT語句插入來自SELECT語句或來自使用EXECUTE語句執(zhí)行的存儲(chǔ)過程的結(jié)果集(存儲(chǔ)過程必須返回?cái)?shù)據(jù),然後將數(shù)據(jù)插入表中),SELECT語句可以將來自不同或相同表的值作為INSERT語句的目標(biāo),只要這些列的類型相相容即可。3.5.2UPDATE語句UPDATE語句修改表中行的值,它的一般形式為UPDATE表名|視圖名;SET字段1=運(yùn)算式2[{字段2=運(yùn)算式2}...][FROM表名1|視圖1[{表名2|視圖2}...]][WHERE條件]表名中的行(或與視圖名有關(guān)的表中的行)按照WHERE子句的條件修改。對(duì)於每個(gè)要修改的行,UPDATE語句在SET子句中修改列的值,為相關(guān)的列賦給常量(或一般運(yùn)算式)。如果WHERE子句省略,UPDATE語句修改表的全部行。注:UPDATE語句只能修改一個(gè)表的數(shù)據(jù)。3.5.3DELETE語句DELETE語句刪除表中的行。語句格式:DELETEFROM[資料庫名]表名[WHERE條件]滿足WHERE子句中條件的所有行都將被做刪除標(biāo)記。在DELETE語句中不允許明確地命名列,因?yàn)檫m當(dāng)行的所有列都將被刪除。DELETE語句中的WHERE子句可以包含子查詢。3.6SQL數(shù)據(jù)控制語言在各種大型DBMS中,只有授權(quán)的用戶才可以登錄資料庫系統(tǒng)並在一個(gè)對(duì)象上執(zhí)行相應(yīng)操作;否則,SQL語言中語句的執(zhí)行或資料庫對(duì)象上的操作將被拒絕。本節(jié)討論的內(nèi)容不專門針對(duì)VFP,其中大部分命令在VFP中不能使用。有兩組許可權(quán)控制一個(gè)用戶的活動(dòng):語句許可權(quán)和對(duì)象許可權(quán)。3.6.1語句許可權(quán)與GRANT語句GRANT語句為DBMS用戶授予許可權(quán),它對(duì)語句許可權(quán)的語法是:GRANT{ALL|語句列表}TO帳戶列表語句列表指定要授予許可權(quán)的一個(gè)或多個(gè)語句(使用逗號(hào)分開),帳戶列表列出要授予許可權(quán)的全部帳號(hào)(由逗號(hào)分開)。帳戶列表的成員可以是資料庫用戶名或角色。ALL指定授予存在的全部語句許可權(quán)。3.6.2對(duì)象許可權(quán)與GRANT語句對(duì)象許可權(quán)應(yīng)用於資料庫對(duì)象(表、視圖和存儲(chǔ)過程)上的特定操作。GRANT語句對(duì)對(duì)象許可權(quán)的語法是:GRANT{ALL|許可權(quán)列表};ON{表名[字段列表]|過程名};TO帳戶列表[WITHGRANTOPTION][AS{組名|角色名}]ALL和帳戶列表與第一種形式的GRANT語句中同名選項(xiàng)有相同的含義,表名可以是表或視圖的名字;AS指定具有執(zhí)行GRANT語句需要的帳號(hào)的名字(當(dāng)執(zhí)行GRANT語句的用戶屬於多個(gè)組或角色時(shí),必須有AS參數(shù));許可權(quán)列表是操作許可權(quán)的列表。對(duì)象許可權(quán)列表權(quán)限描述SELECT提供選擇(讀)數(shù)據(jù)行的能力。可以提供列表限制這個(gè)許可權(quán)到一行或多個(gè)行(如果省略列表,該表的全部列可以被選擇)INSERT提供插入數(shù)據(jù)行的能力UPDATE提供修改列值的能力??梢蕴峁┝斜硐拗七@個(gè)許可權(quán)到一行或多個(gè)行(如果省略列表,該表的全部列可以被修改)DELETE提供刪除數(shù)據(jù)行的能力REFERENCES當(dāng)用戶沒有引用表的SELECT許可權(quán)時(shí),提供引用引用表中外部關(guān)鍵字的列的能力EXECUTE提供執(zhí)行指定存儲(chǔ)過程的能力3.6.3REVOKE語句REVOKE語句刪除一個(gè)或多個(gè)已經(jīng)授予(或拒絕)的許可權(quán)。這個(gè)語句可以用於語句許可權(quán)和對(duì)象許可權(quán),所以有兩個(gè)語法形式:(1)?語句許可權(quán)REVOKE{ALL|語句列表}FROM帳戶列表(2)?對(duì)象許可權(quán)REVOKE[GRANTOPTIONFOR]{ALL[PRIVILEGES]|許可權(quán)列表};ON表名[字段列表]{TO|FROM}帳戶列表[CASCADE][AS{組名|角色名}]3.7視圖視圖是減少數(shù)據(jù)冗餘,方便用戶的一種重要工具?;碛渺睹枋鯠DL和DML語句?;戆嬖诒P上的數(shù)據(jù)。相反,視圖在物理上並不存在,也就是說,它們的內(nèi)容不存放在盤上。視圖是使用存放在系統(tǒng)目錄中的資訊從一個(gè)或多個(gè)表中派生出來的。這些資訊(包括視圖名和從基表中檢索行的方式)是與物理存儲(chǔ)的視圖有關(guān)的唯一資訊。因此,視圖稱為虛擬表。3.7.1視圖的創(chuàng)建、刪除和修改CREATEVIEW創(chuàng)建視圖。這個(gè)語句的一般形式是:CREATESQLVIEW視圖名[AS查詢語句]。視圖名是要建立的視圖名,查詢語句是指定從一個(gè)或多個(gè)表中檢索行和列的SELECT語句。DROPVIEW刪除視圖,命令格式:DROPVIEW視圖名,DROPVIEW語句刪除資料庫中指定視圖的定義,但並未刪除與之相關(guān)的基表。3.7.2視圖數(shù)據(jù)的操作如前所述,可以使用與檢索和修改基表相同的SQL語句對(duì)視圖進(jìn)行檢索和修改。視圖的查詢(SELECT語句)總是轉(zhuǎn)換為與它所依賴的基礎(chǔ)表的等價(jià)查詢??梢园岩晥D作為基表一樣使用INSERT語句。當(dāng)視圖用於插入行時(shí),行實(shí)際上是插入到基表中。也可以把視圖作為基表一樣使用UPDATE語句。當(dāng)視圖用於修改行時(shí),基表的內(nèi)容實(shí)際上被修改了。與修改操作一樣,刪除操作既可以針對(duì)基表進(jìn)行,也可以針對(duì)視圖進(jìn)行。3.8典型關(guān)係資料庫中的SQL語言O(shè)racle中的SQL語言。Oracle資料庫語言是標(biāo)準(zhǔn)的SQL,可在用戶友好介面(UFI)也就是SQL*Plus的支持下實(shí)現(xiàn)所有的SQL語言具有的功能。SQLServer中的SQL語言。SQLServer的關(guān)係語言稱為Transact-SQL,它是當(dāng)今最重要的資料庫語言SQL的變種。VFP中的SQL語言。由於VFP是從一個(gè)基於微型機(jī)的小型資料庫系統(tǒng)發(fā)展過來的,它的資料庫系統(tǒng)中在採用SQL標(biāo)準(zhǔn)的基礎(chǔ)上做出了相應(yīng)的改變。4.1VFP系統(tǒng)概述

4.1.1VFP的發(fā)展4.1.2VFP的新功能4.1.3VFP的安裝4.1.4VFP的啟動(dòng)和退出4.2VFP的用戶介面4.3VFP操作簡(jiǎn)述4.3.1VFP操作方式4.3.2定制VFP的系統(tǒng)環(huán)境4.3.1VFP操作方式命令方式菜單方式4.3.2定制VFP的系統(tǒng)環(huán)境使用“選項(xiàng)”對(duì)話框使用配置檔用SET命令配置VFP改變VFP默認(rèn)的日期格式4.4VFP資料庫和數(shù)據(jù)表的基本概念資料庫的概念數(shù)據(jù)表的概念4.5一個(gè)簡(jiǎn)單VFP的實(shí)例以第2章建立的book表為例子要對(duì)數(shù)據(jù)表進(jìn)行操作,首先打開數(shù)據(jù)表,在命令窗口中鍵入如下的命令:

結(jié)果如圖所示:4.6VFP命令簡(jiǎn)述命令即為完成一個(gè)特定動(dòng)作的指令。命令窗口是VFP的一種系統(tǒng)窗口。命令是用戶與VFP進(jìn)行交互的主要媒介。在命令窗口中用戶可以完成如下操作

在按Enter鍵執(zhí)行命令之前,按Esc鍵刪除命令文本。將游標(biāo)移到以前命令行的任意位置並按Enter鍵可重新執(zhí)行此命令。?選擇要重新處理的代碼塊,然後按Enter鍵可執(zhí)行代碼塊中的命令。較長的命令語句可分為多行書寫,在分行的位置後鍵入分號(hào),然後按Enter鍵,並在下一行輸入該命令語句的其餘部分。?可在命令窗口內(nèi)或向其他編輯窗口中移動(dòng)文本。此時(shí),先用滑鼠選擇需要的文本,再將其拖動(dòng)到需要的位置。?可在命令窗口內(nèi)或向其他編輯窗口中複製文本,而不用使用“編輯”菜單的命令。此時(shí),先用滑鼠選擇需要的文本,並按住Ctrl鍵,再將其拖動(dòng)到需要的位置。?從格式菜單中選擇合適的命令,可改變字體、行間距和縮進(jìn)方式。在命令窗口中單擊滑鼠右鍵,可以顯示一個(gè)帶有下列選項(xiàng)的快捷菜單

剪切、複製、粘貼可用來在命令窗口中移動(dòng)或刪除文本,或向命令窗口中移動(dòng)或刪除文本。?生成運(yùn)算式可用來顯示運(yùn)算式生成器窗口,在該窗口中可以使用命令、原義字串、字段或其他運(yùn)算式來定義一個(gè)運(yùn)算式。當(dāng)單擊確定按鈕時(shí)。所生成的運(yùn)算式就粘貼到命令窗口中。運(yùn)行所選區(qū)域:可將命令窗口中選定的文本作為新命令執(zhí)行。?清除可用來從命令窗口中移去以前執(zhí)行命令的列表。?屬性可用來顯示“編輯屬性”窗口,在該窗口中,可以改變命令窗口中的編輯行為、跳位字元寬度、字體和語法著色選項(xiàng)。4.7VFP基本語言要素4.7.1數(shù)據(jù)類型4.7.2數(shù)據(jù)容器4.7.3運(yùn)算符4.7.4運(yùn)算式4.7.5函數(shù)4.7.1數(shù)據(jù)類型①?字元型②?貨幣型③?數(shù)值型④?日期型⑤?日期時(shí)間型⑥?邏輯型4.7.2數(shù)據(jù)容器1.常量數(shù)值型常量字元型常量日期型和日期時(shí)間型常量邏輯型常量貨幣型常量2.變數(shù)記憶體變數(shù)VFP變數(shù)的命名規(guī)則記憶體變數(shù)的賦值記憶體變數(shù)的顯示記憶體變數(shù)的清除字段變數(shù)系統(tǒng)變數(shù)3.數(shù)組數(shù)組的定義數(shù)組的賦值4.字段5.記錄6.對(duì)象4.7.3運(yùn)算與運(yùn)算符

1.算術(shù)運(yùn)算與算術(shù)運(yùn)算符算術(shù)運(yùn)算的運(yùn)算元必須是數(shù)值,運(yùn)算的結(jié)果也是數(shù)值。算術(shù)運(yùn)算符包括:①?括弧()②?乘方運(yùn)算**或^③?乘、除運(yùn)算*,/④?取模運(yùn)算%⑤?加、減運(yùn)算+,-

運(yùn)算順序是先乘方,再乘除與取模,後加減,同一級(jí)別要從左向右。有圓括號(hào)時(shí)圓括號(hào)內(nèi)先算,若有圓括號(hào)嵌套,則按先內(nèi)後外次序處理。2.關(guān)係運(yùn)算與關(guān)係運(yùn)算符

關(guān)係運(yùn)算兩運(yùn)算元類型必須一致,比較的結(jié)果是邏輯值。數(shù)值型數(shù)據(jù)按數(shù)值大小進(jìn)行比較;日期型數(shù)據(jù)按年、月、日的先後進(jìn)行比較;字元型數(shù)據(jù)按相應(yīng)位置上兩個(gè)字元ASCII碼值的大小進(jìn)行比較。關(guān)係運(yùn)算符包括:①?小於、大於、等於運(yùn)算<,>,=②?不等於運(yùn)算<>或#或!=③?小於或等於運(yùn)算<=④?大於或等於運(yùn)算>=⑤?字串全等比較運(yùn)算==

邏輯運(yùn)算的運(yùn)算元須是能得出邏輯值的運(yùn)算式,運(yùn)算結(jié)果也是邏輯值。若運(yùn)算元類型不符要求,將會(huì)出現(xiàn)類型的錯(cuò)誤提示。關(guān)係運(yùn)算常用來描述某種條件,而邏輯運(yùn)算可用於描述複合的條件。若兩個(gè)條件中有一個(gè)成立便算成立,應(yīng)使用或運(yùn)算,而兩個(gè)條件同時(shí)成立才算成立,應(yīng)使用與運(yùn)算;至於非運(yùn)算則用於否定一個(gè)條件。邏輯運(yùn)算符包括:①?括弧()②?邏輯非NOT或!③?邏輯與AND④?邏輯或OR3.邏輯運(yùn)算與邏輯運(yùn)算符4.字元運(yùn)算與字元運(yùn)算符字元運(yùn)算符包括:連接運(yùn)算符和包含比較運(yùn)算符。(1)連接符:連接運(yùn)算符有兩個(gè):+和-①?+,用於連接兩個(gè)字串;②?-,用於連接兩個(gè)字串,並將前一個(gè)字串尾部的空格移到結(jié)果字串的尾部。(2)包含比較運(yùn)算符5.日期和日期時(shí)間運(yùn)算與日期和日期時(shí)間運(yùn)算符

①?+,在一個(gè)日期或日期時(shí)間的基礎(chǔ)上加上天數(shù)或時(shí)間值(秒),結(jié)果還是日期或日期時(shí)間;②?-,在一個(gè)日期或日期時(shí)間的基礎(chǔ)上減去天數(shù)或時(shí)間值(秒),結(jié)果還是日期或日期時(shí)間;如果減去日期或日期時(shí)間,結(jié)果是天數(shù)或時(shí)間值(秒)。4.7.4運(yùn)算式

字元運(yùn)算式日期運(yùn)算式邏輯運(yùn)算式與關(guān)係運(yùn)算式數(shù)值運(yùn)算式4.7.5函數(shù)

函數(shù)的組成函數(shù)的類型常用函數(shù)

5.1表的建立5.1.1設(shè)計(jì)表的結(jié)構(gòu)5.1.2建立表結(jié)構(gòu)5.1.3向表輸入記錄返回目錄5.1.1設(shè)計(jì)表的結(jié)構(gòu)表中的記錄所包含的資訊是存放在各個(gè)字段中的,設(shè)計(jì)表的結(jié)構(gòu)也就是創(chuàng)建若干字段來保存用戶收集的資訊,在收集完資訊後,具體設(shè)計(jì)表結(jié)構(gòu)時(shí)有三點(diǎn)很重要:首先是為各字段取一個(gè)直觀易理解的字段名,其次是確定字段的數(shù)據(jù)類型,第三是根據(jù)字段取值範(fàn)圍來確定字段寬度。1.字段的命名VFP中的自由表的字段名由不超過10個(gè)字母、數(shù)字或下劃線組成,而資料庫表允許使用長達(dá)128個(gè)字元的長字段名。為數(shù)據(jù)表的每一個(gè)字段起一個(gè)清晰、易懂的字段名,對(duì)於今後對(duì)數(shù)據(jù)表的操作將會(huì)起到事半功倍的作用。2.字段類型(1)字元型(2)貨幣型(3)數(shù)值型(4)浮點(diǎn)型(5)日期型(6)日期時(shí)間型(7)雙精度型(8)整型(9)邏輯型(10)備註型(11)通用型(12)字元型(二進(jìn)位)(13)備註型(二進(jìn)位)3.字段寬度(1)應(yīng)用系統(tǒng)開發(fā)的要求 按實(shí)際數(shù)據(jù)所需要的長度來設(shè)定字段的寬度,(2)在VFP數(shù)據(jù)類型允許範(fàn)圍內(nèi) 在VFP中數(shù)據(jù)的長度都是有規(guī)定的,在設(shè)置字段長度時(shí)不要超過VFP所能接受的最大長度。

返回5.1.2建立表結(jié)構(gòu)

表的創(chuàng)建有兩種方法:使用菜單方式創(chuàng)建表和在“命令窗口”中使用CREATE命令創(chuàng)建數(shù)據(jù)表。1.使用菜單方式創(chuàng)建表 兩種用菜單創(chuàng)建表的方法:用“表設(shè)計(jì)器”創(chuàng)建表和和”表嚮導(dǎo)”創(chuàng)建表。 用TableDesigner(表設(shè)計(jì)器)創(chuàng)建新表。 用TableWizard(數(shù)據(jù)表嚮導(dǎo))創(chuàng)建新表。2.使用命令方式創(chuàng)建數(shù)據(jù)表 命令格式

CREATE[盤符][路徑][數(shù)據(jù)表檔案名]

說明: 此命令的功能是在指定的目錄下建立一個(gè)數(shù)據(jù)表檔?!皵?shù)據(jù)表檔案名”由用戶指定,其擴(kuò)展名是.dbf,如果省略了擴(kuò)展名,則系統(tǒng)會(huì)自動(dòng)加上默認(rèn)的擴(kuò)展名.dbf。如果不指定盤符和路徑,則在安裝VFP的目錄下建立數(shù)據(jù)表檔。

返回5.1.3向表輸入記錄

追加記錄的方法有三種:在“流覽”窗口進(jìn)入“追加方式”;在“編輯”窗口進(jìn)入“追加方式”;從“表”菜單中選擇“追加新記錄”(此方式每單擊一次菜單命令只能輸入一條記錄,如要輸入多條記錄則要多次執(zhí)行此命令)。在本節(jié)主要介紹最常用的方式:在“流覽”窗口進(jìn)入“追加方式”。操作步驟如下:打開數(shù)據(jù)表。單擊“顯示”菜單中的“流覽”命令,VFP彈出“流覽”窗口,當(dāng)“流覽”窗口打開之後,VFP菜單增加了“表”菜單,而減少了“格式”菜單,顯示”菜單發(fā)生了變化;單擊“顯示”菜單中的“追加方式”,此時(shí)在“流覽”窗口中的底部添加一個(gè)空記錄行,當(dāng)此條記錄輸入完成之後,在其底部又會(huì)出現(xiàn)一個(gè)空記錄行;向備註型字段Resume輸入資訊,可用滑鼠在此字段上雙擊,即彈出一個(gè)編輯窗口,在此窗口中輸入備註內(nèi)容;由於VFP中的通用型字段一般用來存放圖片、照片等數(shù)據(jù)的,在向通用型字段輸入資訊前先拷貝一張圖片至剪貼板,然後雙擊通用型字段,彈出一個(gè)類似於備註型編輯窗口的窗口,在VFP系統(tǒng)的“編輯”菜單中選擇“粘貼”即可。

返回5.2表的顯示與維護(hù)

5.2.1數(shù)據(jù)表的打開與關(guān)閉5.2.2表的顯示

5.2.3表的修改和編輯返回目錄5.2.4表記錄指針的定位

5.2.5表記錄的追加和刪除5.2.6表的複製

5.2.7表記錄的篩選

6.2.1數(shù)據(jù)表的打開與關(guān)閉1.使用菜單方式打開數(shù)據(jù)表 操作步驟如下: ①?在“檔”菜單中選擇“打開”命令; ②?在“打開”窗口中的“檔類型”下拉框中選擇“表”類型; ③?在“檔案名”欄中輸入要打開的數(shù)據(jù)表檔,並單擊“確定”。2.使用命令方式打開數(shù)據(jù)表

USE命令 命令格式

USE[路徑][INDEXS索引檔案名表][ALIAS別名][NOUPDATE]

說明 此命令的功能是打開一個(gè)現(xiàn)存的數(shù)據(jù)表,如記憶體中已打開了別的數(shù)據(jù)表,則先關(guān)閉存在的數(shù)據(jù)表,然後再向記憶體中放入當(dāng)前數(shù)據(jù)表。

INDEXS打開一個(gè)指定的索引檔,如沒有指定,則不打開任何索引(關(guān)於索引將在下一章進(jìn)行說明);

ALIAS為打開的數(shù)據(jù)表指定一個(gè)別名,以方便隨後的操作。

NOUPDATE是對(duì)數(shù)據(jù)表的一個(gè)保護(hù)命令,它的功能是禁止對(duì)數(shù)據(jù)表進(jìn)行增加記錄、刪除記錄、修改記錄,也不能通過MODIFYSTRUCTURE命令對(duì)數(shù)據(jù)表結(jié)構(gòu)進(jìn)行改動(dòng)。6.2.1數(shù)據(jù)表的打開與關(guān)閉

對(duì)數(shù)據(jù)表的操作完成後,應(yīng)將其關(guān)閉以釋放其所佔(zhàn)用的系統(tǒng)資源,可直接在命令窗口中輸入命令USE,關(guān)閉當(dāng)前數(shù)據(jù)表;或輸入CLOSEALL,此命令不但關(guān)閉當(dāng)前的數(shù)據(jù)表,而且所有打開的資料庫、數(shù)據(jù)表、工作區(qū)等都將被關(guān)閉。

返回5.2.2表的顯示數(shù)據(jù)表結(jié)構(gòu)的顯示

1.菜單方式 操作步驟如下: ①

打開一個(gè)數(shù)據(jù)表; ②

在“顯示”菜單中選擇“表設(shè)計(jì)器”。

2.命令方式 在命令方式下,可使用如下命令來實(shí)現(xiàn):

LIST|DISPLAYSTRUCTURE

數(shù)據(jù)記錄的顯示數(shù)據(jù)記錄的顯示

1.菜單方式 查看一個(gè)數(shù)據(jù)表的記錄最方便的方法是使用菜單,選用“流覽”窗口,步驟是:打開一個(gè)數(shù)據(jù)表,然後在“顯示”菜單中選擇“流覽”命令即可。

2.命令方式 顯示數(shù)據(jù)表的記錄也可使用命令方式來實(shí)現(xiàn),主要使用以下兩條命令:DISPLAY和LIST。

返回5.2.3表的修改和編輯

數(shù)據(jù)表在實(shí)際使用過程中,常根據(jù)不同的需要而進(jìn)行修改,包括數(shù)據(jù)表結(jié)構(gòu)的修改和數(shù)據(jù)表記錄的修改和編輯。數(shù)據(jù)表結(jié)構(gòu)的修改 對(duì)數(shù)據(jù)表結(jié)構(gòu)的修改可分為:修改表中的字段屬性或字段名、向表中插入新字段和刪除表中的字段三種操作。

1.修改字段 ①?打開數(shù)據(jù)表; ②?單擊“顯示”菜單中的“表設(shè)計(jì)器”; ③?在彈出的“表設(shè)計(jì)器”中選擇“字段”選項(xiàng)卡; ④?在相應(yīng)的字段直接修改屬性或字段名。

2.數(shù)據(jù)表中增添新的字段 ①?同“

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論