第4章建立表之间的关系_第1页
第4章建立表之间的关系_第2页
第4章建立表之间的关系_第3页
第4章建立表之间的关系_第4页
第4章建立表之间的关系_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章 建立表之间的关系 本章要点: 关系数据模型 Access中的关系类型 主键的概念 在Access 2003中创建关系 4.1 关系数据模型 数据库是各种企业、国家机关和事业单位等部门 进行企业管理和处理数据的集合,它不仅反映数据 自身的特点,而且反映数据和数据之间的联系。在 数据库的研究中,用数据模型来模拟和抽象的表示、 处理现实世界中的各种信息。根据模型应用的不同 目的,一般分为网状模型、层次模型、关系模型等。 数据模型通常由数据结构、数据操作和完整性约 束三个要素组成。 4.1.1 关系数据模型 关系模型是目前最重要也是研究最为广泛的一种模型。 下面举例说明关系模型的数据结构。 关

2、系模型的数据结构 关系:图4-1是关于学生信息的一张二维表,这就是通常所说的关 系,它由行、列组成,关系 名为“学生表”。 属性:即表中的列,一列就是一个属性,该关系有5个属性。 域 : 即属性的取值范围,例如图中的云彩标注,给每一列注明了 属性值,“学号”属性值为整数,“姓名”属性为字符串, “性 别”属性为“男”或“女”,学生年龄为“16,17,18, 19”,“民族”属性为“满,汉,回”。 元组:即表中的行,一行就是一个元组,该关 系有7个 元组。 主码:用来惟一标识一个元组的属性组。例 如,“学号”是学校中惟一确定每一 个学 生且不出现重复的一个字段,在该关 系中就成为主码。 学生表

3、学号 姓名性别年龄民族 0501 张桂生男 19 汉 0502 买红霞女 18 满 0503 杨蓝蓝女 17 回 0507 雪黛儿女 18 汉 主 码 关 系 名 属性名 元 组 (行) 整 数 字 符 串 男 女 16 17 18 满 汉 回 . . 属性(列) 域 图4-1关系模型数据结构示例 2. 关系模型的操作与完整性约束 n关系数据模型的操作主要包括查询和编辑数 据。这些操作必须满足关系的实体完整性和 参照完整性规则。 4.2 Acces 2003中的关系 n4.2.1 一对一关系 n一对一关系: 是比较简单的一种关系,这种关系仿佛一一映射, 表1中的每一条记录只能且只能对应表2中的

4、一条记录, 同理,表2中的每一条记录也只能且只能对应表1中的 一条记录。例如,“联系人”示例数据库中的关系中 存在一个1:1的关系。如图4-6所示。 图4-6 “联系人”示例数据库中的关系 “公司”表中的“公司编号”字段 和“发售”表中的“公司编号”字 段创建了1:1的关系。这种关系一 般很少被应用,因为这样的两个表 是可以合并的。但也有特例。例如, 上例中的“发售”表好像一个发票 一样,公司发售的所有信息都被记 录在“发售”表中。 4.2.2 一对多的关系 n一对多关系: 是使用很广泛的一种关系,大多数关系都 属于一对多关系,例如,图4-5中的“学生” 表和“成绩”表,“课程”表和“成绩”表

5、都 属于一对多的关系。因为每一名学生都有不只 一门课程的多个成绩,反过来,有多门成绩对 应着一个学生。同理,每一门课程都有多个同 学选修,同时就会出现多个成绩与之对应,反 之,多个成绩也对应着一门课程。因此,一对 多的关系是把表1中的一条记录与表2中的多 条记录关联起来。 n多对多关系: 相对较复杂,是指表1中的一条记录对应表2中的多条记 录,表2中的一条记录也对应表1中的多条记录。在这种关系 中,通常把它看成两个一对多的关系,它们之间通过一个中 介表连接起来,中介表中至少包含两个字段,作为其他两个 表的外键。例如,图4-5中“学生”表和“课程”表之间就是 多对多的关系。“成绩”表作为一个中介

6、表,其中的“学号” 字段就是“学生”表的外键,“课号”字段是“课程”表的 外键。学生表与成绩表之间通过“学号”字段创建了1:的 关系,课程表与成绩表之间通过“课号”字段创建了1:的 关系。 n 中介表的主键是一个复杂主键,它是通过把两个表的主键 连接起来而创建的。 4.3 主键与外键 n“键”是表中的字段或列,用来标识记录。“主键” 是一个字段或一组字段,用于惟一标识表中的记录。 它确保每个记录是惟一的。表的“主键”可以在创建 表本身时指定,也可以先创建完表结构,在用户需要 的时候自行创建。例如学生表中,“学号”字段是主 键,每个学生都有一个不同的学号。 n 组合键:即两个或多个字段组合起来,

