Access基礎教程(第四版)課件Access2010第一章_第1頁
Access基礎教程(第四版)課件Access2010第一章_第2頁
Access基礎教程(第四版)課件Access2010第一章_第3頁
Access基礎教程(第四版)課件Access2010第一章_第4頁
Access基礎教程(第四版)課件Access2010第一章_第5頁
已閱讀5頁,還剩75頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Access基礎教程(第四版)長春師范大學計算機科學與技術學院1.1數據庫系統的基本概念1.2數據模型1.3關系數據庫系統1.4關系數據庫標準語言SQL1.5關系數據庫設計第1章數據庫基礎知識數據庫技術是計算機領域的一個重要分支。在計算機應用的三大領域(科學計算、數據處理和過程控制)中,數據處理約占其中的70%,而數據庫技術就是作為一門數據處理技術發展起來的。在信息技術日益普及的今天,作為信息系統的核心技術和基礎,數據庫系統幾乎觸及到人類社會生活的各個方面,無論是企事業內部的信息管理還是各行業的業務處理。隨著計算機應用的普及和深入,數據庫技術更是不斷發展,應用范圍不斷擴大,如多媒體系統、企業管理、工程、統計、汽車工業等領域都在利用數據庫技術。了解、掌握數據庫系統的基本概念和基本技術是應用數據庫技術的前提。第1章數據庫基礎知識1.1.1數據、數據庫、數據庫管理系統1.數據(Data)數據是數據庫系統研究和處理的對象,本質上講是描述事物的符號記錄。數據有多種表現形式,都是經過數字化處理后存入計算機的,能夠反映或描述事物的特性。2.數據庫(DataBase,簡稱DB)數據庫是數據的集合,它具有一定的組織形式并儲存于計算機存儲器上,具有多種表現形式并可被各種用戶所共享。數據庫中的數據具有較小的冗余度、較高的數據獨立性和擴展性。1.1數據庫系統的基本概念3.數據庫管理系統(DataBaseManagementSystem,簡稱DBMS)數據庫管理系統是位于用戶與操作系統之間的一層數據管理軟件,屬于系統軟件。它是數據庫系統的一個重要組成部分,是使數據庫系統具有數據共享、并發訪問、數據獨立等特性的根本保證,主要提供以下功能:數據定義功能。數據操縱及查詢優化。數據庫的運行管理。數據庫的建立和維護。1.1數據庫系統的基本概念4.數據庫管理員(DataBaseAdministrator,簡稱DBA)由于數據庫的共享性,因此對數據庫的規劃、設計、維護、監視等需要有專人管理,從事這方面工作的人員稱為數據庫管理員。其主要工作如下:數據庫設計數據庫維護改善系統性能,提高系統效率5.數據庫系統(DataBaseSystem,簡稱DBS)數據庫系統通常是指帶有數據庫的計算機應用系統。它一般由數據庫、數據庫管理系統(及其開發工具)、應用系統、硬件系統、數據庫管理員和用戶組成。1.1數據庫系統的基本概念6.數據庫應用系統(DataBaseApplicationSystem,簡稱DBAS)利用數據庫系統進行應用開發可構成一個數據庫應用系統,數據庫應用系統是數據庫系統再加上應用軟件和應用界面組成,具體包括:數據庫、數據庫管理系統、數據庫管理員、硬件平臺、軟件平臺、應用軟件、應用界面,其結構如圖1.1所示。1.1數據庫系統的基本概念1.1.2數據庫技術的發展數據庫技術產生于20世紀60年代后期,是隨著數據管理的需要而產生的。在此之前,數據管理經歷了人工管理階段和文件系統階段。20世紀60年代,計算機技術迅速發展,其主要應用領域從科學計算轉移到數據事務處理,從而出現了數據庫技術,它是數據管理的最新技術,是計算機科學中發展最快、應用最廣泛的重要分支之一。在短短的三十幾年里,數據庫技術的發展經歷了三代:第一代層次、網狀數據庫系統,第二代關系數據庫系統和第三代以面向對象模型為主要特征的數據庫系統。目前,數據庫技術與網絡通信技術、人工智能技術、面向對象程序設計技術、并行計算機技術等相互滲透,成為數據庫技術發展的主要特征。1.1數據庫系統的基本概念1.第一代數據庫系統——層次、網狀數據庫系統數據庫發展階段的劃分是以數據模型的發展為主要依據的。數據模型的發展經歷了格式化數據模型(包括層次數據模型和網狀數據模型)、關系數據模型兩個階段,正向面向對象的數據模型等非傳統數據模型階段發展。層次數據庫系統和網狀數據庫系統在體系結構、數據庫語言和數據存儲管理上均具有相同特征,并且都是在20世紀60年代后期研究和開發的,屬于第一代數據庫系統。其特點如下:(1)支持三級模式的體系結構。(2)用存取路徑來表示數據之間的聯系。(3)獨立的數據定義語言。(4)導航的數據操縱語言。1.1數據庫系統的基本概念2.第二代數據庫系統——關系數據庫系統1970年美國IBM公司SanJose研究室的高級研究員埃德加?考特(E.F.Codd)發表了論文《大型共享數據庫數據的關系模型》,提出了數據庫的關系模型,開創了數據庫關系方法和關系數據理論的研究,為關系數據庫技術奠定了理論基礎,為數據庫技術開辟了一個新時代。20世紀70年代,關系方法的理論研究和軟件系統的研制均取得了很大成果。IBM公司的SanJose實驗室研制出關系數據庫實驗系統SystemR。與SystemR同期,美國Berkeley大學也研制了INGRES數據庫實驗系統,并發展成為INGRES數據庫產品,使關系方法從實驗走向了市場。1.1數據庫系統的基本概念關系數據庫產品一問世,就以其簡單清晰的概念,易懂易學的數據庫語言,使用戶不需了解復雜的存取路徑細節,不需說明“怎么干”,只需指出“干什么”,就能操作數據庫,從而深受廣大用戶喜愛。20世紀80年代以來,大多數廠商推出的數據庫管理系統的產品都是關系型的,如:FoxPro、Access、DB2、Oracle及Sybase等都是關系型數據管理系統(簡稱RDBMS),使數據庫技術日益廣泛地應用到企業管理、情報檢索、輔助決策等各個方面,成為實現和優化信息系統的基本技術。1.1數據庫系統的基本概念關系數據庫是以關系模型為基礎的,具有以下特點:(1)關系數據庫對實體及實體之間的聯系均采用關系來描述,對各種用戶提供統一的單一數據結構形式,使用戶容易掌握和應用。(2)關系數據庫語言具有非過程化特性,將用戶從編程數據庫記錄的導航式檢索中解脫出來,降低了編程難度,面向非專業用戶。(3)數據獨立性強,用戶的應用程序、數據的邏輯結構與數據的物理存儲方式無關。(4)以關系代數為基礎,數據庫的研究更加科學化,尤其在關系操作的完備性、規范化及查詢優化等方面,為數據庫技術的成熟奠定了很好的基礎。1.1數據庫系統的基本概念3.第三代數據庫系統第一代和第二代數據庫技術基本上是處理面向記錄的、以字符表示的數據為主,能較好地滿足商業事務的處理,但遠遠不能滿足多種多樣的信息類型需求。新的數據庫應用領域如計算機輔助設計/制造、辦公信息系統等需要數據庫系統能支持各種靜態和動態的數據,如圖形、圖像、語音、視頻等,并且還需要數據庫系統具備處理復雜對象、實現程序設計語言和數據庫語言無縫集成等能力。這種情況下,原有的數據庫系統就暴露出了多種局限性。正是在這種新應用的推動下,數據庫技術進一步發展和進步。1990年高級DBMS功能委員會發表了《第三代數據庫系統宣言》的文章,提出了第三代數據庫應具有的三個基本特征,并從三個基本特征導出了13個具體特征和功能。1.1數據庫系統的基本概念經過多年的研究和討論,對第三代數據庫系統的基本特征已有了共識:(1)第三代數據庫系統應支持數據管理、對象管理和知識管理。以支持面向對象數據模型為主要特征,并集數據管理、對象管理和知識管理為一體。(2)第三代數據庫系統必須保持或繼承第二代數據庫系統的技術,如非過程化特性、數據獨立性等。(3)第三代數據庫系統必須對其他系統開放,如支持數據庫語言標準、在網絡上支持標準網絡協議等。1.1數據庫系統的基本概念4.數據庫技術的新進展數據庫技術發展的核心是數據模型的發展。數據模型應滿足三方面的要求:一是能比較真實地模擬現實世界;二是容易為人們所理解;三是便于在計算機上實現。目前,一種數據模型要很好地滿足這三方面的要求是很困難的。新一代數據庫技術采用多種數據模型,例如面向對象數據模型、對象關系數據模型、基于邏輯的數據模型等。20世紀80年代以來,數據庫技術經歷了從簡單應用到復雜應用的巨大變化,數據庫系統的發展呈現出百花齊放的局面,目前在新技術內容、應用領域和數據模型三個方面都取得了很大進展。1.1數據庫系統的基本概念數據庫技術與其他學科的有機結合,是新一代數據庫技術的一個顯著特征,出現了各種新型的數據庫,例如:數據庫技術與分布處理技術相結合,出現了分布式數據庫。數據庫技術與并行處理技術相結合,出現了并行數據庫。數據庫技術與人工智能技術相結合,出現了知識庫和主動數據庫系統。數據庫技術與多媒體處理技術相結合,出現了多媒體數據庫。數據庫技術與模糊技術相結合,出現了模糊數據庫等。數據庫技術應用到其他領域中,出現了數據倉庫、工程數據庫、統計數據庫、空間數據庫及科學數據庫等多種數據庫技術,擴大了數據庫應用領域。1.1數據庫系統的基本概念1.1.3數據庫系統的特點數據庫技術是在文件系統的基礎上發展產生的,以數據文件的組織數據,并在文件系統之上加入了DBMS對數據進行管理,其特點如下:1.數據的集成性(1)在數據庫系統中采用統一的數據結構,如在關系數據庫中采用關系(用戶角度看來是二維表)作為統一結構方式。(2)在數據庫系統中按照多個應用的需要組織全局的統一的數據結構(即數據模式、全局結構)。(3)數據庫系統中的數據模式是多個應用共同的、全局的數據結構,而每個應用的數據則是全局結構中的一部分,稱為局部結構(即視圖),這種全局與局部的結構模式構成了數據庫系統數據集成性的主要特征。1.1數據庫系統的基本概念2.數據的高共享性與低冗余性數據的集成性使得數據可為多個應用所共享,而數據共享又可極大地減少數據冗余,不僅減少了不必要的存儲空間,更為重要的是可以避免數據的不一致性。所謂數據的一致性是指在系統中同一數據的不同出現應保持相同的值,減少數據冗余是保證系統一致性的基礎。3.數據獨立性據獨立性是數據與程序間的互不依賴性,即數據庫中數據獨立于應用程序而不依賴于應用程序。也就是說,數據的邏輯結構、存儲結構與存取方式的改變不會影響應用程序。1.1數據庫系統的基本概念數據獨立性包括:(1)物理獨立性簡單地說,物理獨立性就是指數據的物理結構(包括存儲結構、存取方式)的改變不影響數據庫的邏輯結構,從而不會引起應用程序的變化。(2)邏輯獨立性簡單地說,邏輯獨立性就是指數據的全局邏輯結構的改變不會引起應用程序的變化。當然,數據獨立性的實現需要模式間的映射關系作為保障。1.1數據庫系統的基本概念1.1.4數據庫系統的體系結構數據庫系統的體系結構包括三級模式和兩級映射,三級模式分別為外模式、概念模式和內模式;兩級映射分別為外模式與概念模式間的映射以及概念模式與內模式間的映射,其抽象結構關系如圖1.2所示。1.數據庫系統的三級模式數據模式是數據庫系統中數據結構的一種表示形式,它具有不同的層次與結構方式。(1)外模式(ExternalSchema)(2)概念模式(ConceptualSchema)(3)內模式(InternalSchema)1.1數據庫系統的基本概念(1)外模式(ExternalSchema)外模式又稱為用戶模式或子模式,是某個或某幾個數據庫用戶所看到的數據庫的數據視圖。外模式是與某一應用有關的數據的邏輯結構和特征描述,也就是前面所介紹的局部結構,它由概念模式推導而出。概念模式給出了系統全局的數據描述而外模式則給出每個用戶的局部數據描述。對于不同的數據庫用戶,由于需求的不同,外模式的描述也互不相同。一個概念模式可以有若干個外模式,每一個用戶只關心與其有關的外模式,有利于數據保護,對數據所有者和用戶都極為方便。1.1數據庫系統的基本概念(2)概念模式(ConceptualSchema)概念模式又稱為模式或邏輯模式,它介于內模式與外模式之間,是數據庫設計者綜合各用戶的數據,按照統一的觀點構造的全局邏輯結構,是對數據庫中全部數據的邏輯結構和特征的總體描述,是所有用戶的公共數據視圖。外模式涉及的靈氣的局部邏輯結構,通常是概念模式的子集。概念模式是用模式描述語言來描述的,在一個數據庫中只有一個概念模式。1.1數據庫系統的基本概念(3)內模式(InternalSchema)內模式又稱為存儲模式或物理模式,是數據庫中全體數據的內部表示,它描述了數據的存儲方式和物理結構。它是數據庫的底層描述,定義了數據庫中的各種存儲記錄的物理表示、存儲結構與物理存取方式,如數據存儲文件的結構、索引、集簇等存取方式和存取路徑等。內模式是用模式描述語言嚴格定義的,在一個數據庫中只有一個內模式。在數據庫系統體系結構中,三級模式是根據所描述的三層體系結構的三個抽象層次定義的,外模式處于最外層,它反映了用戶對數據庫的實際要求;概念模式處于中間層,經反映了設計者的數據全局的邏輯要求;內模式處于最內層,它反映數據的物理結構和存取方式。1.1數據庫系統的基本概念2.數據庫系統的兩級映射數據庫系統的三級模式是數據的三個級別的抽象,使用戶能夠邏輯地、抽象地處理數據而不必關心數據在計算機中的表示和存儲。為了實現三個抽象層次間的聯系和轉換,數據庫系統在三個模式間提供了兩級映射:外模式與概念模式間的映射、概念模式與內模式間的映射。(1)外模式與概念模式間的映射。該映射定義了外模式與概念模式之間的對應關系,保證了邏輯數據的獨立性,即外模式不受概念模式變化影響。(2)概念模式與內模式間的映射。該映射定義了內模式與概念模式之間的對應關系,保證了物理數據的獨立性,即概念模式不受內模式變化影響。1.1數據庫系統的基本概念數據庫中組織數據應當從全局出發,不僅考慮到事物內部的聯系,還要考慮到事物之間的聯系。表示事物以及事物之間聯系的模型就是數據模型。數據模型是用來抽象、表示和處理現實世界的數據和信息的工具,也就是現實世界數據特征的抽象。數據模型是數據庫系統的核心和基礎,現有的數據庫系統均是基于某種數據模型的。1.2數據模型數據模型有三個基本組成要素:數據結構、數據操作和完整性約束。1.數據結構:用于描述系統的靜態特性,研究的對象包括兩類,一類是與數據類型、內容、性質有關的對象;另一類是與數據之間的聯系有關的對象。2.數據操作:是指對數據庫中各種對象(型)的實例(值)允許執行的所有操作,即操作的集合,包括操作及有關的操作規則。數據庫主要有檢索和更新兩類操作。3.完整性約束:是給定的數據模型中數據及其聯系所具有的制約和依存規則,用以限定數據庫的狀態及狀態的變化,以保證數據的正確、有效和相容。1.2數據模型數據模型按不同的應用層次分成三種類型:概念數據模型、邏輯數據模型、物理數據模型。概念數據模型簡稱概念模型,它是一種面向客觀世界、面向用戶的模型;它與具體的數據庫管理系統無關,與具體的計算機平臺無關。概念模型著重于對客觀世界復雜事物的結構描述及它們之間的內在聯系的描述。概念模型是整個數據模型的基礎,設計概念模型常用的方法是ER方法,也就是E-R模型(實體-聯系模型)。物理數據模型又稱為物理模型,它是一種面向計算機物理表示的模型,此模型給出了數據模型在計算機上物理結構的表示。1.2數據模型邏輯數據模型又稱為數據模型,它是一種面向數據庫系統的模型,該模型著重于在數據庫系統一級的實現。概念模型只有在轉換成數據模型后才能在數據庫中得以表示。數據庫領域中過去和現在最常見的數據模型有四種:層次模型、網狀模型、關系模型和面向對象模型。其中層次模型和網狀模型統稱為非關系模型。在關系模型出現以前,它們是非常流行的數據模型。非關系模型中數據結構的單位是基本層次聯系。所謂基本層次聯系是指兩個記錄以及它們之間的一對多(包括一對一)的聯系,如圖1.3所示。圖中Ri位于聯系Lij的始點,稱為雙親結點,Rj位于聯系Lij的終點,稱為子女結點。每個結點表示一個記錄類型(實體),結點間的連線表示記錄類型之間一對多的聯系。1.2數據模型1.2.1E-R模型概念模型是面向現實世界的,它的出發點是有效和自然地模擬現實世界給出數據的概念化結構。長期以來被廣泛使用的概念模型是E-R模型,它于1976年由PeterChen首先提出。該模型將現實世界的要求轉化成實體、聯系、屬性等幾個基本概念,以及它們之間的兩種基本聯接關系,可用圖形直觀地表示。1.E-R模型的基本概念(1)實體實體是客觀存在并且可以相互區分的事物。實體可以是具體的人、事、物;也可以是抽象的概念與聯系。1.2數據模型(2)屬性實體有若干個特性,每一個特性稱為實體的一個屬性。也可以說,屬性是實體某一方面特征的描述,如學生實體包括:學號、姓名、性別、院系等若干屬性。每個屬性可以有屬性值,如:(“200103001”,“王立”,“男”,“計算機”)。一個屬性的取值范圍稱為該屬性的值域,如:“性別”的值為{“男”,“女”}。(3)聯系聯系是兩個或兩個以上的實體集間的關聯關系的描述,如:學生與課程實體間的選課關系。實體集間的聯系類型有如下三種:1.2數據模型一對一聯系:設有實體集A與實體集B,如果A中的一個實體至多與B中的一個實體關聯,反過來,B中的一個實體至多與A中的一個實體關聯,稱A與B是一對一聯系類型,記為1:1,如:班級與班長。一對多聯系:設有實體集A與實體集B,如果A中的一個實體與B中可以有多個實體關聯,反過來,B中的一個實體至多與A中的一個實體關聯,稱A與B是一對多聯系類型,記為1:N,如:班級與學生。多對多聯系:設有實體集A與實體集B,如果A中的一個實體與B中可以有多個實體關聯,反過來,B中的一個實體與A中可以有多個實體關聯,稱A與B是多對多聯系類型,記為M:N,如:學生與課程。1.2數據模型2.E-R模型的表示方法E-R模型可以用一種非常直觀的圖來表示,稱為E-R圖。(1)實體(集)在E-R圖中,實體用矩形來表示,在內部寫上該實體(集)的名字,如圖1.4中的學生、課程實體(集)。(2)屬性在E-R圖中,屬性用橢圓形來表示,在內部寫上該屬性的名字,并用沒有方向的線段與該屬性所關聯的實體(集)連接,如圖1.4中的學號、姓名等屬性。1.2數據模型(3)聯系在E-R圖中,聯系用菱形來表示,在內部寫上聯系的名字,并用沒有方向的線段與該聯系相關的實體(集)連接,同時在線段上表明聯系的類型,如圖1.4中的選課聯系。1.2.2層次模型(HierarchicalModel)層次模型用樹形結構來表示數據間的從屬關系結構。其主要特征如下:

