版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第1章 數(shù)據(jù)庫概述簡而言之,數(shù)據(jù)庫(DataBase)就是一個(gè)存儲(chǔ)數(shù)據(jù)的倉庫。為了方便數(shù)據(jù)的存儲(chǔ)和管理,它將數(shù)據(jù)按照特定的規(guī)律存儲(chǔ)在磁盤上。通過數(shù)據(jù)庫管理系統(tǒng),可以有效地組織和管理存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)。如今,已經(jīng)存在了Oracle、SQL Server和MySQL等諸多優(yōu)秀的數(shù)據(jù)庫。本章將講解的內(nèi)容包括如下:q 數(shù)據(jù)存儲(chǔ)方式;q 數(shù)據(jù)庫泛型;q 數(shù)據(jù)庫在開發(fā)中作用;q SQL語言;q 數(shù)據(jù)庫訪問技術(shù);q 常見數(shù)據(jù)庫系統(tǒng);q MySQL數(shù)據(jù)庫的介紹;q 如何學(xué)習(xí)數(shù)據(jù)庫。通過本章的學(xué)習(xí),讀者可以了解為什么要使用數(shù)據(jù)庫?什么是數(shù)據(jù)庫泛型?什么是SQL語言?如何訪問數(shù)據(jù)庫?常見的數(shù)據(jù)庫有哪些等。同時(shí),
2、讀者可以了解MySQL數(shù)據(jù)庫的優(yōu)勢和如何獲得MySQL數(shù)據(jù)庫。最后,讀者將會(huì)了解如何學(xué)習(xí)數(shù)據(jù)庫。1.1 數(shù)據(jù)庫理論基礎(chǔ)數(shù)據(jù)庫能夠?qū)?shù)據(jù)按照特定的規(guī)律組織起來。那么,數(shù)據(jù)是如何存儲(chǔ)的?數(shù)據(jù)庫要遵守什么規(guī)則?數(shù)據(jù)庫在什么地方使用?這些都是首先要了解的問題。本節(jié)將為讀者介紹這些問題。 數(shù)據(jù)存儲(chǔ)方式如今數(shù)據(jù)庫已經(jīng)無處不在了。一個(gè)網(wǎng)站需要有數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù);一個(gè)學(xué)校需要用數(shù)據(jù)庫來存儲(chǔ)學(xué)生和教師的信息;一個(gè)公司需要用數(shù)據(jù)庫來存儲(chǔ)員工的信息和公司的資料。要學(xué)習(xí)數(shù)據(jù)庫,必須先要了解數(shù)據(jù)庫是如何存儲(chǔ)數(shù)據(jù)的。本小節(jié)將為讀者介紹數(shù)據(jù)的存儲(chǔ)方式。數(shù)據(jù)存儲(chǔ)分為3個(gè)階段即人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。1人工
3、管理階段在計(jì)算機(jī)發(fā)展的早期,它的主要作用是進(jìn)行科學(xué)計(jì)算。而且,計(jì)算機(jī)存儲(chǔ)設(shè)備還沒有發(fā)展起來?數(shù)據(jù)主要是存儲(chǔ)在紙帶、磁帶等介質(zhì)上,或者直接通過手工記錄。%說明:美國人Herman Hollerith(18601929年)根據(jù)提花織布機(jī)的原理發(fā)明了穿孔片計(jì)算機(jī),通過紙帶來存儲(chǔ)數(shù)據(jù)。在19世紀(jì)50年代,IBM最早把盤式磁帶用在數(shù)據(jù)存儲(chǔ)上。一卷磁帶可以代替1萬張打孔紙卡。隨著技術(shù)的發(fā)展,逐漸出現(xiàn)了磁鼓、軟盤、硬盤和光盤等存儲(chǔ)設(shè)備。這個(gè)階段,數(shù)據(jù)都是依靠人工進(jìn)行整理和保存的。使用這種方式來管理數(shù)據(jù)很不方便。例如,不便于查詢數(shù)據(jù)、難以共享數(shù)據(jù)和不便于保存?,F(xiàn)在,國內(nèi)的一些部門還處在人工管理數(shù)據(jù)的階段,還需
4、要管理大量的紙質(zhì)文件。2文件系統(tǒng)階段隨著計(jì)算機(jī)操作系統(tǒng)的出現(xiàn)和硬件的發(fā)展,可以將數(shù)據(jù)存儲(chǔ)在計(jì)算機(jī)的磁盤上。這些數(shù)據(jù)都以文件的形式出現(xiàn),然后通過文件系統(tǒng)來管理這些文件。文件系統(tǒng)通過文件的存儲(chǔ)路徑和文件名稱來訪問文件中的數(shù)據(jù)。文件系統(tǒng)可以很好的保存文件,使用起來也很方便。相對(duì)于人工管理階段而言,文件系統(tǒng)使得數(shù)據(jù)管理變得簡單。至少不用為了一個(gè)文件而翻箱倒柜的查找了。但是,這些文件中的數(shù)據(jù)沒有進(jìn)行結(jié)構(gòu)化處理,查詢起來還不是很方便。3數(shù)據(jù)庫系統(tǒng)階段隨著數(shù)據(jù)量的增加和處理速度的要求,文件系統(tǒng)漸漸地不能滿足數(shù)據(jù)管理的要求了。數(shù)據(jù)庫系統(tǒng)階段開始使用專門的數(shù)據(jù)庫來管理數(shù)據(jù)。用戶可以在數(shù)據(jù)庫系統(tǒng)中建立數(shù)據(jù)庫,然后
5、在數(shù)據(jù)庫中建立表,最后將數(shù)據(jù)存儲(chǔ)在這些表中。數(shù)據(jù)庫是指長期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的和可共享的數(shù)據(jù)集合。簡而言之,數(shù)據(jù)庫就是一個(gè)存儲(chǔ)數(shù)據(jù)的地方。表是數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的基本單位。一個(gè)表由若干字段組成。例如,某個(gè)學(xué)校有個(gè)學(xué)生管理系統(tǒng),其中的數(shù)據(jù)可以存儲(chǔ)在名為student的數(shù)據(jù)庫中。在student數(shù)據(jù)庫中,可以為每個(gè)班級(jí)的學(xué)生建立一張表。表中包含學(xué)生的學(xué)號(hào)、姓名、性別和籍貫等信息。學(xué)號(hào)、姓名等就是這個(gè)表中的字段??梢愿鶕?jù)這些字段來找到學(xué)生的相應(yīng)信息。數(shù)據(jù)庫和表都存儲(chǔ)在磁盤上,但用戶不必關(guān)心它們在磁盤上的具體位置。用戶可以直接通過數(shù)據(jù)庫管理系統(tǒng)來查詢表中的數(shù)據(jù)?,F(xiàn)在使用最多的數(shù)據(jù)庫是關(guān)系數(shù)據(jù)庫。Ora
6、cle、SQL Server和MySQL等數(shù)據(jù)庫都是關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫中的表都是二維表。 數(shù)據(jù)庫泛型數(shù)據(jù)庫泛型就是數(shù)據(jù)庫應(yīng)該遵循的規(guī)則。數(shù)據(jù)庫泛型也稱為范式。目前,關(guān)系數(shù)據(jù)庫最常用的4種范式分別是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCN范式(BCNF)。本小節(jié)將為讀者簡單地介紹一下范式的內(nèi)容。在設(shè)計(jì)數(shù)據(jù)庫時(shí),數(shù)據(jù)庫需要滿足的最低要求的范式是第一范式。第一范式的要求即表中不能有重復(fù)字段,并且每個(gè)字段不能再拆分。如果一個(gè)數(shù)據(jù)庫連第一范式都不能滿足的話,那就不能稱之為關(guān)系數(shù)據(jù)庫了。只有滿足了第一范式的要求,才可以在這個(gè)關(guān)系數(shù)據(jù)庫中創(chuàng)建表。在滿足第一范式的基礎(chǔ)上,可以將數(shù)
7、據(jù)庫中進(jìn)行進(jìn)一步的細(xì)化。細(xì)化后可以使數(shù)據(jù)庫滿足第二范式的要求。依次進(jìn)行細(xì)化,可以得到第三范式、BCN范式。%說明:例如,一個(gè)學(xué)生表中有學(xué)號(hào)、院系號(hào)和院系名這3個(gè)字段。因?yàn)閷W(xué)號(hào)可以決定是院系名,院系號(hào)也可以決定院系名。因此,這個(gè)表不是第二范式。現(xiàn)在對(duì)該表進(jìn)行細(xì)化,細(xì)化后生成兩個(gè)表。第一個(gè)表有學(xué)號(hào)、院系號(hào)這兩個(gè)字段。第二個(gè)表有院系號(hào)、院系名這兩個(gè)字段。這樣就滿足了第二范式的要求。通常情況下,如果一個(gè)數(shù)據(jù)庫能夠滿足第三范式的要求,那么這個(gè)數(shù)據(jù)庫就是一個(gè)很好的數(shù)據(jù)庫了。當(dāng)一個(gè)數(shù)據(jù)庫達(dá)到第三范式的要求,數(shù)據(jù)庫中基本上沒有冗余的內(nèi)容了。但是,有時(shí)為了滿足查詢速度等要求,可以有意識(shí)的讓某些表有些冗余。這是為
8、了提高整個(gè)數(shù)據(jù)庫的性能。因此,在設(shè)計(jì)數(shù)據(jù)庫時(shí),不一定要拘泥于達(dá)到第三范式或者BCN范式。只要數(shù)據(jù)庫的設(shè)計(jì)能提高整個(gè)系統(tǒng)的性能,這就是一個(gè)合理的數(shù)據(jù)庫。 數(shù)據(jù)庫在開發(fā)中作用現(xiàn)在大部分的管理系統(tǒng)和軟件都需要使用數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù)。在開發(fā)過程中,數(shù)據(jù)庫已經(jīng)成為必不可少的一部分。本小節(jié)將為讀者簡單介紹一下數(shù)據(jù)庫在開發(fā)中的作用。在軟件開發(fā)過程中,經(jīng)常需要使用數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù)。例如,一個(gè)學(xué)校的學(xué)生管理系統(tǒng)就需要數(shù)據(jù)庫來存儲(chǔ)學(xué)生的學(xué)籍信息、考試信息、教師的信息和課程信息等。再比如,銀行的管理系統(tǒng)也需要數(shù)據(jù)庫來存儲(chǔ)信息。用戶的銀行賬戶、存款量、存款和取款的記錄等信息都是存儲(chǔ)在數(shù)據(jù)庫中的。當(dāng)用戶向自己的賬戶里存款
9、時(shí),管理系統(tǒng)會(huì)在數(shù)據(jù)庫中更新該用戶的存款量。筆者曾經(jīng)開發(fā)過一個(gè)駕校的學(xué)員管理系統(tǒng)。在這個(gè)管理系統(tǒng)中,筆者就使用了MySQL數(shù)據(jù)庫來存儲(chǔ)管理員的信息、駕校學(xué)員的學(xué)籍信息和學(xué)員的考試信息等。然后通過網(wǎng)頁的應(yīng)用程序查詢數(shù)據(jù)庫中的數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)。例如,管理員要登錄系統(tǒng)就必須輸入用戶名和密碼。然后網(wǎng)頁的應(yīng)用程序?qū)⒐芾韱T輸入的用戶名和密碼與數(shù)據(jù)庫表中的數(shù)據(jù)進(jìn)行比較。如果表中存在這個(gè)用戶名和密碼,就允許管理員登錄。筆者還為某供電局開發(fā)過一個(gè)定值單管理的軟件。在這個(gè)軟件中,需要存儲(chǔ)管理員的信息、用戶的信息和定值單的信息等。筆者也是選擇MySQL數(shù)據(jù)庫來存儲(chǔ)這些數(shù)據(jù)的。然后通過頁面的應(yīng)用程序來處理數(shù)據(jù)
10、庫中的數(shù)據(jù)。%說明:數(shù)據(jù)庫的使用范圍非常廣泛,各行各業(yè)中都已經(jīng)有了數(shù)據(jù)庫的應(yīng)用。例如,電力行業(yè)需要數(shù)據(jù)庫來存儲(chǔ)發(fā)電量、供電量和電費(fèi)等信息;石油行業(yè)需要數(shù)據(jù)庫來存儲(chǔ)有關(guān)石油的數(shù)據(jù);金融行業(yè)需要使用數(shù)據(jù)庫來存儲(chǔ)各種金融數(shù)據(jù)??偠灾瑪?shù)據(jù)庫已經(jīng)成為了軟件開發(fā)不可缺少的一部分。如果沒有數(shù)據(jù)庫,這個(gè)軟件將無法獲得數(shù)據(jù),也無法將執(zhí)行后的數(shù)據(jù)保存。1.2 數(shù)據(jù)庫技術(shù)構(gòu)成數(shù)據(jù)庫技術(shù)的出現(xiàn)是為了更加有效地管理和存取大量的數(shù)據(jù)資源。簡單地講,數(shù)據(jù)庫技術(shù)主要包括數(shù)據(jù)庫系統(tǒng)、SQL語言和數(shù)據(jù)庫訪問技術(shù)等。本節(jié)將為讀者介紹數(shù)據(jù)庫技術(shù)的內(nèi)容。 數(shù)據(jù)庫系統(tǒng)很多讀者認(rèn)為數(shù)據(jù)庫就是數(shù)據(jù)庫系統(tǒng)(DataBase System,
11、簡稱為DBS)。其實(shí),數(shù)據(jù)庫系統(tǒng)的范圍比數(shù)據(jù)庫大很多。數(shù)據(jù)庫系統(tǒng)不是一個(gè)單純的數(shù)據(jù)庫,而是由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用開發(fā)工具等構(gòu)成。很多時(shí)候,數(shù)據(jù)庫管理員和用戶也可以當(dāng)成數(shù)據(jù)庫系統(tǒng)的一份子。本小節(jié)將為讀者介紹數(shù)據(jù)庫系統(tǒng)的內(nèi)容。前面的章節(jié)對(duì)數(shù)據(jù)庫已經(jīng)進(jìn)行了簡單地介紹,數(shù)據(jù)庫就是存儲(chǔ)數(shù)據(jù)的地方。數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,簡稱為DBMS)是用來定義數(shù)據(jù)、管理和維護(hù)數(shù)據(jù)的軟件。它是數(shù)據(jù)庫系統(tǒng)的一個(gè)重要的組成部分。應(yīng)用系統(tǒng)是需要使用數(shù)據(jù)庫的軟件。比如學(xué)員管理系統(tǒng)就是一個(gè)應(yīng)用系統(tǒng)。這個(gè)應(yīng)用系統(tǒng)需要數(shù)據(jù)庫來管理它的數(shù)據(jù)。應(yīng)用開發(fā)工具就是用來開發(fā)應(yīng)用系統(tǒng)的。除了
12、上述的軟件部分以外,數(shù)據(jù)庫系統(tǒng)還包括數(shù)據(jù)庫管理員和用戶。因?yàn)?,依靠單純的?shù)據(jù)庫管理系統(tǒng)來管理數(shù)據(jù)庫中的數(shù)據(jù)是不現(xiàn)實(shí)的。很多時(shí)候需要一些專門管理這些數(shù)據(jù)的專業(yè)人員。這些管理數(shù)據(jù)的專業(yè)人員就是數(shù)據(jù)庫管理員(DataBase Administrator,簡稱為DBA)。通常在大型的公司都需要有專門的數(shù)據(jù)庫管理員。例如,網(wǎng)易就有專業(yè)的DBA組,他們主要負(fù)責(zé)管理和維護(hù)數(shù)據(jù)庫。用戶一般不直接與數(shù)據(jù)庫接觸,而是通過應(yīng)用系統(tǒng)來使用數(shù)據(jù)。 SQL語言SQL(Structured Query Language即結(jié)構(gòu)化查詢語言)。數(shù)據(jù)庫管理系統(tǒng)通過SQL語言來管理數(shù)據(jù)庫中的數(shù)據(jù)。本小節(jié)將為讀者介紹SQL語言的知識(shí)。
13、SQL語言是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言。其主要用于存取數(shù)據(jù)、查詢數(shù)據(jù)、更新數(shù)據(jù)和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。SQL語言是IBM公司于1975年1979年之間開發(fā)出來的,主要使用于IBM關(guān)系數(shù)據(jù)庫原型System R。在20世紀(jì)80年代,SQL語言被美國國家標(biāo)準(zhǔn)學(xué)會(huì)(American National Standards Institute,簡稱為ANSI)和國際標(biāo)準(zhǔn)化組織(International Organization for Standardization,簡稱為ISO)通過為關(guān)系數(shù)據(jù)庫語言的標(biāo)準(zhǔn)。SQL語言分為3個(gè)部分?jǐn)?shù)據(jù)定義語言(Data Definition Language,簡稱為D
14、DL)、數(shù)據(jù)操作語言(Data Manipulation Language,簡稱為DML)和數(shù)據(jù)控制語言(Data Control Language,簡稱為DCL)。q DDL語句:數(shù)據(jù)定義語言主要用于定義數(shù)據(jù)庫、表、視圖、索引和觸發(fā)器等。其中包括CREATE語句、ALTER語句和DROP語句。CREATE語句主要用于創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表和創(chuàng)建視圖等。ALTER語句主要用于修改表的定義、修改視圖的定義等。DROP語句主要用于刪除數(shù)據(jù)庫、刪除表和刪除視圖等。q DML語句:數(shù)據(jù)操縱語言主要用于插入數(shù)據(jù)、查詢數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)。其中包括INSERT語句、SELECT語句、UPDATE語句和DE
15、LETE語句。INSERT語句用于插入數(shù)據(jù);SELECT語句用于查詢數(shù)據(jù);UPDATE語句用于更新數(shù)據(jù);DELETE語句用于刪除數(shù)據(jù)。q DCL語句:數(shù)據(jù)控制語言主要用于控制用戶的訪問權(quán)限。其中包括GRANT語句和REVOKE語句。GRANT語句用于給用戶增加權(quán)限;REVOKE語句用于收回用戶的權(quán)限。數(shù)據(jù)庫管理系統(tǒng)通過這些SQL語句可以操作數(shù)據(jù)庫中的數(shù)據(jù)。在應(yīng)用程序中,也可以通過SQL語句來操作數(shù)據(jù)。例如,可以在Java語言中嵌入SQL語句。通過執(zhí)行Java語言來調(diào)用SQL語句,這樣即可在數(shù)據(jù)庫中插入數(shù)據(jù)、查詢數(shù)據(jù)。SQL語句也可以嵌入到C#語言、PHP語言等編程語言中。 數(shù)據(jù)庫訪問技術(shù)應(yīng)用系
16、統(tǒng)中,程序語言需要使用數(shù)據(jù)庫訪問技術(shù)來訪問數(shù)據(jù)庫。只有使用數(shù)據(jù)庫訪問技術(shù),程序中嵌入的SQL語句才會(huì)起作用。不同程序語言訪問數(shù)據(jù)庫的方式是不一樣的。本小節(jié)將為讀者簡單講解各種數(shù)據(jù)庫訪問技術(shù)。不同的程序語言使用不同的數(shù)據(jù)庫訪問技術(shù)。早期的數(shù)據(jù)庫訪問技術(shù)是ODBC(Open Database Connectivity)。C#語言通過ADO.NET來訪問數(shù)據(jù)庫。Java語言使用JDBC(Java Data Base Connectivity)來訪問數(shù)據(jù)庫。使用這些數(shù)據(jù)庫訪問技術(shù)時(shí),必須要另外安裝相應(yīng)的驅(qū)動(dòng)程序。ODBC 技術(shù)為訪問不同的關(guān)系數(shù)據(jù)庫提供了一個(gè)共同的接口。通過ODBC提供的接口,應(yīng)用程序
17、可以連接數(shù)據(jù)庫。然后,可以執(zhí)行SQL語言來操作數(shù)據(jù)庫中的數(shù)據(jù)。ODBC提供的接口提供了最大限度的互操作性。使用ODBC來訪問MySQL數(shù)據(jù)庫時(shí),必須安裝驅(qū)動(dòng)程序Connector/ODBC。ADO.NET是微軟公司提供的組件。用戶可以通過ADO.NET提供的方法來訪問數(shù)據(jù)庫。ADO.NET是在.NET框架下優(yōu)先使用的數(shù)據(jù)訪問接口。使用ADO.NET來連接MySQL數(shù)據(jù)庫時(shí),必須安裝驅(qū)動(dòng)程序Connector/Net。JDBC是一種用于執(zhí)行SQL語句的Java API。Java語言通過JDBC可以訪問多種關(guān)系數(shù)據(jù)庫。JDBC由一組用Java語言編寫的類和接口組成。使用JDBC時(shí),必須要安裝驅(qū)動(dòng)程
18、序Connector/J。PHP中為程序員提供了MySQL功能模塊,PHP 5以后開始提供mysqli接口。PHP可以通過MySQL功能模塊和mysqli接口來訪問MySQL數(shù)據(jù)庫。1.3 MySQL基礎(chǔ)現(xiàn)在數(shù)據(jù)庫的版本很多,如Oracle、DB2、SQL Server都是很優(yōu)秀的商業(yè)數(shù)據(jù)庫。同時(shí),還有MySQL、PostgreSQL都是很優(yōu)秀的開源數(shù)據(jù)庫。MySQL數(shù)據(jù)庫的使用已經(jīng)非常廣泛了。本節(jié)將為讀者介紹常見的數(shù)據(jù)庫系統(tǒng),以及MySQL數(shù)據(jù)庫的基本知識(shí)。 常見數(shù)據(jù)庫系統(tǒng)如今已經(jīng)存在很多優(yōu)秀的商業(yè)數(shù)據(jù)庫,如甲骨文(Oracle)公司的Oracle數(shù)據(jù)庫、IBM公司的DB2數(shù)據(jù)庫、微軟公司的
19、SQL Server數(shù)據(jù)庫和Access數(shù)據(jù)庫。同時(shí),還有很多優(yōu)秀的開源數(shù)據(jù)庫,如MySQL數(shù)據(jù)庫、PostgreSQL數(shù)據(jù)庫等。本小節(jié)將為讀者介紹這些常見的數(shù)據(jù)庫。1甲骨文的Oracle甲骨文公司是世界領(lǐng)先的數(shù)據(jù)庫軟件開發(fā)商。甲骨文公司的Oracle數(shù)據(jù)庫可以當(dāng)之無愧的稱為當(dāng)今世界最優(yōu)秀的數(shù)據(jù)庫。財(cái)富排行榜上的前1000家公司幾乎都采用Oracle數(shù)據(jù)庫。而且Oracle數(shù)據(jù)庫是世界上第一個(gè)支持SQL語言的數(shù)據(jù)庫。Oracle數(shù)據(jù)庫主要應(yīng)用于大型系統(tǒng)。但是,該數(shù)據(jù)庫非常復(fù)雜,管理起來很不方便。在2009甲骨文全球大會(huì)上,甲骨文公司宣布最新版Oracle服務(wù)器虛擬化軟件Oracle VM 2.
20、2正式上市。2IBM的DB2DB2是IBM公司研制的一種關(guān)系型數(shù)據(jù)庫系統(tǒng)。主要應(yīng)用于OS/2、Windows等平臺(tái)下。DB2提供了高層次的數(shù)據(jù)利用性,數(shù)據(jù)的完整性好。而且DB2的安全性高,具有很強(qiáng)的可恢復(fù)性。DB2數(shù)據(jù)庫主要應(yīng)用于大型系統(tǒng)當(dāng)中。3微軟的Access和SQL ServerAccess數(shù)據(jù)庫是微軟公司開發(fā)的小型數(shù)據(jù)庫。Access數(shù)據(jù)庫是微軟的Office系列軟件的一部分,其主要應(yīng)用于小型的系統(tǒng)中。SQL Server數(shù)據(jù)庫也是由微軟公司開發(fā)的,主要應(yīng)用于大型的管理系統(tǒng)當(dāng)中。而且該數(shù)據(jù)庫與微軟的Windows系列操作系統(tǒng)的兼容性很好。但是,由于該數(shù)據(jù)庫是微軟公司的專有軟件,因此還不
21、能夠在UNIX和Linux操作系統(tǒng)上運(yùn)行。目前,最新的SQL Server數(shù)據(jù)庫是SQL Server 2008。%注意:Access數(shù)據(jù)庫和SQL Server數(shù)據(jù)庫都是微軟公司的產(chǎn)品,只能在微軟公司的Windows系列的操作系統(tǒng)上運(yùn)行。而Oracle、DB2、PostgreSQL和MySQL這些數(shù)據(jù)庫都是可以跨平臺(tái)的。它們不僅可以在Windows系列的操作系統(tǒng)運(yùn)行,還可以在UNIX、Linux和Mac OS等操作系統(tǒng)上運(yùn)行。4開源PostgreSQLPostgreSQL數(shù)據(jù)庫是一個(gè)開放源代碼的數(shù)據(jù)庫。該數(shù)據(jù)庫是在加州大學(xué)伯克利分校計(jì)算機(jī)系的POSTGRES項(xiàng)目的基礎(chǔ)上產(chǎn)生的。1994年,A
22、ndrew Yu和Jolly Chen在POSTGRES中增加了SQL語言的解釋器。隨后將數(shù)據(jù)庫的源代碼發(fā)布到因特網(wǎng)上供所有人使用?,F(xiàn)在,PostgreSQL數(shù)據(jù)庫已經(jīng)是個(gè)非常優(yōu)秀的開源項(xiàng)目。很多大型網(wǎng)站都是使用PostgreSQL數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù)。5開源MySQLMySQL數(shù)據(jù)庫也是一個(gè)開放源代碼的數(shù)據(jù)庫。MySQL是由瑞典MySQLAB公司開發(fā)的。據(jù)稱,MySQL的開發(fā)者之一Monty Widenius的女兒也叫My,因此將該數(shù)據(jù)庫取名為MySQL。MySQL的發(fā)展速度非???,現(xiàn)在很多網(wǎng)站已經(jīng)使用MySQL數(shù)據(jù)庫。很多國內(nèi)的大型網(wǎng)站也已經(jīng)使用MySQL,如新浪、網(wǎng)易等。 為什么要使用MyS
23、QL如今很多大型網(wǎng)站已經(jīng)選擇MySQL數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù)。那么,MySQL到底有什么優(yōu)勢呢?本小節(jié)將為讀者介紹選擇MySQL數(shù)據(jù)庫的原因。MySQL數(shù)據(jù)庫的使用以及非常廣泛,尤其是在Web應(yīng)用方面。由于MySQL數(shù)據(jù)庫發(fā)展勢頭迅猛,Sun公司于2008年收購了MySQL數(shù)據(jù)庫。這筆交易的收購價(jià)格高達(dá)10億美元。這足以說明MySQL數(shù)據(jù)庫的價(jià)值。MySQL數(shù)據(jù)庫有很多的優(yōu)勢,下面總結(jié)了其中幾種。1MySQL是開放源代碼的數(shù)據(jù)庫MySQL是開放源代碼的數(shù)據(jù)庫,任何人都可以獲取該數(shù)據(jù)庫的源代碼。這就使得任何人都可以修正MySQL的缺陷。并且任何人都能以任何目的來使用該數(shù)據(jù)庫。在此不得不提到Richar
24、d Stallman的GUN工程和GPL協(xié)議。Richard Stallman提出GNU(GNU is Not UNIX)工程,提出了自由軟件的思想。GNU工程提出了GPL(GNU General Public Licence)許可協(xié)議。該工程的目的是為用戶提供可以自由使用的軟件。MySQL作為一款自由軟件,完全繼承了GNU的思想。這保證了MySQL是一款可以自由使用的數(shù)據(jù)庫。2MySQL的跨平臺(tái)性MySQL不僅可以在Windows系列的操作系統(tǒng)上運(yùn)行,還可以在UNIX、Linux和Mac OS等操作系統(tǒng)上運(yùn)行。因?yàn)楹芏嗑W(wǎng)站都選擇UNIX、Linux作為網(wǎng)站的服務(wù)器,所以MySQL的跨平臺(tái)性保
25、證其在Web應(yīng)用方面的優(yōu)勢。雖然微軟公司的SQL Server數(shù)據(jù)庫是一款很優(yōu)秀的商業(yè)數(shù)據(jù)庫,但是其只能在Windows系列的操作系統(tǒng)上運(yùn)行。因此,MySQL數(shù)據(jù)庫的跨平臺(tái)性是一個(gè)很大的優(yōu)勢。3價(jià)格優(yōu)勢MySQL數(shù)據(jù)庫是一款自由軟件。任何人都可以從MySQL的官方網(wǎng)站下載該軟件。這些社區(qū)版本的MySQL都是免費(fèi)使用的。即使是需要付費(fèi)的附加功能,其價(jià)格也是很便宜的。相對(duì)于Oracle、DB2和SQL Server這些價(jià)格昂貴的商業(yè)軟件,MySQL具有絕對(duì)的價(jià)格優(yōu)勢。4功能強(qiáng)大且使用方便MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。它是以客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),由一個(gè)服務(wù)器守護(hù)程序my
26、sqld和很多不同的客戶程序和庫組成。它能夠快速、有效和安全的處理大量的數(shù)據(jù)。相對(duì)于Oracle等數(shù)據(jù)庫來說,MySQL的使用是非常簡單的。MySQL主要目標(biāo)是快速、健壯和易用。上面是MySQL數(shù)據(jù)庫的一些基本優(yōu)勢。現(xiàn)在甲骨文公司出資74億美元收購Sun公司。很多人為MySQL的前途擔(dān)憂,認(rèn)為一旦收購成功,甲骨文公司就會(huì)對(duì)MySQL數(shù)據(jù)庫痛下毒手。筆者認(rèn)為這樣的情況是不會(huì)出現(xiàn)的。畢竟MySQL數(shù)據(jù)庫是一個(gè)開放源代碼的數(shù)據(jù)庫。即使甲骨文公司不支持MySQL的發(fā)展,MySQL也依然會(huì)在眾多愛好者的支持下不斷發(fā)展壯大。因此,MySQL數(shù)據(jù)庫的前途依然是不可限量的。 MySQL版本和獲取MySQL數(shù)據(jù)
27、庫可以在Windows、UNIX、Linux和Mac OS等操作系統(tǒng)上運(yùn)行。因此,MySQL有不同操作系統(tǒng)的版本。而且,根據(jù)發(fā)布的先后順序,現(xiàn)在已經(jīng)在開發(fā)MySQL的6.0版了。本小節(jié)將為讀者介紹MySQL的版本和如何下載MySQL。根據(jù)操作系統(tǒng)的類型,MySQL數(shù)據(jù)庫大體上可以分為Windows版、UNIX版、Linux版和Mac OS版。因?yàn)閁NIX和Linux操作系統(tǒng)的版本很多,不同的UNIX和Linux版本有不同的MySQL版本。因此,如果要下載MySQL,必須先了解自己使用的是什么操作系統(tǒng)。然后根據(jù)操作系統(tǒng)來下載相應(yīng)的MySQL。根據(jù)用戶群體的不同,MySQL數(shù)據(jù)庫可以分為社區(qū)版(C
28、ommunity Edition)和企業(yè)版(Enterprise)。社區(qū)版是自由下載且完全免費(fèi)的,但是沒有官方的技術(shù)支持。企業(yè)版是收費(fèi)的,而且不能下載。但是企業(yè)版擁有完善的技術(shù)支持。如果是個(gè)人學(xué)習(xí),可以選擇社區(qū)版。企業(yè)版一般都是適合企業(yè)使用的。根據(jù)發(fā)布順序來區(qū)分,MySQL數(shù)據(jù)庫可以分為4.1、5.0、5.1等版本。MySQL官方網(wǎng)站上現(xiàn)在提供4.1、5.0、5.1、5.4和6.0等版本的下載。當(dāng)然,官方網(wǎng)站上也提供一些很老的版本的MySQL的下載。但是,5.4版本現(xiàn)在處于測試階段,6.0版本還處于開發(fā)當(dāng)中。根據(jù)MySQL的開發(fā)情況,可以將MySQL分為Alpha、Beta、Gamma和Gen
29、erally Available(GA)等版本。這幾種版本的說明如下。q Alpha。該版本處于開發(fā)階段,可能會(huì)增加新的功能或進(jìn)行重大修改;q Beta。該版本處于測試階段,開發(fā)已經(jīng)基本完成,但沒有進(jìn)行全面的測試;q Gamma。該版本是發(fā)行過一段時(shí)間的Beta版,比Beta版要穩(wěn)定一些;q Generally Available(GA)。該版本已經(jīng)足夠穩(wěn)定,可以在軟件開發(fā)中應(yīng)用了。也有些稱為Production版。%說明:在mysql-essential-alpha-win32.msi中,essential表示該版本包含了MySQL中的必要部分,但不包含一些不常用的部分;“6”表示主版本號(hào),
30、所有版本6的MySQL擁有相同的文件格式;“0”表示發(fā)行級(jí)別;“11”表示該級(jí)別下的版本號(hào);alpha表示該版本處于開發(fā)中;win32表示該版本運(yùn)行在Windows操作系統(tǒng)下;msi是該安裝文件的格式。讀者可以到下載不同版本的MySQL。同時(shí),也可以在百度、谷歌和雅虎等搜索引擎中搜索下載鏈接。筆者在寫本書時(shí)最新的穩(wěn)定版本為。本書中使用的數(shù)據(jù)庫也為5.1.40版本。1.4 如何學(xué)習(xí)數(shù)據(jù)庫數(shù)據(jù)庫已經(jīng)成為軟件系統(tǒng)的一部分,那么學(xué)好數(shù)據(jù)庫將是軟件開發(fā)的一個(gè)必要條件。如何才能學(xué)好數(shù)據(jù)庫,這個(gè)問題沒有確切的答案。筆者在本節(jié)與讀者分享一下自己學(xué)習(xí)的經(jīng)驗(yàn)。學(xué)好數(shù)據(jù)庫,最主要的是要多練習(xí)。筆者將自己學(xué)習(xí)數(shù)據(jù)庫的
31、方法總結(jié)如下:1多上機(jī)實(shí)踐要想熟練的掌握數(shù)據(jù)庫,就必須經(jīng)常上機(jī)練習(xí)。只有在上機(jī)實(shí)踐中才能深刻體會(huì)數(shù)據(jù)庫的使用。通常情況下,數(shù)據(jù)庫管理員工作的時(shí)間越長,其工作經(jīng)驗(yàn)就越豐富。很多復(fù)雜的問題,都可以根據(jù)數(shù)據(jù)庫管理員的經(jīng)驗(yàn)來很好地解決。上機(jī)實(shí)踐的過程中,可以將學(xué)到的數(shù)據(jù)庫理論知識(shí)理解得更加透徹。本書后面的章節(jié)都會(huì)有上機(jī)實(shí)踐的小節(jié)。希望通過這些實(shí)踐能夠讓讀者對(duì)每個(gè)章節(jié)的內(nèi)容都能理解得很透徹。2多編寫SQL語句SQL語句是數(shù)據(jù)庫的靈魂。數(shù)據(jù)庫中的很多操作都是通過SQL語句來實(shí)現(xiàn)的。雖然現(xiàn)在的數(shù)據(jù)庫都有易用的圖形界面,可以直接在圖形界面上創(chuàng)建數(shù)據(jù)庫和表。但是,圖形界面卻掩蓋了這些操作是如何實(shí)現(xiàn)的。只有經(jīng)常使用SQL語句來操作數(shù)據(jù)庫中的數(shù)據(jù),讀者才可以更加深刻地理解數(shù)據(jù)庫。本書為讀者準(zhǔn)備了很多使用SQL語言編程的例子。希望讀者能夠通過編寫SQL語句能夠更好地學(xué)習(xí)數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年五家渠市北海街消防救援站政府專職消防員第四季度第二批招錄8人備考題庫完整答案詳解
- 2025年雄安國創(chuàng)中心科技有限公司校園招聘備考題庫完整答案詳解
- 廣晟控股集團(tuán)2026屆校園招聘備考題庫及完整答案詳解1套
- 2025年上海對(duì)外經(jīng)貿(mào)大學(xué)公開招聘工作人員備考題庫及完整答案詳解1套
- 2025年建甌市步月果蔬專業(yè)合作社招聘備考題庫及答案詳解1套
- 2025年河池市人民醫(yī)院招聘77人備考題庫含答案詳解
- 2025年廣西上林縣建林產(chǎn)業(yè)投資有限責(zé)任公司招聘備考題庫及參考答案詳解一套
- 2025年甘肅省人民醫(yī)院公開招聘皮膚科、眼科專業(yè)人才備考題庫及完整答案詳解1套
- 2025年農(nóng)村電商物流時(shí)效五年提升路徑報(bào)告
- 2025年重慶紅十字會(huì)醫(yī)院常年引才招聘備考題庫及答案詳解參考
- AQ 1097-2014 井工煤礦安全設(shè)施設(shè)計(jì)編制導(dǎo)則(正式版)
- 廣州城市化發(fā)展分析報(bào)告
- 全球職等系統(tǒng)GGS職位評(píng)估手冊
- 科來網(wǎng)絡(luò)回溯分析系統(tǒng)深圳超算測試報(bào)告
- AOI檢查缺陷識(shí)別對(duì)照表
- 脊髓損傷患者的心態(tài)調(diào)整及支持
- 大學(xué)體育(健美操)學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 讀后續(xù)寫救援類-火海救人+講義 高考英語專題復(fù)習(xí)
- 旅責(zé)險(xiǎn)統(tǒng)保項(xiàng)目服務(wù)手冊
- GB/T 31989-2015高壓電力用戶用電安全
- GB/T 14155-2008整樘門軟重物體撞擊試驗(yàn)
評(píng)論
0/150
提交評(píng)論