




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機導論教師:第7章數據庫技術07目錄CONTENTS1數據庫概述2數據模型3關系數據庫4結構化查詢語言5數據庫設計6常用數據庫管理系統7數據庫技術發展本章學習目標掌握數據庫的基本概念和數據模型的構成掌握關系數據庫的重要概念掌握結構化查詢語言的基本語句了解數據庫設計的步驟了解數據庫技術的發展趨勢本章學習目標數據庫概述1.數據數據(Data)是數據庫中存儲的基本對象,是描述事務的符號記錄。在日常生活中,數據有多種表現形式,如數字、文字、圖像、記錄等。2.數據庫數據庫(DataBase,DB)是長期存儲在計算機內、有組織的、可共享的數據的集合。數據庫中的數據按一定的數據模型組織、描述和存儲,具有冗余度小、數據獨立性高、易擴展和可共享的特點。3.數據庫管理系統數據庫管理系統(DataBaseManagementSystem,DBMS)是位于用戶和操作系統之間的數據管理軟件,用戶和應用程序需要通過數據庫管理系統來訪問數據庫中的數據。4.數據庫系統數據庫系統(DataBaseSystem,DBS)是由數據庫、數據庫管理系統、應用系統和數據庫管理員組成的存儲、管理和維護數據的系統。數據庫概述數據定義功能數據庫管理系統能提供數據定義語言(DataDefinitionLanguage,DDL),用戶通過它可以方便地對數據庫對象進行定義,如表的創建、修改和刪除等。數據操縱功能數據庫管理系統能提供數據操縱語言(DataManipulationLanguage,DML),用戶通過它對數據進行基本操作,如數據的插入、刪除、修改和查詢等。數據庫管理功能數據庫在創建、運行和維護時由數據庫管理系統統一管理和控制,以保證數據庫的正確運行,保證數據庫的安全性、完整性,多用戶對數據的并發操作及發生故障后的系統恢復。數據庫建立和維護功能數據庫建立和維護功能包括數據庫初始化數據、轉換功能,以及數據庫的轉儲、恢復功能,數據庫的重組織、重構功能和性能監視、分析功能等。數據庫管理系統都能提供以下功能。數據模型數據庫技術的發展是以數據模型的發展為基礎的。數據模型是對現實世界數據特征的抽象和模擬,即用來描述數據、組織數據和操作數據。由于計算機不能直接處理現實世界中的事物,人們需要將事物數字化,并將具體的事物轉換成計算機能夠處理的數據,因而數據從現實世界到計算機數據庫的抽象表示經歷了3個階段,即現實世界、信息世界和機器世界。概念模型概念模型,即信息模型,是按用戶的觀點對數據和信息建模的,用于數據庫的設計,這就要求概念模型具有較強的語義表達能力,易于表示和理解。對現實世界進行抽象表示時,需要對事物及事物之間的聯系進行抽象表示。概念模型基本術語實體客觀存在并可相互區別的事物稱為實體。實體可以是具體的人、事、物或抽象的概念、聯系,如一個學院、一名學生、一個玩具、學生的一次選課等都是實體。屬性實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來描述,如圖書實體可以由圖書編號、書名、作者、出版社、出版日期、價格等屬性組成。碼能唯一標識實體的屬性集稱為碼,如圖書編號是圖書實體的碼。實體型用實體名及其屬性名集合來抽象和描述的同類實體稱為實體型,如圖書(圖書編號、書名、作者、出版社、出版日期、價格)就是一個實體型。實體集同一類型實體的集合稱為實體集,如圖書館的全部圖書就是一個實體集。聯系現實世界中事物內部及事物之間的聯系在信息世界中反映為實體內部的聯系和實體之間的聯系。實體內部的聯系通常是指組成實體的各屬性之間的聯系。實體之間的聯系通常是指不同實體集之間的聯系。概念模型基本術語兩個實體型之間的聯系一對一聯系(1∶1)一對多聯系(1∶n)多對多聯系(m∶n)概念模型的表示方法概念模型是對信息世界建模,與具體的數據庫管理系統無關。概念模型的表示方法很多,其中E-R圖(Entity-RelationshipDiagram,實體-聯系圖)是最為常用的方法之一。構成E-R圖的基本要素是實體型、屬性和聯系。(1)實體型。用矩形表示,矩形框內要寫明實體名。(2)屬性。用橢圓形表示,并用直線與相應實體連接起來。(3)聯系。用菱形表示,菱形框內要寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1∶1、1∶n或m∶n),聯系也可以具有屬性。常見的邏輯模型數據模型是數據庫系統的核心和基礎。各種數據庫管理系統軟件都是基于某種邏輯模型的。常用的邏輯模型有層次模型、網狀模型及關系模型。其中,層次模型和網狀模型統稱為非關系模型,非關系模型的數據庫系統在20世紀70年代非常流行,而到20世紀80年代,關系模型的數據庫系統以其獨特的優勢成為主流數據庫產品。關系模型關系模型是用一組二維表來表示實體及實體間的聯系的。其理論基礎是1970年IBM研究人員E.F.Codd提出的數據庫系統的關系模型,他開創了對數據庫關系理論和關系方法的研究,為數據庫技術奠定了理論基礎。關系模型的優點是結構簡單,一個關系對應一張二維表,易于用戶掌握,通過簡單的查詢語句就能對數據庫進行各種操作,而層次模型和網狀模型設計的數據庫系統需要通過指針鏈查找數據,這是它們之間的根本區別。目前,關系模型是最廣泛使用的模型之一,計算機廠商推出的數據庫管理系統幾乎都支持關系模型。關系數據庫的基本概念學號姓名性別專業班級出生日期2017021001董林女計算機171班1999-06-052017021002李明男計算機172班1998-12-032017021013張佳女電氣工程173班1997-10-252016025111李婷女自動化161班1996-04-282018031012佟宇男自動化181班2000-03-06(1)關系:一個關系對應一張二維表。例如,圖7.3所示的關系模型中的三張表對應三個關系。關系數據庫的基本概念(2)關系模式:關系模式是對關系的描述,一般形式如下。關系名(屬性1,屬性2,…,屬性n)例如,關系student和關系course的關系模式如下。student(學號,姓名,性別,專業,班級,出生日期)course(課程號,課程名,學分)(3)記錄:表中的一行稱為一條記錄,也稱為元組。例如,課程信息表[見圖7.3(b)]中有5行數據,其中一行為一條記錄,對應5條記錄。(4)屬性:表中的一列稱為一個屬性,屬性也稱字段。每個屬性都有一個名稱,稱為屬性名。例如,學生信息表[見圖7.3(a)]中有6個屬性,屬性名分別為學號、姓名、性別、專業、班級和出生日期。關系模型的完整性例7-1職工關系和部門關系如下。職工(職工編號,姓名,部門編號,性別,聯系電話)部門(部門編號,部門名)在這兩個關系中,部門關系的“部門編號”是主碼,職工關系的“部門編號”取值必須是已存在的部門編號,即參照部門關系的主碼“部門編號”取值,因而職工關系的“部門編號”是外碼。關系數據庫的基本概念(5)候選碼:表中能唯一確定一條記錄的某個屬性組,稱為候選碼,也稱候選關鍵字或碼。例如,學生信息表[見圖7.3(a)]中的學號可以唯一確定一條學生記錄,因此學號是一個候選碼。而姓名可能會出現重名的情況,不能唯一標識一條學生記錄,因而姓名不適合作為候選碼。(6)主鍵(PrimaryKey):一個表中可能有多個候選碼,在實際應用中通常選擇一個候選碼作為主鍵,主鍵也稱主碼、主關鍵字。主鍵值不能為空。例如,若在學生信息表[見圖7.3(a)]中增加一個字段為身份證號,則學號和身份證號都可作為候選碼,但在實際應用中,選用一個作為主鍵即可。(7)主屬性:關鍵字中的諸屬性稱為主屬性,不包含在任何關鍵字中的屬性稱為非主屬性或非碼屬性。例如,學生信息表[見圖7.3(a)]中的學號就是主屬性,姓名是非主屬性。(8)值域:屬性的取值范圍。值域可以是數值、文本、日期、字符串等,如成績的值域為0~100,性別的值域為{男,女}。(9)外鍵(ForeignKey):設F是基本關系R的一個屬性組,但不是R的碼,Ks是基本關系S的主碼,如果F與Ks相對應,則稱F是R的外鍵,也稱外碼。關系數據庫的基本概念關系模型提供了三類完整性約束規則:實體完整性、參照完整性和用戶定義完整性。其中實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱為關系的兩個不變性,用戶定義完整性是面向應用領域所需遵循的約束條件,體現具體語義的約束。(1)實體完整性規則。規定關系中主屬性值不能為空。例如,學生(學號,姓名,性別,專業,班級,出生日期)關系中,學號是主屬性,不能取空值。圖7.3(c)學生選課關系中,學號和課程號聯合作為主鍵,因而學號和課程號都是主屬性,都不能取空值。(2)參照完整性規則。若屬性集F是關系R的外碼,它與關系S的主碼Ks相對應(關系R和S不一定是不同的關系),則R中每個元組在F上的值等于S中某個元組的主碼值或者取空值(F的每個屬性值均為空值),這條規則的實質是“不允許引用不存在的實體”,實際上也提供了實現兩個關系相聯系的方法。如例7-1中,職工關系中的“部門編號”是外碼,其取值必須是已存在的部門編號,即參照部門關系中的主碼“部門編號”取值,不能把職工分配到一個不存在的部門中去,職工的部門編號也可能取空值,表示該職工尚未分配到任何一個部門。(3)用戶定義完整性規則。用戶定義完整性規則是針對某一具體數據庫的約束條件,它反映了某一具體應用所涉及的數據必須滿足的語義要求,如屬性的取值范圍、是否能取空值等。關系模式的規范化關系模式的規范化就是把一個存在數據冗余、插入異常、更新異常和刪除異常等情況的關系模式通過模式分解,轉換為符合設計要求的關系模式集合。關系數據庫的設計,主要是關系模式的設計,而關系模式設計的關鍵在于關系模式的規范化。關系模式的規范化過程是通過對關系模式的分解來實現的,即把低一級的關系模式分解為若干個高一級的關系模式。范式是關系模式滿足不同程度的規范化要求的標準。滿足最低程度要求的范式屬于第一范式,簡稱1NF,是指關系中的每一個屬性都是不可分割的基本數據項。在任何一個關系數據庫中,1NF是對關系模式的基本要求,不滿足1NF的數據庫就不是關系數據庫。結構化查詢語言結構化查詢語言(StructuredQueryLanguage,SQL)是關系數據庫的標準語言。SQL標準主要包括四部分內容。(1)數據定義語言(DDL),用于定義數據庫的模式、基本表、視圖、索引等結構。(2)數據操縱語言(DML),分為數據更新和數據查詢。其中數據更新包括插入、刪除和修改3種操作。(3)數據控制語言(DCL),包括對基本表或視圖的授權、完整性規則、事務控制等。(4)嵌入式SQL,包括SQL語句嵌入在宿主語言程序中的規則。結構化查詢語言當前絕大多數流行的關系數據庫管理系統,如Oracle、SQLServer、MySQL等都采用了SQL標準,并對其進行了一定程度的擴展。(1)PL/SQL(ProceduralLanguage/SQL,過程化/SQL語言)是Oracle數據庫對SQL語句的擴展。PL/SQL將數據庫技術和過程化程序設計語言聯系起來,它在普通SQL語句的使用上增加了編程語言的特點,把數據操作和查詢語句組織在PL/SQL代碼的過程性單元中,通過邏輯判斷、循環等操作來實現復雜的功能。(2)T-SQL(Transact-SQL)是Microsoft在SQLServer數據庫中使用的SQL標準的實現,是Microsoft對SQL的擴展。它具有SQL的主要特點,同時增加了變量、運算符、函數、流程控制和注釋等語言元素,使其功能更加強大。在SQLServer中使用圖形界面能夠完成的所有功能,都可以利用T-SQL來實現。使用T-SQL操作時,與SQLServer通信的所有應用程序都要通過向服務器發送T-SQL語句來進行,而與應用程序的界面無關。數據定義1.創建數據庫語句格式:CREATEDATABASE<數據庫名>例7-2寫出創建一個名為db_Student的數據庫的SQL語句。CREATEDATABASEdb_Student;2.創建基本表語句格式:CREATETABLE<表名>(<列名><數據類型>[<列級完整性約束條件>][,<列名><數據類型>[<列級完整性約束條件>]]…[,<表級完整性約束條件>]);數據定義3.修改基本表語句格式:ALTERTABLE<表名>[ADDCOLUMN<列名><數據類型>[完整性約束][FIRST|AFTER已存在的字段名]][CHANGECOLUMN<舊列名><新列名><數據類型>][ALTERCOLUMN<列名>{SETDEFAULT<默認值>|DROPDEFAULT}[MODIFYCOLUMN<列名><數據類型>][DROPCOLUMN<列名>][RENAMETO<新表名>];例7-4在student表中增加“入學時間”列。ALTERTABLEstudentADDCOLUMNentimeDATEAFTERstu_name;4.刪除基本表語句格式:DROPTABLE<表名>例7-5刪除表course。DROPTABLEcourse;
數據更新1.數據插入數據插入是指把新的記錄插入到表中。語句格式:INSERTINTO<表名>[(<屬性列1>[,<屬性列2>…)]VALUES(<常量1>[,<常量2>]…);例7-6將學生記錄插入到學生表中。INSERTINTOstudent(stu_id,stu_name,major,class)VALUES(‘2018021010’,‘李明’,‘計算機’,‘181’);2.數據刪除數據刪除即刪除表中滿足條件的記錄或刪除全部記錄。語句格式:DELETEFROM<表名>[WHERE<條件>];
數據更新3.數據修改數據修改即對表中的一條或多條記錄中的某些列值進行修改。語句格式:UPDATE<表名>SET<列名>=<表達式>[,<列名>=<表達式>]…[WHERE<條件>];如果省略WHERE子句,則要修改表中的所有記錄。例7-9修改課程號為‘02002003’的課程的學分為3學分。UPDATEcourseSETcredit=3WHEREc_id=‘02002003’;數據查詢SQL能提供SELECT語句,可以從數據庫表或視圖中查詢符合條件的記錄。語句格式:
SELECT[ALL|DISTINCT]<目標列表達式>[,<目標列表達式>]…FROM<表名或視圖名>[,<表名或視圖名>]…|(SELECT語句)[AS]<別名>[WHERE<條件表達式>] /*選擇滿足條件的記錄*/[GROUPBY<列名1>[HAVING<條件表達式>]] /*分組*/[ORDERBY<列名2>[ASC|DESC]]; /*排序*/1.單表查詢例7-10查詢所有學生的信息。
SELECT* /**號表示表中所有字段*/ FROMstudent;例7-11查詢所有計算機專業的學生的學號、姓名、專業、班級。SELECTstu_id,stu_name,major,class_no FROMstudentWHEREmajor=‘計算機’;數據控制1.授權授權是指將對指定操作對象的指定操作權限授予指定用戶。GRANT語句的一般格式:GRANT<權限>[,<權限>]...[ON<對象類型><對象名>]TO<用戶>[,<用戶>]...[WITHGRANTOPTION];例7-15把查詢Student表的權限授給用戶user1。GRANTSELECTONTABLEStudentTOuser1;數據控制2.回收回收是指授予的權限可以由數據庫管理員或其他授權者用REVOKE語句收回。REVOKE語句的一般格式:REVOKE<權限>[,<權限>]...[ON<對象類型><對象名>]FROM<用戶>[,<用戶>]...;例7-16收回用戶user1修改學生學號的權限。REVOKE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一季度GDP大超預期怎么看、怎么辦
- PHP程序設計項目化教程電子教案9 文本內容過濾器-數據處理
- 2025年電動釣魚船項目可行性研究報告
- 2025年球類推車項目可行性研究報告
- 山東旅游職業學院《地質與文化遺產概況》2023-2024學年第一學期期末試卷
- 昆明市重點中學2025年高三畢業班3月份摸底調研考試生物試題含解析
- 上海交大南洋中學2025屆高三第二次診斷考試生物試題含解析
- 華北理工大學冀唐學院《品牌傳播龐鐵明》2023-2024學年第二學期期末試卷
- 2025春新版【一年級下冊語文】 全冊1-8單元成語解釋
- 長春建筑學院《工科大學化學-無機與結構化學基礎B》2023-2024學年第二學期期末試卷
- 新疆地方教材五年級可愛的中國計劃、教案
- 小白兔拔蘿卜課件
- 2023年河南推拿職業學院單招考試面試模擬試題及答案解析
- 警械的正確使用以及法律適用課件
- 高頻變壓器外觀檢驗標準課件
- 火災調查 學習指南
- 2021年新湘教版九年級數學中考總復習教案
- EGS002:EG8010+IR2110m正弦波逆變器AD16電路圖印制板圖
- 試析水穩填充大粒徑碎石基層的全過程施工工藝
- 廣東省行政執法資格考試題庫(共80頁)
- 英語科技論文寫作ppt課件(PPT 65頁)
評論
0/150
提交評論