何謂數(shù)據(jù)庫
數(shù)據(jù)庫是一種用于存儲數(shù)據(jù)集合的獨立應(yīng)用程序。每種數(shù)據(jù)庫都會有一個或多個獨特的 API,用來創(chuàng)建、訪問、管理、搜索或復(fù)制數(shù)據(jù)庫中保存的數(shù)據(jù)。
除了數(shù)據(jù)庫之外,也可以使用其他一些數(shù)據(jù)存儲方式,比如說利用文件系統(tǒng)來存儲文件,或者利用內(nèi)存中的大型散列表,但這些系統(tǒng)均無法快速便利地提取或?qū)懭霐?shù)據(jù)。
因此,現(xiàn)在業(yè)界一般采用關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)來存儲并管理海量數(shù)據(jù)。之所以稱其為關(guān)系型數(shù)據(jù)庫,是因為所有數(shù)據(jù)都存儲在不同的表中,表之間的關(guān)系是建立在主鍵或其他鍵(被稱為外鍵)的基礎(chǔ)之上的。
關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)具有以下特點:
- 能夠?qū)崿F(xiàn)一種具有表、列與索引的數(shù)據(jù)庫。
- 保證不同表的行之間的引用完整性。
- 能自動更新索引。
- 能解釋 SQL 查詢,組合多張表的信息。
RDBMS 術(shù)語
在繼續(xù)討論 MySQL 數(shù)據(jù)庫系統(tǒng)之前,先讓我們來說明一些關(guān)于數(shù)據(jù)庫的術(shù)語定義:
- 數(shù)據(jù)庫(Database):數(shù)據(jù)庫是帶有相關(guān)數(shù)據(jù)的表的集合。
- 表(Table):表是帶有數(shù)據(jù)的矩陣。數(shù)據(jù)庫中的表就像一種簡單的電子表格。
- 列(Column):每一列(數(shù)據(jù)元素)都包含著同種類型的數(shù)據(jù),比如郵編。
- 行(Row):行(又被稱為元組、項或記錄)是一組相關(guān)數(shù)據(jù),比如有關(guān)訂閱量的數(shù)據(jù)。
- 冗余(Redundancy):存儲兩次數(shù)據(jù),以便使系統(tǒng)更快速。
- 主鍵(Primary Key):主鍵是唯一的。同一張表中不允許出現(xiàn)同樣兩個鍵值。一個鍵值只對應(yīng)著一行。
- 外鍵(Foreign Key):用于連接兩張表。
- 復(fù)合鍵(Compound Key):復(fù)合鍵(又稱組合鍵)是一種由多列組成的鍵,因為一列并不足以確定唯一性。
- 索引(Index):它在數(shù)據(jù)庫中的作用就像書后的索引一樣。
- 引用完整性(Referential Integrity):用來確保外鍵一直指向已存在的一行。
MySQL 數(shù)據(jù)庫
MySQL 是一種快速易用的 RDBMS,很多企業(yè)(不分規(guī)模大?。┒荚谑褂盟鼇順?gòu)建自己的數(shù)據(jù)庫。MySQL 由一家瑞典公司 MySQL AB 開發(fā)、運營并予以支持。它之所以非常流行,原因在于具備以下這些優(yōu)點:
- 基于開源許可發(fā)布,無需付費即可使用。
- 自身的功能非常強大,足以匹敵絕大多數(shù)功能強大但卻價格昂貴的數(shù)據(jù)庫軟件。
- 使用業(yè)內(nèi)所熟悉的標準SQL數(shù)據(jù)庫語言。
- 可運行于多個操作系統(tǒng),支持多種語言,包括 PHP、PERL、C、C++ 及 Java 等語言。
- 非常迅速,即使面對大型數(shù)據(jù)集也毫無滯澀。
- 非常適用于 PHP 這種 Web 開發(fā)者最喜歡使用的語言。
- 支持大型數(shù)據(jù)庫,最高可在一個表中容納 5千多萬行。每張表的默認文件大小限制為 4GB,不過如果操作系統(tǒng)支持,你可以將其理論限制增加到 800 萬 TB。
- 可以自定義。開源 GPL 許可保證了程序員可以自由修改 MySQL,以便適應(yīng)各自特殊的開發(fā)環(huán)境。
準備須知
在開始學習本系列教程之前,你應(yīng)該通過我們的教程簡單地了解一下 PHP 和 HTML 方面的相關(guān)知識。
本教學重點在于利用 PHP 使用 MySQL,所以很多實例對于 PHP 程序員來說非常實用。
對于不熟悉 PHP 的讀者,我們強烈建議您讀一讀 PHP教學。