6.3数据库的物理实现
数据库设计的最后阶段是确定数据库在物理设备上的存储结构和存取方法,也就是设计数据库的物理数据模型。
6.3.1建立VFP的数据表
数据表也简称表,在VFP中数据表一般应当包含在数据库中,叫做数据库表(简称库表);但是也可以独立存在,叫做自由表。
数据库逻辑数据模型的一个关系对应了VFP软件中的一个表,关系的属性对应了表的字段,关系框架对应了表结构,关系元组对应了表记录。
1.建立数据表结构
(1)设计数据表。在利用VFP创建一个新的数据表文件以前,应当根据逻辑模型和数据字典先分析和设计数据表。需要确定数据表名称,所含字段名称、类型、宽度以及应当建立的索引字段等。
(2)创建数据表。在VFP的主窗口,单击工具栏“新建”按钮,打开“新建”对话框。在文件类型框中选定“表”选项,单击“新建”按钮,打开“创建”新文件的对话框。
在表设计器中我们已经可逐次键入字段名、类型、宽度及小数位数的信息。
2.数据表记录的输入
在创建数据表时可以根据系统提示直接输入记录,但是也可以暂时不输入记录。没有记录只有结构的数据表叫做空表。
文件有两种打开方式,“以只读方式打开”的文件是不能编辑修改的。因为不需要“共享”数据,我们选择用“独占”方式打开文件。单击“确定”按钮后数据表文件被打开。
(3)追加记录。首先在主菜单的“显示”下拉菜单中,单击“刘览”选项,打开表的浏览窗口。
①追加一条记录。②连续追加。③成组追加。
3.浏览数据表记录
6.3.2建立VFP的数据库
前面建立的表都是自由表,而实际上一个应用系统总是由多个相关表构成的。要在多个自由表之间建立联系,必须通过数据库来实现。
数据库本身是不存储数据的,它只存储表、视图及它们之间的关系等。在数据库中的表叫做数据库表,数据库为数据表提供了数据字典、各种数据保护和数据管理功能,所以数据库表比自由表要完善得多。一个数据库是由数据库文件(。DBC)、数据库备注文件(。DCT)和数据库索引文件(。DCX)H类文件组成的。
l.建立数据库文件
2.创建数据库表
可以直接在数据库中建立数据表,也可以将自由表添加到数据库中,但是不能将另一个数据库中的表拉到当前数据库中来。可以在同一个数据库中建立多个表。
(1)添加数据表。打开选定数据库的“数据库设计器”窗口,在“数据库设计器”工具栏中,单击“添加表”选项,将会弹出“打开”窗口,选择要添加的表后,单击“确定”按钮,就可以把一个自由表添加到当前数据库中,并将自由表变成数据库表。
(2)创建数据库表。也可以在数据库设计器中直接创建数据表。首先单击“数据库设计器”工具栏的“新建表”按钮,然后在对话框中 单击“新建表”按钮,将打开数据库“表设计器”。
通过这几个控制区信息的描述,可以实现数据库对数据表的管理功能。
数据库表添加或创建完成以后,关闭数据库设计器窗口。包含了数据表的数据库文件就保存在外存储器中。
3.数据库文件的打开与关闭
(1)数据库文件的打开。一般通过单击主菜单“文件”下拉菜单的“打开”功能。在弹出的“打开”对话框窗口选定数据库文件后,单击“打开”按钮打开。
在打开一个数据库表的时候,系统也会自动先打开其数据库文件,然后再打开选定的表。
(2)数据库文件的关闭。除了可以通过像关闭其他Windows窗口一样,关闭“数据库设计器”窗口来关闭当前数据库以外,还可以使用专门的命令来关闭数据库。
6.3.3设置数据表的索引
1.索引表和索引文件
用户对数据表常常会有不同的需求,为了加快数据的检索、显示、查询和打印速度,就需要对文件中的记录顺序进行重组。实现的方法一般有两种:一种叫做排序;另一种叫做索引。
排序的作用是按指定字段或字段组中数据值的大小顺序,以递增(升序)或递减(降序)方式重新排列全部数据记录,并生成一个新的数据表文件。
索引不建立一个新的数据表文件,只是按照给定字段表达式值的大小,生成一个索引表,并使数据表中的记录按索引表的要求以递增(升序)或递减(降序)顺序显示。
索引技术除可以重新排列数据表记录的前后顺序外,在建立数据表间的关联时,或者利用SQL语言建立查询、视图时,都必须*索引技术来支持。
2.索引关键字的类型
索引关键字:是由一个或若干个字段构成的索引表达式。索引表达式的类型决定了不同的索引方式。VFP系统提供了四种不同的类型,它们分别是主索引、候选索引、普通索引和惟一索引。
(1)主索引。主索引是能够惟一地确定数据表中一条记录的字段或字段组合表达式;要求该字段或字段组合表达式的值,在数据表的全部记录中都不能出现重复。
主索引只能在数据库表中创建和使用,而且一个数据表只能指定一个主索引。表的主索引就相当于关系的主码。
(2)候选索引。候选索引像主索引一样,是能够惟一地确定数据表中一条记录的字段或字段组合表达式。但是,一个数据表允许建立多个候选索引,可以在数据库表或自由表中创建候选索引。如果将一个包含了重复数据的字段指定为候选索引,系统会返回一个出错信息,并禁止创建该索引。表的候选索引相当于关系的候选码。
(3)普通索引。普通索引允许数据表中各记录的索引字段或字段组合表达式的值相同,而且既允许在数据库表中创建,也允许在自由表中创建。
(4)唯一索引。唯一索引是VFP为保持与低版本软件的兼容性而保留的一种索引类型,一般情况下很少使用。它允许数据表中各记录的索引字段,或字段组合表达式的值相同,但是在索引表中只保留数据表中与索引字段值相同的第一条记录。
3.创建索引文件
可以使用命令建立索引文件,但是利用表设计器创建索引文件更加直观、方便。结构复合索引文件可以在创建数据表时建立,也可以对已经建立好的数据表创建或修改索引。
4.索引的操作
(l)打开与关闭。要使用索引,必须先要打开索引。结构复合索引总是随着数据表打开,一旦数据表文件关闭,相应的索引文件也就自动关闭了。
(2)确定主索引。结构复合索引打开后,其中的索引标识(Tag)并不起作用,数据表记录顺序仍然保持着原始自然排列。必须要执行确定主索引的操作后,数据表记录的排列顺序才会跟着变化。
在程序中常常使用命令方式确定当前主索引。
(3)删除索引标识。要删除结构复合索引文件中的索引标识,应当打开数据表文件,并打开其表设计器对话框。在“索引”页卡中选定要删除的索引标识后,单击“删除”按钮删除。
6.3.4创建数据表之间的关联
对于数据库中各相关数据表之间的联系必须通过建立关联来实现。
数据表是和关系相对应的,所以数据表之间的联系也可以分为一对一、一对多和多对多三类。但是在实际处理时,往往把一个多对多的联系分解成两个一对多的联系处理。
1.创建关联
在VFP中,表间的联系有“永久性关联”和“临时性关联”两种:临时性关联只是在使用时临时建立的表间联系,一旦关闭数据表则临时性关联也就消失了;永久性关联是被存放在数据库中的数据表间联系,它将随数据库长期保存,随着数据库的打开而打开、关闭而关闭。
在创建数据表之间的关联时,当前表叫做父表,要关联的表叫做子表。必须保证两个要建立关联的数据表中存在同名字段;同时要求每个数据表事先分别对该字段建立了索引。
(1)建立表间的一对一关系。首先,要使两个表都具有同一属性的字段;其次,定义父表与子表中同名宇段为主索引字段或候选索引字段。由于两个表中的同一属性的字段值都是惟一的,因此两个表之间的关联就是“一对一”的。
(2)建立表间的一对多关系。首先,要使两个表都具有同一名称、属性的字段;其次,定义父表中该字段为主索引字段或候选索引字段(其字段值是惟一的),子表中与其同名的字段为普通索引字段。由于两个表中的同一属性的字段值是一对多的关系,因此可以创建两个表之间的“一对多”的关系。
2.调整或删除关联
修改主要有两个方面:
(l)删除关联。在数据库设计器对话框窗口中,用鼠标左键单击关联线,该连线变粗了则说明它已经被选中。如果要删除可敲[Del]键,也可以单击鼠标右键在弹出对话框窗口中单击“删除关系”选项。
(2)编辑关联。在数据库设计器对话框窗口中,用鼠标左键单击关联线,该连线变粗了则说明它已经被选中。在主菜单“数据库”选项的下拉菜单中单击“编辑关系”选项,也可以单击鼠标右键在弹出对话框窗口中单击“编辑关系”选项,这样将会打开其对话框窗口。
可以在“表”和“相关表”的下拉列表框中重新选择新的相应索引字段。
6.3.5创建视图
在数据库的概念结构设计中,用户的局部概念模式是全局概念模式的子集,叫做用户模式、外模式,它是从用户的观点看到的数据库,所以也叫做用户的视图。
在VFP中,视图是数据库的一个部分,分为本地视图和远程视图两类。本地视图是利用本地数据库表、自由表及其他视图建立在本地服务器上的视图。远程视图是利用远程服务器中的数据建立的视图。视图也以文件的形式保存在存储器中,文件扩展名为。VUE.视图是一种特殊类型的数据表,它往往由一个或多个表(或视图)中的部分字段或部分记录组成。虽然从用户的角度看,视图也像数据表一样有自己的名字,相应的字段、记录,具备了一般数据表的特征,可是在实际存储器中并没有这样的数据实体;在数据库中仅存放了与关联数据表相应的连接关系和操作要求。所以该视图可称为“虚表”或逻辑表。一般建立视图的目的有三个:
①数据库系统是供多用户使用的,不同的用户只能查看与自己相关的一部分数据,以保障数据的安全和完整。视图可以为每个用户建立自己的数据集合。
②为了保证数据表具有较高的范式,往往将一个数据集合分解成多个相关的数据表。而在使用多个表的数据时,将各表中有用的数据集中到一个视图是最方便的办法。
③简化对数据库的操作管理。只要事先将各表中相关数据项集中放在一个视图中,通过视图就可以同时更新各表中的数据。(以上内容仅供参考)