圖1.5

圖1.6僅有一個無雙親的結點,這個結點稱為根結點。其他結點向上僅有一個雙親結點,向下有若干子女結點。1.2數據模型1.2.3網狀模型(NetworkModel)網狀模型是層次模型的擴展,呈現一種交叉關系的網絡結構,可以表示較復雜的數據結構。其主要特征如下:可以有一個以上的結點無雙親結點。一個結點可以有多個雙親結點。在網狀模型中,子女結點與雙親結點的聯系可以不唯一。因此,要為每個聯系命名,并指出與該聯系有關的雙親記錄和子女記錄。如圖1.7(a)中,R3有兩個雙親記錄R1和R2,把R1和R3之間的聯系稱為L1,把R2和R3之間的聯系稱為L2;圖1.7(b)中R1和R3均無雙親,R4和R5有兩個雙親。圖1.8學生選課系統數據庫網狀模型1.2數據模型1.2.4關系模型(RelationalModel)1970年美國IBM公司SanJose研究室的高級研究員埃德加?考特提出了數據庫的關系模型。由于他的杰出貢獻,于1981年獲得了計算機科學領域的最高獎項——圖靈獎。在關系模型中表示實體間聯系的方法與非關系模型不同。非關系模型是用人為的連線來表示實體間的聯系,而關系模型中實體與實體間的聯系則是通過二維表結構來表示的。關系模型就是用二維表格結構來表示實體及實體間聯系的模型。關系模型中數據的邏輯結構就是一張二維表。表1.1所示的教師檔案表是一個關系模型的例子。1.2數據模型關系模型的基本術語如下。1.關系(Relation):二維表結構,如表1.1中的教師檔案表。2.屬性(Attribute):二維表中的列稱為屬性,Access中稱為字段(Field)。如表1.1中有4列,則有4個屬性(教師編號,教師姓名,所屬院系名稱,所屬專業名稱)。3.域(Domain):屬性的取值范圍稱為域。如表1.1中所屬院系名稱的域是該校所有院系名稱的集合。4.元組(Tuple):二維表中的行(記錄的值)稱為元組,Access中稱為記錄(Record)。1.2數據模型5.主碼或主關鍵字(PrimaryKey):表中的某個屬性或屬性組,能夠惟一確定一個元組。Access中的主碼稱為主鍵。如表1.1中的教師編號可以惟一確定一名教師,即是本關系中的主碼或主關鍵字。6.關系模式:是對關系的描述。一般表示為:

關系名(屬性1,屬性2,…,屬性n)一個關系模式對應一個關系的結構。例如上面的關系可描述為:

教師檔案(教師編號,教師姓名,所屬院系名稱,所屬專業名稱)1.2數據模型關系模型的主要特點有:1.關系中每一數據項不可再分,也就是說不允許表中還有表。表1.2所示的表就不符合關系模型的要求。工資又被分為基本工資、崗位工資和補貼,這相當于大表中又有一張小表。2.每一列中的各個數據項具有相同的屬性。3.每一行中的記錄由一個事物的多種屬性項構成。4.每一行代表一個實體,不允許有相同的記錄行。5.行與行、列與列的次序可以任意交換,不改變關系的實際意義。1.2數據模型1.2.5面向對象數據模型(ObjectOrientedModel,簡稱OO模型)面向對象模型是近幾年來發展起來的一種新興的數據模型。該模型是在吸收了以前的各種數據模型優點的基礎上,借鑒了面向對象程序設計方法而建立的一種模型。一個OO模型是用面向對象觀點來描述現實世界實體(對象)的邏輯組織、對象間限制、聯系等的模型。這種模型具有更強的表示現實世界的能力,是數據模型發展的一個重要方向。目前對于OO模型還缺少統一的規范說明,尚沒有一個統一的嚴格的定義。但在OO模型中,面向對象核心概念構成了面向對象數據模型的基礎。OO模型的基本概念如下:1.2數據模型1.對象(Object)與對象標識(OID)現實世界中的任何實體都可以統一地用對象來表示。每一個對象都有它惟一的標識,稱為對象標識,對象標識始終保持不變。一個學生是一個對象,他的姓名、性別、年齡等構成了這個對象的屬性,屬性描述的是對象的靜態特性。對象的動態特性可以用操作來描述,對象對某一事件所做出的相應反應就是操作,也稱為方法(Method)。每一個對象可以認為是其本身的一組屬性和它可以執行的一組操作。1.2數據模型2.類(Class)所有具有相同屬性和操作集的對象構成一個對象類(簡稱類)。任何一個對象都是某一對象類的一個實例。例如學生是一個類,每個學生如李剛、王磊、劉小紅等都是學生類中的對象。他們是這個對象類的具體實例,具有一些相同的屬性如班級、學號等,但有不同的屬性值:屬于不同的班級、學號不同等。3.事件客觀世界是由對象構成的,客觀世界中的所有行動都是由對象發出且能夠為某些對象感受到,我們把這樣的行動稱為事件。在關系數據庫應用系統中,事件分為內部事件和外部事件。系統中對象的數據操作和功能調用命令等都是內部事件,而鼠標的移動、單擊等都是外部事件。1.2數據模型關系數據庫系統(RelationDataBaseSystem,簡稱RDBMS)是采用關系模型作為數據的組織方式。Access就是基于關系模型的數據庫系統。1.3.1關系模型的組成關系模型由關系數據結構、關系操作和關系完整性約束三部分組成。1.關系數據結構。關系模型中數據的邏輯結構是一張二維表。在用戶看來非常單一,但這種簡單的數據結構能夠表達豐富的語義,可描述出現實世界的實體以及實體間的各種聯系。如一個學校可以有一個數據庫,在數據庫中建立多個表,其中一個表用來存放教師信息,一個表用來存放學生信息,一個表用來存放課程設置信息等。1.3關系數據庫系統2.關系操作。關系操作采用集合操作方式,即操作的對象和結果都是集合。關系模型中常用的關系操作包括兩類。(1)查詢操作:選擇、投影、連接、除、并、交、差等。

