數(shù)據(jù)庫原理及應用課件完整版電子講義_第1頁
數(shù)據(jù)庫原理及應用課件完整版電子講義_第2頁
數(shù)據(jù)庫原理及應用課件完整版電子講義_第3頁
數(shù)據(jù)庫原理及應用課件完整版電子講義_第4頁
數(shù)據(jù)庫原理及應用課件完整版電子講義_第5頁
已閱讀5頁,還剩393頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

2/5/2023數(shù)據(jù)庫原理及應用(MySQL版)2/5/2023數(shù)據(jù)庫原理及應用(MySQL版)第1章數(shù)據(jù)庫基本概念

1.1數(shù)據(jù)與數(shù)據(jù)管理技術(shù)

1.2數(shù)據(jù)庫

1.3數(shù)據(jù)庫管理系統(tǒng)

1.4數(shù)據(jù)庫系統(tǒng)1.5數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)1.6結(jié)構(gòu)化表查詢語句SQL1.7數(shù)據(jù)庫系統(tǒng)設計步驟1.8常用數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)是人類活動的重要資源,目前在計算機的各類應用中,用于數(shù)據(jù)處理的約占80%左右。特別是在當前的信息化時代,數(shù)據(jù)作為一種資源的重要性日益提高。數(shù)據(jù)庫是存放數(shù)據(jù)的倉庫,數(shù)據(jù)庫系統(tǒng)是研究如何妥善地組織、存儲和科學地管理數(shù)據(jù)的計算機系統(tǒng)。數(shù)據(jù)庫(DataBase,DB)一詞早在20世紀50年代就已經(jīng)提出,經(jīng)過多年的發(fā)展數(shù)據(jù)庫技術(shù)已成為計算機科學的一個重要分支。數(shù)據(jù)庫技術(shù)是計算機科學技術(shù)中發(fā)展最快、應用最廣泛的領域之一。學校的學生信息管理、企業(yè)中的企業(yè)信息管理、銀行信息管理,及國家的各種信息管理等,無一不用到數(shù)據(jù)庫。數(shù)據(jù)庫技術(shù)已是計算機信息系統(tǒng)和應用程序的核心技術(shù)和重要基礎。本章主要介紹數(shù)據(jù)庫系統(tǒng)的基本概念、SQL語言、數(shù)據(jù)庫系統(tǒng)設計步驟和常用的數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫原理及應用(MySQL版)1.1數(shù)據(jù)與數(shù)據(jù)管理技術(shù)1.1.1數(shù)據(jù)數(shù)據(jù)(Data)是描述事物的符號記錄,具體來講就是人們從實際當中抽取感興趣的事物特征或?qū)傩?。?shù)據(jù)是信息的符號表示或載體。由于數(shù)據(jù)能被書寫,因而能夠被記錄、存儲和處理,在計算機中,數(shù)據(jù)包括數(shù)字、文字、圖形、圖像、音頻、視頻等等,對數(shù)據(jù)進行處理可以得到有用的信息。數(shù)據(jù)具有一定的格式(語法)和含義(語義)。數(shù)據(jù)的格式規(guī)定了數(shù)據(jù)的語法結(jié)構(gòu),如身份證號、電話號碼、車牌號等都有相應的編碼規(guī)則,即語法定義。數(shù)據(jù)的含義(語義)是對數(shù)據(jù)的具體解釋。如我國二代身份證格式規(guī)定為15位,其中第l~6位數(shù)為行政區(qū)劃代碼,第7~12位數(shù)為出生日期代碼(第7、8位為出生年份(兩位數(shù)),第9、10位為出生月份,第11、12位代表出生日期),第13~15位數(shù)為分配順序代碼,最末一位數(shù)是奇數(shù)的分配給男性,偶數(shù)分配給女性。按照上述語法,就可以正確解讀出任何一個身份證號的具體含義。數(shù)據(jù)庫原理及應用(MySQL版)1.1.2數(shù)據(jù)管理技術(shù)數(shù)據(jù)管理技術(shù)是人們對數(shù)據(jù)進行收集、組織、存儲、處理、傳播和利用的一系列活動的總和。基于人們對數(shù)據(jù)處理的需求推動,以及計算機軟件、硬件和應用的不斷發(fā)展,數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)3個階段。1.人工管理階段該階段的主要特點是數(shù)據(jù)不長期保存在計算機中,應用程序管理數(shù)據(jù),數(shù)據(jù)不獨立于應用程序,應用程序間不能共享數(shù)據(jù)。2.文件系統(tǒng)階段該階段的主要特點是數(shù)據(jù)可以長期保存在外存上重復使用,數(shù)據(jù)獨立于程序,由文件系統(tǒng)來管理數(shù)據(jù)。3.數(shù)據(jù)庫系統(tǒng)階段該階段的主要特點是數(shù)據(jù)結(jié)構(gòu)化,數(shù)據(jù)的獨立性高,數(shù)據(jù)的共享性高、冗余度低、易擴充,數(shù)據(jù)由DBMS統(tǒng)一管理和控制,便于使用。數(shù)據(jù)庫原理及應用(MySQL版)1.2數(shù)據(jù)庫數(shù)據(jù)庫(DataBase,DB)是存儲在計算機內(nèi)的、有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。就是說數(shù)據(jù)庫是存儲數(shù)據(jù)的倉庫,其中的數(shù)據(jù)是按一定的結(jié)構(gòu)組織存儲的,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,可為多個用戶共享。例如高校的學生學籍信息數(shù)據(jù)庫,學生的成績等學籍信息都是按一定的結(jié)構(gòu)和聯(lián)系進行組織、存儲,教務管理部門、任課教師和學生等用戶都可以進行權(quán)限允許的處理、查看等操作。數(shù)據(jù)庫原理及應用(MySQL版)1.3數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫只是用來存放數(shù)據(jù),需要通過相應的軟件才能對其中的數(shù)據(jù)進行處理。數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是對數(shù)據(jù)庫進行管理的軟件。數(shù)據(jù)庫管理系統(tǒng)為數(shù)據(jù)庫提供數(shù)據(jù)的定義、建立、維護、查詢、統(tǒng)計等操作功能,并提供數(shù)據(jù)完整性、安全性、多用戶并發(fā)使用、備份與恢復等管理功能。數(shù)據(jù)庫管理系統(tǒng)是位于數(shù)據(jù)庫用戶和操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶提供了訪問數(shù)據(jù)庫的各種方法,使用戶可以透明地訪問數(shù)據(jù)庫,不需要知道數(shù)據(jù)庫的物理組織和存儲方式。采用關(guān)系數(shù)據(jù)模型的數(shù)據(jù)庫管理系統(tǒng)稱為關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RelationalDataBaseManagementSystem,RDBMS),由于關(guān)系數(shù)據(jù)模型數(shù)據(jù)結(jié)構(gòu)簡單、清晰、易用,所以關(guān)系模型得到了廣泛應用,目前常用的數(shù)據(jù)庫管理系統(tǒng)幾乎都是關(guān)系數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫原理及應用(MySQL版)1.3數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)主要有數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)庫的運行管理和數(shù)據(jù)庫的建立和維護等功能。1.數(shù)據(jù)定義功能DBMS中通常提供了多種數(shù)據(jù)庫對象,包括數(shù)據(jù)表、視圖、存儲過程等等,用戶首先需要定義創(chuàng)建這些對象,然后才能使用。DBMS提供數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL),用戶通過DDL可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象進行定義。2.數(shù)據(jù)操縱功能DBMS還提供數(shù)據(jù)操縱語言(DataManipulationLanguage,DML),用戶可以使用DML實現(xiàn)對數(shù)據(jù)庫的基本操作,如數(shù)據(jù)查詢、插入、修改和刪除等。3.數(shù)據(jù)庫的運行管理數(shù)據(jù)庫在建立、使用和維護時由DBMS統(tǒng)一管理、統(tǒng)一控制,以保證數(shù)據(jù)的安全性、完整性、多個用戶對數(shù)據(jù)的并發(fā)使用和故障后的數(shù)據(jù)庫恢復等,保證數(shù)據(jù)庫能正確、有效地運行。4.數(shù)據(jù)庫的建立和維護數(shù)據(jù)庫的建立和維護包括數(shù)據(jù)庫初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復功能,數(shù)據(jù)庫的重組、性能監(jiān)測和分析等功能。這些功能是由DBMS提供的一些實用程序完成的。數(shù)據(jù)庫原理及應用(MySQL版)1.4數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DataBaseSystem,DBS)是指包含數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)的計算機系統(tǒng)。數(shù)據(jù)庫系統(tǒng)通常由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應用系統(tǒng)、數(shù)據(jù)庫管理員及用戶構(gòu)成,如圖1-1所示。數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫用戶應用系統(tǒng)應用系統(tǒng)數(shù)據(jù)庫管理員數(shù)據(jù)庫的建立、使用和維護等需要專門的人員來管理,這些管理人員被稱為數(shù)據(jù)庫管理員(DataBaseAdministrator,DBA)。數(shù)據(jù)庫原理及應用(MySQL版)1.5數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)1.5.1數(shù)據(jù)庫三級模式結(jié)構(gòu)從數(shù)據(jù)庫最終用戶的角度來看,即從數(shù)據(jù)庫系統(tǒng)外部來看,數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)可分為集中式結(jié)構(gòu)(又可分為單用戶結(jié)構(gòu)和主從式結(jié)構(gòu))、分布式結(jié)構(gòu)、客戶/服務器結(jié)構(gòu)和并行結(jié)構(gòu)。從數(shù)據(jù)庫管理系統(tǒng)角度來看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu):外模式、內(nèi)模式和概念模式,如圖1-2,這是從數(shù)據(jù)庫系統(tǒng)內(nèi)部看到的體系結(jié)構(gòu)。數(shù)據(jù)庫原理及應用(MySQL版)1.5.1數(shù)據(jù)庫三級模式結(jié)構(gòu)1.概念模式(邏輯模式、模式)概念模式也稱為邏輯模式,常簡稱為模式。邏輯模式是數(shù)據(jù)庫中整體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,包括概念記錄類型、記錄之間的聯(lián)系、數(shù)據(jù)的完整性和安全性約束等數(shù)據(jù)控制方面的規(guī)定等。邏輯模式是所有用戶的公共數(shù)據(jù)視圖。例如學籍數(shù)據(jù)庫中有學生學基本信息表、課程表、選課成績表、各種視圖和存儲過程等對象,對所有這些對象及其關(guān)聯(lián)的定義就構(gòu)成了學籍數(shù)據(jù)庫的邏輯模式。2.內(nèi)模式(存儲模式)內(nèi)模式也稱為存儲模式,是數(shù)據(jù)庫內(nèi)部數(shù)據(jù)物理存儲結(jié)構(gòu)的描述,定義了記錄的存儲結(jié)構(gòu)、索引組織方式以及數(shù)據(jù)是否壓縮存儲和加密等數(shù)據(jù)控制細節(jié)。數(shù)據(jù)庫原理及應用(MySQL版)1.5.1數(shù)據(jù)庫三級模式結(jié)構(gòu)3.外模式(用戶模式)外模式是數(shù)據(jù)庫用戶能看到和使用的那部分數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是用戶的數(shù)據(jù)視圖,也是應用程序與數(shù)據(jù)庫系統(tǒng)之間的接口。用戶可以通過數(shù)據(jù)定義語言和數(shù)據(jù)操縱語言來定義數(shù)據(jù)庫的結(jié)構(gòu)和對數(shù)據(jù)庫進行操作,只需按所定義的外模式進行操作,無需了解概念模式和內(nèi)模式的內(nèi)部細節(jié)。由于外模式通常是模式的子集,即一個用戶通常只用到數(shù)據(jù)庫中的部分數(shù)據(jù),所以外模式通常也稱為子模式或用戶模式。對應于不同的用戶和應用,一個數(shù)據(jù)庫可以有多個不同的外模式。例如在學籍數(shù)據(jù)庫系統(tǒng)中,教學管理部門可以分析、匯總學生成績,二每個學生只能查看個人的成績、學分等學籍有關(guān)信息等。有時也將外模式、概念模式和內(nèi)模式對應的不同層次的數(shù)據(jù)庫分別稱為用戶級數(shù)據(jù)庫、概念級數(shù)據(jù)庫和物理級數(shù)據(jù)庫。數(shù)據(jù)庫原理及應用(MySQL版)1.5.2三級模式之間的映射在圖1-2中可以看到在三級模式之間還存在外模式/概念模式映射和概念模式/內(nèi)模式兩層映射,這是為了實現(xiàn)數(shù)據(jù)庫三個抽象層次的聯(lián)系與轉(zhuǎn)換。對一個數(shù)據(jù)庫系統(tǒng)來說,實際上存在的只是物理級數(shù)據(jù)庫,它是數(shù)據(jù)訪問的基礎。概念級數(shù)據(jù)庫不過是物理級數(shù)據(jù)庫的一種抽象描述,用戶級數(shù)據(jù)庫是用戶和數(shù)據(jù)庫的接口。用戶根據(jù)子模式進行數(shù)據(jù)操作,通過子模式到概念模式的映射與概念級數(shù)據(jù)庫聯(lián)系起來,又通過概念級到存儲的映射與物理級聯(lián)系起來,使用戶不必關(guān)心數(shù)據(jù)在計算機中的具體表示方式和存儲方式。數(shù)據(jù)庫原理及應用(MySQL版)1.5.2三級模式之間的映射在圖1-2中可以看到在三級模式之間還存在外模式/概念模式映射和概念模式/內(nèi)模式兩層映射,這是為了實現(xiàn)數(shù)據(jù)庫三個抽象層次的聯(lián)系與轉(zhuǎn)換。對一個數(shù)據(jù)庫系統(tǒng)來說,實際上存在的只是物理級數(shù)據(jù)庫,它是數(shù)據(jù)訪問的基礎。概念級數(shù)據(jù)庫不過是物理級數(shù)據(jù)庫的一種抽象描述,用戶級數(shù)據(jù)庫是用戶和數(shù)據(jù)庫的接口。用戶根據(jù)子模式進行數(shù)據(jù)操作,通過子模式到概念模式的映射與概念級數(shù)據(jù)庫聯(lián)系起來,又通過概念級到存儲的映射與物理級聯(lián)系起來,使用戶不必關(guān)心數(shù)據(jù)在計算機中的具體表示方式和存儲方式。DBMS的中心工作之一,就是完成三級模式之間的兩層映射,把用戶對數(shù)據(jù)庫的操作具體實現(xiàn)到對物理設備的操作,實現(xiàn)數(shù)據(jù)與應用程序之間的獨立性。數(shù)據(jù)庫原理及應用(MySQL版)1.6結(jié)構(gòu)化查詢語言SQL存儲在數(shù)據(jù)庫中的數(shù)據(jù)最終是要使用的,對數(shù)據(jù)庫的主要操作就是數(shù)據(jù)查詢。由于數(shù)據(jù)庫規(guī)模通常都很大,特別是在信息爆炸的信息時代,要在龐大的數(shù)據(jù)庫中快速準確地找到需要的數(shù)據(jù),需要有效地數(shù)據(jù)查詢技術(shù)和工具。SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)語言是目前關(guān)系數(shù)據(jù)庫系統(tǒng)廣泛采用的數(shù)據(jù)查詢語言。SQL由Boyce和Chamberlin于1974年提出的,并在IBM研制的SystemR關(guān)系數(shù)據(jù)庫管理系統(tǒng)上實現(xiàn)。1987年成為國際標準,經(jīng)多次改進,SQL也從簡單的數(shù)據(jù)查詢語言逐漸成為功能強大、更加規(guī)范、應用廣泛的數(shù)據(jù)庫語言。數(shù)據(jù)庫原理及應用(MySQL版)1.6結(jié)構(gòu)化查詢語言SQL1.SQL的特點SQL語言之所以能夠在業(yè)界得到廣泛使用,是因為其功能完善、語法統(tǒng)一、易學。SQL主要有以下特點。(1)功能的一體化:SQL集數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL)、數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)、數(shù)據(jù)控制語言(DataControlLanguage,DCL)于一體,能夠完成關(guān)系模式定義、建立數(shù)據(jù)庫、插入數(shù)據(jù)、查詢、更新、維護、數(shù)據(jù)庫重構(gòu)、數(shù)據(jù)庫安全性控制等一系列操作。(2)統(tǒng)一的語法結(jié)構(gòu):SQL有兩種使用方式,一種是自含式(聯(lián)機使用方式),即SQL可以獨立地以聯(lián)機方式交互使用;另一種是嵌入式,即將SQL嵌入到某種高級程序設計語言中使用。這兩種方式分別適用于普通用戶和程序員,雖然使用方式不同,但SQL的語法結(jié)構(gòu)是統(tǒng)一的,便于普通用戶與程序員交流。(3)高度非過程化:SQL是一種非過程化數(shù)據(jù)操作語言,即用戶只需指出“干什么”,而無需說明“怎么干”。如用戶只需給出數(shù)據(jù)查詢條件,系統(tǒng)就可以自動查詢出符合條件的數(shù)據(jù),而用戶無需告訴系統(tǒng)存取路徑及如何進行查詢等。(4)語言簡潔:SQL語句簡潔,語法簡單,非常自然化,易學易用。數(shù)據(jù)庫原理及應用(MySQL版)2.SQL的功能(1)數(shù)據(jù)定義:定義數(shù)據(jù)庫的邏輯結(jié)構(gòu),包括定義基本表、視圖和索引,相關(guān)的操作還包括對基本表、視圖、索引的修改與刪除?;颈硎菙?shù)據(jù)庫中獨立存在的表,通常簡稱為表。在SQL中一個關(guān)系就對應一個基本表,一個或多個基本表對應一個存儲文件,一個基本表可以有多個索引,索引也保存在存儲文件中。一個數(shù)據(jù)庫中可以有多個基本表。視圖則是由一個或多個基本表導出的表。數(shù)據(jù)定義功能是通過數(shù)據(jù)定義語言(DDL)實現(xiàn)的。(2)數(shù)據(jù)操縱:主要包括數(shù)據(jù)查詢和數(shù)據(jù)更新操作。數(shù)據(jù)查詢是數(shù)據(jù)庫應用中最常用最重要的操作;數(shù)據(jù)更新則包括對數(shù)據(jù)庫中記錄的增加、修改和刪除操作。數(shù)據(jù)操作功能是通過數(shù)據(jù)操縱語言(DML)實現(xiàn)的。(3)數(shù)據(jù)控制:主要是對數(shù)據(jù)的訪問權(quán)限進行控制,包括對數(shù)據(jù)庫的訪問權(quán)限設置、事務管理、安全性和完整性控制等。數(shù)據(jù)控制功能是通過數(shù)據(jù)控制語言(DCL)實現(xiàn)的。(4)嵌入功能:即SQL可以嵌入到其他高級程序設計語言(宿主語言)中使用。前面講過SQL有自含式和嵌入式兩種使用方式,SQL的主要功能是數(shù)據(jù)操作,自含式使用使數(shù)據(jù)處理功能差,而高級程序設計語言的數(shù)據(jù)處理功能強,但其數(shù)據(jù)操作功能弱,為了結(jié)合二者的優(yōu)點,常將SQL嵌入到高級程序設計語言中使用,實現(xiàn)混合編程。為了實現(xiàn)嵌入使用,SQL提供了與宿主語言之間的接口。數(shù)據(jù)庫原理及應用(MySQL版)1.7數(shù)據(jù)庫系統(tǒng)設計步驟按照規(guī)范設計的方法,考慮數(shù)據(jù)庫及其應用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫系統(tǒng)設計分為以下6個階段:需求分析、概念結(jié)構(gòu)設計、邏輯結(jié)構(gòu)設計、物理結(jié)構(gòu)設計、數(shù)據(jù)庫實施和數(shù)據(jù)庫的運行和維護。如圖1-3。在數(shù)據(jù)庫設計過程中,需求分析和概念設計可以獨立于任何數(shù)據(jù)庫管理系統(tǒng)進行,邏輯設計和物理設計與選用的DBMS密切相關(guān)。數(shù)據(jù)庫原理及應用(MySQL版)1.7數(shù)據(jù)庫系統(tǒng)設計步驟收集分析需求數(shù)據(jù)模型優(yōu)化使用、維護數(shù)據(jù)庫應用要求DBMS特征轉(zhuǎn)換規(guī)則DBMS功能優(yōu)化方法設計概念模型應用需求設計邏輯結(jié)構(gòu)設計物理結(jié)構(gòu)評價設計、性能評測試運行物理實現(xiàn)需求分析階段概念結(jié)構(gòu)設計階段邏輯結(jié)構(gòu)設計階段物理設計階段數(shù)據(jù)庫實施階段數(shù)據(jù)庫運行維護階段數(shù)據(jù)庫原理及應用(MySQL版)1.7數(shù)據(jù)庫系統(tǒng)設計步驟1.需求分析階段設計數(shù)據(jù)庫首先必須要準確了解和分析用戶需求,需求分析的任務,是通過詳細調(diào)查現(xiàn)實世界要處理的對象和原有系統(tǒng)的應用情況,明確用戶的各種需求,弄清系統(tǒng)要達到的目標和實現(xiàn)的功能。需求分析是整個設計過程的基礎,也是最困難,最耗時的一步。需求分析是否做得充分與準確,決定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量與成敗。如果需求分析做得差,會嚴重影響系統(tǒng)性能甚至不得不返工重做。需求分析常用方法有結(jié)構(gòu)化分析方法(StructuredAnalysis,SA)、面向?qū)ο蟮姆治隽Ψǖ取?.概念結(jié)構(gòu)設計階段概念結(jié)構(gòu)是獨立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu),概念結(jié)構(gòu)設計是通過對用戶需求進行綜合,歸納與抽象,形成了一個獨立于具體DBMS的概念模型。概念結(jié)構(gòu)設計是整個數(shù)據(jù)庫設計的關(guān)鍵,通常采用E-R模型進行設計。數(shù)據(jù)庫原理及應用(MySQL版)1.7數(shù)據(jù)庫系統(tǒng)設計步驟3.邏輯結(jié)構(gòu)設計階段邏輯結(jié)構(gòu)設計是將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型,并對其進行優(yōu)化。例如要使用MySQL,就需要將概念結(jié)構(gòu)設計夾斷設計的E-R模型轉(zhuǎn)換成MySQL所支持的關(guān)系模型。4.物理設計階段物理設計的主要任務是為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結(jié)構(gòu),包括數(shù)據(jù)存儲結(jié)構(gòu)、存儲位置和存取方法。5.數(shù)據(jù)庫實施階段數(shù)據(jù)庫實施階段,系統(tǒng)設計人員通過DBMS提供的數(shù)據(jù)操作語言(如SQL)及其宿主語言,根據(jù)邏輯設計和物理設計的結(jié)果建立數(shù)據(jù)庫、編制和調(diào)試應用程序,組織數(shù)據(jù)入庫,并進行試運行。6.數(shù)據(jù)庫運行和維護階段數(shù)據(jù)庫應用系統(tǒng)經(jīng)過試運行后,即可投入正式運行,在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整、修改。數(shù)據(jù)庫原理及應用(MySQL版)1.8常用數(shù)據(jù)庫管理系統(tǒng)目前常用的數(shù)據(jù)庫管理系統(tǒng)包括MicrosoftAccess、MicrosoftSQLServer、Oracle、MySQL、DB2、SQLite等,這里對它們作簡要介紹。詳見教材。數(shù)據(jù)庫原理及應用(MySQL版)2023/2/5數(shù)據(jù)庫原理及應用(MySQL版)2023/2/5數(shù)據(jù)庫原理及應用

