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