版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單元1MySQL的安裝、配置與使用《MySQL數(shù)據(jù)庫管理與應(yīng)用任務(wù)式教程(慕課版)》單元1mysql的安裝、配置與使用單元2數(shù)據(jù)庫基本原理單元3創(chuàng)建與管理數(shù)據(jù)庫單元4創(chuàng)建與管理表單元5查詢數(shù)據(jù)單元6創(chuàng)建與管理視圖單元7用戶管理單元8MySQL數(shù)據(jù)庫備份與恢復(fù)單元9mysql數(shù)據(jù)庫編程基礎(chǔ)單元10存儲過程與觸發(fā)器單元11Java+MySQL人力資源管理系統(tǒng)開發(fā)綜合實例全套可編輯PPT課件學(xué)習(xí)內(nèi)容任務(wù)1認識數(shù)據(jù)庫系統(tǒng)
2任務(wù)2安裝與配置MySQL數(shù)據(jù)庫系統(tǒng)的組成任務(wù)3使用MySQL任務(wù)4卸載MySQL1.數(shù)據(jù)與信息數(shù)據(jù)(Data):是數(shù)據(jù)庫中存儲的基本對象。它是反映客觀事物屬性的記錄,通常指描述事物的符號,這些符號具有不同的數(shù)據(jù)類型,如數(shù)字、文本、圖形、圖像、聲音等。信息(Information):是經(jīng)過加工處理并對人類客觀行為產(chǎn)生影響的數(shù)據(jù)表現(xiàn)形式。它具有超出數(shù)據(jù)本身的價值。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)1.1.1數(shù)據(jù)、信息和數(shù)據(jù)處理數(shù)據(jù)與信息既有聯(lián)系又有區(qū)別。數(shù)據(jù)是信息的載體、具體表現(xiàn)形式。數(shù)據(jù)代表真實世界的客觀事實,但并非任何數(shù)據(jù)都表示信息,數(shù)據(jù)如不具有知識性和有用性則不能稱為信息。信息是加工處理后的數(shù)據(jù),是數(shù)據(jù)表達的內(nèi)容,是有用的數(shù)據(jù)。信息是通過數(shù)據(jù)符號來傳播的,信息不隨表示它的數(shù)據(jù)形式的變化而改變,不同的數(shù)據(jù)形式可以表示相同的信息。例如,描述學(xué)生王林的一條記錄(061101,王林,計算機,男,19860210,50,null)是一組數(shù)據(jù),這些相對獨立的數(shù)據(jù)組合在一起便形成了一條表示學(xué)生王林基本情況的信息。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)2.數(shù)據(jù)處理將數(shù)據(jù)轉(zhuǎn)換成信息的過程稱為數(shù)據(jù)處理。它包括對各種類型的數(shù)據(jù)進行收集、整理、存儲、分類、排序、檢索、維護、加工、統(tǒng)計和傳輸?shù)纫幌盗胁僮?,以便我們從大量的、原始的?shù)據(jù)中獲取需要的資料并提取有用的數(shù)據(jù)成分,作為行為和決策的依據(jù)。數(shù)據(jù)、信息和數(shù)據(jù)處理之間的關(guān)系可以表示成:信息=數(shù)據(jù)+數(shù)據(jù)處理。數(shù)據(jù)處理包括以下3個方面。(1)數(shù)據(jù)管理。數(shù)據(jù)管理是指對數(shù)據(jù)進行收集、分類、組織、編碼、存儲、檢索和維護,它是數(shù)據(jù)處理的中心問題。(2)數(shù)據(jù)加工。數(shù)據(jù)加工的主要任務(wù)是對數(shù)據(jù)進行變換、抽取和運算。(3)數(shù)據(jù)傳播。通過數(shù)據(jù)傳播,信息在空間或時間上以各種形式傳遞。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)3.數(shù)據(jù)管理技術(shù)的發(fā)展階段任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)管理技術(shù)是計算機領(lǐng)域中發(fā)展最快的技術(shù)之一,隨著數(shù)據(jù)庫技術(shù)和網(wǎng)絡(luò)通信技術(shù)、面向?qū)ο蟪绦蛟O(shè)計技術(shù)、并行計算技術(shù)和人工智能技術(shù)等相互滲透與結(jié)合,數(shù)據(jù)管理技術(shù)成為當前數(shù)據(jù)庫技術(shù)發(fā)展的主要方向。20世紀80年代以后陸續(xù)推出了分布式數(shù)據(jù)庫系統(tǒng)(DistributedDatabaseSystem,DDBS)、面向?qū)ο髷?shù)據(jù)庫系統(tǒng)(Object-OrienteadDatabaseSystem,ODBS)等,尤其是20世紀末互聯(lián)網(wǎng)的飛速發(fā)展,極大地改變了數(shù)據(jù)庫的應(yīng)用環(huán)境,催生了一批新的數(shù)據(jù)庫技術(shù),如Web數(shù)據(jù)庫技術(shù)、并行數(shù)據(jù)庫技術(shù)、數(shù)據(jù)倉庫與聯(lián)機分析技術(shù)、數(shù)據(jù)挖掘與商務(wù)智能技術(shù)、內(nèi)容管理技術(shù)、海量數(shù)據(jù)管理技術(shù)和云計算技術(shù)等。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)1.數(shù)據(jù)庫數(shù)據(jù)(Database,DB)是長期存儲在計算機存儲設(shè)備上的、結(jié)構(gòu)化的、可共享的數(shù)據(jù)集合。它是數(shù)據(jù)庫應(yīng)用系統(tǒng)的核心和管理對象。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,具有較小的冗余度、較強的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶所共享?;陉P(guān)系模型的數(shù)據(jù)庫稱為關(guān)系數(shù)據(jù)庫(RelationalDatabase,RDB)。數(shù)據(jù)庫對象是一種數(shù)據(jù)庫組件,是數(shù)據(jù)庫的主要組成部分。在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,常見的數(shù)據(jù)庫對象有表(Table)、索引(Index)、視圖(View)、圖表(Diagram)、默認值(Default)、規(guī)則(Rule)、觸發(fā)器(Trigger)、存儲過程(StoredProcedure)和用戶(User)等。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)1.1.2數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)2.數(shù)據(jù)庫管理系統(tǒng)的主要功能如下(1)數(shù)據(jù)定義。用戶可以通過數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL)來定義數(shù)據(jù)庫中的數(shù)據(jù)對象。(2)數(shù)據(jù)組織、存儲和管理。數(shù)據(jù)庫管理系統(tǒng)要分類組織、存儲和管理各種數(shù)據(jù),包括數(shù)據(jù)字典、用戶數(shù)據(jù)、數(shù)據(jù)的存取路徑等,以提高存儲空間利用率和數(shù)據(jù)存取效率。(3)數(shù)據(jù)操縱。用戶可以使用數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)來實現(xiàn)對數(shù)據(jù)庫的基本操作,如存取、查詢、插入、刪除和修改等。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)(4)數(shù)據(jù)庫的運行管理。所有數(shù)據(jù)庫的操作都要在數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)一管理和控制下進行,以保證事務(wù)的正確運行和數(shù)據(jù)的安全性、完整性(主要包括數(shù)據(jù)的并發(fā)控制、數(shù)據(jù)的安全性保護、數(shù)據(jù)的完整性控制和數(shù)據(jù)庫的恢復(fù)等)。(5)數(shù)據(jù)庫的創(chuàng)建和維護。數(shù)據(jù)庫的創(chuàng)建和維護主要包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入、轉(zhuǎn)換,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復(fù),數(shù)據(jù)庫的重組織和性能監(jiān)視、分析等。這些功能通常是由一些應(yīng)用程序或管理工具完成的。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)的工作模式如圖1-1所示。其基本流程為接收應(yīng)用程序的數(shù)據(jù)請求和處理請求,將用戶的數(shù)據(jù)請求(高級指令)轉(zhuǎn)換成復(fù)雜的機器代碼(低層指令);實現(xiàn)對數(shù)據(jù)庫的操作;通過對數(shù)據(jù)庫的操作接收查詢結(jié)果;對查詢結(jié)果進行處理(格式轉(zhuǎn)換);將處理結(jié)果返回給用戶。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)目前,關(guān)系數(shù)據(jù)庫管理系統(tǒng)已經(jīng)成為主流的數(shù)據(jù)庫系統(tǒng)。流行的數(shù)據(jù)庫管理系統(tǒng)有MySQL、Oracle、SQLServer、DB2和Access等,它們針對不同的應(yīng)用,有各自的特點。3.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)是指引進了數(shù)據(jù)庫的計算機系統(tǒng)。它能夠有組織地、動態(tài)地存儲大量數(shù)據(jù),提供數(shù)據(jù)處理和數(shù)據(jù)共享機制。通常,在不引起混淆的情況下,把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)及其應(yīng)用開發(fā)工具、應(yīng)用程序和數(shù)據(jù)庫管理員構(gòu)成,如圖1-2所示。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)1.1.3數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫系統(tǒng)的軟件主要包括DBMS、支持DBMS運行的操作系統(tǒng)(如Windows、Linux和UNIX等)、各種高級語言處理程序(編譯或解釋程序)、應(yīng)用開發(fā)工具軟件和特定應(yīng)用軟件等,其中,DBMS是整個數(shù)據(jù)庫系統(tǒng)的核心,常用的數(shù)據(jù)庫接口有ODBC、JDBC和OLEDB等。數(shù)據(jù)庫管理員(DatabaseAdministrator,DBA)是負責全面管理和控制數(shù)據(jù)庫系統(tǒng),保障其正常運行的專門人員,其職責十分重要,主要職責大致包括以下幾方面。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)①評估并決定服務(wù)器硬件的規(guī)模。②安裝DBMS軟件與配套工具。③計劃與設(shè)計數(shù)據(jù)庫結(jié)構(gòu)。④創(chuàng)建數(shù)據(jù)庫。⑤通過采取備份數(shù)據(jù)庫等方法保護數(shù)據(jù)的安全。⑥還原與恢復(fù)數(shù)據(jù)庫。⑦創(chuàng)建與維護數(shù)據(jù)庫用戶。⑧實現(xiàn)應(yīng)用程序與數(shù)據(jù)庫設(shè)計。⑨監(jiān)視與調(diào)整數(shù)據(jù)庫性能。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)應(yīng)用程序由應(yīng)用程序員根據(jù)終端用戶的需要,使用數(shù)據(jù)庫語言或編程語言(如Java、C#等)開發(fā),供用戶使用。對于不同規(guī)模的數(shù)據(jù)庫系統(tǒng),用戶的人員配置是不相同的。只有大型數(shù)據(jù)庫系統(tǒng)才配備有應(yīng)用程序員和數(shù)據(jù)庫管理員。應(yīng)用型微機數(shù)據(jù)庫系統(tǒng)比較簡單,其用戶通常兼有終端用戶和數(shù)據(jù)庫管理員的職能,但必要時也應(yīng)當兼有應(yīng)用程序員的能力。任務(wù)1
認識數(shù)據(jù)庫系統(tǒng)1.MySQL的發(fā)展歷史MySQL由瑞典MySQLAB公司開發(fā)。2003年12月,MySQL5.0版本發(fā)布。2008年1月MySQLAB公司被美國的Sun公司以10億美元收購,MySQL數(shù)據(jù)庫進入Sun時代。2009年4月SUN公司被美國的Oracle公司以74億美元收購,MySQL數(shù)據(jù)庫進入Oracle時代。2010年12月,MySQL5.5發(fā)布,其主要新特性包括半同步的復(fù)制及對SIGNAL/RESIGNAL的異常處理功能的支持,最重要的是InnoDB存儲引擎變?yōu)楫斍癕ySQL的默認存儲引擎。MySQL5.5不是一次簡單的版本更新,而是加強了MySQL各個方面在企業(yè)級的特性。Oracle公司同時也承諾MySQL5.5和未來版本仍是采用GPL授權(quán)的開源產(chǎn)品。任務(wù)2安裝與配置MySQL1.2.1MySQL系統(tǒng)簡介2015年12月,MySQL5.7發(fā)布,其性能、新特性、性能分析產(chǎn)生了質(zhì)的改變。2016年9月,MySQL開始了8.0版本,但市場主流還是5.5/5.6/5.7版本。MySQL的官網(wǎng)主頁如圖1-3所示,在官網(wǎng)可以下載相關(guān)軟件和技術(shù)文檔。任務(wù)2安裝與配置MySQL2.MySQL的版本根據(jù)運行平臺,MySQL可以分為Windows版、UNIX版、Linux版和macOS版。根據(jù)用戶群體,MySQL可以分為企業(yè)版和社區(qū)版。其中,社區(qū)版(MySQLCommunityServer)是通過GPL協(xié)議授權(quán)的開源軟件,可以免費下載使用,但官方不提供技術(shù)支持,可用于個人學(xué)習(xí)。企業(yè)版(MySQLEnterpriseServer)是需要付費的商業(yè)軟件,該版本能夠以很高的性價比為企業(yè)提供完善的技術(shù)支持。任務(wù)2安裝與配置MySQL在MySQL的開發(fā)過程中,同時存在多個發(fā)布系列,每個發(fā)布系列處在不同的成熟階段。所有發(fā)布的MySQL已經(jīng)經(jīng)過嚴格標準的測試,可以保證安全可靠地使用。編寫本書時最新開發(fā)的發(fā)布系列是MySQL8.0,當前穩(wěn)定的發(fā)布系列是MySQL5.7。任務(wù)2安裝與配置MySQL3.MySQL的特點數(shù)據(jù)庫管理系統(tǒng)MySQL具有許多優(yōu)良特性,主要體現(xiàn)在以下幾方面。①MySQL是開放源代碼的數(shù)據(jù)庫。②MySQL具有跨平臺性。MySQL可以在Windows、UNIX、Linux、NovellNetware、macOS、AIX、OS/2和Solaris等操作系統(tǒng)上運行。MySQL的跨平臺性保證了其在Web應(yīng)用方面的優(yōu)勢。③MySQL功能強大且使用方便。它是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器,是客戶端/服務(wù)器架構(gòu),由一個服務(wù)器守護程序mysqld和很多不同的客戶端程序和庫組成,能夠快速、有效和安全地處理大量的數(shù)據(jù)。任務(wù)2安裝與配置MySQL相對于Oracle等數(shù)據(jù)庫來說,MySQL的使用方法是非常簡單的。MySQL的主要目標是快速、健壯和易用。④MySQL提供多種存儲引擎,支持大型數(shù)據(jù)庫。⑤MySQL為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel和Ruby等。⑥MySQL具有可移植性。使用C語言和C++編寫,并使用多種編譯器進行測試,保證源代碼的可移植性。MySQL也有一些不足,如對于大型項目來說,MySQL的容量和安全性就略遜于Oracle等大型數(shù)據(jù)庫。任務(wù)2安裝與配置MySQL要使用MySQL來存儲和管理數(shù)據(jù),首先要安裝與配置好MySQL數(shù)據(jù)庫服務(wù)器,然后利用它來創(chuàng)建數(shù)據(jù)庫實例及其數(shù)據(jù)表。
1.準備工作MySQL的下載頁面如圖1-4所示。單擊頁面下部的MySQLCommunity(GPL)Downloads?鏈接,進入MySQL社區(qū)版下載頁面,如圖1-5所示。任務(wù)2安裝與配置MySQL1.2.2MySQL的安裝與配置圖1-4MySQL官網(wǎng)的下載頁面任務(wù)2安裝與配置MySQL圖1-5MySQL社區(qū)版下載頁面圖1-6mysql-installer-community-5.7.20.msi下載頁面下載MySQL前,必須先了解自己的計算機使用的是什么操作系統(tǒng),然后根據(jù)操作系統(tǒng)來下載相應(yīng)的MySQL。MySQL社區(qū)版有MSI(安裝包)和ZIP(壓縮包)兩種打包的版本。這里根據(jù)需求選定的安裝平臺為Windows10家庭中文版操作系統(tǒng),下載的版本為mysql-installer-community-5.7.20.msi,如圖1-6所示。
2.安裝MySQL以下操作用戶需要以系統(tǒng)管理員的身份進行。(1)雙擊下載的MySQL安裝文件mysql-installer-community-5.7.20.msi,進入MySQL安裝界面。(2)根據(jù)界面右側(cè)的安裝類型描述選擇合適的安裝類型。這里選擇Full安裝類型,單擊Next按鈕。任務(wù)2安裝與配置MySQL圖1-7LicenseAgreement界面圖1-8ChoosingaSetupType界面默認安裝類型僅作為服務(wù)器僅作為客戶端完全安裝自定義安裝類型任務(wù)2安裝與配置MySQL圖1-9CheckRequirements界面(3)進入CheckRequirements界面,如圖1-9所示。根據(jù)選擇的安裝類型,安裝列表框中所列組件需要的Windows框架,單擊Execute按鈕,安裝程序會自動完成框架的安裝。當彈出安裝程序窗口時,勾選“我同意許可條款和條件”復(fù)選框,然后單擊“安裝”按鈕。當彈出“設(shè)置成功”界面時,表示框架已經(jīng)安裝完成,單擊“關(guān)閉”按鈕即可。安裝完成后會在Status下顯示INSTLDONE。所需框架均安裝成功后,單擊Next按鈕。任務(wù)2安裝與配置MySQL圖1-10組件安裝完成后的Installation界面(4)進入Installation界面,單擊Execute按鈕,開始安裝MySQL的各個組件,安裝完成后會在Status下顯示Complete,如圖1-10所示。單擊Next按鈕。任務(wù)2安裝與配置MySQL3.配置MySQL(1)在ProductConfiguration界面,對列表框中的每個組件進行配置信息的確認,確認后單擊Next按鈕,如圖1-11所示。圖1-11ProductConfiguration界面圖1-12TypeandNetworking界面(2)進入TypeandNetworking界面,采用默認設(shè)置,單擊Next按鈕,如圖1-12所示。任務(wù)2安裝與配置MySQL圖1-13服務(wù)器類型配置界面(3)進入服務(wù)器類型配置界面,如圖1-13所示。ConfigType下拉列表中有3個選項。①DevelopmentMachine:安裝的MySQL作為開發(fā)機器的一部分,在3種可選的類型中,占用的內(nèi)存最少。②ServerMachine:安裝的MySQL作為服務(wù)器機器的一部分,占用的內(nèi)存在3種類型中居中。③DedicatedMySQLServerMachine:安裝專用MySQL,占用機器全部有效的內(nèi)存。MySQL端口號默認為3306。如果沒有特殊需求,一般不建議修改它。全部采用默認設(shè)置,單擊Next按鈕。任務(wù)2安裝與配置MySQL(4)進入AccountsandRoles界面,設(shè)置服務(wù)器root用戶的密碼,重復(fù)輸入兩次登錄密碼mysql,單擊Next按鈕,如圖1-14所示。圖1-14AccountsandRoles界面圖1-15添加新用戶界面(5)系統(tǒng)默認的用戶名為root,如果想添加新用戶,可以單擊AddUser按鈕,界面如圖1-15所示。這里不添加新用戶。任務(wù)2安裝與配置MySQL(6)進入WindowsService界面,設(shè)置MySQL的Windows服務(wù)名,這里默認為MySQL57,可以修改,但無特殊需要不建議修改。單擊Next按鈕,如圖1-16所示。圖1-16WindowsService界面任務(wù)2安裝與配置MySQL(7)進入PluginsandExtensions界面,采用默認設(shè)置,單擊Next按鈕,如圖1-17所示。(8)進入ApplyConfiguration界面,單擊Execute按鈕,完成MySQL的各項配置,如圖1-18所示。圖1-17PluginsandExtensions界面圖1-18ApplyConfiguration界面任務(wù)2安裝與配置MySQL當出現(xiàn)圖1-19所示的情形時,表示配置都已完成,單擊Finish按鈕。至此,就完成了Windows操作系統(tǒng)中MySQL數(shù)據(jù)庫服務(wù)器的安裝和配置。(9)下面配置MySQLRouter2.14。在圖1-20所示的ProductConfiguration界面中,單擊Next按鈕。圖1-19ApplyConfiguration確認界面圖1-20ProductConfiguration界面任務(wù)2安裝與配置MySQL圖1-21MySQLRouterConfiguration界面(10)進入MySQLRouterConfiguration界面,采用默認設(shè)置,單擊Next按鈕,如圖1-21所示。(11)進入ApplyConfiguration界面,單擊Execute按鈕,如圖1-22所示。圖1-22ApplyConfiguration界面任務(wù)2安裝與配置MySQL圖1-23ConnectToServer界面圖1-24ConnectToServer連接成功界面(12)進入ConnectToServer界面,分別填入用戶名root和密碼mysql,單擊Check按鈕,如圖1-23所示。當出現(xiàn)圖1-24所示的連接成功信息時,單擊Next按鈕。任務(wù)2安裝與配置MySQL(13)進入ApplyConfiguration界面,單擊Execute按鈕,如圖1-25所示。當出現(xiàn)圖1-26所示的信息時,單擊Finish按鈕。圖1-25ApplyConfiguration界面圖1-26ApplyConfiguration完成界面任務(wù)2安裝與配置MySQL圖1-27所有組件配置完成界面圖1-28InstallationComplete界面在圖1-27所示的界面中,單擊Next按鈕。(14)進入InstallationComplete界面,這里的兩個復(fù)選框用來設(shè)置安裝完成后是否啟動MySQLWorkbench和MySQLShell,此處采用默認設(shè)置,如圖1-28所示。任務(wù)2安裝與配置MySQL單擊Finish按鈕,將打開圖1-29和圖1-30所示的窗口。圖1-29MySQLWorkbench窗口圖1-30MySQLShell窗口1.安裝目錄安裝目錄此處為C:\ProgramFiles\MySQL\MySQLServer5.7,如圖1-30所示,主要用來存儲控制服務(wù)器和客戶端程序的命令文件等。任務(wù)2安裝與配置MySQL1.2.3MySQL的目錄結(jié)構(gòu)用于放置可執(zhí)行文件,如mysql.exe用于存放一些文檔用于放置頭文件,如mysql.h用于放置庫文件用于存放字符集、語言等數(shù)據(jù)
2.數(shù)據(jù)目錄
數(shù)據(jù)目錄此處為C:\ProgramData\MySQL\MySQLServer5.7\Data,如下圖所示,它用來存放數(shù)據(jù)庫相關(guān)的數(shù)據(jù)信息,包括數(shù)據(jù)庫、表、視圖、日志文件等。用戶創(chuàng)建和保存的數(shù)據(jù)都存在這個目錄里。任務(wù)2安裝與配置MySQL當MySQL安裝完成時,已將MySQL57服務(wù)設(shè)置成自動啟動。如果用戶需要手動配置服務(wù)的啟動和停止,可以通過以下兩種方式實現(xiàn)。1.使用圖形化工具任務(wù)3使用MySQL1.3.1啟動和停止MySQL服務(wù)2.使用命令方式下面以操作系統(tǒng)管理員的身份操作。在桌面上選擇“開始”→“Windows系統(tǒng)”→“命令提示符”,打開命令提示符窗口,輸入如下命令,執(zhí)行結(jié)果如下圖所示。任務(wù)3使用MySQL安裝MySQL服務(wù)器以后,可以通過命令行管理工具或圖形化管理工具來操作MySQL數(shù)據(jù)庫,如管理MySQL服務(wù)器、對數(shù)據(jù)庫進行訪問控制、管理用戶以及數(shù)據(jù)備份和恢復(fù)等。MySQL自帶的管理工具可以通過“開始”→“MySQL”看到。任務(wù)3使用MySQL1.3.2MySQL常用的管理工具1.命令行管理工具MySQL數(shù)據(jù)庫管理系統(tǒng)的主要命令行管理工具有如下幾種。(1)MySQL服務(wù)器端實用工具。①mysqld:MySQL后臺程序(即MySQL服務(wù)器進程),客戶端通過它連接MySQL服務(wù)器來訪問MySQL數(shù)據(jù)庫。②mysqld_safe:服務(wù)啟動腳本;在UNIX和Netware中使用mysqld_safe來啟動mysqld服務(wù)器。任務(wù)3使用MySQL1.3.2MySQL常用的管理工具③mysql.server:服務(wù)器啟動腳本,用于使用包含為特定級別的運行啟動服務(wù)的腳本、運行目錄的系統(tǒng);它調(diào)用mysqld_safe來啟動MySQL服務(wù)器。④mysqld_multi:服務(wù)器啟動腳本,可以啟動或停止系統(tǒng)中安裝的多個服務(wù)器。⑤myisamchk:用來描述、檢查、優(yōu)化和維護MyISAM表的實用工具。⑥mysqlbug:MySQL缺陷報告腳本,可以用來向MySQL郵件系統(tǒng)發(fā)送缺陷報告。⑦mysql_install_db:該腳本可用默認權(quán)限創(chuàng)建MySQL授權(quán)表;通常只是在系統(tǒng)上首次安裝MySQL時執(zhí)行一次。任務(wù)3使用MySQL(2)MySQL客戶端實用工具。①mysql:用于交互式輸入SQL語句或通過文件以批處理模式執(zhí)行它們的命令行工具。②mysqladmin:用于執(zhí)行管理操作的客戶端程序,如創(chuàng)建或刪除數(shù)據(jù)庫、重載授權(quán)表、將表刷新到硬盤上,以及重新打開日志文件;還可以用來檢索版本、進程以及服務(wù)器的當前狀態(tài)信息。③mysqlaccess:用于檢查訪問主機名、用戶名和數(shù)據(jù)庫組合的權(quán)限的腳本。④mysqlcheck:用于檢查、修復(fù)、分析以及優(yōu)化表的表維護客戶端程序。⑤mysqlbinlog:用于從二進制日志讀取語句的工具。二進制日志文件中包含執(zhí)行過的語句,它們可用來幫助系統(tǒng)從崩潰中恢復(fù)。⑥perror:用于顯示系統(tǒng)或MySQL錯誤代碼含義的工具。任務(wù)3使用MySQL⑦mysqldump:用于將MySQL數(shù)據(jù)庫轉(zhuǎn)存到一個文件(例如SQL語句組成的文件)的客戶端程序。⑧mysqlhotcopy:當服務(wù)器在運行時,用于快速備份MyISAM或ISAM表的工具。⑨myisampack:用于壓縮MyISAM表以產(chǎn)生更小的只讀表。⑩mysqlimport:使用LOADDATAINFILE將文本文件導(dǎo)入相關(guān)表的客戶端程序。?mysqlshow:用于顯示數(shù)據(jù)庫、表、列以及索引相關(guān)信息的客戶端程序。任務(wù)3使用MySQL2.MySQL圖形化管理工具任務(wù)3使用MySQL圖形化管理工具能極大地方便數(shù)據(jù)庫的操作與管理,常用的有MySQLWorkbench、SQLyog、NavicatforMySQL、phpMyAdmin、MySQLDumper、MySQLGuiTools、MySQLODBCConnector等。本書主要使用MySQLWorkbench(MySQL工作臺)作為MySQL的圖形化管理工具。MySQLWorkbench是官方提供的專為MySQL設(shè)計的圖形化集成管理工具,也是下一代的可視化數(shù)據(jù)庫設(shè)計、管理工具,為數(shù)據(jù)庫管理員和開發(fā)人員提供了可視化的數(shù)據(jù)庫操作環(huán)境,其主要功能有數(shù)據(jù)庫設(shè)計與模型建立、SQL開發(fā)(取代MySQLQueryBrowser)、數(shù)據(jù)庫服務(wù)器管理(取代MySQLAdministrator)。其中,SQL開發(fā)模塊對應(yīng)的功能包括Connection列表(包含已經(jīng)建好的數(shù)據(jù)庫連接)、新建一個Connection列表、編輯數(shù)據(jù)表、編輯SQL腳本、Connection列表管理等;服務(wù)器管理模塊對應(yīng)的功能包括服務(wù)實例列表、新建一個服務(wù)實例、數(shù)據(jù)庫的導(dǎo)入導(dǎo)出、安全管理、服務(wù)器列表管理等。MySQLWorkbench支持Windows、Linux和macOS等主流操作系統(tǒng)。MySQLWorkbench有兩個版本:MySQLWorkbenchCommunityEdition(MySQLWorkbenchCE)是開源免費的社區(qū)版本;MySQLWorkbenchStandardEdition(MySQLWorkbenchSE)是按年收費的商業(yè)版本。任務(wù)3使用MySQL任務(wù)3使用MySQLMySQLWorkbench官網(wǎng)主頁如圖所示。在圖1-29所示的MySQLWorkbench初始界面中,單擊圖標,打開圖1-30所示的SetupNewConnection窗口,在連接名文本框中輸入mysql,單擊下方的TestConnection按鈕,打開圖1-31所示的對話框,輸入root用戶的密碼mysql,單擊OK按鈕。任務(wù)3使用MySQL圖1-30SetupNewConnection窗口圖1-31“ConnecttoMySQLServer” 對話框測試通過后,在圖1-30所示的窗口中,單擊OK按鈕,此時新連接創(chuàng)建完成,如圖1-32所示。雙擊該連接圖標,即可打開該連接對應(yīng)的工作界面,如圖1-33所示。任務(wù)3使用MySQL圖1-32MySQLWorkbench中已的創(chuàng)建的連接圖標圖1-33MySQLWorkbench的工作界面1.登錄MySQL數(shù)據(jù)庫服務(wù)器(1)用Windows命令方式。首先要配置系統(tǒng)環(huán)境變量path,在MySQL5.7中需要手動將MySQL的bin目錄C:\ProgramFiles\MySQL\MySQLServer5.7\bin添加至其中,如圖1-34所示。任務(wù)3使用MySQL1.3.3登錄和退出MySQL數(shù)據(jù)庫服務(wù)器圖1-34配置系統(tǒng)環(huán)境變量path然后在桌面上選擇“開始”→“Windows系統(tǒng)”→“命令提示符”打開命令提示符窗口,輸入如下命令后按Enter鍵,輸入密碼mysql,按Enter鍵后如出現(xiàn)mysql>提示符,表示登錄成功如圖1-35所示。mysql-hlocalhost-uroot-p任務(wù)3使用MySQL圖1-35用Windows命令方式登錄MySQL數(shù)據(jù)庫服務(wù)器
mysql-hlocalhost-uroot-p其中,mysql為登錄命令名,對應(yīng)MySQL提供的命令行客戶端工具mysql.exe,它存放在MySQL的安裝目錄bin目錄下,用于訪問MySQL數(shù)據(jù)庫。-h表示后面的參數(shù)為服務(wù)器的主機地址,當客戶端與服務(wù)器在同一臺機器上時,該參數(shù)可以為localhost或。-u表示后面的參數(shù)為登錄MySQL服務(wù)器的用戶名。-u和root之間的空格可以省略。-p表示后面的輸入?yún)?shù)為用戶密碼。任務(wù)3使用MySQL(2)使用圖形化管理工具。任務(wù)3使用MySQL圖1-36ConnecttoDatabase窗口任務(wù)3使用MySQL圖1-37LocalinstanceMySQL57連接對應(yīng)的MySQLWorkbench工作界面2.退出MySQL數(shù)據(jù)庫服務(wù)器
在mysql>提示符下輸入命令quit或exit即可退出MySQL數(shù)據(jù)庫服務(wù)器。任務(wù)3使用MySQL可以在mysql>提示符下輸入help或\h來查看MySQL的命令及其幫助信息,如圖1-38所示。任務(wù)3使用MySQL1.3.4MySQL的常用命令圖1-38MySQL的命令及其幫助信息①?:可寫成\?,用于顯示幫助信息。②help:可簡寫成\h,用于顯示幫助信息。③clear:可簡寫成\c,用于清除當前輸入的語句。④connect:可簡寫成\r,用于連接服務(wù)器。⑤exit:可簡寫成\q,用于退出MySQL,和quit的作用相同。⑥quit:可簡寫成\q,用于退出MySQL。⑦go:可簡寫成\g,用于發(fā)送命令到MySQL服務(wù)器。⑧print:可簡寫成\p,用于輸出當前命令。⑨prompt:可簡寫成\R,用于改變MySQL提示信息。⑩source:可簡寫成\.,用于執(zhí)行SQL腳本文件。?status:可簡寫成\s,用于獲取MySQL的狀態(tài)信息。?use:可簡寫成\u,用于切換數(shù)據(jù)庫。?charset:可簡寫成\C,用于切換字符集。任務(wù)3使用MySQLmy.ini是MySQL數(shù)據(jù)庫中使用的配置文件,MySQL服務(wù)器啟動時會讀取這個配置文件??梢允褂糜浭卤緫?yīng)用程序修改my.ini文件,從而達到修改MySQL配置的目的。任務(wù)3使用MySQL1.3.5修改MySQL的配置my.ini文件中參數(shù)的具體意義如下。1.客戶端的參數(shù)[client]port=3306//表示MySQL客戶端連接服務(wù)器端時使用的端口號,默認的端口號為3306[mysql]default-character-set=gbk//表示MySQL客戶端默認的字符集任務(wù)3使用MySQL2.服務(wù)器端的參數(shù)[mysqld]port=3306//表示MySQL服務(wù)器的端口號,MySQL服務(wù)程序TCP/IP監(jiān)聽端口,默認為3306basedir=C:\ProgramFiles\MySQL\MySQLServer5.7//表示MySQL的安裝路徑datadir=C:\ProgramData\MySQL\MySQLServer5.7\Data//表示MySQL數(shù)據(jù)文件的存儲位置character-set-server=gb2312//表示服務(wù)器端的字符集default-storage-engine=INNODB//創(chuàng)建數(shù)據(jù)表時,默認使用的存儲引擎max_connections=100//表示允許同時訪問MySQL服務(wù)器的最大連接數(shù)任務(wù)3使用MySQL任務(wù)3使用MySQL說明:在沒有配置文件的情況下,MySQL會自動檢測安裝目錄、數(shù)據(jù)文件目錄。但建議通過配置文件來指定。Linux操作系統(tǒng)中通常使用f作為配置文件名,在Windows操作系統(tǒng)中也可以使用該文件名。當不再需要使用MySQL或者安裝過程出現(xiàn)問題需要重新安裝MySQL時,可以手動卸載MySQL及其組件。操作步驟如下。①停止處于“已啟動”狀態(tài)的MySQL相關(guān)服務(wù)。②打開控制面板,選擇“控制面板”→“程序”→“程序和功能”,打開“卸載或更改程序”界面。③在圖所示的“卸載或更改程序”界面中,找到與MySQL有關(guān)的組件一一刪除。如右擊MySQLServer5.7,在彈出式菜單中選擇“卸載”,確認后將刪除該組件。任務(wù)4卸載MySQL本單元講解了數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的基本概念,介紹了基于Windows操作系統(tǒng)的MySQL的安裝、配置、啟動和使用等相關(guān)操作,為后面的學(xué)習(xí)準備好了實驗平臺。單元小結(jié)THANKYOU單元2數(shù)據(jù)庫基本原理《MySQL數(shù)據(jù)庫管理與應(yīng)用任務(wù)式教程(慕課版)》學(xué)習(xí)內(nèi)容任務(wù)1理解數(shù)據(jù)模型
2任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)任務(wù)4卸載MySQL
2任務(wù)3了解關(guān)系數(shù)據(jù)庫
2任務(wù)4實現(xiàn)關(guān)系的規(guī)范化
2任務(wù)5了解數(shù)據(jù)庫設(shè)計的過程學(xué)習(xí)目標任務(wù)4卸載MySQL【知識目標】
掌握數(shù)據(jù)模型的概念、組成和類型。掌握實體-聯(lián)系模型的基本概念。掌握E-R圖的組成及畫法。掌握關(guān)系模型的組成要素和主要特點。了解數(shù)據(jù)庫的三級模式結(jié)構(gòu)和二級映像。理解關(guān)系代數(shù)中的選擇、投影和連接運算。初步了解關(guān)系數(shù)據(jù)庫標準語言SQL。了解數(shù)據(jù)規(guī)范化的基本概念及其范式。掌握數(shù)據(jù)庫設(shè)計的方法與步驟?!灸芰δ繕恕?/p>
能夠設(shè)計具體的數(shù)據(jù)庫應(yīng)用系統(tǒng)。會畫E-R圖。會用范式規(guī)范數(shù)據(jù)?!舅刭|(zhì)目標】引導(dǎo)學(xué)生了解國產(chǎn)數(shù)據(jù)庫管理系統(tǒng)發(fā)展的現(xiàn)狀,增強文化自信,培養(yǎng)創(chuàng)新思維。任務(wù)1理解數(shù)據(jù)模型2.1.1數(shù)據(jù)模型1.數(shù)據(jù)模型的概念模型是人們對現(xiàn)實世界中的事物和過程的描述及抽象表達。數(shù)據(jù)庫是相關(guān)數(shù)據(jù)的集合,它不僅反映數(shù)據(jù)本身的內(nèi)容,還反映數(shù)據(jù)之間的聯(lián)系。在數(shù)據(jù)庫中,用數(shù)據(jù)模型這個工具來抽象、表示、處理現(xiàn)實世界中的數(shù)據(jù)和信息,以便計算機能夠處理這些對象。因此,數(shù)據(jù)庫中的數(shù)據(jù)模型是現(xiàn)實世界數(shù)據(jù)特征的抽象和歸納,也就是說,數(shù)據(jù)模型是用來描述數(shù)據(jù)、組織數(shù)據(jù)和對數(shù)據(jù)進行操作的。數(shù)據(jù)模型用于描述數(shù)據(jù)庫系統(tǒng)的靜態(tài)特征、動態(tài)特征和完整性約束條件。構(gòu)成數(shù)據(jù)模型的三要素為數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的完整性約束。任務(wù)1理解數(shù)據(jù)模型
數(shù)據(jù)結(jié)構(gòu)是對數(shù)據(jù)靜態(tài)特征的描述。數(shù)據(jù)的靜態(tài)特征包括數(shù)據(jù)的基本結(jié)構(gòu)、數(shù)據(jù)間的聯(lián)系和對數(shù)據(jù)取值范圍的約束。所以,數(shù)據(jù)結(jié)構(gòu)是所研究對象的類型的集合。在數(shù)據(jù)庫系統(tǒng)中,通常按數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型,如關(guān)系結(jié)構(gòu)的數(shù)據(jù)模型是關(guān)系模型。(1)數(shù)據(jù)結(jié)構(gòu)(2)數(shù)據(jù)操作
數(shù)據(jù)操作是指對數(shù)據(jù)動態(tài)特征的描述,包括對數(shù)據(jù)進行的操作及相關(guān)操作規(guī)則。數(shù)據(jù)庫的操作主要有檢索和更新(包括插入、刪除、修改)兩大類。數(shù)據(jù)模型要定義這些操作的確切含義、操作符號、操作規(guī)則(如優(yōu)先級)以及實現(xiàn)操作的語言。因此,數(shù)據(jù)操作完全可以看成對數(shù)據(jù)庫中各種對象的操作的集合。任務(wù)1理解數(shù)據(jù)模型
數(shù)據(jù)的完整性約束是對數(shù)據(jù)靜態(tài)和動態(tài)特征的限定,用來描述數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系應(yīng)該具有的制約和依存規(guī)則,以保證數(shù)據(jù)正確、有效和相容。數(shù)據(jù)模型應(yīng)該反映和規(guī)定本數(shù)據(jù)模型必須遵守的、基本的、通用的完整性約束條件。例如,在關(guān)系模型中,任何關(guān)系必須滿足實體完整性和參照完整性兩個條件。另外,數(shù)據(jù)模型還應(yīng)該提供定義完整性約束條件的機制,特定的數(shù)據(jù)必須遵守特定的語義約束條件,如學(xué)生信息中的性別只能是男或女。(3)數(shù)據(jù)的完整性約束任務(wù)1理解數(shù)據(jù)模型2.數(shù)據(jù)模型的類型數(shù)據(jù)模型一般應(yīng)滿足3個條件:數(shù)據(jù)模型要能夠真實地描述現(xiàn)實世界;數(shù)據(jù)模型要容易理解;數(shù)據(jù)模型要能夠方便地在計算機上實現(xiàn)。根據(jù)數(shù)據(jù)模型應(yīng)用目的的不同,可以將數(shù)據(jù)模型分為兩類:一類是概念數(shù)據(jù)模型(簡稱概念模型),另一類是邏輯數(shù)據(jù)模型(簡稱邏輯模型)和物理數(shù)據(jù)模型(簡稱物理模型)。概念模型也稱信息模型,它是面向用戶的,用于按照用戶的觀點來對數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫設(shè)計,與具體的數(shù)據(jù)庫管理系統(tǒng)無關(guān)。邏輯模型和物理模型是面向計算機系統(tǒng)的。邏輯模型是概念模型的數(shù)據(jù)化,用于按照計算機系統(tǒng)的觀點對數(shù)據(jù)建模,是現(xiàn)實世界的計算機模擬,與使用的數(shù)據(jù)管理系統(tǒng)的種類有關(guān),主要用于數(shù)據(jù)庫管理系統(tǒng)的實現(xiàn)。任務(wù)1理解數(shù)據(jù)模型物理模型是對數(shù)據(jù)最底層的抽象,它用于描述數(shù)據(jù)在系統(tǒng)內(nèi)部的表示方式和存取方法,或在磁盤或磁帶上的存儲方式和存取方法。物理模型的具體實現(xiàn)是數(shù)據(jù)庫管理系統(tǒng)的任務(wù)。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。各種機器上實現(xiàn)的數(shù)據(jù)庫管理系統(tǒng)軟件都是基于某種數(shù)據(jù)模型或者支持某種數(shù)據(jù)模型的。
任務(wù)1理解數(shù)據(jù)模型由于計算機不可能直接處理現(xiàn)實世界中的具體事物,更不能處理事物與事物之間的聯(lián)系,因此必須把現(xiàn)實世界的具體事物轉(zhuǎn)換成計算機能夠處理的對象?,F(xiàn)實世界轉(zhuǎn)化為計算機世界的過程如圖2-1所示。任務(wù)1理解數(shù)據(jù)模型2.1.2概念模型1.信息世界的基本概念概念模型用于信息世界的建模,反映現(xiàn)實世界中的信息及其關(guān)系,能滿足用戶對數(shù)據(jù)的處理要求,是現(xiàn)實世界到信息世界的第一層抽象。概念模型也是用戶和數(shù)據(jù)庫設(shè)計人員之間進行交流的工具,數(shù)據(jù)庫設(shè)計人員在設(shè)計初期應(yīng)把主要精力放在概念模型的設(shè)計上。任務(wù)1理解數(shù)據(jù)模型信息世界中常用的概念如下所述。
(1)實體(Entity)客觀存在并可相互區(qū)別的事物稱為實體。實體可以是具體的人、事、物,如學(xué)生、課程等,也可以是抽象的概念或聯(lián)系,如學(xué)生選課等。
(2)屬性(Attribute)實體具有的某一特征或性質(zhì)稱為屬性。一個實體可以由若干個屬性來刻畫,如學(xué)生實體可以用學(xué)號、姓名、專業(yè)、性別、出生時間等屬性來描述。屬性的具體取值稱為屬性值。如(001104,嚴蔚敏,軟件技術(shù),男,2000-08-26,50)這些屬性組合起來描述了一個具體的學(xué)生。任務(wù)1理解數(shù)據(jù)模型(3)聯(lián)系(Relationship)在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為兩類:一類是實體內(nèi)部的聯(lián)系,即組成實體的各屬性之間的聯(lián)系;另一類是不同實體之間的聯(lián)系。如學(xué)生選課實體和學(xué)生基本信息實體之間是有聯(lián)系的,一名學(xué)生可以選修多門課程,一門課程可以被多名學(xué)生選修。(4)關(guān)鍵字(Key)唯一標識實體的一個屬性或多個屬性的組合稱為關(guān)鍵字。如學(xué)號是學(xué)生實體的關(guān)鍵字,而在學(xué)生選課關(guān)系中,學(xué)號和課程號組合在一起才能唯一標識某個學(xué)生某門課程的考試成績。任務(wù)1理解數(shù)據(jù)模型(5)實體型(EntityType)用實體名及其屬性名集合來抽象和描述同類的實體,稱為實體型,通常我們所說的實體就是指實體型。如學(xué)生(學(xué)號,姓名,專業(yè),性別,出生時間,總學(xué)分,備注)就是一個實體型,它表示學(xué)生信息,不是指某一個具體的學(xué)生。(6)實體集(EntitySet)同一類實體的集合稱為實體集。例如,全體學(xué)生就是一個實體集。任務(wù)1理解數(shù)據(jù)模型(7)實體間的聯(lián)系的類型。實體間的聯(lián)系可以分為如下3類①一對一聯(lián)系(1∶1)②一對多聯(lián)系(1∶n)③多對多聯(lián)系(m∶n)任務(wù)1理解數(shù)據(jù)模型2.概念模型的表示方法在概念模型的眾多表示方法中,最常用的一種是實體-聯(lián)系(E-R)方法,也稱E-R模型。該方法用E-R圖來描述現(xiàn)實世界的概念模型,可以直觀地表示現(xiàn)實世界中各類對象的特征和對象之間的聯(lián)系。下面對實體(型)、屬性、聯(lián)系進行簡要介紹。
實體:用矩形表示,矩形內(nèi)寫明實體名。
屬性:用橢圓形表示,橢圓形內(nèi)注明屬性名稱,并用無向邊將其與相應(yīng)的實體連接起來。當屬性較多時,可以將實體與其相應(yīng)的屬性單獨用列表表示。聯(lián)系:用菱形表示,菱形內(nèi)寫明聯(lián)系名,并用無向邊將其與有關(guān)實體連接起來,同時在無向邊上標注聯(lián)系的類型(1∶1、1∶n或m∶n)。任務(wù)1理解數(shù)據(jù)模型【例題2.1】在學(xué)生選課的概念模型中,學(xué)生實體具有學(xué)號、姓名、專業(yè)名、性別、出生時間、總學(xué)分、備注等屬性,用E-R圖表示如圖2-3所示任務(wù)1理解數(shù)據(jù)模型【例題2.2】用E-R圖表示學(xué)生選課的概念模型。每個實體的屬性如下。學(xué)生的屬性:學(xué)號、姓名、專業(yè)名、性別、出生時間、總學(xué)分、備注。課程的屬性:課程號、課程名、開課學(xué)期、學(xué)時、學(xué)分。這些實體的聯(lián)系為一個學(xué)生可以選修若干門課程,每門課程由多名學(xué)生選修。用E-R圖表示如圖2-4所示任務(wù)1理解數(shù)據(jù)模型2.1.3邏輯模型數(shù)據(jù)庫領(lǐng)域中主要的邏輯模型包括層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο髷?shù)據(jù)模型、對象關(guān)系數(shù)據(jù)模型、半結(jié)構(gòu)化數(shù)據(jù)模型等。表2-1對4種常用的邏輯模型做了簡單的比較,本小節(jié)主要介紹關(guān)系模型。關(guān)系模型是目前應(yīng)用最廣的一種數(shù)據(jù)模型,也是理論研究最完備的一種數(shù)據(jù)模型。任務(wù)1理解數(shù)據(jù)模型任務(wù)1理解數(shù)據(jù)模型1.關(guān)系模型的數(shù)據(jù)類型關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是關(guān)系。在用戶看來,關(guān)系就是二維表,關(guān)系模型由一組二維表組成。下面以學(xué)生情況表為例介紹一些關(guān)系模型中常用的術(shù)語任務(wù)1理解數(shù)據(jù)模型①關(guān)系(Relation):一個關(guān)系通常對應(yīng)一張二維表,由行和列組成,表名即關(guān)系名。實體及實體間的聯(lián)系都用二維表來表示,如表2-2所示的學(xué)生情況表。在數(shù)據(jù)庫的物理組織中,二維表是以文件形式存儲的。②元組(Tuple):二維表中的一行即為一個元組(也稱記錄),是眾多具有相同屬性的對象中的一個,如學(xué)生關(guān)系中的(001104,嚴蔚敏,軟件技術(shù),男,2000-08-26,50)就是一個元組,記錄了一名學(xué)生的基本信息。③屬性(Attribute):二維表中的一列即為一個屬性,代表相應(yīng)數(shù)據(jù)表中存儲對象的共有屬性,屬性的名稱為屬性名,屬性的值稱為屬性值。表2-2中的學(xué)號、姓名等均為屬性,001104為學(xué)號的屬性值。④域(Domain):屬性的取值范圍稱為屬性的域。屬性的域是由屬性的性質(zhì)及要表達的意義確定的,如學(xué)生性別的域是(男,女)。任務(wù)1理解數(shù)據(jù)模型⑤候選鍵(CandidateKey):若關(guān)系中的某一屬性或?qū)傩越M的值能唯一地標識一個元組,則稱該屬性或?qū)傩越M為候選鍵;候選鍵可以有多個。⑥主鍵(PrimaryKey,PK):關(guān)系中的某個屬性或?qū)傩越M能唯一確定一個元組,即確定一個實體,則該屬性或?qū)傩越M為主鍵。一個關(guān)系中的主鍵只能有一個,主鍵也被稱為關(guān)鍵字。如學(xué)生表中的學(xué)號可以唯一確定一個學(xué)生,因此學(xué)號是學(xué)生表的關(guān)鍵字。而在成績表中,學(xué)號和課程號組合起來才能唯一地確定一個元組,所以,學(xué)號和課程號的組合稱為成績表的關(guān)鍵字。這種由多個屬性組成的關(guān)鍵字稱為復(fù)合關(guān)鍵字。⑦外鍵或外部關(guān)鍵字(ForeignKey,F(xiàn)K):一個關(guān)系中的屬性或?qū)傩越M不是本關(guān)系的主鍵,而是另一關(guān)系的主鍵,則稱該屬性或?qū)傩越M是該關(guān)系的外鍵。任務(wù)1理解數(shù)據(jù)模型⑧關(guān)系模式(RelationSchema):對關(guān)系的描述稱為關(guān)系模式,它描述的是二維表的結(jié)構(gòu)。一般表示為:關(guān)系名(屬性1,屬性2,…,屬性n)例如,學(xué)生、課程、選課之間的聯(lián)系在關(guān)系模型中可以表示為如下形式。學(xué)生(學(xué)號,姓名,專業(yè)名,性別,出生時間,總學(xué)分,備注)主鍵:學(xué)號課程(課程號,課程名,開課學(xué)期,學(xué)時,學(xué)分)主鍵:課程號成績(學(xué)號,課程號,成績)主鍵:學(xué)號、課程號外鍵:學(xué)號、課程號⑨元數(shù)(Arity):關(guān)系模式中屬性的數(shù)目是關(guān)系的元數(shù)。⑩分量(Component):元組中的一個屬性值稱為元組的分量。任務(wù)1理解數(shù)據(jù)模型關(guān)系模型給出了關(guān)系操作的能力,關(guān)系操作的對象和結(jié)果都是集合,主要包括以下兩方面。①查詢操作:選擇(SELECT)、投影(PROJECT)、連接(JOIN)、除(DIVIDE)、并(UNION)、交(INTERSECTION)和差(DIFFERENCE)。②更新操作:插入(INSERT)、刪除(DELETE)和修改(UPDATE)。進行插入、刪除、修改操作時要滿足關(guān)系模型的完整性約束條件。關(guān)系操作都是由關(guān)系操作語言實現(xiàn)的。關(guān)系模型使用的查詢語言是關(guān)系代數(shù)和關(guān)系演算。關(guān)系代數(shù)用關(guān)系的運算來表達查詢要求,關(guān)系演算用謂詞來表達查詢要求。SQL是介于關(guān)系代數(shù)和關(guān)系演算之間的語言。關(guān)系代數(shù)和關(guān)系演算也是關(guān)系數(shù)據(jù)庫SQL的理論基礎(chǔ)任務(wù)1理解數(shù)據(jù)模型3.關(guān)系模型的完整性約束關(guān)系的完整性就是指關(guān)系模型的數(shù)據(jù)完整性,用于確保數(shù)據(jù)的準確性和一致性。關(guān)系模型的完整性有三大類:實體完整性、參照完整性和用戶定義的完整性。其中,實體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,稱為關(guān)系的兩個不變性。(1)實體完整性實體完整性是指關(guān)系的關(guān)鍵字的所有屬性都不能為空。它可確保關(guān)系中的每個元組都是可識別的、唯一的。關(guān)系模型中的每個元組都對應(yīng)客觀存在的一個實例,若關(guān)系中的某個元組主鍵沒有值,則此元組在關(guān)系中一定沒有任何意義。如在學(xué)生關(guān)系中,主鍵學(xué)號能夠唯一地確定一個學(xué)生,如果某個學(xué)生的學(xué)號為空,則此學(xué)生將無法管理。任務(wù)1理解數(shù)據(jù)模型(2)參照完整性參照完整性也稱引用完整性,是指兩個表的主鍵和外鍵的數(shù)據(jù)對應(yīng)一致。它可確保有主鍵的表中有對應(yīng)其他表的外鍵的行存在。現(xiàn)實世界中的實體之間往往存在某種聯(lián)系,在關(guān)系模型中就自然存在關(guān)系與關(guān)系間的引用。參照完整性用于描述實體之間的引用規(guī)則,即一個實體中某個屬性的值引用了另一個實體的關(guān)鍵字,其中引用關(guān)系稱為參照關(guān)系,而被引用關(guān)系稱為被參照關(guān)系,參照關(guān)系中的引用字段稱為外鍵。關(guān)系模型中的參照完整性就是通過定義外鍵來實現(xiàn)的。例如,學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)系可以用如下3個關(guān)系表示。學(xué)生(學(xué)號,姓名,專業(yè)名,性別,出生時間,總學(xué)分,備注)課程(課程號,課程名,開課學(xué)期,學(xué)時,學(xué)分)選修(學(xué)號,課程號,成績)任務(wù)1理解數(shù)據(jù)模型參照完整性就是限制一個關(guān)系中某個屬性的取值受另一個關(guān)系中某個屬性的取值范圍的約束。不僅兩個或兩個以上的關(guān)系間可以存在引用關(guān)系,同一關(guān)系內(nèi)部的屬性間也可以存在引用關(guān)系。參照完整性規(guī)定了關(guān)鍵字與外鍵之間的引用規(guī)則,要求主關(guān)鍵字必須是非空且不重復(fù)的,但對外鍵并無要求。外鍵可以有重復(fù)值,也可以為空任務(wù)1理解數(shù)據(jù)模型(3)用戶定義的完整性用戶定義的完整性也稱域完整性或語義完整性。它是指不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)應(yīng)用環(huán)境的不同,設(shè)定的一些特殊約束條件。用戶定義完整性常用于限定屬性的類型及取值范圍,這樣可以防止屬性值與數(shù)據(jù)庫語義矛盾。例如學(xué)生的性別應(yīng)該是男或女。任務(wù)1理解數(shù)據(jù)模型4.關(guān)系模型的主要特點關(guān)系模型的主要特點如下。①關(guān)系中的每一個數(shù)據(jù)項不可再分,是最基本的單位。②每一列數(shù)據(jù)項是同屬性的。列數(shù)根據(jù)需要而定,且各列的順序是任意的。③每一行記錄由一個事物的諸多屬性構(gòu)成。記錄的順序可以是任意的。④一個關(guān)系可看作一張二維表,不允許有相同的字段名,也不允許有相同的記錄行。任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的邏輯結(jié)構(gòu)可以分為用戶級、邏輯級和物理級3個層次,反映觀察數(shù)據(jù)庫的3種角度。從數(shù)據(jù)庫最終用戶的角度看,數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)分為單用戶結(jié)構(gòu)、主從式結(jié)構(gòu)、分布式結(jié)構(gòu)、客戶端/服務(wù)器結(jié)構(gòu)、瀏覽器/應(yīng)用服務(wù)器/數(shù)據(jù)庫服務(wù)器多層結(jié)構(gòu)等,這是數(shù)據(jù)庫系統(tǒng)外部的體系結(jié)構(gòu)。從數(shù)據(jù)庫應(yīng)用開發(fā)人員的角度看,雖然實際的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品種類很多,支持不同的數(shù)據(jù)模型,使用不同的數(shù)據(jù)庫語言,建立在不同的操作系統(tǒng)之上,數(shù)據(jù)的存儲結(jié)構(gòu)也各不相同,但它們在體系結(jié)構(gòu)上通常都具有相同的外模式、模式和內(nèi)模式三級模式結(jié)構(gòu)的特征,各級模式之間通過映射關(guān)系進行聯(lián)系和轉(zhuǎn)換,如圖2-5所示。這是數(shù)據(jù)庫系統(tǒng)內(nèi)部的體系結(jié)構(gòu)。任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)2.2.1了解數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)1.模式在數(shù)據(jù)模型中有“型”(Type)和“值”(Value)的概念。型是指某一類數(shù)據(jù)的結(jié)構(gòu)和屬性的說明,值是型的一個具體值。模式(Schema)也稱邏輯模式或概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它僅僅涉及型的描述,不涉及具體的值。模式的一個具體值稱為模式的一個實例(Instance)。同一個模式可以有很多實例。例如,學(xué)生成績管理數(shù)據(jù)庫模式中,包含學(xué)生記錄、課程記錄和成績記錄,現(xiàn)在可以添加一個計算機學(xué)院的成績管理數(shù)據(jù)庫實例,也可以添加一個機電學(xué)院的成績管理數(shù)據(jù)庫實例。任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)2.外模式外模式也稱子模式或用戶模式,它是數(shù)據(jù)庫用戶(包括應(yīng)用程序開發(fā)人員和用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用程序有關(guān)的數(shù)據(jù)的邏輯表示,屬于視圖層抽象。外模式通常是模式的子集。一個數(shù)據(jù)庫可以有多個外模式。由于它是各個用戶的數(shù)據(jù)視圖,如果用戶在應(yīng)用需求、提取數(shù)據(jù)的方式、對數(shù)據(jù)保密的要求等方面存在差異,則其外模式描述會有所不同。即使是模式中的同一數(shù)據(jù),它在外模式中的結(jié)構(gòu)、類型、長度、保密級別等都可以不同。任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)3.內(nèi)模式內(nèi)模式也稱存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫中的內(nèi)部表示,是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,屬于物理層抽象,例如數(shù)據(jù)是否壓縮存儲、是否加密,數(shù)據(jù)的存儲記錄結(jié)構(gòu)有何規(guī)定等。內(nèi)模式是數(shù)據(jù)庫管理系統(tǒng)管理的最低層。數(shù)據(jù)庫管理系統(tǒng)提供內(nèi)模式DDL來嚴格地定義內(nèi)模式。一個數(shù)據(jù)庫只有一個內(nèi)模式。任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)2.2.2了解數(shù)據(jù)庫系統(tǒng)的兩級映像數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)進行抽象的3個級別,為了能夠在內(nèi)部實現(xiàn)這3個抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫管理系統(tǒng)在這3級模式之間提供了兩級映像:外模式/模式映像、模式/內(nèi)模式映像。這兩級映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)具有較強的邏輯獨立性和物理獨立性。任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)(1)外模式/模式映像模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu)。同一個模式可以有多個外模式。對于每一個外模式,數(shù)據(jù)庫系統(tǒng)都提供了一個外模式/模式映像,它定義了外模式與模式之間的對應(yīng)關(guān)系。映像定義通常包含在各自外模式的描述中。當模式改變(如增加新的關(guān)系或?qū)傩?、改變屬性的?shù)據(jù)類型等)時,可由數(shù)據(jù)庫管理員對各個外模式/模式映像做相應(yīng)的修改,從而保持外模式不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,因此應(yīng)用程序不必修改,保證了數(shù)據(jù)與應(yīng)用程序的邏輯獨立性,簡稱數(shù)據(jù)的邏輯獨立性。任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)(2)模式/內(nèi)模式映像數(shù)據(jù)庫中只有一個模式,也只有一個內(nèi)模式,所以模式/內(nèi)模式映像是唯一的,它用于定義數(shù)據(jù)全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。當數(shù)據(jù)庫的存儲結(jié)構(gòu)改變(如選用了另一種存儲結(jié)構(gòu)),為了保持模式不變,也就是應(yīng)用程序保持不變,可由數(shù)據(jù)庫管理員對模式/內(nèi)模式映像做相應(yīng)改變。這樣,就保證了數(shù)據(jù)與應(yīng)用程序的物理獨立性,簡稱數(shù)據(jù)的物理獨立性。在數(shù)據(jù)庫的三級模式結(jié)構(gòu)中,數(shù)據(jù)庫模式即全局邏輯結(jié)構(gòu),是數(shù)據(jù)庫的中心與關(guān)鍵,它獨立于數(shù)據(jù)庫的其他模式。因此,設(shè)計數(shù)據(jù)庫模式結(jié)構(gòu)時應(yīng)先確定數(shù)據(jù)庫的邏輯模式任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)數(shù)據(jù)庫的內(nèi)模式依賴于它的全局邏輯結(jié)構(gòu),但獨立于數(shù)據(jù)庫的用戶視圖,即外模式,也獨立于具體的存儲設(shè)備。它將全局邏輯結(jié)構(gòu)中所定義的數(shù)據(jù)結(jié)構(gòu)及其聯(lián)系按照一定的物理存儲策略進行組織,以達到較好的時間與空間效率。數(shù)據(jù)庫的外模式面向具體的應(yīng)用程序,它定義在邏輯模式之上,但獨立于存儲模式和存儲設(shè)備。當用戶需求發(fā)生較大變化,相應(yīng)外模式不能滿足其視圖要求時,外模式就要做相應(yīng)的改動,所以設(shè)計外模式時應(yīng)充分考慮應(yīng)用程序的擴充性。任務(wù)2了解數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)特定的應(yīng)用程序是在外模式描述的數(shù)據(jù)結(jié)構(gòu)上開發(fā)的,它依賴于特定的外模式,獨立于數(shù)據(jù)庫的模式和存儲結(jié)構(gòu)。不同的應(yīng)用程序有時可以共用同一個外模式。數(shù)據(jù)庫的兩級映像保證了數(shù)據(jù)庫外模式的穩(wěn)定性,從而從底層保證了應(yīng)用程序的穩(wěn)定性,除非應(yīng)用需求本身發(fā)生變化,否則應(yīng)用程序一般不需要修改。數(shù)據(jù)庫的三級模式和兩級映像保證了數(shù)據(jù)與應(yīng)用程序之間的獨立性,使得數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出去。另外,由于數(shù)據(jù)的存取由數(shù)據(jù)庫管理系統(tǒng)管理,用戶不必考慮存取路徑等細節(jié),從而簡化了應(yīng)用程序的開發(fā),大大減少了應(yīng)用程序的維護和修改成本。任務(wù)3了解關(guān)系數(shù)據(jù)庫2.3.1關(guān)系代數(shù)在計算機上存儲數(shù)據(jù)的目的是使用數(shù)據(jù),選擇好數(shù)據(jù)的組織形式后,就要確定如何使用這些數(shù)據(jù)。關(guān)系代數(shù)是一種抽象的查詢語言,它用關(guān)系的運算來表達查詢。關(guān)系代數(shù)的運算對象是關(guān)系,運算結(jié)果亦為關(guān)系,它主要運用高等數(shù)學(xué)中關(guān)系代數(shù)的集合的相關(guān)理論。關(guān)系代數(shù)的運算按運算符的不同可分為傳統(tǒng)的集合運算和專門的關(guān)系運算兩類。①傳統(tǒng)的集合運算將關(guān)系看成元組的集合,其運算是從關(guān)系的行的角度進行的。它包括并、差、交、笛卡兒積4種運算。任務(wù)3了解關(guān)系數(shù)據(jù)庫②專門的關(guān)系運算包括選擇、投影、連接和除等,它不僅涉及行而且涉及列,常用比較運算符和邏輯運算符來輔助專門的關(guān)系運算符進行操作。關(guān)系代數(shù)中常用的運算及運算符如下。集合運算:∪(并)、―(差)、∩(交)、×(笛卡兒積)。關(guān)系運算:∏(投影)、σ(選擇)、(連接)、÷(除)。比較運算:>(大于)、≥(大于等于)、<(小于)、≤(小于等于)、≠(不等于)。邏輯運算:∨(或)、∧(與)、﹃(非)。下面僅對部分運算做簡要介紹。任務(wù)3了解關(guān)系數(shù)據(jù)庫1.投影運算投影運算是對關(guān)系中的列(屬性)進行的運算。它按給定的條件選取關(guān)系中的部分或全部列,將其重新排列后組成一個新的關(guān)系。投影運算屬于單目運算【例題2.3】將表2-2“學(xué)生情況表”記作關(guān)系R,它是一個7度關(guān)系,查詢所有學(xué)生的姓名、專業(yè)名、總學(xué)分,將查詢結(jié)果組成新表“學(xué)生專業(yè)情況表”,如表2-3所示。將“學(xué)生專業(yè)情況表”記作關(guān)系S,它是一個3度關(guān)系,并且是由R通過投影運算得到的。記作:
S=∏姓名,專業(yè)名,總學(xué)分(R)任務(wù)3了解關(guān)系數(shù)據(jù)庫2.選擇運算選擇運算是對關(guān)系中的行進行的運算,是從指定的關(guān)系中,選取滿足條件的部分或全部行,組成一個新的關(guān)系。選擇運算屬于單目運算,選擇的結(jié)果是原關(guān)系的一個子集,且關(guān)系的模型不變。【例題2.4】在表2-2所示的“學(xué)生情況表”中,查詢網(wǎng)絡(luò)技術(shù)專業(yè)的學(xué)生,查詢得到的關(guān)系如表2-4所示。任務(wù)3了解關(guān)系數(shù)據(jù)庫3.連接運算連接運算是按照給定的條件,把兩個關(guān)系中的一切可能的組合方式拼接起來,形成一個新的關(guān)系,就是對兩個關(guān)系進行笛卡兒積的選擇運算。連接運算是雙目運算。連接運算中有兩種很重要也很常用的連接:等值連接和自然連接。(1)等值連接。如果兩個關(guān)系R和S中分別存在數(shù)目相等且可比的屬性組A和B,在R和S的笛卡兒積中選取A、B屬性值相等的元組稱為等值連接。任務(wù)3了解關(guān)系數(shù)據(jù)庫【例題2.5】將學(xué)生關(guān)系和選課關(guān)系進行連接,能得到學(xué)生及其選課的情況,如表2-5(關(guān)系R)和表2-6(關(guān)系S)。查詢關(guān)系R和S中姓名屬性值相等的元組。任務(wù)3了解關(guān)系數(shù)據(jù)庫則關(guān)系R與S等值連接的結(jié)果如表2-7所示。任務(wù)3了解關(guān)系數(shù)據(jù)庫(2)自然連接。自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的屬性組的值必須相同,并且在結(jié)果中把重復(fù)的屬性去掉。自然連接是最常用的一種連接運算,在關(guān)系運算中起著重要作用。任務(wù)3了解關(guān)系數(shù)據(jù)庫【例題2.6】例題2.5中關(guān)系R和S的自然連接結(jié)果如表2-8所示。由此可見,查詢時應(yīng)考慮優(yōu)化,以便提高查詢效率。如果有可能,應(yīng)當首先進行選擇運算,使關(guān)系中元組的個數(shù)盡量少,然后進行投影運算,使關(guān)系中屬性的個數(shù)較少,最后進行連接運算。任務(wù)3了解關(guān)系數(shù)據(jù)庫2.3.2關(guān)系數(shù)據(jù)庫標準語言SQL1.SQL的主要特點SQL具有數(shù)據(jù)查詢(DataQuery)、數(shù)據(jù)操縱(DataManipulation)、數(shù)據(jù)定義(DataDefinition)和數(shù)據(jù)控制(DataControl)功能,其主要特點如下。①綜合統(tǒng)一。②SQL是非過程化的語言。③SQL采用面向集合的操作方式。④以同一種語法結(jié)構(gòu)提供多種使用方式。SQL既是獨立的語言,又是嵌入式語言。⑤語言簡潔,易學(xué)易用。此外,SQL支持數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu),模式對應(yīng)基本表,外模式對應(yīng)視圖或部分基本表,內(nèi)模式對應(yīng)存儲文件。任務(wù)3了解關(guān)系數(shù)據(jù)庫2.SQL的組成
SQL由以下幾部分組成。(1)DDLDDL用于執(zhí)行數(shù)據(jù)庫的任務(wù),對數(shù)據(jù)庫以及數(shù)據(jù)庫中的各種對象進行創(chuàng)建、刪除、修等操作。DDL的主要語句及功能如表2-9所示。任務(wù)3了解關(guān)系數(shù)據(jù)庫(2)DMLDML用于操縱數(shù)據(jù)庫中的各種對象,檢索和修改數(shù)據(jù)。DML的主要語句及功能如表2-10所示。任務(wù)3了解關(guān)系數(shù)據(jù)庫(3)DCLDCL用于安全管理,確定哪些用戶可以查看或修改數(shù)據(jù)庫中的數(shù)據(jù),DCL的主要語句及功能如表2-11所示。任務(wù)4實現(xiàn)關(guān)系的規(guī)范化2.4.1第一范式(1NF)在關(guān)系數(shù)據(jù)庫中,對關(guān)系模式的基本要求是滿足第一范式,這樣的關(guān)系模式就是合法的、允許的。第一范式是指數(shù)據(jù)表的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復(fù)的屬性。由此可見,第一范式主要針對列進行規(guī)范化。從用戶角度看,關(guān)系的邏輯結(jié)構(gòu)是一個二維表,每個表代表一類信息(實體)的集合,但事實上不是所有的二維表都是關(guān)系。任務(wù)4實現(xiàn)關(guān)系的規(guī)范化例如,將學(xué)號、姓名、聯(lián)系電話組成一張表,但一個學(xué)生可能有一個移動電話和一個家庭電話,所以這張表就不是關(guān)系。將其規(guī)范成第一范式有以下3種方法。①重復(fù)存儲學(xué)號和姓名,關(guān)鍵字是聯(lián)系電話。②學(xué)號為關(guān)鍵字,聯(lián)系電話分為移動電話和家庭電話。③學(xué)號為關(guān)鍵字,但每條記錄只能有一個聯(lián)系電話,要么是移動電話,要么是家庭電話。以上3種方法中,第一種方法最不可取,按實際情況選取后兩種方法。這種將非關(guān)系的二維表轉(zhuǎn)化為關(guān)系,就是關(guān)系規(guī)范化的過程。通過規(guī)范化可以使從數(shù)據(jù)庫中得到的結(jié)果更加準確。任務(wù)4實現(xiàn)關(guān)系的規(guī)范化2.4.2第二范式(2NF)第二范式是在第一范式的基礎(chǔ)上建立起來的,即滿足第二范式必須先滿足第一范式。有些滿足第一范式的關(guān)系模式存在插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題。例如,在分析學(xué)生基本信息時,得到表2-12所示的表。任務(wù)4實現(xiàn)關(guān)系的規(guī)范化表2-12用于保存學(xué)生基本信息,其中包括學(xué)生學(xué)號、姓名及課程成績等信息,如果要刪除其中的一個學(xué)生,就必須同時刪除一個相應(yīng)的成績,規(guī)范化就是要解決這個問題??梢詫⑦@個表轉(zhuǎn)化為兩個表,一個用于存儲每個學(xué)生的基本信息,另一個用于存儲每個學(xué)生的成績信息,這樣對其中一個表進行添加或刪除操作都不會影響另一個表。分解后的關(guān)系如表2-13和表2-14所示。任務(wù)4實現(xiàn)關(guān)系的規(guī)范化第二范式要求數(shù)據(jù)表中的每個實例或行必須可以被唯一地區(qū)分。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的唯一標識。例如表2-12學(xué)生基本信息表中添加了學(xué)號列,因為每個學(xué)生的學(xué)號是唯一的,因此每個學(xué)生可以被唯一區(qū)分。這個唯一列被稱為主鍵。任務(wù)4實現(xiàn)關(guān)系的規(guī)范化第二范式要求實體的屬性完全依賴主鍵。完全依賴是指不能存在僅依賴主鍵一部分的屬性。如果存在,那么這個屬性和主鍵這一部分應(yīng)該被分離出來形成一個新的實體,新實體與原實體之間具有一對多關(guān)系。換言之,第二范式是指數(shù)據(jù)表中不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的部分函數(shù)依賴(部分函數(shù)依賴指的是存在復(fù)合關(guān)鍵字中的某些字段決定非關(guān)鍵字段),即所有非關(guān)鍵字段都完全依賴于任意一組候選關(guān)鍵字。數(shù)據(jù)庫的設(shè)計范式是數(shù)據(jù)庫設(shè)計需要滿足的規(guī)范,滿足這些規(guī)范的數(shù)據(jù)庫是簡潔的、結(jié)構(gòu)明晰的,同時,不會發(fā)生插入、刪除和更新操作異常。反之,數(shù)據(jù)庫會比較混亂,可能會有大量不需要的冗余信息,給數(shù)據(jù)庫應(yīng)用程序開發(fā)人員制造麻煩。任務(wù)4實現(xiàn)關(guān)系的規(guī)范化【例題2.7】在選課關(guān)系表SelectCourse(學(xué)號,姓名,出生時間,課程名稱,成績,學(xué)分)中,關(guān)鍵字為復(fù)合關(guān)鍵字(學(xué)號,課程名稱),因為存在如下決定關(guān)系:(學(xué)號,課程名稱)→(姓名,出生時間,成績,學(xué)分)。這個數(shù)據(jù)表不滿足第二范式,因為存在如下決定關(guān)系:(課程名稱)→(學(xué)分);(學(xué)號)→(姓名,出生時間)。即存在復(fù)合關(guān)鍵字中的字段決定非關(guān)鍵字的情況。
由于不符合第二范式,這個選課關(guān)系表會存在如下問題。(1)數(shù)據(jù)冗余。同一門課程由n個學(xué)生選修,學(xué)分就重復(fù)n-1次;同一個學(xué)生選修m門課程,姓名和出生時間就重復(fù)m-1次。(2)更新異常。若調(diào)整了某門課程的學(xué)分,數(shù)據(jù)表中所有行的學(xué)分值都要更新,否則會出現(xiàn)同一門課
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年食堂承包經(jīng)營員工勞動權(quán)益保障協(xié)議3篇
- 2025年食堂蔬菜糧油智能化管理系統(tǒng)合作協(xié)議3篇
- 2025年度個人房產(chǎn)托管服務(wù)合同范本4篇
- 2025版高科技園區(qū)門衛(wèi)值班人員崗位聘用合同協(xié)議4篇
- 2025年度個人虛擬現(xiàn)實體驗服務(wù)合同范本4篇
- 物業(yè)服務(wù)公司2025年度合同管理制度解讀6篇
- 個體損害和解合同格式(2024年版)版B版
- 2025年度生態(tài)園林蟲害生物防治技術(shù)合同范本3篇
- 2025年度數(shù)碼產(chǎn)品代銷合同范本
- 2025年食堂食堂食材采購及加工配送協(xié)議3篇
- 割接方案的要點、難點及采取的相應(yīng)措施
- 2025年副護士長競聘演講稿(3篇)
- 2024年08月北京中信銀行北京分行社會招考(826)筆試歷年參考題庫附帶答案詳解
- 執(zhí)業(yè)藥師勞動合同范本
- 2024年高考英語復(fù)習(xí)(新高考專用)完形填空之詞匯復(fù)現(xiàn)
- 【京東物流配送模式探析及發(fā)展對策探究開題報告文獻綜述4100字】
- 施工現(xiàn)場工程令
- 藥物經(jīng)濟學(xué)評價模型構(gòu)建
- Daniel-Defoe-Robinson-Crusoe-笛福和魯濱遜漂流記全英文PPT
- 第一章威爾遜公共行政管理理論
- 外科護理(高職護理專業(yè))PPT完整全套教學(xué)課件
評論
0/150
提交評論