第2章概念模型設計

2.1概念模型的基礎知識2.2概念模型的設計方法與步驟

2.3圖書管理系統(tǒng)的概念模型設計

2023/2/5數(shù)據(jù)庫原理及應用2.1概念模型的基礎知識1.數(shù)據(jù)模型2.信息的三個世界3.概念模型的基本概念2023/2/5數(shù)據(jù)庫原理及應用2.2概念模型的設計方法與步驟1.概念模型的特點2.概念模型設計的策略3.概念模型的設計(1)設計局部E-R模型:確定局部清晰的實體及其聯(lián)系。(2)設計全局的E-R模型:將局部的E-R圖集成為全局的E-R圖。(3)優(yōu)化全局E-R模型:對相同的實體合并,消除冗余的屬性和聯(lián)系等。4.設計過程中遇到的問題2023/2/5數(shù)據(jù)庫原理及應用2.3圖書管理系統(tǒng)的概念模型設計1.問題描述某市為了更好地服務當?shù)厥忻?,新建了一所公共圖書館,圖書館藏書數(shù)萬冊,包括小說、生活、專業(yè)等多種類型。為了更好地開展服務,現(xiàn)欲開發(fā)圖書管理系統(tǒng),方便市民在圖書館看書和借閱。為了保證圖書良好流通,防止借書不還等不良行為的發(fā)生,圖書館要求借出的圖書總價值不能超過100元,借閱時間不超過1個月,逾期不還者,每本書每天罰款0.1元。市民如果需要辦理圖書證,只需帶個人身份證,同時提交100元押金,即可到圖書館前臺辦理。2023/2/5數(shù)據(jù)庫原理及應用2.3圖書管理系統(tǒng)的概念模型設計2.概念模型分析與設計1)局部ER圖12023/2/5數(shù)據(jù)庫原理及應用2.3圖書管理系統(tǒng)的概念模型設計2.概念模型分析與設計2)局部ER圖22023/2/5數(shù)據(jù)庫原理及應用2.3圖書管理系統(tǒng)的概念模型設計2.概念模型分析與設計2)全局ER圖2023/2/5數(shù)據(jù)庫原理及應用2.3圖書管理系統(tǒng)的概念模型設計2.概念模型分析與設計3)優(yōu)化ER圖2023/2/5數(shù)據(jù)庫原理及應用

