一。什么是數(shù)據(jù)庫(kù)?
我們舉個(gè)例子來(lái)說(shuō)明這個(gè)問(wèn)題:每個(gè)人都有很多親戚和朋友,為了保持與他們的聯(lián)系,我們常常用一個(gè)筆記本將他們的姓名、地址、電話等信息都記錄下來(lái),這樣要查誰(shuí)的電話或地址就很方便了。這個(gè)“通訊錄”就是一個(gè)最簡(jiǎn)單的“數(shù)據(jù)庫(kù)”,每個(gè)人的姓名、地址、電話等信息就是這個(gè)數(shù)據(jù)庫(kù)中的“數(shù)據(jù)”。我們可以在筆記本這個(gè)“數(shù)據(jù)庫(kù)”中添加新朋友的個(gè)人信息,也可以由于某個(gè)朋友的電話變動(dòng)而修改他的電話號(hào)碼這個(gè)“數(shù)據(jù)”。不過(guò)說(shuō)到底,我們使用筆記本這個(gè)“數(shù)據(jù)庫(kù)”還是為了能隨時(shí)查到某位親戚或朋友的地址、郵編或電話號(hào)碼這些“數(shù)據(jù)”。
實(shí)際上“數(shù)據(jù)庫(kù)”就是為了實(shí)現(xiàn)一定的目的按某種規(guī)則組織起來(lái)的“數(shù)據(jù)”的“集合”,在我們的生活中這樣的數(shù)據(jù)庫(kù)可是隨處可見(jiàn)的啊。
二。什么是數(shù)據(jù)庫(kù)管理系統(tǒng)?
圖書管理員在查找一本書時(shí),首先要通過(guò)目錄檢索找到那本書的分類號(hào)和書號(hào),然后在書庫(kù)找到那一類書的書架,并在那個(gè)書架上按照書號(hào)的大小次序查找,這樣很快就能找到我所需要的書。
數(shù)據(jù)庫(kù)里的數(shù)據(jù)像圖書館里的圖書一樣,也要讓人能夠很方便地找到才行。
如果所有的書都不按規(guī)則,胡亂堆在各個(gè)書架上,那么借書的人根本就沒(méi)有辦法找到他們想要的書。同樣的道理,如果把很多數(shù)據(jù)胡亂地堆放在一起,讓人無(wú)法查找,這種數(shù)據(jù)集合也不能稱為"數(shù)據(jù)庫(kù)"。
數(shù)據(jù)庫(kù)的管理系統(tǒng)就是從圖書館的管理方法改進(jìn)而來(lái)的。人們將越來(lái)越多的資料存入計(jì)算機(jī)中,并通過(guò)一些編制好的計(jì)算機(jī)程序?qū)@些資料進(jìn)行管理,這些程序后來(lái)就被稱為"數(shù)據(jù)庫(kù)管理系統(tǒng)",它們可以幫我們管理輸入到計(jì)算機(jī)中的大量數(shù)據(jù),就像圖書館的管理員。
三。Vfp的特點(diǎn)
到現(xiàn)在為止,比較成熟的數(shù)據(jù)庫(kù)產(chǎn)品有很多,小型桌面數(shù)據(jù)庫(kù)如微軟的Access,大型數(shù)據(jù)庫(kù)也有很多,如Sql server數(shù)據(jù)庫(kù)、Mysql數(shù)據(jù)庫(kù)、Oracle數(shù)據(jù)庫(kù)等。這些都是非常優(yōu)秀的數(shù)據(jù)庫(kù)產(chǎn)品,均有龐大的用戶群。但它們多數(shù)有這樣一個(gè)特點(diǎn),它們只是一個(gè)單純的數(shù)據(jù)庫(kù)管理系統(tǒng),或者說(shuō)是一個(gè)數(shù)據(jù)倉(cāng)庫(kù),可以很好的管理、組織存儲(chǔ)在庫(kù)里的數(shù)據(jù),但沒(méi)有編制程序的能力。所以,在編制信息管理系統(tǒng)時(shí),如果要用到以上的數(shù)據(jù)庫(kù)產(chǎn)品,需要使用VB、VC、Delphi等編程語(yǔ)言來(lái)調(diào)用、操縱它們。
而我們正在學(xué)習(xí)的VFP,不僅是一種數(shù)據(jù)庫(kù)管理系統(tǒng),并且也是一種優(yōu)秀的數(shù)據(jù)庫(kù)編程語(yǔ)言。就是說(shuō),使用Vfp不僅能方便地創(chuàng)建和管理數(shù)據(jù)庫(kù),而且能夠直接使用Vfp編制基于該數(shù)據(jù)庫(kù)的信息系統(tǒng)?梢哉f(shuō),從操縱數(shù)據(jù)的角度來(lái)說(shuō),Vfp的效率是最高的,使用它,我們可以輕而易舉的開(kāi)發(fā)出一個(gè)實(shí)用的信息系統(tǒng)。盡管Vfp也有一點(diǎn)缺點(diǎn),比如數(shù)據(jù)庫(kù)的安全性和界面控制能力略差,但和它的簡(jiǎn)便易用及開(kāi)發(fā)程序的高效相比,這一點(diǎn)點(diǎn)不足可以忽略不計(jì)的。
四;靖拍
1.數(shù)據(jù)(Data):存儲(chǔ)在某種媒體上能夠識(shí)別的物理符號(hào)。
2.數(shù)據(jù)庫(kù)(Database):是存儲(chǔ)在計(jì)算機(jī)內(nèi)有結(jié)構(gòu)的數(shù)據(jù)的集合。
3.數(shù)據(jù)庫(kù)管理系統(tǒng)(Database Management System,簡(jiǎn)稱DBMS):是數(shù)據(jù)庫(kù)管理軟件,職能是維護(hù)和管理數(shù)據(jù)庫(kù)。
4.數(shù)據(jù)庫(kù)系統(tǒng)(Database System):是計(jì)算機(jī)系統(tǒng)中引進(jìn)數(shù)據(jù)系統(tǒng)后的系統(tǒng)構(gòu)成,是一個(gè)抽象的概念。數(shù)據(jù)庫(kù)系統(tǒng)由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)和用戶構(gòu)成。
5.實(shí)體:客觀存在并可以相互區(qū)別的事物稱為實(shí)體。實(shí)體可以是實(shí)際事物,比如一個(gè)職工,一個(gè)部門,也可以是抽象事件,比如一次定貨、一場(chǎng)比賽,都可以說(shuō)是一個(gè)實(shí)體。
6.屬性:用于描述實(shí)體的特性稱為實(shí)體的屬性,比如:職工實(shí)體用若干個(gè)屬性(職工號(hào)、姓名、性別、出生日期等)描述。屬性的具體取值稱為屬性值,用于刻畫一個(gè)實(shí)體,比如屬性值的組合(0001,張三,男,1975-12-14)就描述了一個(gè)具體的職工。
7.聯(lián)系:實(shí)體間的對(duì)應(yīng)關(guān)系稱為實(shí)體間的聯(lián)系。
8.聯(lián)系的類型:
(1).一對(duì)一聯(lián)系:如“家庭”和“父親”兩個(gè)實(shí)體。
(2).一對(duì)多聯(lián)系:如“部門”和“職工”兩個(gè)實(shí)體:一個(gè)部門有多名職工,每個(gè)職工只能在一個(gè)部門任職。
(3).多對(duì)多聯(lián)系:如“學(xué)生”和“課程”兩個(gè)實(shí)體,一個(gè)學(xué)生可以選多門課程,一門課程可以由多個(gè)學(xué)生選修。
9.數(shù)據(jù)模型:是數(shù)據(jù)庫(kù)管理系統(tǒng)用于描述實(shí)體與實(shí)體間聯(lián)系的方法。
10.數(shù)據(jù)模型的分類:層次模型、網(wǎng)狀模型、關(guān)系模型及面向?qū)ο竽P。大多?shù)數(shù)據(jù)庫(kù)管理系統(tǒng)(包括Vfp)都采用關(guān)系模型。
11.關(guān)系模型的界面:關(guān)系模型的界面非常簡(jiǎn)單,一個(gè)關(guān)系的邏輯結(jié)構(gòu)就是一個(gè)二維表,如表一:
職工號(hào) | 姓名 | 性別 | 職稱 | 基本工資 |
01 | 張三 | 女 | 講師 | 1000 |
02 | 李四 | 女 | 講師 | 1000 |
03 | 王二 | 男 | 副教授 | 1500 |
04 | 趙強(qiáng) | 男 | 教授 | 1800 |
12.關(guān)系術(shù)語(yǔ):
(1).關(guān)系:一個(gè)關(guān)系就是一張二維表,見(jiàn)上圖,每個(gè)關(guān)系有一個(gè)文件名。在計(jì)算機(jī)中一個(gè)關(guān)系可存儲(chǔ)為一個(gè)文件,在Vfp中稱為“表”。
(2).元組:二維表中水平方向的行稱為元組,每一行是一個(gè)元組。元組對(duì)應(yīng)存儲(chǔ)文件的一條記錄。
(3).屬性:二維表中垂直方向的列稱為屬性,每一列有一個(gè)屬性名,對(duì)應(yīng)文件中的字段。
13.關(guān)鍵字:屬性或?qū)傩灾档慕M合,其值能唯一標(biāo)識(shí)一個(gè)元組。如:在上表中,職工號(hào)可以作為關(guān)鍵字,因?yàn)槁毠ぬ?hào)是唯一的;而“職稱”和“姓名”都不能作為關(guān)鍵字,因?yàn)榫哂型宦毞Q的不止一個(gè)人,“姓名”也 可能有重名的情況。