版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數據庫原理及設計
PrincipleandDesignofDatabases課程目的掌握數據庫管理系統的基本原理;學習作為系統管理員應用、操作和管理數據庫管理系統的方法和技能;設計開發數據庫應用系統。內容提要數據庫管理系統基本原理基本概念:數據庫、數據庫管理系統、數據庫系統、視圖、數據模型及抽象等基本內容:關系數據庫與理論、SQL語言、數據庫安全性、數據庫完整性、數據庫并發控制、數據庫故障恢復等DBMS的基本原理在SQLServer中的體現;數據庫應用系統的設計與開發。講授方式首先講解數據庫系統的整體框架,了解其各部分組成及地位作用、所涉及的概念及內容;重視英文術語;根據整體框架,分別講授各個組成部分;各個部分的講解,基本上先講其基本概念及理論,緊接著將以SQLServerDBMS為例,對應講解該理論在實際的DBMS中的運用及體現;利用上機實驗條件和課內外課時,實際上機實習,加深理論,掌握有代表性的SQLServerDBMS;教材:陶宏才主編,<<數據庫原理及設計>>,第二版,清華大學出版社,2007.9學習方式好消息:課程內容是很多技術的基礎
–
非常重要;幾乎所有計算機應用領域都需要數據庫–
非常有用。警鐘:要把自己放到虛擬工作環境中,帶著問題來學。課程內容多,需要深入理解;學習不努力,考試徒傷悲!如何在本課程中獲得事半功倍的效果?積極主動地學習;記筆記;上課時腦細胞要活躍,多問為什么;按時、優質地完成作業;同學間討論問題;自己動手練習。成績評估方法平時成績占30%作業占15%課堂討論,測驗占15%(考勤)上機(完成并提交上機報告)期末考試成績占70%內容以課堂講授及教材為準。主要參考書王珊、薩師煊等編著.數據庫系統概論(第4版).高等教育出版社,2006鄭阿奇.SQLServer實用教程(第3版).電子工業出版社,2013年施伯樂等編著.數據庫系統教程.第2版.高等教育出版社,2003.8李建中,王珊編著.數據庫系統原理.電子工業出版社,1999.4王珊,陳紅編著.數據庫系統原理教程.清華大學出版社,1998.7RamezElmasri,ShamkantB.Navathe著.數據庫系統基礎.第3版.邵佩英,張坤龍等譯.人民郵電出版社,2002.11學習目的和要求數據庫管理系統出現的背景數據庫管理系統基本功能、抽象層次數據庫系統總體結構理解數據庫原理、應用及設計三部分間的關系數據庫系統中的術語與基本概念第一章數據庫系統概述思考一下
在數據庫系統還沒有出現的時候,你在大學學生處工作。有1000名新生需要登記信息,可能還會有1000人后續而來,你采用什么方法管理他們?一個完成數據輸入、存儲、修改、輸出、持久有效的系統存儲數據——使用一種數據結構易于修改數據——這種數據結構便于查找數據和修改數據持久有效——系統有安全保護措施走向數據庫之一:“史前時期”數據庫的“史前時期”是文件系統(FileSystem)時期。文件系統怎樣開發管理應用呢?開發任務簡單學生管理系統,學生注冊、選課、學籍和成績管理。開發工具及環境程序設計語言如C/C++,Windows下的文件系統。數據結構設計確定管理對象;抽取對象主要特征;將特征組織起來。利用C/C++語言中的“結構”數據類型存放數據。文件系統實現過程(1)-數據結構定義structStudent{ int nStudNo; charszStudName[20]; char cGender; int nAge; char szDept[30];};structEnrollment{ int nStudNo; int nWhichTerm; char cEnrolled; char szMem[30];};structCourse{int nCourseNo;charszCourseName[20];char szDept[30];};structScore{ int nStudNo; int nCourseNo; int nScore;};注:sz-數組(Array),n–整數(Number),c-字符(Char)文件系統實現過程(2)構造鏈表為了管理學生的信息,常常以班級為單位。如果對集合數據進行添加、修改、排序等操作,一個辦法是構造鏈表。在我們的例子中,至少需要構造四個這樣的鏈表。以學生基本信息鏈表為例:StudentInfoStudentInfoΛStudentInfo鏈表操作對班級的學生進行增加、刪除、修改、查詢與排序工作。相對于鏈表是對結點進行insert,delete,update,query,sort。文件系統實現過程(3)-用戶界面設計文件系統實現過程(4)創建數據存儲文件將鏈表中的數據以文件形式存盤。使用文件I/O操作函數完成對文件中數據的讀寫,上例中需要四個數據文件。程序運行前,需將數據文件中的數據讀出,放入程序中的對應鏈表中,以方便數據的操作。程序結束運行之前,將鏈表中的數據存入到對應的數據文件中。數據管理操作最基本的數據操作:增加、刪除、修改和查詢,簡稱:增刪改查詢。其他操作或功能由這四個基本操作組合而來文件系統的缺陷(1)無法處理超大量數據(如GB級,TB級,PB級)證券、銀行、保險等領域擁有超大量級數據。內寸不夠,不能一次讀入大量數據。32位計算機直接訪問的地址為4GB;在32位機上Linux、WindowsNT、Windows2000等操作系統不允許硬盤上單個文件超過232=4GB大小。大數據量下的查詢速度存在問題多用戶并發訪問(ConcurrentAccess)前面的學生管理系統只能單機或單用戶使用。多用戶的并發訪問可能導致多個用戶同時存取同一數據(Conflict)。數據訪問沖突導致數據不一致。多用戶并發訪問的透明度。文件系統的缺陷(2)故障情況下的恢復(CrashRecovery)文件系統需要增加大量代碼安全性(Security)文件系統必需做很大改進,以滿足數據安全的要求,例如:不同用戶的授權問題。數據的完整性(Integrity)同一數據可能會出現在多個數據結構中,同時對應地出現在多個數據文件中。修改一個文件的一個數據,必須同時修改其他文件中的相同的數據,否則就會產生數據的不一致。走向數據庫之二:“數據庫誕生”文件系統管理應用系統數據庫數據庫管理系統(DBMS)大容量數據并發訪問故障恢復安全性完整性文件系統大容量數據并發訪問故障恢復安全性完整性抽出五個基本公共功能形成數據庫管理系統引起的術語變化:
結構類型?數據模型(datamodel)具體的某個結構?數據模式(dataschema)數據文件?數據庫數據結構,數據文件開發支持數據庫系統的優點整體數據的結構化是數據庫的主要特征之一整體結構化不再僅僅針對某一個應用,而是面向全組織不僅數據內部結構化,整體是結構化的,數據之間具有聯系數據庫中實現的是數據的真正結構化數據的結構用數據模型描述,無需程序定義和解釋數據可以變長數據的最小存取單位是數據項數據庫系統的優點學號姓名性別年齡所在系家庭住址聯系電話學生記錄結構課程號課程名學時教材名稱學號課程號學期成績課程記錄結構選課記錄結構整體數據的結構化數據庫系統的優點數據獨立性(DataIndependence)將數據如何表示的(如:是數組還是整數?)和如何存儲的(如:一個記錄的長度)與應用程序分離數據結構和存儲方式發生變化不需修改和編譯應用程序。數據的邏輯獨立性:當模式改變時,數據庫管理員修改有關的外模式/模式映象,使外模式保持不變;應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。數據的物理獨立性:當數據庫的存儲結構改變了(例如選用了另一種存儲結構),數據庫管理員修改模式/內模式映象,使模式保持不變;應用程序不受影響。保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。數據庫系統的優點數據庫系統從整體角度看待和描述數據,數據面向整個系統,可以被多個用戶、多個應用共享使用。數據共享的好處減少數據冗余,節約存儲空間避免數據之間的不相容性與不一致性使系統易于擴充數據的共享性高,冗余度低,易擴充數據庫系統的優點高效數據訪問(EfficientDataAccess)DBMS利用許多復雜的技術來高效存儲和檢索數據,這對存于外部存儲設備上的數據相當重要。數據完整性與安全性(DataIntegrityandSecurity)DBMS建立完整性約束,如為每個數據項指定數據類型。DBMS提供授權子系統,每個用戶或用戶組被賦予一個通過口令保護的帳戶,不同的帳戶有不同的訪問權限。數據庫系統的優點(續)數據管理數據的集中管理可以控制冗余(Redundancy)。并發訪問與故障恢復多個用戶使用數據庫,但用戶感到好象只有他一個人在使用似的。數據庫在執行某個程序發生故障后,DBMS能把數據庫恢復到這個程序開始執行前的正確狀態。縮短應用開發時間(ReducedApplicationDevelopmentTime)五大功能及相關的任務由DBMS來完成,系統開發的難度降低,開發時間也縮短了。持久性存儲(PersistentStorage)數據庫可以為程序對象和數據結構提供持久性存儲。數據庫系統的基本功能數據獨立性并發控制故障恢復安全性完整性注意:雖然DBMS有很多優勢,但在某些情況下使用DBMS反而會導致不必要的開銷。如:苛刻的實時環境(現在有real-timeDB);操作少,代碼要求精煉時;數據是非結構化或半結構化的(如HTML、XML、MSWord文檔),還沒有相應的查詢語言支持。走向數據庫之三:“數據庫的抽象層次”應用系統開發數據庫的抽象過程對應用中的信息(數據)進行計算機化的管理“數據抽象”;例如:管理計算機系的學生李白(20010311)的“數據庫”課程的成績
用一定的方式來組織數據,使其具有結構化
“數據模型”(datamodel);利用“數據模型”工具完成對具體系統的數據抽取、組織,得到的結果就是“數據模式”(dataschema)復雜的應用系統,可分成多個應用子系統。對每個子系統進行數據抽象,得到各自的模式,稱為外模式(externalschema)“視圖抽象”;在外模式的基礎上“合零為整”,形成一個全局的數據模式,是概念上的,唯一的,稱為概念模式(conceptualschema)“概念抽象”;概念模式轉化成計算機可實現的內模式(internalschema),落實到計算機的物理實現層面“物理抽象”;數據庫三級抽象層次(模式)結構外模式1……概念模式內模式外模式m外模式n視圖抽象概念抽象物理抽象數據庫用戶組1用戶組n全局局部視圖抽象概念抽象概念抽象視圖抽象數據庫的抽象層次應用系統的設計和工具外模式1……概念模式內模式外模式2外模式n數據庫用戶組1用戶組n物理抽象物理抽象局部全局自頂向下自底向上物理抽象物理抽象數據庫舞臺上的角色最終用戶(enduser):為了查詢、更新、以及產生報表等需要而訪問數據庫的人。如銀行的柜員、商業分析師等。數據庫設計者:分析用戶需求,負責從“外部模式”
“概念模式”“內模式”建立數據庫的過程。數據庫管理員(DBA):負責數據庫監控、日常維護和管理。例如,為用戶授予存取權限等。數據庫設計者往往是DBA的候選人。有關的軟件工程師:開發數據庫工具軟件包;系統分析;等等。數據庫的語言數據庫設計人員使用數據定義語言(DDL)完成對數據庫模式的描述。數據庫管理員和用戶使用數據操縱語言(DML)對數據進行“增刪改查詢”等操作。數據庫管理員使用數據控制語言(DCL)對數據庫進行管理。SQL(StructuredQueryLanguage,結構化查詢語言)綜合了上述各方面在一個語言中,是關系型數據庫管理系統支持的數據庫語言。目前的標準化版本為SQL-92,被ANSI、ISO(InternationalStandardsOrganization)采納。SQL語言既可以作為交互式(Interactive)數據庫語言使用,也可以嵌入(Embedded)到程序設計語言中作為其子語言使用。程序設計語言被稱為宿主語言(HostLanguage),如:C/C++語言、PowerBuilder、Delphi等。數據庫設計、原理與應用之間的聯系數據庫系統總體結構圖利用SQL中的DDL將關系模式存入數據庫SQL定義語句概念模式
外模式1
外模式n
外模式2
現實系統
…
數據庫設計部分
內模式
關系數據庫管理系統RDBMS
數據庫實現(原理)部分DB
數據庫安全
并發控制
故障恢復
完整性限制CGI/ISAPI
ODBC/JDBC/OLEDB
SQL的嵌入式使用C/C++、PB、Delphi、Java應用程序
數據庫應用部分
用戶
SQL的交互式使用
SQL語句
C/S模式
瀏覽器
WEB服務器
B/S模式
HTTP
SQL語句CGI/ASP/JSP程序
走向數據庫之四:“數據庫的發展”“史前時期:文件系統“石器時代和中古時期”:層次與網狀數據庫系統“近代,1970+”:標準DBMS,關系數據庫系統(RDBS)“當代,1989+”:面向對象數據庫(OODBS)“當代,1990+”:對象-關系數據庫(ORDBS)“現代,1995+”:數據倉庫;并行數據庫;分布式數據庫;基于Internet/Web的數據庫系統……C/S結構,B/S結構OLTP,OLAP,數據挖掘……第一代數據庫系統1964,Bachmanetal,第一個數據庫IDS,網狀數據庫,——數據庫界第一個圖靈獎(1973)。1968,IBM,商品化產品,IMS,層次數據1969,DBTG,DBTG報告,確定了網狀數據庫系統的概念、方法和技術。
CharlesW.Bachman
第二代數據庫系統1970,IBM,E.F.Codd,提出了關系模型,奠定了關系型數據庫管理系統的基礎(關系數據庫之父)。數據庫界第二個圖靈獎(1981)
E.F.CoddJamesGray-1998年圖靈獎得主由于數據庫是計算機各種應用的基礎,它大大促進計算機的普及。IBM,“SystemR”項目成果極大地推動了關系數據庫技術的發展,在此基礎上推出的DB2和SQL等產品成為IBM的主流產品。SystemR本身作為原型并未問世,但鑒于其影響,ACM把1988年的“軟件系統獎”授予了SystemR開發小組(獲獎的6個人中就包括1998年圖靈獎得主J.Gray)。基于J.Gray在數據庫安全性、事務處理、圖形處理、存儲方面的杰出貢獻,他獲得了1998年圖靈獎。這是數據庫界第三個圖靈獎。JamesGray群雄并起到春秋五霸GartnerGroup(位于美國康涅狄克州斯坦福德的IT市場調查公司)基于估計的稅收(Revenues)對2005年RDBMS的賣主排序Top5:Oracle:48.9%IBM:22.4%Microsoft:13.9%Teradata:3.2%Sybase:3.0%關系數據庫管理系統2005年比前一年增長8.3%LarryEllison,OracleCEOOLAP/DataWarehouse/WebDataWarehouse1988年,IBM公司的研究者BarryDevlin和PaulMurphy發明了一個新的術語—信息倉庫,之后,IT的廠商開始構建實驗性的數據倉庫。1991,W.H.Inmon,提出了數據倉庫(DataWarehouse)的概念.1993,Codd,定義了OLAP,推動了數據倉庫的建立。Inmonvs.Kimball數據倉庫≠數據庫數據倉庫支持經營管理中的決策制定過程。它面向運營分析,數據挖掘(DataMining),決策,商務(政務)智能。數據庫面向商業處理,如銷售,進貨等一單一單的業務處理。為什么需要數據倉庫和OLAP數據庫平板文件數據倉庫去年的第二季度WalMart的所有分店的洗發水的銷售情況?顧客銷售…………50元50kg1元蘋果15元10塊1.5元香皂B126元20瓶6.3元洗發水A總銷售額銷售量單價貨品記錄內容(x年x月x日)每日的銷售記錄記錄存儲經理運營分析結果去年的第二季度WalMart的所有分店的洗發水的總銷售額為14500元OLTPandOLAP數據庫平板文件數據倉庫顧客銷售每日的銷售記錄記錄存儲OLTPOLAP新商業計劃運營分析結果Internet/WebDatabase單機多機本地網絡化純數據多媒體數據結構化數據非結構化數據/半結構化數據主機/顯示器C/S和B/S結構<?xmlversion="1.0"encoding="UTF-8"?>
<Student>
<Student1SID=20030001>
<name>ZhangPin</name>
<age>21</age>
<gender>Female<gender></Student1〉</Student>C/S和B/S模式2-tierClient/ServerDBMS服務器數據讀寫和處理。DB數據存儲客戶機提出業務要求;事物流控制;顯示結果。網絡應用服務器事物流控制;負荷平衡。提出業務要求;顯示結果。客戶機網絡DBMS服務器數據讀寫和處理。DB數據存儲應用服務器事物流控制;負荷平衡。瀏覽器客戶端:提出業務要求;顯示結果。HTTPWeb服務器CGI,ISAPI,NSAPIODBC,JDBC,OLEDB3-tierClient/ServerBrowser/Server模式
數據庫系統的基本概念(1)數據(Data):是描述現實世界中各種具體事物或抽象概念的、可存貯并具有明確意義的信息。數據庫(Database,DB):是相互關聯的數據集合。數據庫管理系統(DatabaseManagementSystem,DBMS):是一個通用的軟件系統,由一組計算機程序構成。它能對數據庫進行有效的管理,包括存儲管理、安全性管理、完整性管理等;同時,它也為用戶提供了一個軟件環境,使其能夠方便快速地創建、維護、檢索、存取和處理數據庫中的信息。數據庫系統的基本概念(2)數據庫系統(DatabaseSystem,DBS):由數據庫和數據庫管理系統構成,更廣義的構成則為“DB+DBMS+數據庫管理員+應用程序+用戶”。數據字典(DataDictionary,DD):是數據庫系統中的一個特殊文件,用于存儲數據庫中重要的說明信息,這些說明信息稱為元數據(MetaData)。元數據是描述數據的數據,例如:數據類型及長度(P17),價格單位,數據導出規則,等等,已經成為重要的系統數據。數據庫操作(DatabaseOperation):在數據庫應用中,最常見的有:增加、刪除、修改和查詢。大型數據庫與微機數據庫區別:在于微機數據庫系統的某些功能相對弱化了。視圖(1)視圖(View):從不同的角度截取同一數據庫的子集(不同的理解),每一個子集被稱為該數據庫的一個視圖。數據庫的分層視圖:
應用程序員
最終用戶
DBA
系統程序員
物理
數據
物理視圖
內模式
內部視圖
概念模式
概念視圖
子模式1
外部視圖
子模式2
子模式n
…
用戶圖表1
I/O視圖
…
用戶圖表2
用戶圖表n
組織
視圖(2)輸入輸出數據視圖:即終端用戶所見到的輸入輸出數據結構描述。是按用戶要求表示出的數據,如報表等。外部視圖(ExternalView):局部數據庫邏輯結構稱為外部視圖。這種視圖在數據庫設計時通常以圖形的形式(如E-R圖)表示,有的又叫視圖或用戶視圖。概念視圖(ConceptualView):整個數據庫系統的全局邏輯結構。這種邏輯結構稱為概念模型,它不包含任何數據庫的實現細節,如:何種DBMS、文件組織、存取方法等。這種邏輯結構的形式化描述稱為概念視圖。在數據庫設計時,概念視圖通常也以E-R圖表示。視圖(3)內部視圖(InternalView)或存儲視圖:特定的DBMS所處理的數據庫的內部結構稱為內部模型,其形式化描述稱為內部視圖或存儲視圖,它將數據庫表示為“內部記錄”或“存儲記錄”的集合。存儲記錄仍然是邏輯性的,它不是存儲設備上的物理記錄或物理塊,也不涉及任何具體設備限制,如:柱面或磁道的大小等,所以存儲視圖還不是最底層的物理層。存儲視圖還指明存儲記錄的物理順序、以及它們如何彼此關聯。存儲視圖的語言形式定義稱為內部模式。物理視圖(PhysicalView):數據庫在存儲設備上的物理組織稱為物理模型,其描述稱為物理視圖。它包含了所使用設備特征、物理記錄或塊的組成、尋址技術和壓縮存儲技術等的說明。數據抽象、數據模型與數據模式(1)數據抽象(DataAbstraction):即是將數據抽象化、邏輯化,使用戶不必了解數據庫文件的物理存儲結構、存儲位置和存取方法等細節,即可存取數據庫。在數據庫系統中,有三種級別的數據抽象,即:視圖級抽象、概念級抽象和物理級抽象。數據模型(DataModel):即是對數據進行抽象化表示的工具,主要使用邏輯概念(如對象、對象屬性、對象聯系等)來表示數據。由于抽象級別的存在,數據模型也存在相應的級別。如:概念數據模型、邏輯數據模型、物理數據模型等。對于抽象級別高的概念數據模型我們叫它語義(Semantic)數據模型,如ER模型。數據模式(DataSchema):根據數據模型來描述數據,得到的具體的表達。亦即是描述數據的模板。數據庫三級抽象層次(模式)結構外模式1……概念模式內模式外模式m外模式n視圖抽象概念抽象物理抽象數據庫用戶組1用戶組n數據抽象、數據模型與數據模式(2)三者的關系:數據抽象是將真實世界中的信息(數據)提煉,再提煉,變成計算機能認識,可以管理的數據的過程;數據模型是數據抽象的工具,是數據組織和表示的方式;數據模式是數據抽象利用數據模型將數據組織起來后得到的結果。數據模型的三要素數據結構用于描述系統的靜態特性。數據結構不僅要描述數據本身,還要描述數據之間的聯系。數據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 47788-2026紡織品紡織材料加速水解及水解產物在受控堆肥條件下生物降解的試驗方法
- 安全生產三莫忘原則講解
- 醫院健康電臺臺詞
- 道路消防安全工作部署
- 纖維調施膠干燥工崗前班組考核考核試卷含答案
- 己二酸裝置操作工操作規程評優考核試卷含答案
- 水供應輸排工安全意識模擬考核試卷含答案
- 電力機車鉗工安全行為水平考核試卷含答案
- 地震勘探工安全行為競賽考核試卷含答案
- 中藥油劑工崗中評優競賽考核試卷含答案
- 街區門樓改造方案范本
- 2026年中國郵政四川省分公司筆試題及答案
- 綠化工程監理實施細則
- 海南天然橡膠產業集團股份有限公司招聘筆試題庫2026
- 2025-2030聲波治療儀市場前景展望及未來經營優勢可行性研究報告(-版)
- 2025至2030中國抗纖維化藥物市場調研及戰略規劃報告
- 深度解析(2026)《YDT 6189-2024 面向電信運營商的用戶數據標簽管理技術要求》
- 無線電科普教學課件
- 新建質量部規劃方案【演示文檔課件】
- 2025海南東方市招聘社區專職工作人員196人備考題庫(第1號)附答案詳解(典型題)
- NBT 11684-2024 火力發電廠環境保護設計規范
評論
0/150
提交評論