(MySQL版)2023/2/5數(shù)據(jù)庫原理及應用

第3章邏輯模型設計

3.1邏輯模型的基礎知識3.2關(guān)系的完整性3.3關(guān)系數(shù)據(jù)庫理論3.4數(shù)據(jù)庫邏輯模型設計3.5圖書管理系統(tǒng)的邏輯模型設計2023/2/5數(shù)據(jù)庫原理及應用3.1邏輯模型的基礎知識3.1.1關(guān)系模型概述關(guān)系數(shù)據(jù)模型起源于數(shù)學,它用二維表來組織數(shù)據(jù),而這個二維表在關(guān)系數(shù)據(jù)庫中稱為關(guān)系,關(guān)系數(shù)據(jù)庫就是表(或者說關(guān)系)的集合。3.1.2關(guān)系數(shù)據(jù)模型的基本概念關(guān)系、元組、屬性、碼、主碼、超碼、候選碼、域、關(guān)系模式2023/2/5數(shù)據(jù)庫原理及應用3.2關(guān)系的完整性1.實體完整性關(guān)系模型采用主屬性,主屬性的值在一個關(guān)系中互相不同,因此主屬性就用來表示實體的完整性。2.參照完整性關(guān)系模型中,參照完整性約束用外碼來表示。3.用戶自定義完整性特殊的約束條件就是用戶自定義的完整性約束。2023/2/5數(shù)據(jù)庫原理及應用3.3關(guān)系數(shù)據(jù)庫理論3.3.1關(guān)系模式設計中的問題

