數據庫技術是現代信息科學與技術的重要組成部分,是計算機數據處理與信息管理系統的核心。尤其在信息技術高速發展的今天,數據庫技術的應用深入到了社會的各個領域,學習和掌握數據庫知識非常必要。本書主要面向非計算機專業學生,通俗易懂、應用性強,有助于學生全面、系統地掌握數據庫基礎知識,并能結合所學專業開發具有應用價值的數據庫管理系統。
SQLServer是微軟公司的關系型數據庫系統產品,在20世紀80年代后期開始開發,先后推出了多個版本。目前,SQLServer2012成熟且具有眾多的新特性,已成為數據庫管理系統領域的引領者。SQLServer2012作為微軟公司的信息平臺解決方案,不僅延續現有數據平臺的強大能力,全面支持云技術,提供對企業基礎架構最高級別的支持,還提供更多、更全面的功能,以滿足不同人群對信息的需求,因此許多高校均將其列入教學內容。
數據庫原理與應用是普通高等院校非計算機專業的一門應用型專業基礎課,它的主要任務是研究數據的存儲、使用和管理,講解數據庫的基本原理、方法和應用技術,使學生能有效地使用現有的數據庫管理系統和軟件開發工具設計和開發數據庫應用系統。
結合數據庫原理與應用技術的最新發展,本書全面講述了數據庫的基本原理和SQLServer2012的應用,共包含4部分內容:一是數據庫基礎部分;二是SQLServer2012部分;三是以VBNET為前端設計工具、SQLServer2012作為數據庫平臺的數據庫應用開發部分;四是SQLServer2012上機實驗部分。各部分的內容概述如下。
1數據庫基礎部分。第1章數據庫技術概述,通過引入一個簡單的數據庫應用系統,概述數據庫和數據庫系統的組成、數據庫系統的體系結構、數據庫系統的發展和常見的關系型數據庫系統。第2章關系數據庫,概述關系模型、數據庫系統設計的基本過程和數據庫規范化基礎。
2SQLServer2012部分。第3章SQLServer數據庫,介紹了SQLServer2012的組成、SQLServer2012數據備份與恢復和SQLServer2012數據庫安全性管理。第4章SQLServerManagementStudio管理數據庫,建立與維護數據庫、數據表和索引。第5章關系數據庫標準語言SQL,簡介SQL、數據定義語言、數據操縱語言、數據查詢語言和視圖的操作。第6章數據庫編程,介紹TransactSQL語言基礎、存儲過程、觸發器和游標。
3數據庫應用開發部分。第7章VBNET程序設計基礎,介紹了VBNET基本概念、VBNET可視化界面設計、VBNET基本語法和程序調試。第8章ADONET數據訪問技術,簡介了ADONET、ADONET的數據訪問對象、DataSet對象、數據綁定方式、DataView對象和DataGridView對象。第9章數據庫應用系統開發案例,講解需求分析、設計與實現數據庫、設計與實現系統、系統測試以及形成應用系統開發文檔。
4SQLServer2012上機實驗部分。第10章實驗指導包括初識SQLServerManagementStudio、SQL數據定義語言、SQL數據操縱語言、使用SQL語句實現單表查詢、使用SQL語句連接查詢和嵌套查詢、使用SQL語句創建與更新視圖、流程控制語句、使用TSQL語句創建與更新存儲過程、使用TSQL語句創建與更新觸發器、建立VBNET和數據庫的連接以及數據庫應用系統設計。
本書以培養應用型和創新型數據庫技術人才為目標,結合作者多年教學實踐、教學改革以及應用實踐編寫而成,具有以下特點。
00
1實例貫穿始終。以SQLServer2012為數據庫管理系統平臺,引入學生熟悉的系統為示例貫穿始終,以對實例的分析解決為主線,將分散的知識點通過實例融合在一起,使學生更容易理解和掌握不同知識點的應用環境,從而加深對知識點的掌握程度,并提高應用的靈活性。
2體系完整、條理清晰。以SQLServer2012為數據庫管理系統平臺,分別從理論、實例、實訓和綜合案例的角度,系統地介紹數據庫的基本原理、SQLServer數據管理和使用方法以及數據庫系統的開發方法,內容全面,知識點豐富,有助于讀者理解、掌握與應用數據庫。
3任務驅動,注重實踐。緊扣理論知識點,附有小結、習題和上機實踐,方便讀者更加深入地進行學習。本書的系統開發案例,將數據庫原理與應用技術融入實際案例中,強調實踐性,突出實用性,讓讀者系統地體驗從數據庫規劃設計到數據庫運行維護的全過程。
4圖文并茂。本書由淺入深、循序漸進,反映新概念、新技術,用精選的圖表以及大量的截圖來闡述知識內容,有助于讀者加深概念理解、鞏固知識和掌握要點;力求圖文并茂,清晰展現概念、理論以及操作方法,使讀者易于學習和掌握,逐步培養讀者的學習興趣,為實踐教學打好基礎。
為了便于教學,本書提供了豐富而完整的教學和學習資源,包括PPT、課后習題答案、例題樣本數據庫和例題源代碼等。
本書由同濟大學經濟管理學院吳冰、徐德華編著,編者感謝同濟大學經濟管理學院的研究生陳小慧、盧彥君、杜寧和陳雯霞同學在本書編寫過程中做了大量的資料整理和錄入工作。
由于水平有限,書中難免有不妥之處,敬請廣大讀者和專家學者批評指正。
編者2017年3月
吳冰,管理學博士,同濟大學經管學院副教授。主要研究方向:知識管理和Web數據挖掘。主要講授《數據庫原理與應用》和《管理信息系統》等課程,其中《管理信息系統》被評為2007年上海市精品課程。主持多項同濟大學教改項目,包括《ERP精品實驗建設》和《數據庫原理與應用教材建設》,并在核心期刊發表多篇教改論文。出版《物流信息系統》《管理信息系統》等教材,其中《管理信息系統》被評為“十二五”規劃教材。
第1章數據庫技術概述
本章通過網上購物系統示例,引入數據庫系統;介紹數據庫系統的組成、數據管理技術的發展歷程和常見的關系型數據庫系統,為數據模型的建立打下基礎。
11數據庫示例及概述
111應用系統示例
本節以網上購物系統為例,介紹數據庫應用系統。
網上購物系統主要有以下功能。
1系統登錄
系統登錄界面如圖11所示,請思考:
問題(1):系統如何判斷所輸入的用戶名和密碼正確?
圖11系統登錄界面
2商品信息的錄入、修改、刪除和查詢
商品信息管理界面如圖12所示,請思考:
問題(2):商品信息的維護由誰負責?
問題(3):商品信息更新后,為什么客戶能及時得到更新后的商品信息?
圖12商品信息管理
以上問題的答案如下。
問題(1):所有用戶名和密碼都存儲在數據庫中。網上購物系統只是一個應用程序,處理的數據必須從特定的數據源中提取,這個數據源就是數據庫。
00
00
問題(2):商品信息的維護由商家根據實際進貨、庫存和銷售情況完成。
問題(3):雖然客戶和商家分布于不同的地理位置,但是他們通過網絡共享數據庫中的信息,操作對象是相同的。因此,商品信息會隨著商家的更新而及時發生變化。
112數據庫概述
111節的網上購物系統示例,充分展示了隨著計算機與網絡的普及,數字技術正改變人類賴以生存的社會環境,并因此使人類的生活和工作環境具備了更多的數字化特征。計算機技術的發展為科學有效地進行數據管理提供了先進的工具和手段,用計算機管理數據的方法已經滲透到社會的各個領域。
1數據與信息
數據是數據庫系統研究和處理的對象,是用來記錄信息的可識別的符號。數據用型和值來表示。數據的型是指數據內容存儲在媒體上的具體形式(例如,姓名、地址);值是指所描述的客觀事物的本體特性(例如,周四、上海市靜安區)。數據在數據處理領域中涵蓋的內容非常廣泛,不僅包括數字、字母、文字等常見符號,還包括圖形、圖像、聲音等媒體數據。
信息是消息,通常以文字、聲音或圖像的形式來表現。在軟件開發過程中,所管理的很多文檔中不同的數據條目通常附有相關的說明,這些說明就是起到了信息的作用。信息是反映客觀世界中各種事物的特征和變化,并可借助某種載體加以傳遞的有用知識。
數據是信息的一種具體表示形式,信息是各種數據所包括的意義。信息可用不同的數據形式來表現,信息不隨數據的表現形式而改變。例如,1980年10月1日與19801001。信息和數據的關系是:數據是信息的載體,是信息的具體表現形式。
2數據處理與數據管理
數據處理是將數據轉換成信息的過程,其根本目的就是從大量的、已知的數據中,根據事物之間的固有聯系和規律,通過對數據的收集、轉換和組織,數據的輸入、存儲、合并、計算和更新,數據的檢索和輸出等過程,提取出有價值、有意義的信息,作為決策的依據。
數據管理是數據處理的中心問題,一般情況下,數據管理應包括以下3方面內容。
(1)數據組織和數據保存。為了使數據能夠長期保存,數據管理工作需要將得到的數據合理地分類組織,并存儲在計算機硬盤等物理介質上。
(2)數據維護。數據管理工作要根據需要隨時進行增、刪、改數據的操作,即增加新數據、修改原數據和刪除無效數據。
(3)數據查詢和數據統計。數據管理工作要提供數據查詢和數據統計功能,以便快速準確地得到需要的數據,滿足各種使用要求。
數據庫系統的核心任務是數據管理,數據庫系統已成為計算機應用的一個重要分支,下面將詳細介紹數據庫管理技術的產生和發展。
3數據庫管理技術的產生和發展
1)人工管理階段
20世紀50年代中期以前,計算機主要用于科學計算,相當于一個計算工具。當時的硬件狀況是,外在只有紙帶、卡片、磁帶,沒有磁盤等直接的存儲設備,數據不保存在計算機內;軟件狀況是,沒有操作系統,沒有管理數據的專門軟件;數據處理方式是批處理。數據的管理由程序員個人考慮安排,只有程序的概念,沒有文件的概念;用戶程序與物理地址直接關聯,效率低,數據管理不安全靈活;數據與程序不具備獨立性,數據成為程序的一部分,數據面向程序,即一組數據對應一個程序,導致程序之間大量數據重復。在人工管理階段,應用程序與數據之間的對應關系可用圖13表示。
圖13人工管理階段應用程序
與數據之間的對應關系
2)文件系統階段
從20世紀50年代后期到60年代中期,硬件方面已經有了磁盤、磁鼓等直接存取存儲設備;軟件方面,操作系統中已經有了專門的數據管理軟件,一般稱為文件系統;處理方式上不僅有了批處理,而且能夠實時處理。所有文件由文件管理系統進行統一管理和維護。文件系統管理數據具有以下特點。
(1)數據可以長期保存。由于計算機大量用于數據處理,數據需要長期保留在外存上反復進行查詢、修改、插入和刪除等操作。
(2)由文件系統管理數據。由文件系統進行數據管理,文件系統把數據組織成相互獨立的數據文件。程序和數據之間由文件系統提供存取方法進行轉換,使應用程序和數據之間有了一定的獨立性,程序員可以不必過多地考慮物理細節,將精力集中于設計算法,而且數據在存儲上的改變不一定反映在程序上,大大節省了維護程序的工作量。
文件系統階段存在數據冗余性、數據不一致性、數據聯系弱、數據安全性差、缺乏靈活性等問題。文件系統階段應用程序與數據之間的對應關系如圖14所示。
3)數據庫系統階段
自20世紀60年代后期以來,計算機管理的對象規模越來越大,應用范圍越來越廣,以文件系統作為數據管理手段已不能滿足應用的需求,為解決多用戶、多應用共享數據的需求,使數據為盡可能多的應用服務,出現了數據庫技術和統一管理數據的專門軟件系統——數據庫管理系統(DBMS)。數據庫系統階段應用程序與數據之間的對應關系如圖15所示。
圖14文件系統階段應用程序與
數據之間的對應關系
圖15數據庫系統階段應用程序與
數據之間的對應關系
從文件系統到數據庫系統,標志著數據管理技術的飛躍,下面詳細討論數據庫系統的組成。
12數據庫系統的組成
數據庫系統(databasesystem,DBS)一般由數據庫(database,DB)、數據庫管理系統(databasemanagementsystem,DBMS)、應用系統(application)、數據庫管理員(administrator)和用戶(user)組成,如圖16所示。
圖16數據庫系統的組成
數據庫系統的查詢過程可以概括為:用戶通過應用系統輸入查詢條件,應用系統將查詢條件轉化成數據庫查詢命令并提交給數據庫管理系統,數據庫管理系統接收到查詢命令后,解析執行命令并在操作系統的幫助下從數據庫中提取數據返回應用系統,再由應用系統以直觀友好的格式顯示出查詢結果。
121數據庫
數據庫是按一定的數據模型組織、存儲和使用的相關聯的數據集合,不僅包括描述事物的數據本身,而且還包括相關事物之間的聯系。
1數據庫的分類
數據庫可以分成兩類:桌面型數據庫和網絡數據庫。
1)桌面型數據庫
桌面型數據庫,其主要特點如下。
(1)主要運行在個人計算機上,操作系統通常為桌面型操作系統。
(2)沒有或只提供有限的網絡應用功能。
(3)提供功能較弱的數據庫管理工具和功能較強的前端開發工具。
(4)管理簡單,使用方便。
(5)主要應用于小型的數據庫系統,滿足日常小型辦公需要。
對于并發用戶數不多和安全性能要求不高的場合,使用桌面型數據庫可以體現出管理簡單、使用方便的優勢。目前,許多小型的Web站點后臺的數據庫就是Access。
2)網絡數據庫
網絡數據庫的主要特點如下。
(1)運行在網絡操作系統之上。
(2)具有強大的網絡功能和分布式功能,可以根據具體的情況組合成各種模式。
(3)一般來說,數據庫系統管理工具、前端開發工具和后臺數據庫是可以分離的。
(4)技術先進,功能強大。
(5)具有完備的數據庫安全性。
2數據庫的主要特點
數據庫的主要特點有以下5個方面。
1)數據實現集中控制,具有統一的數據結構
整個數據庫按一定的結構形式構成,利用數據庫可對數據進行集中控制和管理,并通過數據模型表示各種數據的組織以及數據間的聯系。
2)實現數據共享
數據庫系統從整體角度看待和描述數據,數據共享包含所有用戶可同時存取數據庫中的數據,也包括用戶可以用各種方式通過接口使用數據庫,并提供數據共享。用戶可以同時存取數據且互不影響,大大提高了數據庫的使用效率,同時數據共享可以大大減少冗余度、節約存儲空間。
3)減少數據的冗余度
由于數據庫實現了數據共享,從而避免了用戶各自建立應用文件。減少了大量重復數據和數據冗余,維護了數據的一致性。
4)數據的獨立性
數據的獨立性包括數據的物理獨立性和數據的邏輯獨立性。
物理獨立性指,用戶的應用程序與數據庫物理結構是相互獨立的,當數據的物理結構改變時,可以保持數據的邏輯結構不變,從而應用程序也不必改變。
邏輯獨立性指,用戶的應用程序與數據庫的邏輯結構是相互獨立的,應用程序是依據數據的局部邏輯結構編寫,即使數據的邏輯結構改變了,應用程序也不必修改。
5)具有安全控制機制
(1)安全性控制:數據的安全性是指保護數據,以防止不合法使用造成數據的泄密、破壞、丟失、錯誤更新和越權使用,使每個用戶只能按規定對某些數據以某些方式進行使用和處理。
(2)完整性控制:數據的完整性是指數據的正確性、有效性、相容性和一致性。完整性檢查是指將數據控制在有效的范圍內,或保證數據之間滿足一定的關系。
(3)并發控制:當多個用戶的并發進程同時存取、修改數據庫時,可能會發生相互干擾而得到錯誤的結果或使數據庫的完整性和一致性遭到破壞,因此必須對用戶的并發操作加以控制和協調,使在同一時間周期內,允許對數據實現多路存取,又能防止用戶之間的不正常交互作用。
(4)故障的發現和恢復:當計算機系統遭到硬件故障、軟件故障、操作員誤操作或惡意破壞時,可能會導致數據錯誤或數據全部、部分丟失,數據庫必須及時發現故障和修復故障,從而防止數據被破壞。
122數據庫管理系統
數據庫管理系統(databasemanagementsystem,DBMS)是指數據庫系統中對數據庫進行管理的軟件系統,是數據庫系統的核心組成部分,數據庫的一切操作,如查詢、更新、插入、刪除以及各種控制,都是通過數據庫管理系統進行。
數據庫管理系統是位于用戶與操作系統之間的系統軟件。數據庫管理系統在操作系統支持下運行,借助于操作系統實現對數據的存儲和管理,使用戶方便地定義數據和操縱數據,使數據能被各種不同的用戶共享,并能夠保證數據的安全性、完整性、多用戶對數據的并發使用以及發生故障后的數據恢復。數據庫管理系統與用戶之間的接口稱為用戶接口,提供給用戶可使用的數據庫語言。
1數據庫管理系統的主要功能
數據庫管理系統種類很多,功能與性能方面存在一定的差異。通常,數據庫管理系統的功能包含以下6方面。
1)數據庫定義
通過數據庫管理系統提供的數據定義語言對數據庫的數據對象進行定義,實現全局邏輯結構、局部邏輯結構、物理結構定義以及權限定義等。
2)數據操作
通過數據操縱語言實現對數據庫的各種操作功能,如查詢、排序、統計、輸入、輸出、添加、插入、刪除、修改等功能。
3)數據庫運行管理
管理數據庫的運行是數據庫管理系統運行時的核心工作,包括對數據庫進行并發控制、安全性檢查、完整性約束條件的檢查和執行、數據庫的內部維護等。所有訪問數據庫的操作都要在這些控制程序的統一管理下進行,以保證數據的安全性、完整性、一致性以及多用戶對數據庫的并發使用、發生故障后的系統恢復。
4)數據組織、存儲和管理
數據庫中需要存放多種數據,如數據字典、用戶數據、存取路徑等,數據庫管理系統負責組織、存儲和管理這些數據,確定以何種文件結構和存取方式組織這些數據,如何實現數據之間的聯系,以便提高存儲空間利用率以及隨機查找、順序查找、增加、刪除、修改等操作的時間效率。
5)數據庫的建立和維護
建立數據庫,包括數據庫初始數據的輸入與數據轉換等。維護數據庫,包括數據庫的轉儲與恢復、數據庫的重組織與重構造、性能的監視與分析等。
6)數據通信功能
數據庫管理系統需要提供與其他軟件系統進行通信的功能,具備與操作系統的聯機處理、分時系統及遠程作業輸入的相應接口。例如,提供與其他數據庫管理系統或文件系統的接口,從而能夠將數據轉換為另一個數據庫管理系統或文件系統能夠接受的格式,或者接收其他數據庫管理系統或文件系統的數據。
2數據庫管理系統的組成
為了提供上述6方面的功能,數據庫管理系統通常由下列4部分組成。
1)數據定義語言及其編譯程序
數據定義語言(datadefinitionlanguage,DDL)用于定義數據庫和有關約束條件,通過數據描述語言編譯器將其翻譯成相應的內部表示,保存在數據字典中。
2)數據操縱語言或查詢語言及其編譯(或解釋)程序
……