啟動:mysql -uroot –p 回車; 輸入密碼; 顯示數據庫:show databases; 1. 數據庫 數據庫(DB(databases的縮寫))是存放數據的倉庫,只不過這些數據存在一定的關聯,並按一定的格式存放在計算機上。從廣義上講,數據不僅包含數字,還包括了文本、圖像、音頻、視頻等。 數據庫由一些持久的相互關聯數據的集合組成,並以一定的組織形式存放在計算機的存儲介質中。 www.2cto.com 2. 數據庫管理系統 數據庫管理系統(DBMS)是管理數據庫的系統,它按一定的數據模型組織數據。DBMS應提供如下功能: (1)數據定義功能可定義數據庫中的數據對象。 (2)數據操縱功能可對數據庫表進行基本操作,如插入、刪除、修改、查詢。 (3)數據的完整性檢查功能保證用戶輸入的數據應滿足相應的約束條件。 (4)數據庫的安全保護功能保證只有賦予權限的用戶才能訪問數據庫中的數據。 (5)數據庫的並發控制功能使多個應用程序可在同一時刻並發地訪問數據庫的數據。 (6)數據庫系統的故障恢復功能使數據庫運行出現故障時進行數據庫恢復,以保證數據庫可靠運行。 (7)在網絡環境下訪問數據庫的功能。 (8)方便、有效地存取數據庫信息的接口和工具。編程人員通過程序開發工具與數據庫的接口編寫數據庫應用程序。數據庫管理員(DBA,DataBase Adminitrator)通過提供的工具對數據庫進行管理。 3. 數據、數據庫、數據庫管理系統與操作數據庫的應用程序,加上支撐它們的硬件平台、軟件平台和與數據庫有關的人員一起構成了一個完整的數據庫系統。下圖描述了數據庫系統的構成。 4. 數據庫管理系統根據數據模型對數據進行存儲和管理,數據庫管理系統采用的數據模型主要有層次模型、網狀模型和關系模型。 www.2cto.com ● 層次模型 以樹形層次結構組織數據. ● 網狀模型 每一個數據用一個節點表示,每個節點與其他節點都有聯系,這樣數據庫中的所有數據節點就構成了一個復雜的網絡。 ● 關系模型 以二維表格(關系表)的形式組織數據庫中的數據。例如學生表涉及的主要信息有學號、姓名、專業名、性別。 表格中的一行稱為一個記錄,一列稱為一個字段,每列的標題稱為字段名。如果給每個關系表取一個名字,則有n個字段的關系表的結構可表示為:關系表名(字段名1,…,字段名n),通常把關系表的結構稱為關系模式。 ? 在關系表中,如果一個字段或幾個字段組合的值可唯一標志其對應記錄,則稱該字段或字段組合為碼。 ? 有時一個表可能有多個碼,對於每一個關系表通常可指定一個碼為“主碼”,在關系模式中,一般用下橫線標出主碼。 按關系模型組織的數據表達方式簡潔、直觀,插入、刪除、修改操作方便,而按層次、網狀模型組織的數據表達方式復雜,插入、刪除、修改操作復雜。因此,關系模型得到了廣泛應用,MySQL是支持關系數據模型的數據庫管理系統。 5. 關系數據庫設計的主要任務:通過對現實世界中的數據進行抽象,得到符合現實世界要求的、能被RDBMS支持的數據模型。 即確定應用系統所使用的數據庫應包含哪些表,每個表的結構是怎樣的。 關系數據庫設計有三種:概念結構設計、邏輯結構設計、數據庫物理設計。 6. 設計步驟 需求分析:通過調查、收集和分析,明確用戶對數據庫的要求。 概念結構設計:對需求分析得到的用戶需求進行綜合、歸納與抽象,形成一個獨立於具體DBMS的概念模型。概念結構設計---建立實體-關系模型(Entity-Relationship,E-R) – E-R模型直接從現實世界中抽象出實體類型和實體間聯系,然後用實體聯系圖(E-R圖)表示數據模型,是描述概念世界,建立概念模型的實用工具。 – 實體:客觀存在並可以相互區分的事物叫實體。從具體的人、物、事件到抽象的狀態、概念,都可以用實體抽象地表示。用矩形表示,矩形框內寫明實體名。 – 實體集:是共享公共性質的事物的集合。 – 屬性:每個實體集涉及的信息項稱為屬性,即是實體集的一種性質。用橢圓形表示,並用無向邊將其相應的實體連接起來。 www.2cto.com – 實體集中的實體彼此是可區別的,如果實體集中的屬性或最小屬性組合的值能唯一標志其對應實體,則將該屬性或屬性組合稱為碼。對於每一個實體集,可指定一個碼為主碼。 實體集A和實體集B之間存在各種關系,通常把這些關系稱為“聯系”。 聯系用菱形表示,通過直線與實體相連。這樣構成的圖就是E-R圖,E-R圖就是E-R模型的描述方法。 7.兩個實體集A和B之間的聯系可能是以下三種情況之一。 一對一的聯系(1:1):A中的一個實體最多與B中的一個實體相聯系,B中的一個實體也最多與A中的一個實體相聯系。 一對多的聯系(1:n):A中的一個實體可以與B中的多個實體相聯系,而B中的一個實體至多與A中的一個實體相聯系。 多對多的聯系(m:n):A中的一個實體可以與B中的多個實體相聯系,而B中的一個實體也可與A中的多個實體相聯系。 8.邏輯結構設計 實體:每個實體映射為一個表格。 屬性:映射為相應表中的一個字段。 ? 關系映射 (1:1)聯系的E-R圖到關系模式的轉換:既可單獨對應一個關系模式,也可以不單獨對應一個關系模式。 www.2cto.com 聯系單獨對應一個關系模式,則由聯系屬性、參與聯系的各實體集的主碼屬性構成關系模式,其主碼可選參與聯系的實體集的任一方的主碼。 聯系不單獨對應一個關系模式,聯系的屬性及一方的主碼加入另一方實體集對應的關系模式中。 (1:n)聯系的E-R圖到關系模式的轉換:既可單獨對應一個關系模式,也可以不單獨對應一個關系模式。 聯系單獨對應一個關系模式,則由聯系的屬性、參與聯系的各實體集的主碼屬性構成關系模式,n端的主碼作為該關系模式的主碼。 聯系不單獨對應一個關系模式,則將聯系的屬性及1端的主碼加入n端實體集對應的關系模式中,主碼仍為n端的主碼。 (m:n)聯系的E-R圖到關系模式的轉換:單獨對應一個關系模式,該關系模式包括聯系的屬性、參與聯系的各實體集的主碼屬性,該關系模式的主碼由各實體集的主碼屬性共同組成。 關系模式XS_KC的主碼是由“學號”和“課程號”兩個屬性組合起來構成的一個主碼,一個關系模式只能有一個主碼。 在設計好一個項目的關系模式後,就可以在數據庫管理系統環境下創建數據庫、關系表及其他數據庫對象,輸入相應數據,並根據需要對數據中的數據進行各種操作。 10.數據的物理模型即指數據的存儲結構,如對數據庫物理文件和索引文件的組織方式、文件的存取路徑、內存的管理等。物理模型不僅與數據庫管理系統有關,還和操作系統甚至硬件有關,物理模型對用戶是不可見的。 11.數據庫的連接方式 1). ODBC數據庫接口 ODBC即開放式數據庫互連(Open DataBase Connectivity),是微軟公司推出的一種實現應用程序和關系數據庫之間通信的接口標准。符合標准的數據庫就可以通過SQL語言編寫的命令對數據庫進行操作,但只針對關系數據庫。目前所有的關系數據庫都符合該標准,如Oracle、SQL Server、MySQL、DB2、Sybase、Access等。ODBC本質上是一組數據庫訪問API(應用程序編程接口),由一組函數調用組成,核心是SQL語句。 www.2cto.com 在具體操作時,首先必須用ODBC管理器注冊一個數據源,管理器根據數據源提供的數據庫位置、數據庫類型及ODBC驅動程序等信息,建立起ODBC與具體數據庫的聯系。這樣,只要應用程序將數據源名提供給ODBC,ODBC就能建立起與相應數據庫的連接。 MySQL是通過MySQL Connector/ODBC(MyODBC驅動程序系列)為ODBC提供支持的。ODBC驅動包管理器是用於管理ODBC應用程序和驅動程序間通信的庫。ODBC.INI是ODBC配置文件,其中保存了連接到服務器所需的驅動信息和數據庫信息。ODBC驅動管理器將使用它來確定加載哪個驅動程序(使用數據源名)。 2). ADO數據庫接口 ADO(ActiveX Data Object)是微軟公司開發的基於COM的數據庫應用程序接口,通過ADO連接數據庫,可以靈活地操作數據庫中的數據。 使用ADO訪問關系數據庫有兩種途徑:一種是通過ODBC驅動程序,另一種是通過數據庫專用的OLE DB Provider,後者有更高的訪問效率。 3). ADO.NET數據庫接口 ADO.NET數據模型從ADO發展而來,但它不只是對 ADO的改進,而是采用了一種全新的技術。主要表現在以下幾個方面: ● ADO.NET不是采用ActiveX技術,而是與.NET框架緊密結合的產物。 ● ADO.NET包含對XML標准的完全支持,這對於跨平台交換數據具有重要的意義。 ● ADO.NET既能在與數據源連接的環境下工作,又能在斷開與數據源連接的條件下工作。特別是後者,非常適合於網絡應用的需要。因為在網絡環境下,保持與數據源連接,不符合網站的要求,不僅效率低,付出的代價高,而且常常會引發由於多個用戶同時訪問時帶來的沖突。因此ADO.NET系統集中主要精力用於解決在斷開與數據源連接的條件下數據處理的問題。 www.2cto.com ADO.NET提供了面向對象的數據庫視圖,並且在ADO.NET對象中封裝了許多數據庫屬性和關系。更重要的是,ADO.NET通過很多方式封裝和隱藏了很多數據庫訪問細節,可以完全不知道對象在與ADO.NET對象交互,也不用擔心數據移動到另外一個數據庫或者從另一個數據庫獲得數據的細節問題。 數據層是實現ADO.NET斷開式連接的核心,從數據源讀取的數據先緩存到數據集中,然後被程序或控件調用。數據源可以是數據庫或XML數據。 數據提供器用於建立數據源與數據集之間的聯系,它能連接各種類型的數據,並能按要求將數據源中的數據提供給數據集,或者從數據集向數據源返回編輯後的數據。 MySQL使用MySQL Connector/NET實施了所需的ADO.NET接口,並將其集成到了ADO.NET aware工具中。從而使開發人員能夠方便地創建需要安全和高性能數據連接(與MySQL)的.NET應用程序。MySQLConnector/NET是用純C#語言編寫的可完全管理的ADO.NET驅動程序。 4). JDBC數據庫接口 在JDBC API中有兩層接口:應用程序層和驅動程序層,前者使開發人員可以通過SQL調用數據庫和取得結果,後者處理與具體數據庫驅動程序的所有通信。 使用JDBC接口對數據庫操作有如下優點: (1)JDBC API與ODBC十分相似,有利於用戶理解; (2)使編程人員從復雜的驅動器調用命令和函數中解脫出來,而致力於應用程序功能的實現; (3)JDBC支持不同的關系數據庫,增強了程序的可移植性。 使用JDBC的主要缺點:訪問數據記錄的速度會受到一定影響,此外,由於JDBC結構中包含了不同廠家的產品,這給數據源的更改帶來了較大麻煩。 MySQL通過MySQL Connector/J驅動實現JDBC接口,它提供了與使用Java編程語言開發的客戶端應用程序的連通性。MySQL Connector/J是一種純Java程序,實施了3.0版JDBC規范,並能使用MySQL協議與MySQL服務器直接通信。 www.2cto.com 5). 數據庫連接池技術 對於網絡環境下的數據庫應用,由於用戶眾多,使用傳統的JDBC方式進行數據庫連接,系統資源開銷過大成為制約大型企業級應用效率的瓶頸,采用數據庫連接池技術對數據庫連接進行管理,可以大大提高系統的效率和穩定性。 12. 對於一般的數據庫應用系統,除了數據庫管理系統外,需要設計適合普通人員操作數據庫的界面。 當應用程序需要處理數據庫中的數據時,首先向數據庫管理系統發送一個數據處理請求,數據庫管理系統接收到這一請求後,對其進行分析,然後執行數據操作,並把操作結果返回給應用程序。由於應用程序直接與用戶打交道,而數據庫管理系統不直接與用戶打交道,所以應用程序被稱為“前台”,而數據庫管理系統被稱為“後台”。由於應用程序是向數據庫管理系統提出服務請求,通常稱為客戶程序(Client),而數據庫管理系統是為其他應用程序提供服務,通常稱為服務器程序(Server),所以又將這種操作數據庫模式稱為客戶/服務器(C/S)模式。 應用程序和數據庫管理系統可以運行在同一台計算機上(單機方式),也可以運行在網絡方式。在網絡方式下,數據庫管理系統在網絡上的一台主機上運行,應用程序可以在網絡上的多台主機上運行,即一對多的方式。對於MySQL,除了服務器安裝數據庫管理系統外,還需要在客戶端安裝數據庫客戶程序。 13. 基於Web的數據庫應用采用三層客戶/服務器模式,也稱B/S結構。第一層為浏覽器,第二層為Web服務器,第三層為數據庫服務器。浏覽器是用戶輸入數據和顯示結果的交互界面,用戶在浏覽器表單中輸入數據,然後將表單中的數據提交並發送到Web服務器,Web服務器應用程序接收並處理用戶的數據,通過數據庫服務器,從數據庫中查詢需要的數據(或把數據錄入數據庫)送到Web服務器,Web服務器把返回的結果插入HTML頁面,傳送到客戶端,在浏覽器中顯示出來。 14. 關系數據庫的標准語言是SQL(Structured Query Language,結構化查詢語言)。SQL語言是用於關系數據庫查詢的結構化語言,最早由Boyce和Chambedin在1974年提出,稱為SEQUEL語言。1976年,IBM公司的San Jose研究所在研制關系數據庫管理系統System R時修改為SEQUEL2,即目前的SQL語言。SQL語言的功能包括數據查詢、數據操縱、數據定義和數據控制4個部分。SQL語言簡潔、方便實用,為完成其核心功能只用了6個命令:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE)。目前已成為應用最廣的關系數據庫語言。SQL語言簡潔,易學易用。 15. mySQL簡介: MySQL是一個小型關系型數據庫管理系統,開發者為瑞典MySQL AB公司。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。 與其他的大型數據庫相比,MySQL還有一些不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有余,而且由於MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。 目前Internet上流行的網站構架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統,Apache作為Web服務器,MySQL作為數據庫,PHP作為服務器端腳本解釋器。由於這4個軟件都是遵循GPL的開放源碼軟件,因此使用這種方式不用花一分錢就可以建立起一個穩定、免費的網站系統。 MySQL數據庫的特點主要有以下幾個方面: ● 使用核心線程的完全多線程服務,這意味著可以采用多CPU體系結構。 ● 可運行在不同平台。 www.2cto.com ● 使用C和C++編寫,並使用多種編譯器進行測試,保證了源代碼的可移植性。 ● 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統。 ● 為多種編程語言提供了API。這些編程語言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。 ● 支持多線程,充分利用CPU資源。 ● 優化的SQL查詢算法,可有效地提高查詢速度。 ● 既能夠作為一個單獨的應用程序應用在客戶端服務器網絡環境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB2312、BIG5,日文的Shift_JIS等都可以用做數據表名和數據列名。 ● 提供TCP/IP、ODBC和JDBC等多種數據庫連接途徑。 ● 提供可用於管理、檢查、優化數據庫操作的管理工具。 ● 可以處理擁有上千萬條記錄的大型數據庫。 2008年sun公司收購mySql AB公司。 16.mySql的安裝和配置見資料文件下安裝word文件,重新配置服務器,如下: 如果要對服務器重新配置,可以打開“開始”→“程序”→“MySQL”→“MySQLServer 5.1”→“MySQL Server Instance Config Wizard”,在出現的配置向導中重新配置服務器。 (1)選項文件 在C:\Program Files\MySQL\MySQL Server 5.1的MySQL主目錄下有一個my.ini文件,這是MySQL的選項文件,在MySQL啟動時會自動加載文件中的一些選項。可以通過修改選項文件來修改MySQL的一些默認設置,具體會在以後的內容中了解到。 www.2cto.com (2)數據目錄 “destination Folder”為MySQL所在的目錄,默認的目錄為:C:\Program\Files\MySQL\MySQL Server5.1“DataFolder”為MySQL數據庫文件和表文件所在的目錄。 在MySQL主目錄下有一個my.ini文件,這是MySQL的選項文件,在MySQL啟動時會自動加載文件中的一些選項,可以通過修改選項文件來修改MySQL的一些默認設置。 MySQL有一個data目錄,用於存放數據庫文件。MySQL 5.1的默認的路徑為C:\Documents and Settings\All Users\Application Data\MySQL\MySQLServer 5.1\data。在data目錄中MySQL為每一個數據庫建立一個文件夾,所有的表文件存放在相應的數據庫文件夾中。 作者 tianyazaiheruan