一。什么是数据库?
我们举个例子来说明这个问题:每个人都有很多亲戚和朋友,为了保持与他们的联系,我们常常用一个笔记本将他们的姓名、地址、电话等信息都记录下来,这样要查谁的电话或地址就很方便了。这个“通讯录”就是一个最简单的“数据库”,每个人的姓名、地址、电话等信息就是这个数据库中的“数据”。我们可以在笔记本这个“数据库”中添加新朋友的个人信息,也可以由于某个朋友的电话变动而修改他的电话号码这个“数据”。不过说到底,我们使用笔记本这个“数据库”还是为了能随时查到某位亲戚或朋友的地址、邮编或电话号码这些“数据”。
实际上“数据库”就是为了实现一定的目的按某种规则组织起来的“数据”的“集合”,在我们的生活中这样的数据库可是随处可见的啊。
二。什么是数据库管理系统?
图书管理员在查找一本书时,首先要通过目录检索找到那本书的分类号和书号,然后在书库找到那一类书的书架,并在那个书架上按照书号的大小次序查找,这样很快就能找到我所需要的书。
数据库里的数据像图书馆里的图书一样,也要让人能够很方便地找到才行。
如果所有的书都不按规则,胡乱堆在各个书架上,那么借书的人根本就没有办法找到他们想要的书。同样的道理,如果把很多数据胡乱地堆放在一起,让人无法查找,这种数据集合也不能称为"数据库"。
数据库的管理系统就是从图书馆的管理方法改进而来的。人们将越来越多的资料存入计算机中,并通过一些编制好的计算机程序对这些资料进行管理,这些程序后来就被称为"数据库管理系统",它们可以帮我们管理输入到计算机中的大量数据,就像图书馆的管理员。
三。Vfp的特点
到现在为止,比较成熟的数据库产品有很多,小型桌面数据库如微软的Access,大型数据库也有很多,如Sql server数据库、Mysql数据库、Oracle数据库等。这些都是非常优秀的数据库产品,均有庞大的用户群。但它们多数有这样一个特点,它们只是一个单纯的数据库管理系统,或者说是一个数据仓库,可以很好的管理、组织存储在库里的数据,但没有编制程序的能力。所以,在编制信息管理系统时,如果要用到以上的数据库产品,需要使用VB、VC、Delphi等编程语言来调用、操纵它们。
而我们正在学习的VFP,不仅是一种数据库管理系统,并且也是一种优秀的数据库编程语言。就是说,使用Vfp不仅能方便地创建和管理数据库,而且能够直接使用Vfp编制基于该数据库的信息系统。可以说,从操纵数据的角度来说,Vfp的效率是最高的,使用它,我们可以轻而易举的开发出一个实用的信息系统。尽管Vfp也有一点缺点,比如数据库的安全性和界面控制能力略差,但和它的简便易用及开发程序的高效相比,这一点点不足可以忽略不计的。
四。基本概念
1.数据(Data):存储在某种媒体上能够识别的物理符号。
2.数据库(Database):是存储在计算机内有结构的数据的集合。
3.数据库管理系统(Database Management System,简称DBMS):是数据库管理软件,职能是维护和管理数据库。
4.数据库系统(Database System):是计算机系统中引进数据系统后的系统构成,是一个抽象的概念。数据库系统由数据库、数据库管理系统和用户构成。
5.实体:客观存在并可以相互区别的事物称为实体。实体可以是实际事物,比如一个职工,一个部门,也可以是抽象事件,比如一次定货、一场比赛,都可以说是一个实体。
6.属性:用于描述实体的特性称为实体的属性,比如:职工实体用若干个属性(职工号、姓名、性别、出生日期等)描述。属性的具体取值称为属性值,用于刻画一个实体,比如属性值的组合(0001,张三,男,1975-12-14)就描述了一个具体的职工。
7.联系:实体间的对应关系称为实体间的联系。
8.联系的类型:
(1).一对一联系:如“家庭”和“父亲”两个实体。
(2).一对多联系:如“部门”和“职工”两个实体:一个部门有多名职工,每个职工只能在一个部门任职。
(3).多对多联系:如“学生”和“课程”两个实体,一个学生可以选多门课程,一门课程可以由多个学生选修。
9.数据模型:是数据库管理系统用于描述实体与实体间联系的方法。
10.数据模型的分类:层次模型、网状模型、关系模型及面向对象模型。大多数数据库管理系统(包括Vfp)都采用关系模型。
11.关系模型的界面:关系模型的界面非常简单,一个关系的逻辑结构就是一个二维表,如表一:
职工号 | 姓名 | 性别 | 职称 | 基本工资 |
01 | 张三 | 女 | 讲师 | 1000 |
02 | 李四 | 女 | 讲师 | 1000 |
03 | 王二 | 男 | 副教授 | 1500 |
04 | 赵强 | 男 | 教授 | 1800 |
12.关系术语:
(1).关系:一个关系就是一张二维表,见上图,每个关系有一个文件名。在计算机中一个关系可存储为一个文件,在Vfp中称为“表”。
(2).元组:二维表中水平方向的行称为元组,每一行是一个元组。元组对应存储文件的一条记录。
(3).属性:二维表中垂直方向的列称为属性,每一列有一个属性名,对应文件中的字段。
13.关键字:属性或属性值的组合,其值能唯一标识一个元组。如:在上表中,职工号可以作为关键字,因为职工号是唯一的;而“职称”和“姓名”都不能作为关键字,因为具有同一职称的不止一个人,“姓名”也 可能有重名的情况。