非規(guī)范化的關(guān)系數(shù)據(jù)庫,會存在數(shù)據(jù)冗余量大,數(shù)據(jù)刪除、插入異常及數(shù)據(jù)更新不一致等問題。關(guān)系規(guī)范化指在關(guān)系理論基礎上,盡量降低數(shù)據(jù)冗余、異常操作等問題。2023/2/5數(shù)據(jù)庫原理及應用3.3關(guān)系數(shù)據(jù)庫理論-關(guān)系模式問題舉例

(1)數(shù)據(jù)冗余大。每個學生的每門課程都需要輸入系別和系領導,重復量太大。(2)插入異常。當一個新系在沒有招生的時候,因為沒有學生,該系信息不能輸入。(3)更新異常。如果更換某個系的系領導,則需要每條記錄中的系領導都需要修改,容易造成數(shù)據(jù)不一致。(4)刪除異常。假如一個系的學生全部畢業(yè),則刪除該系學生,但是在刪除學生的同時,該系也被刪除,而實際上該系仍然存在,只是沒有學生,因此出現(xiàn)不該刪除的數(shù)據(jù)丟失的問題。2023/2/5數(shù)據(jù)庫原理及應用3.3關(guān)系數(shù)據(jù)庫理論3.3.2函數(shù)依賴非平凡的函數(shù)依賴:在關(guān)系模式R(U)中,若X→Y,但Y?X,則稱X→Y是非平凡的函數(shù)依賴。平凡的函數(shù)依賴:在關(guān)系模式R(U)中,若X→Y,但Y∈X,則稱X→Y是平凡的函數(shù)依賴。完全函數(shù)依賴:在關(guān)系模式R(U)中,如果X→Y,并且對于X的任何一個真子集X’,都有X’→/Y,則稱Y對X完全函數(shù)依賴。部分函數(shù)依賴:在關(guān)系模式R(U)中,若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴。傳遞函數(shù)依賴:在關(guān)系模式R(U)中,如果X→Y,Y→/X,且Y?X,Y→Z,則稱Z傳遞函數(shù)依賴于X。2023/2/5數(shù)據(jù)庫原理及應用3.3關(guān)系數(shù)據(jù)庫理論3.3.3范式1.第一范式如果關(guān)系中所有屬性域的值都是原子的(即不可再分的、簡單的),則該關(guān)系屬于第一范式(1NF)。2.第二范式如果關(guān)系R屬于1NF,并且R中的每個非主屬性都完全函數(shù)依賴于R的候選碼,則該關(guān)系R屬于第二范式(2NF)。、3.第三范式如果關(guān)系R屬于2NF,并且R中的非主屬性滿足兩個條件:相互獨立、函數(shù)依賴于主鍵。則關(guān)系R屬于第三范式,4.Boyce-Codd范式(BC范式)如果關(guān)系R<U,F(xiàn)>∈1NF,若X→Y且Y不是X的子集,則X必含有候選碼,那么R<U,F(xiàn)>∈BCNF。2023/2/5數(shù)據(jù)庫原理及應用3.3關(guān)系數(shù)據(jù)庫理論3.3.4關(guān)系模式的規(guī)范化1.規(guī)范化規(guī)范化是把一組有異常的關(guān)系分解為更小的、結(jié)構(gòu)良好的關(guān)系的過程,這些關(guān)系應該有最小的冗余。2.規(guī)范化如何應用在數(shù)據(jù)庫中

主碼屬性列在前面,聯(lián)系集常常以相關(guān)實體集名稱的拼接來命名,能正確識別所有實體,規(guī)范化不是程度越高越好,對一些特定應用,使用冗余可以提高性能。2023/2/5數(shù)據(jù)庫原理及應用3.4數(shù)據(jù)庫邏輯模型設計3.4.1概念模型向關(guān)系模型的轉(zhuǎn)換規(guī)則1.實體之間1:1的聯(lián)系,例如2023/2/5數(shù)據(jù)庫原理及應用3.4數(shù)據(jù)庫邏輯模型設計3.4.1概念模型向關(guān)系模型的轉(zhuǎn)換規(guī)2.實體之間1:n的聯(lián)系,例如2023/2/5數(shù)據(jù)庫原理及應用3.4數(shù)據(jù)庫邏輯模型設計3.4.1概念模型向關(guān)系模型的轉(zhuǎn)換規(guī)3.實體之間n:m的聯(lián)系,例如2023/2/5數(shù)據(jù)庫原理及應用3.4數(shù)據(jù)庫邏輯模型設計3.4.2采用E-R模型圖方法的邏輯設計步驟2023/2/5數(shù)據(jù)庫原理及應用3.5圖書管理系統(tǒng)的邏輯模型設計(1)基本轉(zhuǎn)換。根據(jù)關(guān)系模式的轉(zhuǎn)換規(guī)則,首先將實體和聯(lián)系轉(zhuǎn)換為關(guān)系模式,轉(zhuǎn)換如下:1)圖書(書號,書名,簡介,作者,價格,數(shù)量,類型名稱)2)讀者(身份號,姓名,聯(lián)系電話)3)圖書類型(類型名稱)4)(名稱,聯(lián)系人,聯(lián)系電話)5)購買(名稱,書號,購買時間)6)借閱(身份號,書號,借書時間,還書時間,罰款額)。2023/2/5數(shù)據(jù)庫原理及應用3.5圖書管理系統(tǒng)的邏輯模型設計(1)基本轉(zhuǎn)換。根據(jù)關(guān)系模式的轉(zhuǎn)換規(guī)則,首先將實體和聯(lián)系轉(zhuǎn)換為關(guān)系模式,轉(zhuǎn)換如下:2023/2/5數(shù)據(jù)庫原理及應用3.5圖書管理系統(tǒng)的邏輯模型設計(2)優(yōu)化2/5/2023數(shù)據(jù)庫原理及應用(MySQL版)2/5/2023

第4章MySQL數(shù)據(jù)庫環(huán)境

