欢迎来到天天文库
浏览记录
ID:39992348
大小:554.50 KB
页数:89页
时间:2019-07-16
《visualfoxpro第3章数据库与表的创建及使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库概述数据库的创建和使用表的创建和使用永久性关系与参照完整性第3章数据库与表的创建及使用3.1数据库概述3.1.1数据库的设计过程第1步:确定建立数据库的目的,这有助于确定需要VFP保存哪些信息;第2步:确定需要的表;在明确了建立数据库的目的之后,就可以着手把信息分成独立的主题,例如“Student”(学生情况)或“Grade”(学生成绩)等。每个主题都可以是数据库中的一个表。第3步:确定所需字段;确定在每个表中保存哪些信息。在表中,每类信息称为一个字段,浏览表时在表中显示为一列。例如,在Student表中,可以有这样的字段:“学号”、“姓名”、“性别
2、”等。第4步:确定关系;分析每个表,确定一个表中的数据和其它表中的数据有何关系。必要时,可以在表中加入字段或创建一个新表来明确关系。第5步:设计求精。对设计进一步分析,查找其中的错误。创建表时,在表中加入几个示例记录,看能否从表中得到所想要的结果。1.分析数据需求首先列出需数据库回答的问题清单。如:本学期每个人每门课的期末考试成绩是多少?有哪些人的哪些课程不及格?哪些学生的学业成绩达到了获奖学金的标准?哪些学生在考试中哪门课程舞弊了?等等。其次收集所有的表单和报表。这些表单和报表包含了应该由数据库提供的各种信息。如期末考试成绩需要录入哪些信息等。最后,期末
3、考试成绩册如何打印等等。2.确定需要的表确定数据库表是数据库设计过程中技巧性最强的一步。应注意以下几个方面的问题:■一个表只保存一个主题的内容;■同一信息只保存一次,这将减少出错的可能性;■防止删除有用信息。以建立Gxglxt数据库中的表为例:在学习成绩表中,每位学生所学的课程不属于一位学生,因而需要有一个学习课程表。同样,一个班级不只一名学生,要有一个班级主题的表等。Student表和Grade表都与学生有关,但关于学生个人情况的信息保存在Student表中,Grade表中只保存与成绩有关的信息。当一个班的学生毕业后,可能要删除这个班级,但不能删除这个专
4、业,最好的方法是建立一个“专业(Specialty)”表。3.确定表的字段确定表字段的几点技巧:■每个字段直接和表的主题相关;■不要包含可推导得到或通过计算可以得到的字段;■收集所需的全部信息;■以最小的逻辑单位存储信息。使用主关键字段■VFP不允许在主关键字中有重复值或null值。因此,不能选择包含有这类值的字段作为主关键字。■因为要用主关键字的值来查找记录,所以它不能太长,以方便记忆和键入。主关键字可由一定长度的字母和数字组成,或是某一范围内的值。■主关键字的长度直接影响数据库的操作速度,因此,在创建主关键字时,该字段值最好使用能满足存储要求的最小长度
5、。4.确定表之间的关系表之间有三种关系:即一对一关系、一对多关系和多对多关系■在一对一关系在实际应用中不常见,因为两个表之间如果是“一对一”关系,则通常可以将他们合并成一个表。■在一对多关系中要建立这样的关系,就要把关系中“一方”的主关键字字段添加到“多方”的表中。在关系中,“一方”用主关键字或候选索引关键字,而“多方”使用普通索引关键字。■在多对多关系中向VFP正确指定关系之前,需要改变数据库的设计,即创建第三个表,把多对多关系分解为二个一对多关系。这第三个表称作“纽带表”,纽带表可能只包含这两个表的主关键字,也可能包含其它信息。5.设计的优化对所设计的
6、表分析,查找是否存在如下问题:■表中是否带有大量的并不属于这个主题的字段?■表中是否有些字段由于对很多记录不适用而始终保持空白?■是否有大量的表包含了同样的字段?■是否遗忘了字段?是否有需要的信息没包括进去?如果有,它们是否属于已创建的表?如果不包含在已创建的表中,那就需要另外创建一个表。■是否为每个表选择了合适的主关键字?在使用这个主关键字查找具体记录时,它是否很容易记忆和键入?■是否有字段很多、记录却很少的表,而且许多记录中的字段值为空?查找到存在的问题后,就要修改表的结构,以改进设计方案。3.1.2数据库的组成从项目管理器窗口中可以看出VFP数据库包
7、含5个项目:表、本地视图、连接和存储过程。1.表(Table)表式存放数据的容器,而数据库又是表的容器,VFP中表可以分为:数据库表和自由表。表与数据库之间的相关性是通过表文件和库文件之间的双向链表实现的。数据库文件前链前链前链前链后链表文件后链表文件后链表文件后链表文件2.视图所谓视图是由一个或多个表组合成的一个“虚表”,VFP中的视图分为本地视图和远程视图。特点:(1)使用查询语句从一个或多个表中获得数据,与查询相似(2)虽然是虚表,但可以对其内容进行更行。连接连接是保存在数据库中的一个定义,指定了数据源的名称,用于连接远程数据库,来创建远程视图。存储
8、过程存储过程是在数据库数据上执行特定操作并存储在数据库文件中的程序
此文档下载收益归作者所有