自由表和数据库表.ppt_第1页
自由表和数据库表.ppt_第2页
自由表和数据库表.ppt_第3页
自由表和数据库表.ppt_第4页
自由表和数据库表.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何建立数据库表 如何将表放入库中,重点内容:,第七讲 数据库,一、什么是数据库? VFP中的数据库是一个逻辑上的概念和手段,是一个容器,通过一组系统文件统一组织和管理相互关联的数据库表及相关的数据库对象。例如,将扩展名为DBF的数据库表文件组织在一起管理,使它们成为相互关联的数据集合。它不是简单的数据存储,而是用于存储数据库表的属性、组织、关联和视图等的过程。 在建立VFP数据库时,相应的数据库名称实际是扩展名为.dbc的文件名,与之相关的还会自动建立一个扩展名为.dct的数据库备注文件和一个扩展名为.dcx的数据库索引文件,这三个文件是供VFP数据库管理系统管理数据库使用的,用户一般不能直接使用这些文件。,二、设计数据库的基本步骤: 1. 分析数据需求:确定需要数据库保存那些信息。 2. 确定需要的表:按不同的主题将信息分配到不同的数据表中。 3. 确定所需字段:确定每个表中要保存哪些信息。 4. 确定表间联系:分析数据库中的表间联系。 5. 完善设计:对设计进一步分析,查找错误,对设计方案进一步完善。,1、分析数据需求 数据库设计的第一步是明确数据库的使用目的。也就是说你需要从数据库中得到哪些信息。明确目的之后,就可以确定需要保存那些主题的信息(表),以及每个主题需要保存哪些信息(字段)。 若要创建高效的应用程序,必须首先分析数据需求,推敲数据库需要回答哪些问题,然后设计相应的数据库、表和索引,以满足这些需求。 设计数据库时要充分考虑到数据库可能的扩充和改变,怎样才能提高数据库的灵活性,也只有创建一个设计灵活的数据库,才能保证所建立的应用程序具有较高的性能。,2、确定数据库表 在关系型数据库中,每一个关系都是一个二维表。在明确了建库目的之后,首先分离那些需要作为单个主题而独立保存的信息,然后告诉Visual FoxPro这些主题之间有何联系,以便在需要时把正确的信息组合在一起。通过将不同的信息分散在不同的表中,可以使数据的组织工作和维护工作更简单,同时也容易保证建立的应用程序具有较高的性能。 确定数据库中需要的表是数据库设计过程中技巧性最强的一步。因为仅仅根据需要从数据库中得到的结果(包括要打印的报表、要使用的表单等),只能确定需要数据库回答的问题。至于表的结构、表与表之间的联系,只能根据从数据库得到的内容通过分析归纳来确定需要哪些表,并把需要的信息分门别类地归纳到相应的表中。,3、确定表中字段 字段是表中最小的数据单位,决定了表中要保存的信息类型。 为了保证数据的不多余性且不遗漏信息,在确定表所需字段时应考虑: (1)字段的唯一性 (2)字段的无关性 (3)主关键字 (4)外部关键字,(1)字段的唯一性 描述不同主题的字段应属于不同的表。表中不应有与表的内容无关的数据,必须确保一个表中的每个字段直接描述该表的主题。如果多个表中重复同样信息,这表明在某些表中有不必要的字段,应将其删除。如果相同信息出现多次,不仅浪费存储空间,而且会增加出错的可能性,给数据库的维护带来很多麻烦。字段是表中最小的数据单位,决定了表中要保存的信息类型。 (2)字段的无关性 就是说在不影响其他字段的情况下,必须能够对任意字段进行修改。比如信息表里的年龄可以通过出生日期计算出来,那么就没必要让年龄和出生日期这两个字段同时出现,一可以防止出错,而还可以节省空间。 (3)主关键字 由表中一个或多个字段构成,是用来标识每个记录的信息,如身份证号、学号,VF可以利用他迅速关联多个表中的数据,并把数据组合在一起 注意:不允许有重复值和null值,不能太长 (4)外部关键字 用于被其他表中的主关键字“链接”的字段就是所谓的外部关键字,一般在创建表的时候就顺便设置,以方便建立表之间的联系,4、确定表之间的联系 经过上面的步骤,已经把信息分成了各个表,在每个表中可存储各自的数据。可是,这些表是孤立的,还需要在这些表之间定义联系。VF中表之间的联系归结起来总共有三种: (1)一对一联系(一个单位人事部的职工表跟财务部的工资表) (2)一对多联系(一个班里有多个学生,1个学生只能在一个班) 在一对多联系中,位于“一”端的表称为父表,和父表关联的那个表为子表。父表也称为主表或主控表,子表又称为相关表或受控表。在一对多联系中,位于“一”端的表中用于建立联系的字段必须是主关键字字段,而位于“多”端的表中用于建立联系的字段是外部关键字字段。 (3)多对多联系(学生与课程的关系) 在Visual FoxPro中,如果表一的一个记录在表二中可以对应多个记录,同样表二中的一个记录在表一中也可以对应多个记录,则两表之间就是多对多的联系。因为不好管理和维护,一般在具有多对多联系的两个表之间创建第三个表:“纽带表”。,什么是纽带表? 在Visual FoxPro中,把用于分解多对多联系的表称为“纽带表”。因为它在两表之间起着纽带的作用,可以把两个表的主关键字都放在这个纽带表中。纽带表可以只包含它所连接的两个表的主关键字,也可以包含其它信息。在纽带表中,两个字段连在一起就能使每个记录具有唯一值。 例如,因为学生学习的每门课程都有相应的成绩,所以可以通过“成绩”将“课程”和“学生”联系起来。所以“成绩”表就是“学生”表和“课程”表之间的“纽带表”。,5、完善数据库 在设计数据库时,由于信息复杂和情况变化会造成考虑不周,设计出来的系统中会存在一些问题。例如,有些表没有包含属于自己主题的全部字段,或者包含了不属于自己主题的字段。此外,在设计数据库时经常忘记定义表与表之间的联系,或者定义的联系不正确,或没有将具有多对多联系的表分成两个一对多联系的表等等。这些问题经常会使设计出来的数据库难以维护和使用,因此在初步确定了数据库需要包含哪些表、每个表包含哪些字段以及各个表之间的联系以后,还要重新研究一下设计方案,检查可能存在的缺陷,并进行相应的修改。只有通过反复修改,才能设计出一个完善的数据库系统。,实例:建立数据库“学生”(菜单操作) (1)学生表 学号 姓名 年龄 (2)课程表 课程号 课程名 (3)成绩表 学号 课程号 成绩,三、对数据库的操作 1、建立数据库:create database 数据库名 2、打开数据库: open database 数据库名 EXCLUSIVESHAREDNOUPDATEVALIDATE 说明: EXCLUSIVE 以独占的方式打开 SHARED 以共享方式打开 NOUPDATE 以只读方式打开 VALIDATE 打开时检查数据的合法性 此命令不会自动打开数据库设计器(常在程序中使用) 打开数据库时,表不会自动打开 数据库不打开时,仍可使用USE 命令打开表。 同一时刻可以打开多个数据库,但在同一时刻只有一个当前数据库 指定当前数据库的命令是: SET DATABASE TO SET DATABASE TO 使所有打开的数据库都不是当前数据库。 也可以用“常用”工具栏中的按钮来选择当前数据库,3、关闭数据库:close database【all】 4、修改数据库:modify database 数据库名nowaitnoedit 5、删除数据库:delete database 数据库名deletetablesrecycle 说明: deletetables 同时删除包含的表 recycle 放入回收站 Set safety on/off 用于设置在删除时是否给出提示信息 On 提示是否删除(系统默认) Off 不给出任何提示,直接删除数据库文件 6、设置当前数据库:set database to 数据库名 7、显示当前数据库结构: display database to 数据库名,四、对数据库中表的操作 1、建立数据库表 “数据库”菜单“新建表”命令; “数据库设计器”工具栏中“新建”按钮; 快捷菜单; “文件”菜单“新建”命令; 命令方式(数据库打开时):CREATE 表文件名.DBF,2、自由表 (1)数据库表与自由表 自由表不属于数据库中的表就是自由表。自由表可以被移入数据库使之成为数据库表,数据库表也可以移出数据库成为自由表。 自由表无法实现数据完整性,自由表不支持主索引,不能建立字段有效性规则,也不支持在表之间建立永久性联系。 (2)将自由表添加到数据库 菜单法:“数据库”“添加表” 命令方式:add table 表名 name 长表名 注意:一个表只能隶属于一个数据库。 (3)从数据库中移出表 菜单法:在数据库设计器中选择要移出的表;“数据库”“移去”。 命令方式:remove table 表名deleterecycle,3、数据库表与自由表的区别: 数据库表比自由表多长表名和长字段名 数据库表中的字段比自由表中的字段多四个特性 数据库表比自由表的索引多一种类型 数据库中表与表之间存在永久性关联 数据库中表与表之间存在参照完整性,区别1、数据库表比自由表多长表名和长字段名,如何设置表的长表名和长字段名 设置长表名:打开“表设计器”选择“表”页面在“表名”文本框中输入“长表名” 设置长字段名:将字段名加长 注意:长表名与表名无任何关系,并不是将表名加长就是长表名 数据库表所拥有的长表名是指它对表的原名与长表名同时认可,区别2、数据库表中的字段比自由表中的字段多四个特性 1)显示组框 2)字段有效性 设置步骤:(1)选中该字段 (2)设置规则、信息、默认值 例1:规则:基本工资500 and 基本工资2000 信息:“你错了!老板规定工资必须在500-1000之间,请重新输入” 默认值:700 例2:规则:性别=男 or 性别=女 信息:“性别必须是男或者女,请重新输入” 默认值:女 3)匹配字段类型到类 4)字段注释,区别3、数据库表比自由表的索引多一种类型 索引:是由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。创建索引是创建一个由指向.dbf文件记录的指针构成的文件。他就如同书的目录,通过目录,读者可以快速找到所需要的内容,索引可以使用户快速找到表中的数据。VFP提供四种类型的索引。 1)索引种类: (1)主索引 也叫主关键字,是用来限定一列数据不允许出现重复值的索引;一个数据库表只能有一个主索引;自由表没有主索引。 (2)候选索引 在索引关键字中不允许出现重复值,是作为主索引的候选者出现的,对一个表可以创建多个候选索引。一个未选作主关键字的候选索引称之为替补索引,主要功能就是排序。 (3)唯一索引 对于有重复值的记录,在索引文件中只保存第一次出现的索引值,换句话就是说去掉表中重复的记录(表中如果有相同的,只要1个)。 (4)普通索引 在普通索引中,索引关键字段和表达式允许重复值出现,它的功能就是对表中数据进行排序。,2)索引文件类型: (1)独立索引文件 扩展名是.idx 一个索引文件只包含一个索引。 一个表可有多个独立索引文件。 (2) 复合索引文件 扩展名是cdx A、结构索引文件 主名与表文件的主名相同。一个结构复合索引文件可包含多个索引。一个表只有一个结构复合索引文件。其文件名是固定的。 B、非结构复合索引文件 主名不能与表文件的主名相同。一个非结构复合索引文件可包含多个索引。一个表可有多个非结构复合索引文件。 注意:索引文件和表文件分别存储。,3)建立索引 使用表设计器创建或修改索引: (1)创建单字段普通索引 “表设计器”“字段”选项卡“字段名”列选择字段“索引”列选择“升序”或“降序” 单字段普通索引的标识和索引字段的名称相同。 (2)创建复合字段索引 要改变索引的名称、类型或索引表达式,可以在“表设计器”的“索引”选项卡中设置。在“索引”选项卡可以输入“索引名”、选择“索引类型”、设置“索引表达式”以及改变排序的方式(“升序”或“降序”) (3)删选记录 通过在“表设计器”的“索引”选项卡中的“筛选”框中输入一个筛选表达式,可以控制哪些记录可包含在索引中。如果创建索引时,建立了筛选表达式,则在以后使用这个索引时,只处理满足筛选表达式条件的记录。 (4)修改、删除、插入索引 “表设计器”“索引”选项卡: 修改:鼠标单击欲修改处,然后加以修改。 删除:选择欲删除的索引,单击“删除”按钮。 插入:选择欲插入的索引所在的位置,单击“插入”按钮,然后输入或选择索引名、类型和索引表达式。 注意:索引表达式中不能引用通用型和备注型字段。,用命令建立索引: Index on 索引表达式to 文件名/ tag 索引标识符 of 文件名.cdx for 条件 compact ascending/descending uniquecandidateadditive 说明: 索引表达式:它可以是字段名,或包含字段的表达式。 to 文件名:建立一个单独的索引,扩展名为IDX的文件。 tag 索引标识符:多个索引可以创建在一个索引文件中,这种索引称做结构复合索引,其文件名与相关的表同名,并具有CDX扩展名。 compact :是建立一个压缩的IDX文件,复合索引总是压缩的。 ascending/descending:是说明建立升序或降序索引,默认升序。 unique:建立唯一索引 candidate:建立候选索引 additive:说明现在建立索引时不关闭以前的索引。,结构复合索引文件的特点:在“表设计器”中建立的索引存储在结构复合索引文件中。结构复合索引文件具有与表相同的文件名,并且当打开与它同名的表时也自动打开该结构复合索引文件,关闭的同时自动关闭它。当在表中进行记录的添加、修改和删除时,系统会自动对结构复合索引文件中的全部索引记录进行维护。,4)使用索引 (1)打开索引文件:set index to 索引文件名 (2)更改主控索引:set order to 索引文件名/tag 索引标识符asce/desc (3)索引查找:seek 表达式 order 索引文件名/tag 索引标识符asce/desc (4)删除索引:delete tag 索引标识符 delete tag all,区别4、数据库中表与表之间存在永久性关联(永久联系) 关联,也叫联系,是表与表之间的一种链接,一旦在数据库中定义了两个以上的相关表,就应告诉Visual FoxPro这些表之间的联系。这样,当以后在查询、视图、表单以及报表中使用这些表时,Visual FoxPro就会知道如何链接这些表。 操作步骤: 1)为相关的字段建立索引(能建立主索引要尽量建立主索引,不能建立主索引的要建立普通索引) 2)建立永久性关联(从主索引拖往普通索引或主索引) 注意:1)建立联系时,父表的索引一定是主索引。 2)在数据库的两个表中要建立永久联系,要求两个表的索引中至少有一个是主索引,必须先选择主表的主索引,而子表中的索引类型决定了要创建的永久联系的类型:如果子表中的索引类型为主索引或候选索引,则建立起的就是一对一联系;如果子表中的索引类型为普通索引或惟一索引,则建立起的就是一对多联系。,区别5、数据完整性 数据完整性是指保证数据库中的数据正确的特性。数据完整性包括实体完整性、域完整性和参照完整性等。 实体完整性:是保证表中记录惟一的特性,即在一个表中不允许有重复的记录。 域完整性:数据类型的定义属于域完整性的范畴。如定义字段的类型,宽度和取值范围、字段的有效性规则等。 参照完整性:参照完整性与表之间的联系有关,它的大概含义是:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确。 如何建立参照完整性? (1)建立两个表的永久性联系 (2)清理数据库(不能清理时,先做第三步或关闭VF重做) (3)设置参照完整性约束,实例:职工管理数据库,部门(部门编号,部门名称,负责人,电话,地址) 职工(职工号,姓名,身份证号,基本工资,部门编号) 工资(职工号,姓名,基本工资,奖金,津贴,提成,实发工资),实例:图书管理数据库,图书(图书编号,书名,作者,定价,出版社) 读者(借书证号,单位,姓名,联系电话,地址) 借阅(借书证号,图书编号,借书日期),【第一套】【第一题】 【第五套】【第三题】 【第六套】【第一题】 【第七套】【第一题】 【第八套】【第一题】 【第九套】【第一题】 【第十套】【第一题】,作业,1、设计“学生”数据库 2、题库,数据库的操作: 1-1-1、1-1-2、5-3-1、5-3-2、6-1-1、6-1-2、6-1-3、6-1-4、7-1-1、7-1-2、8-1-1、8-1-2、8-1-3、8-1-4、9-1-1、9-1-2、9-1-3、9-1-4、10-1-1、10-1-2、10-1-3、11-1-1、11-1-2、11-1-3、12-1-1、12-1-2、12-1-3、13-1-1、13-1-2、13-1-3、14-1-1、14-1-2、14-1-3、16-1-1、17-1-1、17-1-2、17-1-3、17-1-4、20-1-1、20-1-2、20-1-3、21-1-1、22-1-1、25-1-1、25-1-2、26-1-1、26-1-2、26-1-4、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论