31数据库概述内容摘要:

区 |别名 ] 如: USE JS ORDER GH SEEK “A0005” 索引的创建和使用 自由表 利用命令创建和修改表结构 永久关系和参照完整性 表之间的永久性关系  库表之间的一种关系,不仅运行时存在,而且 一直保留。  拥有永久关系的表必须在数据库中。  表之间的永久关系使用索引建立。  永久关系的类型决定了使用的索引的类型。  一对多关系中,主表必须用主索引关键字(或主索引标 识),或用候选索引关键字(或候选标识),子表则使用普 通索引关键字(或普通索引标识)。  一对一关系中,两张表必须都用主索引关键字(或主索引标识)或候选索引。 永久关系的作用  在“查询设计器”和“视图设计器”中,自动作为默认连接条件。  作为表单和报表的默认临时关系,在“数据环境设计器”中显示。  用来存储参照完整性信息。 表之间的永久性关系 永久关系的建立 分以下几步进行: • 确定两张具有一对多或一对一关系的表。 • 建立主表的主索引或候选索引。 • 如果是一对多关系,则在子表中以主表的外关键字建立普通索引;如果是一对一关系,则在子表中以与主表中相同的关键字建立索引或候选索引。 • 从主表的主索引或候选索引到子表的相关的索引建立永久关系。 表之间的永久性关系 具体的操作为:  在界面方式下操作,利用“数据库设计器”。  使用命令: 在使用 CREATE TABLE命令创建表时与 FOREIGN KEY 子句一起使用。 如: CREATE TABLE cj(xh C(6),kcdh C(6),cj; N(3,0), FOREIGN KEY xh TAG xh REFERENCE xs) 如果 cj表已经存在,则使用 ALTER TABLE 命令来建立。 ALTER TABLE cj ADD FOREIGN KEY xh TAG; xh REFERENCE xs 删除、编辑修改永久关系 表之间的永久性关系 相关表之间的参照完整性 参照完整性的概念 ——是用来控制数据的一致性,尤其控制数据库相关表之间的主关键字和外部关键字之间数据的一致性。 数据一致性要求相关表之间须满足以下三个规则: ( 1)子表中的每一条记录在对应的主表中必须有一个父记录。 ( 2)在父表中修改记录时,如果修改了主关键字的值,则子表中的相关记录的外部关键字值必须同样修改。 ( 3)在父表中删除记录时,与该记录相关的子表中的记录必须全部删除。 孤立记录 ——子表中的某些记录在主表中没有对应父记录。 设置参照完整性 建立在永久关系的基础上。 参照完整性规则被设置在主表或子表的触发器中,规则的代码保存在数据库的存储过程中。 具体设置: 在“数据库设计器”中,通过永久关系建立。 相关表之间的参照完整性 • 更新规则:级联、限制、忽略 • 删除规则:级联、限制、忽略 • 插入规则:限制、忽略 VFP 数据完整性综述 三类完整性: ( 1)实体完整性 ( 2)参照完整性 ( 3)用户自定义完整性 数据库本身自我约束的完整性规则 实体完整性包括 :字段的数据完整性和记录的数据完整性。 参照完整性指 :相关表之间的数据一致性。 相关表之间的参照完整性 有关数据库及其对象的常用函数  DBC()  DBUSED()  DBGETPROP()  DBSETPROP() DBGETPROP( )函数的利用 例 js表及它所在的 jsxj数据库的注释。 先打开 jsxj数据库,然后 ?DBGETPROP(“jxsj”,”DATABASE”,”Comment”) ?DEGETPROP(“js”,”TABLE”,”Comment”) 例 js表 jbgz字段的标题、注释与默认值。 ?DBGETPROP(“”,”FIELD”,”Caption”) ?DBGETPROP(“”,”FIELD”,”Comment”) ?DBGETPROP(“”,”FIELD”,”DefaultValue”) DBSETPROP( )函数的利用 例 jsxj数据库和 js表的注释。 =DBSETPROP(“jxsj”,”DATABASE”,”Comment”,”教学数据库” ) =DBSETPROP(“js”,TABLE,”Comment”,”教师表” ) 例 js表的 xb字段的标题。 =DBSETPROP(“”,”FIELD”,”Caption”,”性别” ) 习题 确定建立数据库的目的: 必须充分了解用户的需求。 (需求分析) 数据库的设计过程 确定表时,应避免重复的信息。 重复信息可能带来的后果: 1. 表中数据量的成倍增加和用户数据录入工作量的增加。 2. 重复录入易致错,从而造成数据不一致。 3. 有用的信息易被删除。 确定所需的表: 数据库的设计过程 确定表的字段: 每个字段直接和表的主题相关 不要包含可推导得到或需计算的数据字段 有了出生年月字段 就不需年龄字段了。 收集所需的全部信息 以最小的逻辑单位存放信息 每张表必须明确主关键字 利用主关键字可以连接多张 表中的数据,把相关数据 组合起来。 数据库的设计过程 确定表之间的关系: ( 1)一对多关系( 1: n): 设有两张表甲、乙。 如果甲表中的任一记录在乙表中可以有几个记录与之对应,而在乙表中每个记录在甲表中只有一个记录与之对应,则称甲、乙两张表之间存在一对多关系。 甲表(主表) 乙表(子表) 数据库的设计过程 ( 2)多对多关系( m: n): 甲表中的一个记录在乙表中可以对应多个记录,而乙表中的一个记录在甲表中也可以对应多个记录,则称两个表具有多对多关系。 学生表和课程表之间就是多对多关系。 建立第三张表成绩表,将多对多关系分解成两个一对多关系。 一对多 一对多 纽带表 数据库的设计过程 ( 3)一对一关系( 1: 1): 甲表中的一个记录在乙表中只对应一个记录,乙表中的一个记录在甲表中也只有一个对应记录。 分析并确定表之间的关系 数据库的设计过程 长表名  在创建表时,每张表的表文件名就是表名。 其长度受操作系统的限制,在 VFP中规定,数据库表及自由表的表名最大长度为 128个字符。  在打开数据库时,长表名可以代替表名。  但是使用长文件名打开表时,表所属数据库必须是打开的,且为当前数据库。 长表名的设置: 可以在“表设计器”或在使用 CREATE TABLE 命令创建表时,用 NAME子句指定长表名。 如: CREATE TABLE BK NAME „学生补考表’ ( XH; C( 6), KCDH C( 2), CJ N( 3, 0)) BACK 字段属性和表属性 表记录的验证规则 字段属性和表属性 如何设置: 在“表设计器”的“表”选项卡中,在“规则”和“信息”框中输入所需的规则和信息。 记录 的验证规则是一个 逻辑表达式 , 记录 的验证信息是一个 带双引号 的 字符表达式。 例如,对 js表中的记录需要满足如下要求:工作日期与出生日期必须相差 18年,则应在 “ 记录验证规则 ” 框中输入如下的表达式: year() year()=18 在信息框中输入: “ 工作日期与出生日期必须相差 18年 ” 如何设置: 在“ 表设计器 ”的“ 表 ”选项卡中,在“ 规则 ”和“ 信息 ”框中输入所需的规则和错误信息。 字段属性和表属性 也可以使用 CREATE TABLE 或 ALTER TABLE 命令的 CHECK子句。 具体使用参照前面字段级规则的设置。 • 字段级和记录级规则能够控制输入到表中的信息类型,而不管是通过什么方式来访问。 • 建立在数据库中的规则可以对表的所有用户实施。 如: 以下命令建立 js表的记录的有效性规则:必须年满 18周岁才能参加工作。 ALTER TABLE JS ALTER COLUMN SET CHECK。 CSRQGZRQ=18 ERROR “必须年满 18周岁才能参加工作。 ” 以下命令可删除 JS表的记录有效性规则: ALTER TABLE JS DROP CHECK 字段属性和表属。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。