




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數據庫系統原理第1章數據庫系統基本概念第2章數據模型與概念模型第3章數據庫設計第4章關系數據庫第5章關系數據庫標準語言——SQL第7章關系數據庫理論第8章數據庫保護10/1/制作人:張宇敬數據庫系統基本概念及其設計第1頁第1章數據庫系統基本概念1.1數據庫作用及相關概念一.數據、數據庫、數據庫管理系統(1)數據(Data)數據實際上就是描述事物符號統計。數據形式本身并不能完全表示其內容,需要經過語義解釋。數據與其語義是不可分。(2)數據庫(DB)數據庫是長久存放在計算機內有結構大量共享數據集合。它能夠供各種用戶共享、含有最小冗余度和較高數據獨立性。(3)數據庫管理系統(DBMS)數據庫管理系統是位于用戶與操作系統之間一層數據管理軟件。數據庫管理系統使用戶能方便地定義數據和操縱數據,并能夠確保數據安全性、完整性、多用戶對數據并發使用及發生故障后系統恢復。
10/1/制作人:張宇敬數據庫系統基本概念及其設計第2頁(4)數據庫系統(DBS)數據庫系統是指在計算機系統中引入數據庫后系統組成,普通由數據庫、數據庫管理系統(及其開發工具)、應用系統、數據庫管理員和用戶組成。(5)數據庫系統管理員(DBA)數據庫系統管理員負責數據庫建立、使用和維護專門人員。二.數據庫管理系統
DBMS是數據庫系統關鍵。它建立在操作系統基礎上,是位于操作系統與用戶之間一層數據管理軟件,負責對數據庫進行統一管理和控制。1、DBMS功效(1)數據定義定義數據庫模式、存放模式和外模式,定義各個外模式與模式之間映射,定義模式與存放模式之間映射,定義相關約束條件。10/1/制作人:張宇敬數據庫系統基本概念及其設計第3頁(2)數據操縱數據操縱包含對數據庫數據檢索、插入、修改和刪除等基本操作。(3)數據庫運行管理包含對數據庫進行并發控制、安全性檢驗、完整性約束條件檢驗和執行數據庫內部維護(如索引、數據字典自動維護)等。(4)數據組織、存放和管理對數據字典、用戶數據、存取路徑等數據進行分門別類地組織、存放和管理,確定以何種文件結構和存取方式物理地組織這些數據,怎樣實現數據之間聯絡,方便提升存放空間利用率以及提升隨機查找、次序查找、增、刪、改等操作時間效率。(5)數據庫建立和維護建立數據庫包含數據庫初始數據輸入與數據轉換等。維護數據庫包含數據庫轉儲與恢復、數據庫重組織與重結構、性能監視與分析等。(6)數據通信接口DBMS需要提供與其它軟件系統進行通信功效。比如提供與其它DBMS或文件系統接口,從而能夠將數據轉換為另一個DBMS或文件系統能夠接收格式,或者接收其它DBMS或文件系統數據。10/1/制作人:張宇敬數據庫系統基本概念及其設計第4頁2、DBMS組成(1)數據定義語言及其翻譯處理程序(2)數據操縱語言及其翻譯解釋程序數據操縱語言(DataManipulationLanguage,簡稱DML)用來實現對數據庫檢索、插入、修改、刪除等基本操作。(3)數據運行控制程序數據定義語言(DataDefinitionLanguage,簡稱DDL)供用戶定義數據庫模式、存放模式、外模式、各級模式間映射、相關約束條件等。系統運行控制程序負責數據庫運行過程中控制與管理(包含系統初啟程序、文件讀寫與維護程序、存取路徑管理程序、緩沖區管理程序、安全性控制程序、完整性檢驗程序、并發控制程序、事務管理程序、運行日志管理程序等)。(4)實用程序包含數據初始裝入程序、數據轉儲程序、數據庫恢復程序、性能監測程序、數據庫再組織程序、數據轉換程序、通信程序等。10/1/制作人:張宇敬數據庫系統基本概念及其設計第5頁3.DBMS工作過程(1)應用程序A向DBMS發出從數據庫中讀數據統計命令;(2)DBMS對該命令進行語法檢驗、語義檢驗,并調用應用程序A對應子模式,檢驗A存取權限,決定是否執行該命令。假如拒絕執行,則向用戶返回錯誤信息;(3)在決定執行該命令后,DBMS調用模式,依據子模式/模式映象定義,確定應讀入模式中哪些統計;(4)DBMS調用物理模式,依據模式/物理模式映象定義,決定應從哪個文件、用什么存取方式、讀入哪個或哪些物理統計;(5)DBMS向操作系統發出執行讀取所需物理統計命令;(6)操作系統執行讀數據相關操作;(7)操作系統將數據從數據庫存放區送至系統緩沖區;(8)DBMS依據子模式/模式映象定義,導出應用程序A所要讀取統計格式;(9)DBMS將數據統計從系統緩沖區傳送到應用程序A用戶工作區;(10)DBMS向應用程序A返回命令執行情況狀態信息。10/1/制作人:張宇敬數據庫系統基本概念及其設計第6頁1.2數據庫技術產生與發展
10/1/制作人:張宇敬數據庫系統基本概念及其設計第7頁1.3數據庫系統結構
數據庫系統三級模式結構是指數據庫系統是由外模式、模式和內模式三級組成。10/1/制作人:張宇敬數據庫系統基本概念及其設計第8頁
(1)模式模式是數據庫中全體數據邏輯結構和特征描述。數據庫模式以某一個數據模型為基礎。定義模式時不但要定義數據邏輯結構(比如數據統計由哪些數據項組成,數據項名字、類型、取值范圍等),而且要定義與數據相關安全性、完整性要求,定義這些數據之間聯絡。(2)外模式外模式也稱子模式或用戶模式,它是數據庫用戶(包含應用程序員和最終用戶)看見和使用局部數據邏輯結構和特征描述,是數據庫用戶數據視圖,是與某一應用相關數據邏輯表示。(3)內模式內模式也稱存放模式,它是數據物理結構和存放結構描述,是數據在數據庫內部表示方式(比如,統計存放方式是次序存放、按照B樹結構存放還是按hash方法存放;索引按照什么方式組織;數據是否壓縮存放,是否加密;數據存放統計結構有何要求)。一個數據庫只有一個內模式。10/1/制作人:張宇敬數據庫系統基本概念及其設計第9頁
3、數據庫二級映象功效與數據獨立性對于每一個外模式,數據庫系統都有一個外模式/模式映象,它定義了該外模式與模式之間對應關系。當模式改變時,由數據庫管理員對各個外模式/模式映象作對應改變,能夠使外模式保持不變,從而應用程序無須修改,確保了數據邏輯獨立性。數據庫中只有一個模式,也只有一個內模式,所以模式/內模式映象是唯一,它定義了數據全局邏輯結構與存放結構之間對應關系。當數據庫存放結構改變了,由數據庫管理員對模式/內模式映象作對應改變,能夠使模式保持不變,從而確保了數據物理獨立性。10/1/制作人:張宇敬數據庫系統基本概念及其設計第10頁4.數據庫系統體系結構(1)單用戶數據庫系統整個數據庫系統,包含應用程序、DBMS、數據,都裝在一臺計算機上,為一個用戶獨占,不一樣機器之間不能共享數據。(2)主從式結構數據庫系統指一個主機帶多個終端多用戶結構。在這種結構中,數據庫系統,包含應用程序、DBMS、數據,都集中存放在主機上,全部處理任務都由主機來完成,各個用戶經過主機終端并發地存取數據庫,共享數據資源。(3)分布式結構數據庫系統分布式結構數據庫系統是指數據庫中數據在邏輯上是一個整體,但物理地分布在計算機網絡不一樣結點上。網絡中每個結點都能夠獨立處理當地數據庫中數據,執行局部應用;同時也能夠同時存取和處理多個異地數據庫中數據,執行全局應用。
(4)客戶/服務器結構數據庫系統服務器:網絡中某個(些)結點上計算機專門用于執行DBMS功效,稱為數據庫服務器。客戶機:其它結點上計算機安裝DBMS外圍應用開發工具,支持用戶應用,稱為客戶機。回首頁10/1/制作人:張宇敬數據庫系統基本概念及其設計第11頁第2章數據模型與概念模型
2.1信息三種世界1.數據模型基本概念數據模型用來抽象、表示和處理現實世界中數據和信息。即數據模型就是現實世界模擬。數據模型應滿足三個方面要求:比較真實模擬現實世界;輕易為人們了解;便于計算機表示。數據模型分成兩個不一樣層次:(1)概念模型,它是按用戶觀點來對數據和信息建模。(2)數據模型,主要包含網狀模型、層次模型、關系模型等,它是按計算機系統觀點對數據建模。2.數據模型三要素(1)數據結構(2)數據操作(3)數據約束條件10/1/制作人:張宇敬數據庫系統基本概念及其設計第12頁2.2.概念模型及其特點1.概念模型:概念模型用于信息世界建模。概念模型不依賴于某一個DBMS支持數據模型。概念模型能夠轉換為計算機上某一DBMS支持特定數據模型。概念模型特點:(1)含有較強語義表示能力,能夠方便、直接地表示應用中各種語義知識.(2)應該簡單、清楚、易于用戶了解,是用戶與數據庫設計人員之間進行交流語言。2.實體型(EntityType)用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。3.實體集(EntitySet)同型實體集合稱為實體集。4.聯絡(Relationship)現實世界中事物內部以及事物之間聯絡在信息世界中反應為實體內部聯絡和實體之間聯絡。5.表示概念模型實體-聯絡方法(Entity-RelationshipApproach,E-R方法)E-R圖提供了表示實體型、屬性和聯絡方法: 實體型:用矩形表示,矩形框內寫明實體名。 屬性:用橢圓形表示,并用無向邊將其與對應實體連接起來 聯絡:用菱形表示,菱形框內寫明聯絡名,并用無向邊分別與相關實體連接起來,同時在無向邊旁標上聯絡類型(1:1、1:n或m:n)。10/1/制作人:張宇敬數據庫系統基本概念及其設計第13頁2.3常見三種模型1.層次數據模型(1)數據結構用樹形結構表示各類實體以及實體之間聯絡。只有一個根結點;除結點外其它結點只有一個雙親結點。(2)操縱及完整性約束層次數據模型操縱主要有查詢、插入、刪除和更新。進行插入、刪除、更新操作時要滿足層次模型完整性約束條件。進行插入操作時,假如沒有對應雙親結點值就不能插入兒女結點值。進行刪除操作時,假如刪除雙親結點值,則對應兒女結點值也被同時刪除。進行更新操作時,應更新全部對應統計,以確保數據一致性。(3)層次數據模型存放結構
鄰接法:按照層次樹一定次序把全部統計值依次鄰接存放,即經過物理空間位置相鄰來實現層次次序。鏈接法:用指針來反應數據之間層次聯絡。10/1/制作人:張宇敬數據庫系統基本概念及其設計第14頁2.網狀數據模型(1)數據結構網狀數據模型是一個比層次模型更具普遍性結構,它去掉了層次模型兩個限制,允許多個結點沒有雙親結點,允許結點有多個雙親結點,允許兩個結點之間有各種聯絡(稱之為復合聯絡)。(2)操縱及完整性約束
網狀數據模型操縱主要包含查詢、插入、刪除和更新數據。插入操作允許插入還未確定雙親結點值兒女結點值。刪除操作允許只刪除雙親結點值。更新操作時只需更新指定統計即可。(3)存放結構
網狀數據模型存放結構依詳細系統不一樣而不一樣,慣用方法是鏈接法,包含單向鏈接、雙向鏈接、環狀鏈接等。10/1/制作人:張宇敬數據庫系統基本概念及其設計第15頁3.關系數據模型(1)數據結構
一個關系模型邏輯結構是一張二維表,它由行和列組成。表中一行即為一個元組;表中一列即為一個屬性。(2)操縱及完整性約束
關系數據模型操縱主要包含查詢、插入、刪除和更新數據這些操作必須滿足關系完整性約束條件。關系模型中數據操作是集合操作,操作對象和操作結果都是關系,即若干元組集合。關系模型把存取路徑向用戶隱蔽起來,用戶只要指出“干什么”,無須詳細說明“怎么干”,從而大大地提升了數據獨立性。關系數據庫標準操作語言是SQL語言。(3)存放結構
關系數據模型中,實體及實體間聯絡都用表來表示。在數據庫物理組織中,表以文件形式存放,每一個表通常對應一個文件結構。后首頁10/1/制作人:張宇敬數據庫系統基本概念及其設計第16頁第3章數據庫設計
3.1數據庫設計步驟1.數據庫設計基本步驟(1)需求分析階段需求搜集和分析,結果得到數據字典描述數據需求和數據流圖描述處理需求。(2)概念結構設計階段經過對用戶需求進行綜合、歸納與抽象,形成一個獨立于詳細DBMS概念模型,能夠用E-R圖表示。(3)邏輯結構設計階段將概念結構轉換為某個DBMS所支持數據模型,比如關系模型,并對其進行優化。(4)數據庫物理設計階段為邏輯數據模型選取一個最適合應用環境物理結構,包含存放結構和存取方法。10/1/制作人:張宇敬數據庫系統基本概念及其設計第17頁(5)數據庫實施階段利用DBMS提供數據語言(比如SQL)及其宿主語言(比如C),依據邏輯設計和物理設計結果建立數據庫,編制與調試應用程序,組織數據入庫,并進行試運行。(6)數據庫運行和維護階段數據庫應用系統經過試運行后即可投入正式運行。在數據庫系統運行過程中必須不停地對其進行評價、調整與修改。3.2需求分析
1.需求分析任務.詳細調查現實世界要處理對象.充分了解原系統工作概況.明確用戶各種需求.確定新系統功效10/1/制作人:張宇敬數據庫系統基本概念及其設計第18頁2.需求分析方法(1)調查組織機構情況(2)調查各部門業務活動情況(3)幫助用戶明確對新系統各種要求(4)確定新系統邊界3.數據流圖數據流圖表示了數據和處理過程關系。系統中數據則借助數據字典(DataDictionary,簡稱DD)來描述。4.數據字典數據字典是進行數據搜集和數據分析所取得主要結果。數據字典是各類數據描述集合。數據字典通常包含數據項、數據結構、數據流、數據存放和處理過程五個部分。10/1/制作人:張宇敬數據庫系統基本概念及其設計第19頁3.3概念結構設計
1.概念結構設計方法·自頂向下:先定義全局概念結構框架,然后逐步細化。·自底向上:先定義各局部應用概念結構,然后將它們集成起來,得到全局概念結構。·逐步擴張:先定義最主要關鍵概念結構,然后向外擴充,直至總體概念結構。不論采取哪種設計方法,普通都以E-R模型為工具來描述概念結構。2.數據抽象與局部視圖設計以自底向上設計方法為例,它通常分為兩步:第一步,依據需求分析結果,對現實世界數據進行抽象,設計各個局部視圖即分E-R圖。第二步,集成局部視圖。3.視圖集成集成份E-R圖時都需要兩步:1)合并;2)修改與重構。10/1/制作人:張宇敬數據庫系統基本概念及其設計第20頁3.4邏輯結構設計
設計邏輯結構時普通要分三步進行:·將概念結構轉換為普通關系、網狀、層次模型·將轉化來關系、網狀、層次模型向特定DBMS支持下數據模型轉換·對數據模型進行優化1.E-R圖向數據模型轉換轉換標準:(1)一個實體型轉換為一個關系模式。實體屬性就是關系屬性。實體碼就是關系碼。(2)一個m:n聯絡轉換為一個關系模式。與該聯絡相連各實體碼以及聯絡本身屬性均轉換為關系屬性。而關系碼為各實體碼組合。(3)一個1:n聯絡能夠轉換為一個獨立關系模式,也能夠與n端對應關系模式合并。假如轉換為一個獨立關系模式,則與該聯絡相連各實體碼以及聯絡本身屬性均轉換為關系屬性,而關系碼為n端實體碼。(4)一個1:1聯絡可轉換為一個獨立關系模式,也可與任一端對應關系模式合并。(5)三個或三個以上實體間一個多元聯絡轉換為一個關系模式。與該多元聯絡相連各實體碼以及聯絡本身屬性均轉換為關系屬性。而關系碼為各實體碼組合。(6)同一實體集實體間聯絡,即自聯絡,也可按上述1:1、1:n和m:n三種情況分別處理。(7)含有相同碼關系模式可合并。
10/1/制作人:張宇敬數據庫系統基本概念及其設計第21頁2.數據模型優化(1)確定數據依賴。(2)按照數據依賴理論對關系模式逐一進行分析,考查是否存在部分函數依賴、傳遞函數依賴、多值依賴等,確定各關系模式分別屬于第幾范式。(3)按照需求分析階段得到各種應用對數據處理要求,分析對于這么應用環境這些模式是否適當,確定是否要對它們進行合并或分解。(4)對關系模式進行必要分解。3.設計用戶子模式局部應用視圖是概念模型,用E-R圖表示。在將概念模型轉換為邏輯模型后,即生成了整個應用系統模式后,還應該依據局部應用需求,結合詳細DBMS特點,設計用戶外模式。10/1/制作人:張宇敬數據庫系統基本概念及其設計第22頁3.5數據庫物理設計一、確定數據庫物理結構(1)確定數據存放結構(2)設計數據存取路徑(3)確定數據存放位置(4)確定系統(參數)配置二、評價物理結構評價物理數據庫方法完全依賴于所選取DBMS,主要是從定量估算各種方案存放空間、存取時間和維護代價入手,對估算結果進行權衡、比較,選擇出一個較優合理物理結構。假如該結構不符適用戶需求,則需要修改設計。10/1/制作人:張宇敬數據庫系統基本概念及其設計第23頁3.6數據庫實施、運行與維護一、定義數據庫結構確定了數據庫邏輯結構與物理結構后,就能夠用所選取DBMS提供數據定義語言(DDL)來嚴格描述數據庫結構。二、數據裝載數據庫結構建立好后,就能夠向數據庫中裝載數據了。組織數據入庫是數據庫實施階段最主要工作。對于數據量不是很大小型系統,能夠用人式方法完成數據入庫,其步驟為:(1)篩選數據:需要裝入數據庫中數據通常都分散在各個部門數據文件或原始憑證中,所以首先必須把需要入庫數據篩選出來。(2)轉換數據格式篩選出來需要入庫數據,其格式往往不符合數據庫要求,還需要進行轉換。這種轉換有時可能很復雜。(3)輸入數據將轉換好數據輸入計算機中。(4)校驗數據檢驗輸入數據是否有誤。三、編制與調試應用程序數據庫應用程序設計應該與數據設計并行進行。調試應用程序時因為數據入庫還未完成,可先使用模擬數據。四、數據庫試運行回首頁10/1/制作人:張宇敬數據庫系統基本概念及其設計第24頁第4章關系數據庫
4.1關系數據庫概述一.關系模型組成關系模型是關系數據庫系統基礎模型。關系模型由關系數據結構、關系操作和完整性約束三部分組成。關系數據結構:關系模型數據結構其邏輯形式是一張二維表。這種二維表結構可描述現實世界實體以及實體間各種聯絡,且結構單一。關系操作:關系操作采取集合操作方式,即操作對象和結果都是集合。慣用關系操作包含:查詢、選擇、投影、連接、除、并、交、差、增加、刪除、修改等。完整性約束:關系模型定義了三類完整性約束:實體完整性、參考完整性和用戶定義完整性。其中實體完整性和參考完整性是關系模型必須滿足完整性約束,由關系數據庫系統強制執行。10/1/制作人:張宇敬數據庫系統基本概念及其設計第25頁二.描述關系操作語言描述關系操作語言能夠分為三類:三.關系數據結構在關系模型中,實體和實體之間聯絡均由關系(二維表)來表示。10/1/制作人:張宇敬數據庫系統基本概念及其設計第26頁1.基本概念域:域是一組含有相同數據類型值集合。比如:非負整數、長度等于3字符串。笛卡爾積:給定一組域D1,D2,…,Dn。D1,D2,…,Dn笛卡爾積定義為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Dj,j=1,2,…,n}其中每一個元素(d1,d2,…,dn)叫作一個元組。元素中每一個值di叫作一個分量。若Di(i=1,2,…,n)為有限集,其基數為mi(i=1,2,…,n),則D1×D2×…×Dn基數為:nm=∏mii=110/1/制作人:張宇敬數據庫系統基本概念及其設計第27頁2.關系D1×D2×…×Dn一個子集叫作域D1、D2、…、Dn上一個關系,用R(D1,D2,…,Dn)表示。這里R表示關系名字,n是關系目或度。關系中每個元素是關系中元組,通慣用t表示。關系是笛卡積子集,所以關系也是一個二維表,表每行對應一個元組,表每列對應一個域。因為域能夠相同,為了加以區分,必須對每列起一個名字,稱為屬性名。候選碼:能唯一地標識一個元組一組屬性。3.關系性質:①同一列中分量是同一類型數據。不一樣列能夠取相同數據類型。②關系中列又稱為屬性,并賦予屬性名。不一樣列屬性名不一樣。③列次序能夠任意交換。④任意兩個元組不能完全相同。⑤行次序能夠任意交換。⑥列含有原子性,即每一列值是不可分數據項10/1/制作人:張宇敬數據庫系統基本概念及其設計第28頁4.關系模式關系模式是對關系描述。一個關系模式是一個五元組。可表示為R(U,D,DOM,F)其中R為關系名,U為屬性名集合,D為屬性組U中屬性所來自域,DOM為屬性向域映象集合,F為屬性間數據依賴關系集合。5.關系數據庫在關系模型中,實體以及實體間聯絡都是用關系來表示。在一個給定應用中,全部實體及實體之間聯絡關系集合組成一個關系數據庫。四.關系完整型1.實體完整性實體完整性規則:若屬性A是基本關系R主屬性,則屬性A不能取空值。2.參考完整性定義設F是基本關系R一個或一組屬性,但不是關系R碼,假如F與基本關系S主碼Ks相對應,則稱F是基本關系R外碼,并稱基本關系R為參考關系,基本關系S為被參考關系。10/1/制作人:張宇敬數據庫系統基本概念及其設計第29頁參考完整性規則:若屬性或屬性組F是基本關系R外碼,它與基本關系S主碼Ks相對應,則對于R中每個元組在F上值必須為:或者取空值(F每個屬性值均為空值);或者等于S中某個元組主碼值。3.用戶定義完整性用戶定義完整性是針對某一詳細關系數據庫約束條件,它反應某一詳細應用所包括數據必須滿足語義要求。比如: 某個屬性取值不能為空; 某個屬性取值范圍在0~100之間。10/1/制作人:張宇敬數據庫系統基本概念及其設計第30頁4.2關系代數
1.關系代數運算符10/1/制作人:張宇敬數據庫系統基本概念及其設計第31頁幾個記號(1)設關系模式為R(A1,A2,…,An)。它一個關系設為R。t∈R表示t是R一個元組。t[Ai]則表示元組t中對應于屬性Ai一個分量。(2)設A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中一部分,則A稱為屬性列。フA則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩下屬性組。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量集合。(3)R為n目關系,S為m目關系。稱為元組連接。它是一個(n+m)列元組,前n個分量為R中一個n元組,后m個分量為S中一個m元組。3.傳統集合運算(1)并(Union)R∪S={t|t∈R∨t∈S}10/1/制作人:張宇敬數據庫系統基本概念及其設計第32頁(2)差(Difference)R-S={t|t∈R∧フt∈S}(3)交(IntersectionReferentialintegrity)R∩S={t|t∈R∧t∈S}(4)廣義笛卡爾積(Extendedcartesianproduct)4.專門關系運算專門關系運算包含選擇、投影、連接、除等。(1)選擇(Selection)它是在關系R中選擇滿足給定條件諸元組.(2)投影(Projection)關系R上投影是從R中選擇出若干屬性列組成新關系。記作:ΠA(R)={t[A]|t∈R}10/1/制作人:張宇敬數據庫系統基本概念及其設計第33頁(3)連接(Join)它是從兩個關系笛卡爾積中選取屬性間滿足一定條件元組.。有兩種慣用連接,一個是等值連接,另一個是自然連接。θ為“=”連接運算稱為等值連接。它是從關系R與S笛卡爾積中選取A、B屬性值相等那些元組。自然連接是一個特殊等值連接。需在等值連接結果中把重復屬性去掉。普通連接操作是從行角度進行運算。但自然連接還需要取消了重復列,所以是同時從行和列角度進行運算。10/1/制作人:張宇敬數據庫系統基本概念及其設計第34頁4.3關系演算關系演算是以數理邏輯中謂詞演算為基礎。按謂詞變元不一樣,關系演算可分為元組關系演算和域關系演算。以下以ALPHA語言為例,介紹元組關系演算思想。1.元組關系演算ALPHAALPHA語言主要有GET、PUT、HOLD、UPDATE、DELETE、DROP六條語句。語句基本格式是:操作語句工作空間名(表示式):操作條件其中表示式用于指定語句操作對象,它能夠是關系名或屬性名。操作條件是一個邏輯表示式,用于將操作對象限定在滿足條件元組中。2、檢索操作:用GET語句實現。3、更新操作(1)修改操作修改操作用UPDATE語句實現。(2)插入操作插入操作用PUT語句實現。(3)刪除刪除操作用DELETE語句實現。回首頁10/1/制作人:張宇敬數據庫系統基本概念及其設計第35頁第5章關系數據庫標準語言SQL
5.1SQL概述1.SQL特點(1)綜合統一SQL語言集DDL、DML、DCL于一體,包含定義關系模式、錄入數據、建立數據庫、查詢、更新、維護、數據庫重構、數據庫安全性控制等一系列功效。(2)非過程化用戶無需了解存取路徑,用戶只需提出“做什么”,而無須指明“怎么做”。存取路徑選擇以及SQL語句操作過程由系統自動完成。(3)面向集合操作方式SQL語言采取集合操作方式,不但查找結果能夠是元組集合。(4)以同一個語法結構提供兩種使用方式SQL語言可采取交互式和嵌入式兩種使用方式。(5)語言簡練SQL語言功效強,語言簡練。10/1/制作人:張宇敬數據庫系統基本概念及其設計第36頁2.SQL語言基本概念SQL語言支持關系數據庫三級模式結構。外模式對應于視圖和部分基本表,模式對應于基本表,內模式對應于存放文件。基本表是本身獨立存在表,在SQL中一個關系就對應一個表。一個存放文件中可有多個基本表。存放文件邏輯結構組成了關系數據庫內模式。存放文件物理文件結構是任意。視圖是從基本表或其它視圖中導出表,它不獨立存放在數據庫中,數據庫只存放視圖定義,所以視圖是一個虛表。
10/1/制作人:張宇敬數據庫系統基本概念及其設計第37頁5.2數據定義1.定義基本表CREATETABLE<表名> (<列名><數據類型>[列級完整性約束條件] [,<列名><數據類型>[列級完整性約束條件]...) [,<表級完整性約束條件>];建表時可定義完整性約束條件,當用戶操作表中數據時系統自動檢驗該操作是否違反這些完整性約束條件。假如完整性約束條件包括多個屬性列,則必須定義在表級上,不然既能夠定義在列級也能夠定義在表級。2.修改基本表ALTERTABLE<表名> [ADD<新列名><數據類型>[完整性約束]] [DROP<完整性約束名><完整性約束名>] [MODIFY<列名><數據類型><數據類型>];ADD子句用于增加新列和新完整性約束條件,DROP子句用于刪除指定完整性約束條件,MODIFY子句用于修改原有列定義。
10/1/制作人:張宇敬數據庫系統基本概念及其設計第38頁3.刪除基本表 DROPTABLE<表名>基本表定義一旦刪除,表中數據、在此表上建立索引都將自動被刪除掉,而建立在此表上視圖雖依然保留,但已無法引用。4.建立索引CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]...);索引能夠建在表一列或多列上。可在每個<列名>后面指定索引值排列次序。ASC表示升序,DESC表示降序,缺省值為ASC。UNIQUE表明建唯一性索引。CLUSTER表示建聚簇索引。所謂聚簇索引是指索引項次序與表中統計物理次序一致索引。5.刪除索引 DROPINDEX<索引名>;10/1/制作人:張宇敬數據庫系統基本概念及其設計第39頁5.3查詢SELECT[ALL|DISTINCT]<目標列表示式>[,<目標列表示式>]...FROM<表名或視圖名>[,<表名或視圖名>]...[WHERE<條件表示式>][GROUPBY<列名1>[HAVING<條件表示式>]][ORDERBY<列名2>[ASC|DESC]];·SELECT語句含義:依據WHERE子句條件表示式,從FROM子句指定基本表或視圖中找出滿足條件元組,再按SELECT子句中目標列表示式,選出元組中屬性值形成結果表。·假如有GROUP子句,則將結果按<列名1>值進行分組,該屬性列值相等元組為一個組,每個組產生結果表中一條統計。·假如GROUP子句帶HAVING短語,則只有滿足指定條件組才予輸出。·假如有ORDER子句,則結果表還要按<列名2>值升序或降序排序。10/1/制作人:張宇敬數據庫系統基本概念及其設計第40頁1.單表查詢(1)查詢指定列例1查詢全體學生學號與姓名 SELECTSno,Sname FROMStudent;(2)查詢全部列例3查詢全體學生詳細統計 SELECT* FROMStudent;(3)消除取值重復行例6查全部選修過課學生學號 SELECTdistinctSno FROMSC;(4)查詢滿足條件元組查詢滿足指定條件元組能夠經過WHERE子句實現。WHERE子句慣用查詢條件如表:10/1/制作人:張宇敬數據庫系統基本概念及其設計第41頁10/1/制作人:張宇敬數據庫系統基本概念及其設計第42頁(5)對查詢結果排序例查詢選修了3號課程學生學號及其成績,查詢結果按分數降序排列 SELECTSno,Grade FROMSC WHERECno=’3'GROUPBYGradeDESC;(6)使用集函數COUNT([DISTINCT|ALL]*)統計元組個數COUNT([DISTINCT|ALL]<列名>)統計一列中值個數SUM([DISTINCT|ALL]<列名>)計算一列值總和AVG([DISTINCT|ALL]<列名>)計算一列值平均值MAX([DISTINCT|ALL]<列名>)求一列值中最大值MIN([DISTINCT|ALL]<列名>)求一列值中最小值例查詢學習1號課程學生最高分數 SELECTMAX(Grade) FROMSCWHERECno='1';(7)對查詢結果分組GROUPBY子句能夠將查詢結果表各行按一列或多列取值相等標準進行分組。10/1/制作人:張宇敬數據庫系統基本概念及其設計第43頁2.連接查詢若一個查詢同時包括兩個以上表,則稱之為連接查詢。連接查詢主要包含等值連接、非等值連接查詢、本身連接查詢(本身連接)、外連接查詢(外連接)和復合條件連接查詢(復合條件連接)。(1)等值與非等值連接查詢用來連接兩個表條件稱為連接條件,其普通格式為:[<表名1>.]<列名1><比較運算符>[<表名2>.]<列名2>其中比較運算符主要有:=、>、<、>=、<=、!=<=、!=另外連接謂詞詞還能夠使用下面形式:[<表名1>.]<列名1>BETWEEN[<表名2>.]<列名2>AND[<表名2>.]<列名3>當連接運算符為=時,稱為等值連接。使用其它運算符稱為非等值連接。連接謂詞中列名稱為連接字段。連接條件中各連接字段類型必須是可比。10/1/制作人:張宇敬數據庫系統基本概念及其設計第44頁(2)本身連接連接操作不但能夠在兩個表之間進行,也能夠是一個表與其自己進行連接,這種連接稱為表本身連接。(3)外連接在通常連接操作中,只有滿足連接條件元組才能作為結果輸出。有時我們想以Student表為主體列出每個學生基本情況及其選課情況,若某個學生沒有選課,則只輸出其基本情況信息,其選課信息為空值即可,這時就需要使用外連接(OuterJoin)。外連接運算符通常為*。有關系數據庫中也用+。回首頁10/1/制作人:張宇敬數據庫系統基本概念及其設計第45頁第7章關系數據庫設計理論
7.1函數依賴1.關系模式中數據依賴一個關系模式應該是一個五元組。R(U,D,DOM,F)R是關系名;U是一組屬性;D是屬性組U中屬性所來自域;DOM是屬性到域映射;F是屬性組U上一組數據依賴關系集合。屬性間數據依賴關系集合F實際上是描述關系元組定義,限定組成關系各個元組必須滿足完整型約束條件。在實際應用中,這些約束或者經過對屬性取值范圍限定,或者經過屬性間相互關連反應出來。后者稱為數據依,這是數據庫模式設計關鍵。因為D和DOM對模式設計關系不大,所以我們把關系模式看作是一個三元組:R〈U,F〉當且僅當U上一個關系r滿足F時,r稱為關系模式R〈U,F〉一個關系。10/1/制作人:張宇敬數據庫系統基本概念及其設計第46頁2.數據依賴對關系模式影響數據依賴是經過一個關系中屬性間值相等是否表達出來數據間相互關系。它是現實世界屬性間相互聯絡抽象,是數據內在性質,是語義表達。現在人們已經提出了許各種類型數據依賴,其中最主要一個數據依賴是:函數依賴(FunctionalDependency簡記為FD)函數依賴極為普遍地存在于現實生活中。如學生關系,可有學號(SNO),姓名(SNAME),系名(SDEPT)等幾個屬性。因為一個學號只對應一個學生,一個學生只在一個系學習。因而當“學號”值確定之后,姓名和該生所在系值也就被唯一地確定了。3.相關概念(1)函數依賴定義設R(U)是屬性集U上關系模式。X,Y是U子集。若對于R(U)任意一個可能關系r,r中不可能存在兩個元組在X上屬性值相等,而在Y上屬性值不等,則稱X函數確定Y或Y函數依賴于X,記作X→Y。 ·若X→Y,則X叫做決定原因(Determinant)。 ·若X→Y,Y→X,則記作X←→Y。10/1/制作人:張宇敬數據庫系統基本概念及其設計第47頁(2)平凡函數依賴與非平凡函數依賴定義在關系模式R(U)中,對U中子集X,Y,假如X→Y,但YX,則稱X→Y是非平凡函數依賴。若YX,則稱X→Y是平凡函數依賴。對于任一關系模式,平凡函數依賴都是必定存在。(3)完全函數依賴與部分函數依賴定義在R(U)中,假如X→Y,而且對于X任何一個真子集X',都有X'→Y,則稱Y對X完全函數依賴,記作:XY。若X→Y,但Y不完全函數依賴于X,則稱Y對X部分函數依賴,記作XY(4)傳遞依賴定義在R(U)中,假如X→Y,Y→Z,且(YX),Y→X,則稱Z對X傳遞函數依賴。在關系Std(Sno,Sdept,Mname)中,有 Sno→SdeptSdept→Mname Mname傳遞依賴Sno。(5)碼定義設K為R〈U,F〉中屬性或屬性組合,若KU,則稱K為R一個候選碼。若R中有多個候選碼,則選定其中一個作為主碼。。10/1/制作人:張宇敬數據庫系統基本概念及其設計第48頁7.2范式范式是滿足一定函數依賴關系模式集合。當前主要有各種范式:第一范式、第二范式、第三范式、BC范式等。滿足最低要求叫第一范式,簡稱1NF。在第一范式基礎上深入碼組一些要求為第二范式,簡稱2NF。其余以次類推。1NF2NF3NFBCNF1.第一范式(1NF)定義假如一個關系模式R全部屬性都是不可分基本數據項,則R∈1NF。SLC(Sno,Sdept,Sloc,Cno,Grade)∈1NF不滿足1NF數據庫模式不能稱為關系數據庫。2.第二范式(2NF)定義若R∈lNF,且每一個非主屬性完全函數依賴于碼,則R∈2NF。3.第三范式(3NF)定義關系模式R〈U,F〉中若不存在侯選碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→Z和(Y→X)成立,則R∈3NF。上述定義說明,若R∈3NF,則每一個非主屬性既不部分依賴于碼也不傳遞依賴于碼。10/1/制作人:張宇敬數據庫系統基本概念及其設計第49頁7.3關系模式規范化一個關系只要其分量都是不可分數據項,它就是規范化關,但這是最基本規范化。規范化程度有多個個級別,一個低一級范式關系模式,經過分解能夠轉換為若干高一級范式關系模式集合,這種過程就叫關系模式規范化。1.關系模式規范化步驟規范化程度過低關系可能會存在插入異常、刪除異常、修改復雜和數據冗余等問題,需要對其進行規范化,轉換成高級范式。但在現實世界中,設計數據庫模式結構時,應對用戶需要做深入分析,確定一個適當模式。2.關系模式分解關系模式分解必須確保分解后關系模式與原關系模式等價。設關系模式R〈U,F〉被分解為若干關系模式 R1〈U1,F1〉、R2〈U2,F2〉,…,Rn〈Un,Fn〉若R與R1,R2,。。。,Rn自然連接結果相等,則稱關系R這個分解含有沒有損連接性。含有沒有損連接性分解才能確保不丟失信息后首頁10/1/制作人:張宇敬數據庫系統基本概念及其設計第50頁第8章數據庫保護
8.1安全性計算機系統安全性,是指為計算機系統建立和采取各種安全保護辦法,以保護計算機系統中硬件、軟件及數據,預防其因偶然或惡意原因使系統遭到破壞,數據遭到更改或泄露等。計算機系統安全性問題可分為三大類,即:技術安全類、管理安全類和政策法律類。(1)技術安全是指計算機系統中采取含有一定安全性硬件、軟件來實現對計算機系統及其所存數據安全保護,當計算機系統受到無意或惡意攻擊時仍能確保系統正常運行,確保系統內數據不增加、不丟失、不泄露。(2)管理安全技術安全之外,諸如軟硬件意外故障、場地意外事故、管理不善造成計算機設備和數據介質物理破壞、丟失等安全問題,視為管理安全。(3)政策法律類則指政府部門建立相關計算機犯罪、數據安全保密法律道德準則和政策法規、法令。10/1/制作人:張宇敬數據庫系統基本概念及其設計第51頁安全性控制普通方法(1)用戶標識和判別(2)存取控制(3)定義視圖(4)審計(5)數據加密8.2完整性數據庫完整性是指數據正確性和相容性。數據庫是否具備完整性關系到數據庫系統能否真實地反應現實世界,所以維護數據庫完整性是非常主要。1.完整性約束條件第一類靜態列級約束靜態列級約束是對一個列取值域說明,這是最慣用也最輕易實現一類完整性約束。10/1/制作人:張宇敬數據庫系統基本概念及其設計第52頁第二類、靜態元組約束一個元組是由若干個列值組成,靜態元組約束就是要求元組各個列之間約束關系。第三類、靜態關系約束在一個關系各個元組之間或者若干關系之間經常存在各種聯絡或約束。常見靜態關系約束有:實體完整性約束、參考完整性約束等。第四類、動態列級約束動態列級約束是修改列定義或列值時應滿足約束條件。第五類、動態元組約束動態元組約束是指修改元組值時元組中各個字段間需要滿足某種約束條件。比如職員工資調整時新工資不得低于原工資+工齡*1.5,等等。第六類、動態關系約束動態關系約束是加在關系改變前后狀態上限制條件,比如事務一致性、原子性等約束條件。10/1/制作人:張宇敬數據庫系統基本概念及其設計第53頁2.完整型控制DBMS完整性控制機制應含有三個方面功效:(1)定義功效,提供定義完整性約束條件機制。(2)檢驗功效,檢驗用戶發出操作請求是否違反了完整性約束條件。(3)保護功效,當發覺用戶操作請求違反了數據完整性約束條件,則采取一定動作來確保數據完整性。幾個問題。(1)外碼能否接收空值問題(2)刪除被參考關系中元組問題(3)在參考關系中插入元組時問題(4)修改關系中主碼問題10/1/制作人:張宇敬數據庫系統基本概念及其設計第54頁8.3并發控制數據庫是一個共享資源,能夠供多個用戶使用。允許多個用戶同時使用數據庫系統稱為多用戶數據庫系統。當多個用戶并發地存取數據庫時就會產生多個事務同時存取同一數據情況。若對并發操作不加控制就可能會存取和存放不正確數據,破壞數據庫一致性。數據庫管理系統必須提供并發控制機制。并發控制機制是衡量一個數據庫管理系統性能主要標志之一。1.并發操作隱含數據不一致性問題。一.丟失修改二.不可重復讀三.讀“臟”數據(dirtyread)2.封鎖封鎖是實現并發控制一個非常主要技術。封鎖就是事務T在對某個數據對象(如表、統計等)操作之前,先向系統發出請求,對其加鎖。加鎖后事務T就對該數據對象有了一定控制,在事務T釋放它鎖之前,其它事務不能更新此數據對象。10/1/制作人:張宇敬數據庫系統基本概念及其設計第55頁3.封鎖協議在使用X鎖和S鎖對數據對象加鎖時,需約定一些規則。比如應何時申請X鎖或S鎖、持鎖時間、何時釋放等。我們稱這些規則為封鎖協議。對封鎖方式要求不一樣規則,就形成了各種不一樣封鎖協議。(1)1級封鎖協議:事務T在修改數據A之前必須先對其加X鎖,直到事務結束才釋放。1級封鎖協議可預防丟失修改,并確保事務T是可恢復。在1級封鎖協議中,假如僅僅是讀數據不對其進行修改,是不需要加鎖,所以它不能確保可重復讀和不讀“臟”數據。(2)2級封鎖協議:事務T在修改數據A之前必須先對其加X鎖,在讀取數據A之前必須先對其加S鎖,讀完后即可釋放S鎖。2級封鎖協議可預防丟失修改、讀“臟”數據。(3)3級封鎖協議:事務T在修改數據A之前必須先對其加X鎖,在讀取數據A之前必須先對其加S鎖,直到事務結束才釋放。3級封鎖協議除預防了丟失修改和不讀‘臟’數據外,還深入預防了不可重復讀。10/1/制作人:張宇敬數據庫系統基本概念及其設計第56頁4.死鎖假如事務T1封鎖了數據R1,T2封鎖了數據R2,然后T1又請求封鎖R2。接著T2又申請封鎖R1。這么就出現了T1在等候T2,而T2又在等候T1局面,T1和T2兩個事務永遠不能結束,形成死鎖。(1)死鎖預防產生死鎖原因是兩個或多個事務都已封鎖了一些數據對象,然后又都請求對已為其它事務封鎖數據對象加鎖,從而出現死等候。預防死鎖發生其實就是要破壞產生死鎖條件。預防死鎖通常有兩種方法:①一次封
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 兩兄弟合伙買房合同標準文本
- 半包裝修合同正規范例
- 護士聘用協議書范文二零二五年
- 工程地質勘探合同
- 代銷茶葉合同標準文本
- 二零二五版貨物運輸合同的賠償金額的確定
- 二零二五主債權及不動產抵押擔保合同
- 貨物運輸合同托運人需注意事項
- 二零二五車輛指標租賃協議書范例
- 二零二五版公司并購業務梳理
- 安徽省合肥市2025屆高三下學期3月二模試題 語文 含解析
- 命案防控講座課件內容
- 2024年廣西職業院校技能大賽中職組《大數據應用與服務》賽項競賽樣題
- 2024年全國統一高考英語試卷(新課標Ⅰ卷)含答案
- 常用CMYK色值表大全
- 消化道出血護理ppt(共17張PPT)
- 珠三角一年斷指四萬
- 2022版義務教育(數學)課程標準(含2022年修訂部分)
- 快板?繞口令?《玲瓏塔》
- 臺灣民法典目錄
- 8.8級螺栓上海紅本價
評論
0/150
提交評論