4.1MySQL簡介MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由天才程序員MontyWidenius開發(fā)。在1996年發(fā)布了MySQL1.0版本,當時還只是面向一小波人使用。2000年6月MySQL的第一個發(fā)行版本3.23,由瑞典的MySQLAB公司發(fā)行,2008年2月被SUN公司收購,2009年SUN又被Oracle公司收購,MySQL并入Oracle公司。Oracle負責MySQL后,對MySQL提出了企業(yè)版和社區(qū)版。其中,企業(yè)版提供MySQL監(jiān)控程序和技術(shù)支持并收費。4.1MySQL簡介MySQL之父MontyWidenius離開了Sun之后,發(fā)現(xiàn)MySQL現(xiàn)存問題。MySQL核心開發(fā)團隊是封閉的,完全沒有Oracle之外的成員參加。并且MySQL新版本的發(fā)布速度,在Oracle收購Sun之后大為減緩。于是MontyWidenius決定另開分支,這個分支的名字叫做MariaDB。目標是提供一個由社區(qū)開發(fā)的、穩(wěn)定的、總是免費的MySQL分支,在用戶級別上兼容主流版本。MontyProgram公司承諾MariaDB將會一直保持獨立和開源。目前MySQL是最受歡迎的開源SQL數(shù)據(jù)庫管理系統(tǒng),MySQL數(shù)據(jù)庫結(jié)構(gòu)被組織成針對速度優(yōu)化的物理文件。邏輯模型具有數(shù)據(jù)庫,表,視圖,行和列等對象,可提供靈活的編程環(huán)境。MySQLServer最初開發(fā)用于處理大型數(shù)據(jù)庫的速度比現(xiàn)有解決方案快得多,并且已成功應用于高要求的生產(chǎn)環(huán)境中數(shù)年。MySQLServer提供了豐富而有用的功能集。它的連接性,速度和安全性使MySQLServer非常適合訪問Internet上的數(shù)據(jù)庫。2/5/20234.2MySQL的安裝與配置MySQL的安裝文件可以在MySQL官網(wǎng)“/downloads/”,進行版本選擇,并下載,如圖4.1所示。圖4.1MySQL社區(qū)版下載界面2/5/20234.2MySQL的安裝與配置MySQL服務提供多種不同的服務版本,有收費版本和免費版本,根據(jù)實際用途不同,按需選擇所需版本,各個版本之間的區(qū)別如下所示。(1)MySQLCommunityServer社區(qū)版本,開源免費,但不提供官方技術(shù)支持。(2)MySQLEnterpriseEdition企業(yè)版本,需付費,可以試用30天。(3)MySQLCluster集群版,開源免費。(4)MySQLClusterCGE高級集群版,需付費。在本章中選擇“MySQLCommunityServer”開源免費版本進行安裝。在選定MySQL的服務版本后,還需要確定要安裝的MySQLVersion,本章以MySQL5.6為例,介紹MySQL服務的安裝過程。在MySQL默認下載頁面中,顯示的是最新的MySQL服務版本MySQL8.0,若想選擇以前的MySQL版本,可以在圖4.2所示的“LookingforpreviousGAversions”中選擇所需要的版本。2/5/20234.2MySQL的安裝與配置圖4.2MySQL服務版本選擇

4.2MySQL的安裝與配置

4.2.1Windows平臺下MySQL的安裝

4.2.2Linux平臺下MySQL的安裝

2/5/20234.2.1Windows平臺下MySQL的安裝如圖4.3所示,根據(jù)不同的操作系統(tǒng)平臺,MySQL的安裝包又被細分為多個版本,本小節(jié)以windows平臺為例來說明。圖4.3MySQL平臺版本選擇2/5/20234.2.1Windows平臺下MySQL的安裝MySQL的安裝包分為解壓版本和msi的“WindowsInstaller”的數(shù)據(jù)包。MySQL的解壓縮版本需要進行很多的配置選擇,在初次安裝使用時,建議選擇“WindowsInstaller”的msi版本。本章所示安裝過程,即為“WindowsInstaller”的msi版本,如圖4.4所示。圖4.4windows版MySQL安裝包下載2/5/20234.2.1Windows平臺下MySQL的安裝單擊【Download】按鈕后,進入如圖4.5所示的下載頁面,在這個頁面中,MySQL會邀請下載者登錄,或者注冊登錄。但是,這個過程并非強制性,如果沒有帳號,或者不想注冊,那么可以選擇頁面底部的“Nothanks,juststartmydownload”,直接開始下載。圖4.5MySQL安裝文件下載2/5/20234.2.1Windows平臺下MySQL的安裝下載完畢后,雙擊MySQL的安裝文件mysql-installer-community-.msi,會打開如圖4.6所示的對話框。當準備工作完畢后,會出現(xiàn)如圖4.7所示的“Findingallinstalledpachages”對話框。圖4.6mysql-installer-community-.msi啟動頁面圖4.7安裝檢測頁面2/5/20234.2.1Windows平臺下MySQL的安裝稍等片刻后,就可以進入如圖4.8所示的安裝界面,該界面要求安裝者閱讀MySQL的使用許可協(xié)議,并在閱讀后,勾選“Iacceptthelicenseterms”,此時【Next】按鈕可用,單擊【Next】按鈕,進入如圖4.9所示界面。圖4.8MySQL安裝許可協(xié)議圖4.9選擇安裝類型在圖4.9所示的“ChoosingaSetupType”界面中,要求安裝者選擇要安裝的MySQL服務的類型,包括“DeveloperDefault”、“Serveronly”、“Clientonly”、“Full”、“Custom”五種。對于不同的安轉(zhuǎn)類型,安裝的組件內(nèi)容不同。其中,選擇“Full”,則會安裝MySQL的所有的服務組件,選擇“Serveronly”則僅僅會安裝MySQLServer組件等。在本章中,選擇“DeveloperDefault”的默認安裝,該類型下已經(jīng)包含了本書所需的所有組件,如無特殊要求,直接選擇默認安裝類型即可。單擊【Next】進入環(huán)境依賴檢測頁面,如圖4.10所示。根據(jù)安裝者所使用的操作系統(tǒng)不同,以及目前系統(tǒng)中安裝過的環(huán)境不同,該界面的檢測結(jié)果不同。檢測出的一些所需環(huán)境,MySQL安裝包部分會給出直接修復方案。此時,在圖4.10界面中,會有【Execute】按鈕,單擊該按鈕即可進行自動安裝這些可自動修復環(huán)境。4.2.1Windows平臺下MySQL的安裝圖4.10安裝環(huán)境依賴檢測2/5/20234.2.1Windows平臺下MySQL的安裝還有一部分的以來環(huán)境需要手動下載及安裝,如圖4.10所示的界面中,status顯示“Manual”結(jié)果的,即需要安裝者手動解決,安裝文件的下載路徑,只需要單擊具體的“ForProduct”行,在界面中就會出現(xiàn),解決方案。根據(jù)實際安裝需求,并不是所有的以來環(huán)境都必須安裝。有些以來是不影響MySQL服務內(nèi)容的,可以選擇忽略。例如,本書中并不涉及到Excel、Python的相關(guān)開發(fā)內(nèi)容,對這些環(huán)境就進行忽略。單擊【Next】后,會彈出如圖4.11所示的提示框。單擊【Yes】,進入圖4.12所示界面。圖4.11環(huán)境依賴缺失提示框圖4.12MySQL安裝界面2/5/20234.2.1Windows平臺下MySQL的安裝在圖4.12所示界面中為MySQL各個組件的正式安裝界面。MySQL所需組件的安裝包需要聯(lián)網(wǎng)進行下載。單擊界面中【Execute】按鈕后,MySQL組件安裝過程正式開始。當全部組件下載完畢后,進入圖4.13所示界面。單擊圖4.13中的【Next】按鈕,進入如圖4.14所示產(chǎn)品配置界面。在這個安裝過程中,主要為三個組件進行配置,分別是“MySQLServer”、“MySQLRouter”、“SamplesandExamples”。其中,“MySQLServer”是本書所要介紹的核心內(nèi)容,即MySQL數(shù)據(jù)庫服務功能的相關(guān)內(nèi)容。而MySQLRouter是為應用程序和MySQL服務之間提供透明路由的輕量級中間件,是InnoDB集群的一部分。通過MySQLRouter來構(gòu)建高可用架構(gòu),可以簡化應用程序開發(fā),提高性能和可靠性。ExamplesandSamples是一些數(shù)據(jù)庫案例,在安裝好MySQL服務后,可以在數(shù)據(jù)庫服務端,查看到這些數(shù)據(jù)庫實例。圖4.13MySQL組件下載成功圖4.14組件配置提示框2/5/20234.2.1Windows平臺下MySQL的安裝單擊【Next】按鈕,進入圖4.15所示的MySQLServer類型與網(wǎng)絡配置頁面,在該頁面中,需要配置當前MySQL服務。首先是“ServerConfigurationType”中的“ConfigType”選項,如下所示。(1)DevelopmentComputer,開發(fā)機器。該選項代表典型個人用桌面工作站。假定機器上運行著多個桌面應用程序。將MySQL服務器配置成使用最少的系統(tǒng)資源。(2)ServerMachine,服務器。該選項代表服務器,MySQL服務器可以同其它應用程序一起運行,例如FTP、email和web服務器。MySQL服務器配置成使用適當比例的系統(tǒng)資源。(3)DedicatedMySQLServerMachine,專用MySQL服務器。該選項代表只運行MySQL服務的服務器。假定運行沒有運行其它應用程序。MySQL服務器配置成使用所有可用系統(tǒng)資源。作為初學者,建議選擇“DevelopmentComputer”選項,這樣占用系統(tǒng)的資源比較少。本節(jié)選擇“DevelopmentComputer”。圖4.15MySQLserver類型與網(wǎng)絡配置2/5/20234.2.1Windows平臺下MySQL的安裝其次,是否啟用TCP/IP連接,設定端口,如果不啟用,就只能在自己的機器上訪問mysql數(shù)據(jù)庫了,本節(jié)這里選擇啟用,把前面的勾打上,服務端口設置為3306。還有一個關(guān)于防火墻的設置“Openfirewallportfornetworkaccess”需要選中,將MySQL服務的監(jiān)聽端口加為windows防火墻例外,避免防火墻阻斷。單擊【Next】繼續(xù)。單擊【Next】按鈕,進入MySQLServer的賬戶配置頁面,如圖4.16所示。在該頁面中,安裝者需要設置MySQL服務器的“root”賬戶的登錄密碼。該處密碼,請讀者設置完畢后記好,因為后期對MySQLServer的配置更改、賬戶管理、權(quán)限管理等操作,都需要使用root來處理。在界面下方的“MySQLUserAccounts”中,可以增加MySQLServer的其他訪問賬戶,安裝者可以在這里創(chuàng)建一個新的賬戶,縮小權(quán)限范圍,提高安全性,并使用該賬戶訪問MySQLServer。2/5/20234.2.1Windows平臺下MySQL的安裝單擊【AddUser】按鈕,即可打開如圖4.17所示的添加賬戶的對話框。在該對話框中,除了指定“Username”和“Password”,另外兩個比較重要的選項是“Host”和“Role”?!癏ost”是當前增加的這個賬戶可以從哪里訪問這個MySQLServer,是只能在當前MySQLServer安裝的機器上,即“l(fā)ocalhost”進行訪問,還是允許遠程訪問,在某個ip下進行遠程訪問,還是所有情況下,都可以連接這個MySQLServer進行訪問。其中默認的“<AllHost(%)>”就代表當前增加的賬戶,可以在任何地址對MySQLServer進行遠程訪問。“Role”代表了當前賬戶的角色,決定了當前賬戶的權(quán)限。圖4.16MySQLServer賬戶配置界面2/5/20234.2.1Windows平臺下MySQL的安裝設置好用戶賬戶信息后,單擊【OK】,在“AccountsandRoles”配置頁面中,就可以看到增加了一個賬戶的信息,如圖4.18所示。圖4.17新建賬戶圖4.18MySQLServer賬戶信息設置成功2/5/20234.2.1Windows平臺下MySQL的安裝單擊【Next】按鈕,進入Windows服務設置界面。MySQLServer作為Windows操作系統(tǒng)中一個系統(tǒng)服務而存在,可以通過Windows的服務管理界面進行管理。所以需要將MySQLServer注冊到Windows操作系統(tǒng)中,如圖4.19所示。在這里需要勾選“ConfigureMySQLServerasaWindowsService”,該選項表明將MySQLServer配置為Windows操作系統(tǒng)下的服務,給該服務起名,默認名稱為“MySQL56”,該服務名稱可以根據(jù)實際需要,自行更改。另外,該MySQLServer是否需要隨著操作系統(tǒng)的啟動而啟動??梢怨催x“StarttheMySQLServeratSystemStartup”,讓MySQLServer在操作系統(tǒng)啟動時,自動啟動。2/5/20234.2.1Windows平臺下MySQL的安裝圖4.19Windows系統(tǒng)服務配置到此,MySQLServer所需的相關(guān)配置內(nèi)容,就已經(jīng)全部配置完畢。接下來,需要單擊【Next】,以將上述的配置內(nèi)容,設置到MySQLServer中,即,正式執(zhí)行配置,如圖4.20所示。單擊【Execute】開始配置,配置完成后,會顯示如圖4.21所示配置成功界面。2/5/20234.2.1Windows平臺下MySQL的安裝圖4.20MySQLServer執(zhí)行配置圖4.21MySQLServer配置成功2/5/20234.2.1Windows平臺下MySQL的安裝MySQLServer配置完成后,單擊【Finish】按鈕,回到“ProductConfiguration”界面,準備進行后續(xù)的其他產(chǎn)品組件配置,包括MySQLRouter和MySQL數(shù)據(jù)庫案例包,如圖4.22所示。圖4.22MySQLRouter配置準備2/5/20234.2.1Windows平臺下MySQL的安裝首先,進行MySQLRouter的配置準備,MySQLRouter并不是本書的重點,該組件也可以在前期安裝的時候,選自定義安裝,而不選擇“Full”,或者我們現(xiàn)在選擇的開發(fā)版。所以,本節(jié)對于MySQLRouter的安轉(zhuǎn)該過程不做解釋,安裝者只需要按照默認選項,直接選擇【Next】進入下一步,如圖4.23所示,MySQLrouer配置完畢。圖4.23MySQLRouter配置2/5/20234.2.1Windows平臺下MySQL的安裝單擊【Finish】按鈕,進行MySQL數(shù)據(jù)庫案例的安裝,如圖4.24所示。MySQL數(shù)據(jù)庫案例安裝時,需要確定當前MySQLServer已經(jīng)正常安裝,并已經(jīng)啟動。還需要設置能夠正常訪問這個MySQLServer的用戶名和密碼,并進行測試連接,當連接成功后,才能夠進行后續(xù)的安裝過程,如圖4.25所示。圖4.24MySQL案例安裝準備2/5/20234.2.1Windows平臺下MySQL的安裝選擇當前系統(tǒng)中能夠進行連接的MySQLServer的服務,本節(jié)選擇“MySQLServer5.6..41”,即前面我們安裝的數(shù)據(jù)庫服務,然后使用前面設置的root賬戶進行登錄,輸入用戶名和密碼,如圖4.26所示。此時,【Check】按鈕可用,單擊【Check】按鈕,會顯示連接結(jié)果,連接成功,單擊【Next】按鈕,即可進入如圖4.27所示的安裝界面,單擊【Execute】按鈕,進行安裝。圖4.25MySQLServer連接測試2/5/20234.2.1Windows平臺下MySQL的安裝安裝完成后,進入如圖4.28所示界面,單擊【Finish】,至此,MySQL安裝過程中所需要的產(chǎn)品配置信息都已經(jīng)配置成功,單擊圖4.29中【Next】按鈕,完成所有安裝,如圖4.30所示,MySQL安裝成功。圖4.26MySQLServer連接測試成功圖4.27安裝案例庫2/5/20234.2.1Windows平臺下MySQL的安裝圖4.28案例庫安裝成功圖4.29MySQL產(chǎn)品配置完畢圖4.30MySQL安裝完成2/5/20234.2.1Windows平臺下MySQL的安裝單擊【Finish】按鈕,稍等片刻,打開MySQL連接客戶端MySQLWorkbench工具的主界面,如圖4.31所示,Windows平臺下的MySQL安裝成功。圖4.31MySQL

