自由表和数据库表.ppt





《自由表和数据库表.ppt》由会员分享,可在线阅读,更多相关《自由表和数据库表.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如何建立数据库表如何将表放入库中重点内容:重点内容:第七讲 数据库一、什么是数据库?VFP中的数据库是一个逻辑上的概念和手段,是一个容器,通过一组系统文件统一组织和管理相互关联的数据库表及相关的数据库对象。例如,将扩展名为DBF的数据库表文件组织在一起管理,使它们成为相互关联的数据集合。它不是简单的数据存储,而是用于存储数据库表的属性、组织、关联和视图等的过程。在建立VFP数据库时,相应的数据库名称实际是扩展名为.dbc的文件名,与之相关的还会自动建立一个扩展名为.dct的数据库备注文件和一个扩展名为.dcx的数据库索引文件,这三个文件是供VFP数据库管理系统管理数据库使用的,用户一般不能直接
2、使用这些文件。二、设计数据库的基本步骤:1.分析数据需求:确定需要数据库保存那些信息。2.确定需要的表:按不同的主题将信息分配到不同的数据表中。3.确定所需字段:确定每个表中要保存哪些信息。4.确定表间联系:分析数据库中的表间联系。5.完善设计:对设计进一步分析,查找错误,对设计方案进一步完善。1、分析数据需求 数据库设计的第一步是明确数据库的使用目的。也就是说你需要从数据库中得到哪些信息。明确目的之后,就可以确定需要保存那些主题的信息(表),以及每个主题需要保存哪些信息(字段)。若要创建高效的应用程序,必须首先分析数据需求,推敲数据库需要回答哪些问题,然后设计相应的数据库、表和索引,以满足这
3、些需求。设计数据库时要充分考虑到数据库可能的扩充和改变,怎样才能提高数据库的灵活性,也只有创建一个设计灵活的数据库,才能保证所建立的应用程序具有较高的性能。2、确定数据库表 在关系型数据库中,每一个关系都是一个二维表。在明确了建库目的之后,首先分离那些需要作为单个主题而独立保存的信息,然后告诉Visual FoxPro这些主题之间有何联系,以便在需要时把正确的信息组合在一起。通过将不同的信息分散在不同的表中,可以使数据的组织工作和维护工作更简单,同时也容易保证建立的应用程序具有较高的性能。确定数据库中需要的表是数据库设计过程中技巧性最强的一步。因为仅仅根据需要从数据库中得到的结果(包括要打印的
4、报表、要使用的表单等),只能确定需要数据库回答的问题。至于表的结构、表与表之间的联系,只能根据从数据库得到的内容通过分析归纳来确定需要哪些表,并把需要的信息分门别类地归纳到相应的表中。3、确定表中字段字段是表中最小的数据单位,决定了表中要保存的信息类型。为了保证数据的不多余性且不遗漏信息,在确定表所需字段时应考虑:(1)字段的唯一性(2)字段的无关性(3)主关键字(4)外部关键字(1)字段的唯一性描述不同主题的字段应属于不同的表。表中不应有与表的内容无关的数据,必须确保一个表中的每个字段直接描述该表的主题。如果多个表中重复同样信息,这表明在某些表中有不必要的字段,应将其删除。如果相同信息出现多
5、次,不仅浪费存储空间,而且会增加出错的可能性,给数据库的维护带来很多麻烦。字段是表中最小的数据单位,决定了表中要保存的信息类型。(2)字段的无关性就是说在不影响其他字段的情况下,必须能够对任意字段进行修改。比如信息表里的年龄可以通过出生日期计算出来,那么就没必要让年龄和出生日期这两个字段同时出现,一可以防止出错,而还可以节省空间。(3)主关键字由表中一个或多个字段构成,是用来标识每个记录的信息,如身份证号、学号,VF可以利用他迅速关联多个表中的数据,并把数据组合在一起注意:不允许有重复值和null值,不能太长(4)外部关键字用于被其他表中的主关键字“链接”的字段就是所谓的外部关键字,一般在创建
6、表的时候就顺便设置,以方便建立表之间的联系4、确定表之间的联系 经过上面的步骤,已经把信息分成了各个表,在每个表中可存储各自的数据。可是,这些表是孤立的,还需要在这些表之间定义联系。VF中表之间的联系归结起来总共有三种:(1)一对一联系(一个单位人事部的职工表跟财务部的工资表)(2)一对多联系(一个班里有多个学生,1个学生只能在一个班)在一对多联系中,位于“一”端的表称为父表,和父表关联的那个表为子表。父表也称为主表或主控表,子表又称为相关表或受控表。在一对多联系中,位于“一”端的表中用于建立联系的字段必须是主关键字字段,而位于“多”端的表中用于建立联系的字段是外部关键字字段。(3)多对多联系
7、(学生与课程的关系)在Visual FoxPro中,如果表一的一个记录在表二中可以对应多个记录,同样表二中的一个记录在表一中也可以对应多个记录,则两表之间就是多对多的联系。因为不好管理和维护,一般在具有多对多联系的两个表之间创建第三个表:“纽带表”。什么是纽带表?什么是纽带表?在在Visual FoxProVisual FoxPro中,把用于分解多对多联系的表称为中,把用于分解多对多联系的表称为“纽带表纽带表”。因为它在两表之间起着纽带的作用,可以把因为它在两表之间起着纽带的作用,可以把两个表的主关键字两个表的主关键字都放在这个都放在这个纽带表中。纽带表可以只包含它所连接的两个表的主关键字,也
8、可以包含纽带表中。纽带表可以只包含它所连接的两个表的主关键字,也可以包含其它信息。在纽带表中,两个字段连在一起就能使每个记录具有其它信息。在纽带表中,两个字段连在一起就能使每个记录具有唯一唯一值。值。例如,因为学生学习的每门课程都有相应的成绩,所以可以通过例如,因为学生学习的每门课程都有相应的成绩,所以可以通过“成绩成绩”将将“课程课程”和和“学生学生”联系起来。所以联系起来。所以“成绩成绩”表就是表就是“学生学生”表和表和“课程课程”表之间的表之间的“纽带表纽带表”。5、完善数据库 在设计数据库时,由于信息复杂和情况变化会造成考虑不周,设计出来的系统中会存在一些问题。例如,有些表没有包含属于
9、自己主题的全部字段,或者包含了不属于自己主题的字段。此外,在设计数据库时经常忘记定义表与表之间的联系,或者定义的联系不正确,或没有将具有多对多联系的表分成两个一对多联系的表等等。这些问题经常会使设计出来的数据库难以维护和使用,因此在初步确定了数据库需要包含哪些表、每个表包含哪些字段以及各个表之间的联系以后,还要重新研究一下设计方案,检查可能存在的缺陷,并进行相应的修改。只有通过反复修改,才能设计出一个完善的数据库系统。实例:建立数据库“学生”(菜单操作)(1)学生表学号 姓名 年龄(2)课程表 课程号 课程名(3)成绩表学号 课程号 成绩三、对数据库的操作1、建立数据库:create data
10、base 数据库名2、打开数据库:open database 数据库名 EXCLUSIVESHAREDNOUPDATEVALIDATE说明:EXCLUSIVE 以独占的方式打开SHARED以共享方式打开NOUPDATE 以只读方式打开VALIDATE打开时检查数据的合法性此命令不会自动打开数据库设计器(常在程序中使用)打开数据库时,表不会自动打开数据库不打开时,仍可使用USE 命令打开表。同一时刻可以打开多个数据库,但在同一时刻只有一个当前数据库指定当前数据库的命令是:SET DATABASE TO SET DATABASE TO 使所有打开的数据库都不是当前数据库。也可以用“常用”工具栏中的
11、按钮来选择当前数据库3、关闭数据库:close database【all】4、修改数据库:modify database 数据库名nowaitnoedit5、删除数据库:delete database 数据库名deletetablesrecycle说明:deletetables 同时删除包含的表 recycle放入回收站 Set safety on/off用于设置在删除时是否给出提示信息 On 提示是否删除(系统默认)Off 不给出任何提示,直接删除数据库文件6、设置当前数据库:set database to 数据库名7、显示当前数据库结构:display database to 数据库名四、
12、对数据库中表的操作1、建立数据库表“数据库”菜单“新建表”命令;“数据库设计器”工具栏中“新建”按钮;快捷菜单;“文件”菜单“新建”命令;命令方式(数据库打开时):CREATE 表文件名.DBF2、自由表(1)数据库表与自由表自由表不属于数据库中的表就是自由表。自由表可以被移入数据库使之成为数据库表,数据库表也可以移出数据库成为自由表。自由表无法实现数据完整性,自由表不支持主索引,不能建立字段有效性规则,也不支持在表之间建立永久性联系。(2)将自由表添加到数据库菜单法:“数据库”“添加表”命令方式:add table 表名 name 长表名注意:一个表只能隶属于一个数据库。(3)从数据库中移出
13、表菜单法:在数据库设计器中选择要移出的表;“数据库”“移去”。命令方式:remove table 表名deleterecycle3、数据库表与自由表的区别:数据库表比自由表多长表名和长字段名数据库表中的字段比自由表中的字段多四个特性数据库表比自由表的索引多一种类型数据库中表与表之间存在永久性关联数据库中表与表之间存在参照完整性区别1、数据库表比自由表多长表名和长字段名类型类型长字段名长字段名长表名长表名自由表自由表1010个字符个字符无无数据库表数据库表128128个字符个字符支持(支持(128128个字符)个字符)如何设置表的长表名和长字段名 设置长表名:打开“表设计器”选择“表”页面在“表
14、名”文本框中输入“长表名”设置长字段名:将字段名加长注意:长表名与表名无任何关系,并不是将表名加长就是长表名数据库表所拥有的长表名是指它对表的原名与长表名同时认可区别区别2 2、数据库表中的字段比自由表中的字段多四个特性、数据库表中的字段比自由表中的字段多四个特性1 1)显示组框)显示组框2 2)字段有效性)字段有效性设置步骤设置步骤:(:(1 1)选中该字段)选中该字段 (2 2)设置规则、信息、默认值)设置规则、信息、默认值例例1 1:规则:基本工资:规则:基本工资500 and 500 and 基本工资基本工资20002000 信息:信息:“你错了!老板规定工资必须在你错了!老板规定工资
15、必须在500-1000500-1000之间,请重新输入之间,请重新输入”默认值:默认值:700700例例2 2:规则:性别:规则:性别=男男 or or 性别性别=女女 信息:信息:“性别必须是男或者女,请重新输入性别必须是男或者女,请重新输入”默认值:默认值:女女 3 3)匹配字段类型到类)匹配字段类型到类4 4)字段注释)字段注释区别区别3 3、数据库表比自由表的索引多一种类型、数据库表比自由表的索引多一种类型 索引:是由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。索引:是由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。创建索引是创建一个由指向创建索引是创建一个由
16、指向.dbf.dbf文件记录的指针构成的文件。他就如同书的目文件记录的指针构成的文件。他就如同书的目录,通过目录,读者可以快速找到所需要的内容,索引可以使用户快速找到表录,通过目录,读者可以快速找到所需要的内容,索引可以使用户快速找到表中的数据。中的数据。VFPVFP提供四种类型的索引。提供四种类型的索引。1 1)索引种类:)索引种类:(1 1)主索引)主索引也叫主关键字,是用来限定一列数据不允许出现重复值的索引;一个数据库表也叫主关键字,是用来限定一列数据不允许出现重复值的索引;一个数据库表只能有一个主索引;自由表没有主索引。只能有一个主索引;自由表没有主索引。(2 2)候选索引)候选索引在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自由 数据库

限制150内