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