Workbench主界面2/5/20234.2.2Linux平臺下MySQL的安裝Mysql的Linux安裝方式一共有三種:(1)yum安裝,此種方式需要連接網(wǎng)絡進行安裝,類似于安裝向?qū)?,只要安裝成功,服務器運行、客戶端連接都不會出現(xiàn)問題。(2)Glib安裝,此種方式通過命令行進行安裝,并且需要進行一些配置,如果配置出錯可能會出現(xiàn)服務啟動不了,或者客戶端連接不上等問題。(3)源碼安裝,這種安裝方式,比較適合MySQL的高階使用,安裝者可以自己選擇要安裝的組件,配置項比較多,出錯的可能性很大。我們選擇glib的安裝方法進行介紹,yum安裝方式請讀者自行查詢網(wǎng)絡知識進行學習。以cenos7.3操作系統(tǒng)為例,演示MySQL在Linux平臺下的安裝流程。首先,下載Linux下的MySQL的glib安裝包。在安裝MySQL之前,需要先確認在當前的Linux操作系統(tǒng)中是否已經(jīng)安裝了MySQL服務。根據(jù)個人下載的操作系統(tǒng)的版本不同,可能會出現(xiàn)不同的情況。在cenos7操作系統(tǒng)中,默認集成了MySQL的開源版本mariadb。mariadb的安裝將會影響本書中的MySQL5.6的安裝。所以,在進行安裝之前,請讀者檢查自己的系統(tǒng)總是否存在MySQL服務,或者mariadb服務。如果存在,請先完成卸載,再進行安裝。2/5/20234.2.2Linux平臺下MySQL的安裝首先使用“yum”命令來檢測,當前Linux系統(tǒng)中是否已經(jīng)安裝了MySQL和mariadb,如圖4.32所示,輸入“yumlistinstalled|grepmysql”和“yumlistinstalled|grepmariadb”,查看檢測結(jié)果,在本系統(tǒng)中已經(jīng)包含有mariadb服務。使用當前操作系統(tǒng)的root賬戶權(quán)限,將已經(jīng)存在的mariadb刪除,如圖4.33所示,使用命令“sudoyum-yremove已安裝的數(shù)據(jù)庫名稱”,刪除圖4.32所示的已存在的數(shù)據(jù)庫。圖4.32檢測centos系統(tǒng)中的數(shù)據(jù)庫安裝圖4.33刪除已存在的數(shù)據(jù)庫2/5/20234.2.2Linux平臺下MySQL的安裝刪除成功后,在使用“yumlistinstalled|grepmysql”和“yumlistinstalled|grepmariadb”確認是否已經(jīng)刪除,如圖4.34所示,如果不再有結(jié)果顯示,證明已經(jīng)刪除成功。因為MySQL服務需要依賴libaio包,所以先要安裝libaio包,使用命令“yumsearchlibaio”檢索一下系統(tǒng)是否已經(jīng)安裝了libaio包,如圖4.35所示,本機安裝的centos7系統(tǒng)已經(jīng)帶有l(wèi)ibaio包,所以不需要安裝。如果,本機檢測沒有該包,則執(zhí)行命令“sudoyum-yinstalllibaio”進行安裝即可。圖4.34檢驗數(shù)據(jù)庫是否刪除成功過圖4.35檢索libaio包是否安裝2/5/20234.2.2Linux平臺下MySQL的安裝使用命令“tar-zvxfmysql-5.6.41-linux-glibc2.12-x86_64.tar.gz”,將已經(jīng)下載的MySQL安裝包,解壓縮到當前文件夾中,如圖4.36所示。解壓完成的文件夾,可以拷貝到自己想要安裝的路徑下。本書將MySQL服務安裝到“/usr/local/mysql”路徑下,因為在當前系統(tǒng)中并不存在該路徑。所以,首先使用root權(quán)限創(chuàng)建該路徑“sudomkdir/usr/local/mysql”,然后將解壓完成的文件夾拷貝到該路徑下,命令為“sudomvmysql-5.6.41-linux-glibc2.12-x86_64/usr/local/mysql”,如圖4.37所示。圖4.36MySQL的glibc安裝包解壓2/5/20234.2.2Linux平臺下MySQL的安裝圖4.37安裝包拷貝到安裝目錄當前MySQL安裝文件夾名字過長,在后面進行配置帶來不便。所以,在這里將這個文件夾的名字更名為“mysql56”,如圖4.38所示。圖4.38重命名安裝路徑為MySQL562/5/20234.2.2Linux平臺下MySQL的安裝MySQL服務器安裝成功后,其所有相關(guān)操作,包括啟動、關(guān)閉、數(shù)據(jù)庫操作、日志操作等,都會使用Linux下的“mysql”賬戶,所以,需要在正式安裝配置MySQL之前,先創(chuàng)建“mysql”用戶以及用戶組,具體操作如圖4.39所示,命令如下:groupaddmysqluseradd-r-gmysqlmysql創(chuàng)建好用戶和用戶組,還需要通過“chown-Rmysql:mysql/usr/local/mysql/mysql56”命令,將“/usr/local.mysql/mysql56”的操作權(quán)限開放給“mysql”用戶,如圖4.40所示。圖4.39添加mysql用戶與用戶組2/5/20234.2.2Linux平臺下MySQL的安裝接下來進入MySQL的安裝目錄“/usr/local/mysql/mysql56/support-files/”,將其中的文件“f”,拷貝至“/etc”文件夾下,命令如下:sudocp/usr/local/mysql/mysql56/support-files/f/etc/f然后,執(zhí)行“vi/etc/f”命令,打開“/etc/f”文件,在其中修改內(nèi)容如圖4.41所示,保存文件。圖4.40修改MySQL安裝路徑權(quán)限2/5/20234.2.2Linux平臺下MySQL的安裝圖4.41修改MySQL配置文件信息2/5/20234.2.2Linux平臺下MySQL的安裝MySQL的相關(guān)文件已經(jīng)配置完畢,接下來開始初始化MySQL服務,在MySQL的安裝包的scripts文件夾中,有MySQL提供的初始化腳本“mysql_install_db”,執(zhí)行該腳本,并設置執(zhí)行參數(shù)如下:--user=mysql--basedir=/usr/local/mysql/mysql56--datadir=/usr/local/mysql/mysql56/data執(zhí)行方式如圖4.42所示。圖4.42初始化MySQL5.62/5/20234.2.2Linux平臺下MySQL的安裝至此,centos7操作系統(tǒng)下的MySQL已經(jīng)安裝、初始化完畢。接下來進行一些系統(tǒng)設置,方便啟動、管理MySQL服務。首先將MysQL的服務腳本“/usr/local/mysql/mysql56/support-files/mysql.server”拷貝至“/etc/rc.d/init.d”文件夾中,并更名為“mysqld”,然后給該文件設置為可執(zhí)行權(quán)限。并使用“chkconfig--addmysqld”命令,將mysqld設置為開啟啟動項,并使用命令“chkcinfig--listmysqld”檢查設置結(jié)果。具體操作命令如圖4.43所示。圖4.43設置MySQL的操作系統(tǒng)服務2/5/20234.2.2Linux平臺下MySQL的安裝系統(tǒng)配置成功后,即可啟動MySQL服務,使用命令“sudoservicemysqldstart”,啟動MysQL服務,啟動成功后,將會出現(xiàn)“StatitingMySQL.SUCCESS!”提示,如圖4.44所示。MySQL服務已經(jīng)成功啟動,接下來可以對MySQL進行訪問了。訪問MySQL服務器,需要使用“/usr/local/mysql/mysql56/bin/mysql”命令,為了能夠在任意路徑下,都能夠登錄mysql,即使用mysql命令,將“/usr/local/mysql/mysql56/bin/”配置到環(huán)境變量中。在“/etc/profile”文件末尾中增加如下內(nèi)容:PATH=$PATH:/usr/local/mysql/mysql56/binExportPATH如圖4.45所示,保存文件。圖4.44啟動MySQL服務器圖4.45修改系統(tǒng)環(huán)境變量2/5/20234.2.2Linux平臺下MySQL的安裝執(zhí)行命令“source/etc/profile”,重新加載資源文件,讓剛才的配置文件生效。執(zhí)行“echo$PATH”,輸出環(huán)境變量,查看是否設置成功,如圖4.46所示。環(huán)境變量配置成功,在任意路徑下,執(zhí)行“mysql-uroot”,使用“root”賬戶登錄MySQL,初次登錄,不需要使用密碼,登錄后,請進行密碼修改,如圖4.47所示。圖4.46重新加載環(huán)境變量圖4.47登錄MySQL