(2)增加、刪除、修改等操作。3.關系完整性約束。關系模型中的完整性是指數據庫中數據的正確性和一致性,關系數據模型的操作必須滿足關系的完整性約束條件。關系的完整性約束條件包括實體完整性、參照完整性和用戶定義的完整性。其中實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,適用于任何關系數據庫系統。用戶定義的完整性是針對某一具體領域的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。1.3關系數據庫系統1.3.2關系運算的基本概念關系運算的對象是關系,運算結果也為關系。關系的基本運算有兩類,一類是傳統的集合運算:并、差、交等,另一類是專門的關系運算:選擇、投影、連接等。設有兩個關系R和S,它們具有相同的結構。1.并(Union)。R和S的并是由屬于R或屬于S的元組組成的集合,運算符為“∪”,記為R∪S。2.差(Difference)。R和S的差是由屬于R但不屬于S的元組組成的集合,運算符為“-”,記為R-S。3.交(Intersection)。R和S的交是由既屬于R又屬于S的元組組成的集合,運算符為“∩”,記為R∩S。1.3關系數據庫系統4.廣義笛卡兒積(Extendedcartesianproduct)。關系R(假設為n列)和關系S(假設為m列)的廣義笛卡兒積是一個(n+m)列元組的集合。每一個元組的前n列是來自關系R的一個元組,后m列是來自關系S的一個元組。若R有K1個元組,S有K2個元組,則關系R和關系S的廣義笛卡兒積有K1×K2個元組。運算符為“×”,記為R×S。表1.3(a)、表1.3(b)分別是具有三個屬性列的關系R和關系S,表1.3(c)為關系R與S的并,表1.3(d)為關系R與S的交,表1.3(e)為關系R與S的差,表1.3(f)為關系R與S的廣義笛卡兒積。1.3關系數據庫系統5.選擇運算。選擇運算是在關系中選擇符合某些條件的元組。其中的條件是以邏輯表達式給出的,值為真的元組將被選取。如要在教師檔案表(如表1.1所示)中查詢計算機專業的所有教師數據,就可以對教師檔案表做選擇操作,條件是“所屬專業名稱”=“計算機”。運算結果如表1.4所示。1.3關系數據庫系統6.投影運算。投影運算是在關系中選擇某些屬性列組成新的關系。這是從列的角度進行的運算,相當于對關系進行垂直分解。如要查詢所有教師的姓名和所屬院系名稱,則可以對教師檔案表做投影操作,即求教師檔案表在教師姓名和所屬院系名稱兩個屬性上的投影。結果如表1.5(a)所示。投影之后不僅會取消原關系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現重復行,應取消這些完全相同的行。例如查詢教師檔案表中有哪些院系,即查詢教師檔案表在所屬院系名稱屬性上的投影,結果如表1.5(b)所示。表中原來有4個元組,而投影結果取消了重復元組,因此只有兩個元組。1.3關系數據庫系統7.連接運算。連接運算需要兩個關系作為操作對象,是從兩個關系的笛卡兒積中選取屬性間滿足一定條件的元組。最常用的連接運算有兩種:等值連接和自然連接。連接條件中的運算符為比較運算符,當此運算符取“=”時為等值連接。例如對表1.3中的關系R和S做等值連接操作,連接條件是R.B=S.B,即在表1.3(f)所示的兩個關系的笛卡兒積中選取R.B=S.B的元組,得到的結果關系如表1.6(a)所示。自然連接是去掉重復屬性的等值連接。自然連接屬于連接運算的一個特例,是最常用的連接運算,在關系運算中起著重要作用。如表1.6(b)所示是關系R和S做自然連接得到的結果關系。1.3關系數據庫系統例如:有學生成績管理關系數據庫,包括學生關系和選課關系。如表1.7和表1.8所示,將這兩個關系自然連接,其結果如表1.9所示。1.3.3關系數據庫系統的功能1.數據定義功能。關系數據庫管理系統一般均提供數據定義語言DDL(DataDescriptionLanguage),可以允許用戶定義數據在數據庫中存儲所使用的類型(例如文本或數字類型),以及各主題之間的數據如何相關。2.數據處理功能。關系數據庫管理系統一般均提供數據操縱語言DML(DataManipulationLanguage),讓用戶可以使用多種方法來操作數據。例如只顯示用戶關心的數據。1.3關系數據庫系統3.數據控制功能。可以管理工作組中使用、編輯數據的權限,完成數據安全性、完整性及一致性的定義與檢查,還可以保證數據庫在多個用戶間正常使用。4.數據維護功能。包括數據庫中初始數據的裝載,數據庫的轉儲、重組、性能監控、系統恢復等功能,它們大都由RDBMS中的實用程序來完成。1.3關系數據庫系統1.3.4常見的關系數據庫管理系統及分類關系數據庫有很多優點:有嚴格的理論基礎、提供單一的數據結構、存取路徑對用戶透明等,因此關系數據庫的使用非常普遍。目前,關系數據系統(RDBMS)的種類很多,常見的有Oracle、DB2、Sybase、Informix、Ingres、RDB、SQLServer、Access、FoxPro等系統。一個數據庫管理系統可定義為關系系統,它至少支持關系數據結構及選擇、投影和連接運算。這是對關系數據系統的最低要求。按照E.F.Codd衡量關系系統的準則,可以把關系數據庫系統分為三類:1.3關系數據庫系統1.半關系型系統。這類系統大都采用關系作為基本數據結構,僅支持三種關系操作。但不提供完備數據子語言、數據獨立性差。如FoxBASE、FoxPro就屬于這類。2.基本關系型系統。這類系統均采用關系作為基本數據結構,支持所有的關系代數操作,有完備的數據子語言,有一定的數據獨立性,并有一定的空值處理能力,有視圖功能,它滿足E.F.Codd衡量關系系統的準則的大部分條件。目前,大多數關系數據庫產品均屬此類。如DB2、Oracle、Sybase等。3.完全關系型系統。這是一種理想化的系統,這類系統支持關系模型的所有特征。雖然DB2、Oracle等系統已經接近這個目標,但尚不屬于完全關系型系統。1.3關系數據庫系統1.3.5關系數據庫系統——AccessMicrosoftAccess是MicrosoftOffice組件中重要的組成部分,是目前較為流行的關系數據庫管理系統。它具有大型數據庫的一些基本功能,支持事務處理功能,具有多用戶管理功能,支持數據壓縮、備份和恢復功能,能夠保證數據的安全性。Access不僅是數據庫管理系統,而且還是一個功能強大的開發工具,具有良好的二次開發支持特性,有許多軟件開發者把它作為主要的開發工具。與其他的數據庫管理系統相比,Access更加簡單易學,一個普通的計算機用戶即可掌握并使用它。1.3關系數據庫系統為了操作數據庫中的數據,我們必須使用數據庫管理系統軟件支持的數據庫語言。不同的關系數據庫管理系統提供不同的數據庫語言,稱為該關系數據庫管理系統的宿主語言。Access的宿主語言是VBA(VisualBasicApplication),同時支持結構化查詢語言SQL(StructuredQueryLanguage)。SQL語言被美國國家標準局(AmericanNationalStandardInstitute,簡稱ANSI)和國際標準化組織(InternationalOrganizationforStandardization,簡稱ISO)批準采納為關系數據庫系統標準語言。目前,各種關系數據庫管理系統均支持SQL。1.4關系數據庫標準語言SQL1.4.1SQL的特點SQL雖然被稱為結構化查詢語言,但是它的功能不僅僅包括查詢。實際上SQL語言集數據定義、數據操縱、數據查詢和數據控制功能于一體,充分體現了關系數據語言的優點,其特點如下:1.SQL是一種功能齊全的數據庫語言2.SQL是高度非過程化的語言3.SQL語言簡潔,易學易用4.語言共享1.4關系數據庫標準語言SQL1.4.2SQL的數據查詢和數據操作功能Access關系數據庫管理系統把VBA作為宿主語言,同時全面支持SQL,并允許將SQL作為子語言嵌套在VBA中使用。SQL語言具有數據定義、數據操作、數據查詢、數據控制等功能。在Access中,使用SQL主要體現在查詢對象的創建過程中。1.數據查詢SQL語言提供SELECT語句進行數據庫的查詢,其主要功能是實現數據源數據的篩選、投影和連接操作,并能夠完成篩選字段重命名、多數據源數據組合、分類匯總等具體操作。在Access中,使用SQL創建的查詢有聯合查詢、傳遞查詢、數據定義查詢和子查詢。1.4關系數據庫標準語言SQLSELECT語句的一般格式:SELECT[ALL|DISTINCT]<目標列表達式>[,<目標列表達式>]...FROM<表名或視圖名>[,<表名或視圖名>]...[WHERE<條件表達式>][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]];語句的功能是:根據WHERE子句中的條件表達式,從指定的基本表或視圖中找出滿足條件的記錄,按SELECT子句中的目標列表達式選出記錄中的目標列,形成結果表。如果有ORDERBY子句,則結果表要根據指定的<列名2>的值按升序或降序排序。如果有GROUPBY子句,則將結果表按<列名1>的值進行分組,該屬性列值相等的記錄為一個組。如果GROUP子句帶HAVING短語,則只有滿足指定條件的記錄才會被輸出。1.4關系數據庫標準語言SQL例如:Access中有如下SQL查詢:SELECT課程設置表.課程代碼,課程設置表.課程名稱,課程設置表.學時,課程設置表.學分FROM課程設置表WHERE(((課程設置表.學分)>4))ORDERBY課程設置表.學時