7、以惟一标识 表中的记录(也叫联合主键)。例如,上例的成绩表 中“学生课程ID”可以分解为“学号+课程名称”,实 际上就是用一个组合键来标识每个成绩的。 n外键:我们可以这样理解外键,即把A表的主键或 惟一键放在B表中,作为B表的一部分,并作为这两 个表的关联字段。例如,学生表中“学号”字段是 主键,而在成绩表中,“学号”字段只是该表的一 个字段,而且二个表通过“学号”字段创建了一对 多的关联关系。所以“学号”在学生表中是主键, 在成绩表中就是外键。ACCESS提供了一项称为 “参照完整性”的功能,它确保了从表中的外键已 经存在于主表的主键字段中。 4.4 参照完整性 n表与表之间的关系经常被用

8、来彼此引用,参照完整性 规则要求关系中“不引用不存在的实体”。例如: 职工号职工号姓名性别职称编号年龄籍贯 计算机系教师信息表: 职称表: 职称编号职称编号 职称名称 图4-7 教师与职称之间的关系 在上例中,加黑且带下划线的字段是表中的主键,这两个表中存在 着关系的引用。计算机教师信息表引用了职称表中的“职称编号” 字段,每一名教师的职称必须与职称表中的职称相对应,不允许职 称编号出现空值或引用职称表中不存在的值的现象。“职工号”是 计算机系教师信息表的主键,“职称编号”是职称表的主键,也是 计算机系教师信息表的外键,即参照完整性限定外键与主键必须定 义在一个相同的属性(组)里,该属性(组)

9、可同名也可不同名, 但是在表中的意义是相同的。 4.5 创建、编辑与删除关系 n1. 创建关系 表之间关系的创建基于各表的主键与外键字段,二者字段名一般 取相同。 【例4-1】创建学生表、课程表与成绩表之间的关系 在创建关系之前应关闭掉学生表和成绩表,因为在打开表的状态 下无法创建和修改关系。 步骤: (1)打开Student.mdb数据库,单击工具栏中的关系图标 “ ”,或选择“工具”“关系”命令,屏幕上面出现“关 系”窗口,如图4-8所示。 图4-8 关系窗口 (2)选择“关系”“显示表”,或单击 工具栏的“ ”图标,弹出显示表窗口,如 图4-9所示。 图4-9 显示表窗口 (3)用鼠标分

10、别选中三个表并分别单击“添加”按钮,然 后单击“关闭”按钮,关掉显示表窗口,将三个表添加到关 系窗口中。如图4-10所示。 图4-10 将表添加到关系窗口 n(4)鼠标选中“学号”字段,使其加亮显示,并按 住鼠标左键拖动该字段至成绩表的“学号”字段,并 释放鼠标左键,弹出“编辑关系窗口”,如图4-11所 示。 图4-11 编辑关系窗口 (5)“编辑关系窗口”中显示创建关系的字段分别来自于 “学生表”和“成绩表”(图中灰色显示),字段名 字都 为“学号”,关系类型为“一对多”,并有三个复选 框待 选,分别是: n 实施参照完整性:描述主键与外键的规则,控制 参照表与被参照表之间的记录操作的正确性

11、。 n 及联更新相关字段:只要主表中主键字段更新 了,与其相关联的表中该字段值也随着更 新。 n 及联删除相关记录:只要主表中记录被删除了, 与其相关联的表中相同字段值的记录自动被删除。 在此,选中三个复选框(均打上对钩),如图4-11所示。 n(6)单击“创建”按钮,弹出图4-12对话框。 图4-12 创建学生表与成绩表之间的关系 从图中看到一条黑色线条连接在学生表和成绩表的 “学号”字段之间,并在线的两端分别显示“1”和 “”,表示这种关系类型为“一对多”的关系。 n(7)用鼠标选中课程表的“课号”字段并拖至成绩表 的“课号”字段,在随后弹出的“编辑关系窗口”中选 中实施参照完整性、及联更新相关字段、及联删除相关 记录。单击“创建”按钮,该关系创建完毕。关系窗口 如图4-13所示。 图4-13 创建学生表、成绩表和课程表之间的关系 2. 编辑关系 n在编辑关系窗口状态下,选中“关系”“编辑关系”命 令,可以重新编辑“编辑关系窗口”,如图4-11所示。单 击“联接类型”按钮,弹出图4-14对话框,可重新编辑各

温馨提示

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

评论

0/150

提交评论