4.3MySQL的啟動與關(guān)閉

4.3.1Windows平臺下MySQL的啟動與關(guān)閉

4.3.2Linux平臺下MySQL的啟動與關(guān)閉

2/5/20234.3.1Windows平臺下MySQL的啟動與關(guān)閉在Windows平臺下,當安裝好MySQL后,打開【服務】,就可以看到在4.2.1節(jié)中安裝好的MySQL5.6服務的運行狀態(tài),如圖4.48所示。點擊鼠標右鍵,可以看到如圖4.49所示的管理菜單,包括啟動、停止、暫停、重新啟動等操作。圖4.48查看MySQL服務狀態(tài)圖4.49MySQL服務管理2/5/20234.3.1Windows平臺下MySQL的啟動與關(guān)閉當MySQL成功啟動后,可以通過如圖4.50所示MySQL客戶端,登錄訪問MySQL服務器。打開【程序】-->【MySQL】-->【MySQL5.6Command...】,如圖4.51所示,此時使用“root”賬戶進行登錄,輸入“root”賬戶密碼后,即可訪問MySQL服務器。圖4.50MySQL客戶端程序圖4.51客戶端登錄MySQL2/5/20234.3.1Windows平臺下MySQL的啟動與關(guān)閉如果需要通過其他賬戶登錄MySQL服務器,此時可以打開Windows操作系統(tǒng)的控制臺,利用MySQL安裝包中的“mysql.exe”來登錄,該文件在“MySQL安裝根目錄\bin”下,控制臺進入該目錄后,輸入命令“mysql-u用戶名-p”,即可進行登錄,如圖4.52所示。圖4.52控制臺登錄MySQL2/5/20234.3.2Linux平臺下MySQL的啟動與關(guān)閉如4.2.2節(jié)所示安裝過程,已經(jīng)將MySQL注冊為系統(tǒng)服務,此時可以使用Linux的“service”命令來控制MySQL服務的啟動與關(guān)閉。MySQL啟動命令如下:servicemysqldstart;MySQL關(guān)閉命令如下:servicemysqldstop;因為已經(jīng)將MySQL安裝包下的bin目錄,配置到環(huán)境變量“path”中(如果windows操作系統(tǒng)也希望在任意路徑下,通過控制臺登錄MySQL,也可將bin目錄配置到環(huán)境變量path中),所以,在任意路徑下,輸入“mysql-u用戶名-p”進行登錄,如圖4.47所示。