DESC;其結果是從課程設置表中找出學分大于4的課程的課程代碼、課程名稱、學時、學分,并按照學時的降序輸出。1.4關系數據庫標準語言SQLSELECT語句既可以完成簡單的單表查詢,也可以完成復雜的連接查詢和嵌套查詢。Access中所有的查詢操作都可以采用SQL語句來完成。實際上在查詢設計視圖中建立一個查詢對象就是生成一條SQL語句,在查詢設計視圖中對查詢對象所做的任何修改都會導致對應的SQL語句發生變化。1.4關系數據庫標準語言SQL2.數據操作SQL的操作功能是指對數據庫中數據的操作功能,包括數據的插入、修改和刪除。(1)插入數據。SQL的插入語句是INSERT,一般有兩種格式。一種是插入一個元組,另一種是插入子查詢結果。插入一個元組的INSERT語句格式為:INSERTINTO<表名>[(<列名1>[,<列名2>…])]VALUES(<常量1>[,<常量2>…])其功能是將新元組插入指定表中。其中屬性列1的值為常量1,屬性列2的值為常量2,…。如果某些屬性列在INTO子句中沒有出現,則新記錄在這些列上將取空值。1.4關系數據庫標準語言SQL例如將一個新學生記錄(學號:0005;姓名:高林;院系:中文)插入到學生關系(學號,姓名,院系)中。語句如下:INSERTINTO學生表VALUES(′0005′,′高林′,′中文′)插入子查詢結果語句的格式為:INSERTINTO<表名>[(<列名1>[,<列名2>…])]子查詢其功能是將子查詢的結果全部插入指定表中。1.4關系數據庫標準語言SQL(2)修改數據。SQL的修改數據語句是UPDATE,其格式為:UPDATE<表名>SET<列名>=<表達式>[,<列名>=<表達式>]…[WHERE<條件>];其功能是修改指定表中滿足WHERE子句條件的元組。其中SET子句用于指定修改方法,即用<表達式>的值取代相應的屬性列值。如果省略WHERE子句,則表示要修改表中的所有元組。例如將表1.8所示的選課表中所有學生的成績減少10分,其命令為:UPDATE選課表SET成績=成績-101.4關系數據庫標準語言SQL(3)刪除數據。SQL的刪除數據語句是DELETE,其格式為:DELETEFROM<表名>[WHERE<條件>];其功能是從指定表中刪除滿足WHERE子句條件的所有元組。如果省略WHERE子句,表示刪除表中的全部元組,但表的定義仍在字典中。即刪除的是表中的數據,而不是表的定義。例如刪除學生表中所有記錄,其命令為:DELETEFROM學生表這條語句刪除了學生表的所有元組,將使其成為空表。1.4關系數據庫標準語言SQL在關系數據庫應用系統的開發過程中,數據庫設計是核心和基礎。數據庫設計是指對于一個給定的應用環境,構造最優的數據模式,建立數據庫及其應用系統,有效存儲數據,滿足用戶信息要求和處理要求。針對一個具體問題,應該如何構造一個符合實際的恰當的數據模式,即應該構造幾個關系,每個關系應該包括哪些屬性,各個元組的屬性值應符合什么條件等,這些都是應當全面考慮的問題。在關系數據庫設計中要遵守一定的規則,下面討論數據庫關系完整性設計和數據庫規范化設計。1.5關系數據庫設計1.5.1數據庫關系完整性設計關系數據庫設計是對數據進行組織化和結構化的過程,核心問題是關系模型的設計。關系模型的完整性規則是對關系的某種約束條件,是指數據庫中數據的正確性和一致性。現實世界的實際存在決定了關系必須滿足一定的完整性約束條件,這些約束表現在對屬性取值范圍的限制上。完整性規則就是防止用戶使用數據庫時,向數據庫中加入不符合語義的數據。關系模型中有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。其中實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作關系的兩個不變性。1.5關系數據庫設計1.實體完整性規則實體完整性是指基本關系的主屬性,即主碼的值都不能取空值。例如:教師檔案表中,“教師編號”屬性為主碼,則“教師編號”不能取空值。例如:學生選課表中,“學號”和“課程代碼”一起構成主碼,則“學號”和“課程代碼”這兩個屬性的值均不能為空值,否則就違反了實體完整性規則。1.5關系數據庫設計2.參照完整性規則現實世界中的實體之間往往存在某種聯系,在關系模型中實體及實體間的聯系都是用關系來描述的。這樣就存在著關系與關系間的引用。參照完整性規則的定義:設F是基本關系R的一個或一組屬性,但不是關系R的主碼,如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外碼。對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值。1.5關系數據庫設計例如:教師檔案關系和院系關系中主碼分別是教師編號、院系代碼,用下劃線標識。教師檔案(教師編號,教師姓名,院系代碼,專業名稱)院系(院系代碼,院系名稱)這兩個關系之間存在著屬性的引用,即教師關系引用了院系關系的主碼“院系代碼”。按照參照完整性規則,教師關系中每個元組的“院系代碼”屬性只能取下面兩類值:空值:表示這位教師還未分配到任何一個院系工作。非空值:此時取值必須和院系關系中某個元組的“院系代碼”值相同,表示這個教師分配到該院系工作。1.5關系數據庫設計3.用戶定義的完整性用戶定義的完整性是針對某一具體關系數據庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。關系模型應提供定義和檢驗這類完整性規則的機制,其目的是用統一的方式由系統來處理它們,而不由應用程序來完成這項工作。例如:在學生成績表中規定成績不能超過100;在教師檔案表(教師編號,教師姓名,所屬院系名稱,所屬專業名稱)中,要求教師姓名的取值不能為空。1.5關系數據庫設計1.5.2數據庫規范化設計關系數據庫中的關系要滿足一定要求,滿足不同程度要求的為不同范式。目前遵循的主要范式包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和第四范式(4NF)等。規范化設計的過程就是按不同的范式,將一個二維表不斷地分解成多個二維表并建立表之間的關聯,最終達到一個表只描述一個實體或者實體間的一種聯系的目標。其目的是減少冗余數據,提供有效的數據檢索方法,避免不合理的插入、刪除、修改等操作,保持數據一致性,增強數據庫的穩定性、伸縮性和適應性。1.5關系數據庫設計1.第一范式關系中每一個數據項必須是不可再分的,滿足這個條件的關系模式就屬于第一范式。關系數據庫中的所有數據表都必然滿足第一范式。例如:將如表1.10所示的學生成績表規范為滿足第一范式的表。處理方法是處理表頭使其成為只具有一行表頭標題的數據表,如表1.11所示。1.5關系數據庫設計2.第二范式在一個滿足第一范式的關系中,如果所有非主屬性都完全依賴于主碼,則稱這個關系滿足第二范式。即對于滿足第二范式的關系,如果給定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論