4.4MySQL客戶端對數(shù)據(jù)庫管理系統(tǒng)的訪問和操作,可以選擇通過命令行的形式進行訪問和管理。但是,復雜的命令行操作,增大了數(shù)據(jù)庫維護和使用的成本,所以開發(fā)者設計并發(fā)布了很多款數(shù)據(jù)庫管理系統(tǒng)的圖形化訪問客戶端。例如,MySQLFront、Navigate,以及Oracle發(fā)布的MySQLWorkbench。本書主要使用MySQLWorkbench作為MySQL的客戶端訪問工具。

4.4MySQL客戶端

4.4.1MySQLWorkbench簡介

4.4.2MySQLFront簡介

4.4.3Navicat簡介

2/5/20234.4.1MySQL

Workbench簡介MySQLWorkbench是圖形化的數(shù)據(jù)庫設計工具,它在一個開發(fā)環(huán)境中集成了SQL的開發(fā),管理,數(shù)據(jù)庫設計,創(chuàng)建以及維護。它還專為MySQL提供了ER/數(shù)據(jù)庫建模工具。MySQLWorkbench同時有開源和商業(yè)化的兩個版本,該軟件支持Windows、Linux、Mac操作系統(tǒng)。如圖4.53所示為MySQLWorkbench啟動時的主界面。界面顯示了歡迎消息,并給出了“BrowseDocumentation”、“ReadtheBlog”和“DiscussontheForums”的鏈接。此外,主界面還提供了對MySQL連接,模型和MySQLWorkbench遷移向?qū)У目焖僭L問,如圖4.53所示。圖4.53MySQLWorkbench左側(cè)面板2/5/20234.4.1MySQL

Workbench簡介如圖4.53所示,在MySQLworkbench的首頁側(cè)面板處,共有三個圖標。其中顯示的是,通過MySQLworkbench建立的所有MySQL實例連接集合的視圖,初識安裝后,會在這個視圖中存在一個默認的數(shù)據(jù)庫服務連接“LocalinstanceMySQLRouter”。大家可以將鼠標移動至該標簽上,并單擊右上角的“翻頁”標記,即可查看該數(shù)據(jù)庫連接實例的詳細信息,如圖4.54所示。圖4.54查看數(shù)據(jù)庫連接配置信息2/5/20234.4.1MySQL

Workbench簡介這個連接的是本機上的MySQLServer,在該連接上點擊鼠標右鍵,可以查看這個連接的配置信息,也可以對這些配置信息進行更改,例如用戶名、密碼以及連接的名稱,如圖4.55所示。如果需要創(chuàng)建新的數(shù)據(jù)庫服務連接,選擇圖4.56中的【+】號,此時會打開如圖4.57所示的,新建數(shù)據(jù)庫服務連接的向?qū)ы撁妫擁撁婧蛿?shù)據(jù)庫服務連接編輯頁面相似,填寫完所有配置信息后,單擊【OK】按鈕,即可創(chuàng)建一個新的數(shù)據(jù)庫服務連接。圖4.55數(shù)據(jù)庫連接操作2/5/20234.4.1MySQL

Workbench簡介圖4.56新建數(shù)據(jù)庫連接圖4.57配置數(shù)據(jù)庫連接2/5/20234.4.1MySQL

Workbench簡介如圖4.57所示,對話框中顯示了當前連接的配置信息。其中,【ConnectionName】代表當前這個實例連接的名稱,該名稱為用戶自行設置?!綡ostname】以及【Port】為當前實例的IP地址或者域名,以及當前連接的實例服務所占用的端口號?!綰sername】以及【Password】則是這個連接的實例登錄所使用的用戶名和密碼,密碼處有兩個按鈕,其中【Storeinvault...】單擊后會顯示如圖XX所示的密碼填寫的對話框,在這里可以設置及存儲這個用戶密碼?!綝efaultSchema】是用來設置當前連接實例的默認數(shù)據(jù)庫?!綯estConnection】可以幫助測試當前數(shù)據(jù)庫服務的基本配置的正確性,單擊該按鈕,將會打開如圖4.58所示的密碼輸入框,輸入當前連接用戶對應的密碼后,就可以獲得測試結(jié)果,如圖4.59所示。圖4.58賬戶信息配置圖4.59連接測試結(jié)果2/5/20234.4.1MySQL

Workbench簡介需要連接數(shù)據(jù)庫服務時,請按照上述步驟,增加數(shù)據(jù)庫服務連接信息。然后鼠標左鍵單擊這個連接實例標簽,就可以看到如圖4.60所示的登錄對話框。如果在配置連接實例時,沒有保存登錄密碼,那么,就需要按圖示填寫密碼,單擊【OK】登錄。圖4.60連接數(shù)據(jù)庫2/5/20234.4.1MySQL

Workbench簡介登錄成功后,看到如圖4.61所示的數(shù)據(jù)庫服務管理界面。本節(jié)登錄的是,前面安裝好在本機上的MySQLServer服務器。在該界面左側(cè)面板上列出了兩部分內(nèi)容。分別是Navigator管理和Schema管理。圖4.61MySQLWorkbench側(cè)面板2/5/20234.4.1MySQL

Workbench簡介單擊【ServerStatus】,可以看到如圖4.62所示的MySQL服務器連接狀態(tài),以及MySQL服務器的運行狀態(tài)。圖4.62MySQL服務運行狀態(tài)管理2/5/20234.4.1MySQL

Workbench簡介單擊【Startup/Shutdown】按鈕,可以對當前MySQL服務器進行關(guān)閉或者啟動,如圖4.63所示。并且在界面下方會顯示,當前MySQL服務器的啟動日志信息。圖4.63MySQL服務器運行管理2/5/20234.4.1MySQL

Workbench簡介單擊【Dashboard】,打開數(shù)據(jù)庫運行狀態(tài)的儀表盤,該部分類似于MySQL服務器的簡單監(jiān)控器,通過這里可以看到MySQL服務器目前的一些運行狀態(tài)。圖4.64MySQL監(jiān)控儀表盤2/5/20234.4.2MySQL

Front簡介MySQL-Front是一款非常強大的MySQL管理工具,MySQL-Front擁有多文檔界面,語法突出和拖拽方式的數(shù)據(jù)庫及表格等。使用MySQL-Front可進行編輯、增加、刪除域,還可以編輯、插入、刪除記錄,亦可顯示成員、執(zhí)行SQL腳本,提供與外程序接口,保存數(shù)據(jù)到csv文件等。如圖4.65所示,安裝MySQL-Front后,打開軟件。此時,軟件會要求配置要連接的MySQL服務器的信息。在“server”輸入框中,輸入要連接的MySQL服務器的IP或者域名即可。圖4.65MySQL-Front主界面2/5/20234.4.2MySQL

Front簡介打開“Login”標簽,在該標簽中需要輸入要連接的服務器的登錄用戶名和密碼,如圖4.66所示,輸入成功后,單擊【OK】。此時會顯示如題4.68所示的“OpenSession”對話框,選擇要連接的MySQL服務器“”,單擊【Open】,就可以登錄到MySQL服務器中,以圖形化界面方式操作MySQL服務器,如圖4.69所示。圖4.66配置登錄賬戶信息圖4.67配置數(shù)據(jù)庫服務信息2/5/20234.4.2MySQL

Front簡介圖4.68打開服務器連接會話對話框圖4.69MySQL-Front訪問數(shù)據(jù)庫2/5/20234.4.3Navicat簡介NavicatforMySQL是一款強大的MySQL數(shù)據(jù)庫管理和開發(fā)工具,它為專業(yè)開發(fā)者提供了一套強大的足夠尖端的工具,但對于新用戶仍然易于學習。NavicatforMySQL提供類似于MySQL的管理界面工具。此解決方案的出現(xiàn),將解放PHP、J2EE等程序員以及數(shù)據(jù)庫設計者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。NavicatforMySQL安裝成功后,打開軟件,如圖4.70所示。圖4.70NavicatforMySQL主界面2/5/20234.4.3Navicat簡介如圖4.71所示,選擇【文件】-->【新建連接】-->【MySQL】,打開圖4.72所示,MySQL服務器連接配置頁面。配置成功后,單擊【確定】按鈕,就可以通過NavicatforMySQL登錄到MySQL服務器,進行相應操作,如圖4.73所示。圖4.71創(chuàng)建數(shù)據(jù)庫連接圖4.72配置服務器連接圖4.73Navicat訪問MySQL服務器2023/2/5數(shù)據(jù)庫原理及應用(MySQL版)2023/2/5數(shù)據(jù)庫原理及應用(MySQL版)第5章數(shù)據(jù)庫創(chuàng)建與管理5.1創(chuàng)建數(shù)據(jù)庫

5.2修改數(shù)據(jù)庫

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論