




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,第2章构建Access数据库,2.1关系数据库2.2创建Access数据库2.3Access表的关系2.4总结提高2.5知识扩展,返回,.,2,2.1关系数据库,2.1.1关系数据库的基本概念在关系数据库中,经常会提到关系,属性等概念,为了进一步了解关系数据库,首先给出一些基本概念。1.关系通俗地讲关系就是一张二维表,二维表名就是关系名。2.属性二维表中的列称为属性(字段);每个属性有一个名称,称为属性名;二维表中对应某一列的值称为属性值。,下一页,返回,.,3,2.1关系数据库,3.域二维表中各属性的取值范围称为域,例如:性别的域为男或女。4.元组二维表中的行称为元组(记录),每张表中可以含多个元组。5.关系模式关系模式是关系名及其所有属性的集合,一个关系模式对应一张表结构。关系模式的格式:关系名(属性1,属性2,属性n)。6.候选键在一个关系中,由一个或多个属性组成,其值能唯一地标识一个元组(记录),称为候选键,在一个关系上可以有多个候选关键字。,上一页,下一页,返回,.,4,2.1关系数据库,7.主关键字有时一个关系中有多个候选关键字,这时可以选择其中一个作为主关键字,简称关键字。主关键字也称为主码或主键。每个关系都有一个并且只有一个主关键字。8.外部关键字如果关系中某个属性或属性组合并非关键字,却是另一个关系的主关键字,则称此属性或属性组合为本关系的外部关键字,简称外键。,上一页,下一页,返回,.,5,2.1关系数据库,2.1.2关系运算在关系数据库中访问所需要的数据时,需要对其中的关系进行一定的关系运算。关系运算分为两类:一类是传统的集合运算,另一类是专门的关系运算。1.传统的集合运算进行传统集合运算的两个关系必须具有相同的关系模式,即元组具有相同的结构。(1)并运算。设有两个相同结构的关系R和S,R和S的并是由属于R或属于S的元组组成的集合,记作:RS。,上一页,下一页,返回,.,6,2.1关系数据库,(2)差运算。设有两个相同结构的关系R和S,R和S的差是由属于R但不属于S的元组组成的集合,记作:RS。(3)交运算。设有两个相同结构的关系R和S,R和S的交是由既属于R又属于S的元组组成的集合,记作:RS。下面通过实例说明上述3种运算,已知两个关系R和S,关系R代表一班的学生,关系S代表二班的学生,如表2.1和表2.2所示。关系R和关系S的并、差和交运算的结果如表2.3所示。,上一页,下一页,返回,.,7,2.1关系数据库,2.专门的关系运算关系数据库主要有三种专门的关系运算,选择、投影和连接。(1)选择。从一个关系中找出满足给定条件元组的操作称为选择。或者说,从一个二维表格中找出满足给定条件的记录集合的操作。选择是从行的角度对二维表格的内容进行筛选。(2)投影。从一个关系中找出若干个属性构成新的关系的操作称为投影。或者说,从一个二维表格中找出若干个字段组成新的二维表格的操作。投影是从列的角度对二维表格的内容进行筛选。(3)连接。连接运算是指将两个关系中的元组按一定的条件横向结合,拼接成一个新的关系。或者说是将两个数据表格中的记录按一定条件横向结合,拼接成一个新的数据表。,上一页,下一页,返回,.,8,2.1关系数据库,最常见的连接运算是自然连接,它是利用两个关系中共有的一个字段,将该字段值相等的记录内容连接起来,去掉其中的重复字段作为新关系中的一条记录。下面通过实例说明以上3种运算,已知关系R代表学生信息表,关系S代表学生成绩表,如表2.4和表2.5所示。求关系S中满足“语文成绩大于或等于90分”的选择操作,结果如表2.6所示。求关系S在学号、数学两个属性上的投影操作,结果如表2.7所示。求关系R和关系S的自然连接,结果如表2.8所示。,上一页,下一页,返回,.,9,2.1关系数据库,2.1.3关系的完整性关系模型的完整性规则是对关系的某种约束条件,是保证关系中数据正确性的重要手段。在关系模型中有3类完整性约束:实体完整性、参照完整性、用户定义完整性。其中前两者是关系模型必须满足的约束条件,被称为关系完整性规则。1.实体完整性实体完整性用来确保关系中的每个元组都是唯一的,即关系中不允许有重复的元组。为了保证实体完整性,关系模型以关键字作为唯一的标识,关系中作为关键字的属性不能取空值和重复值,否则无法识别元组。,上一页,下一页,返回,.,10,2.1关系数据库,2.参照完整性参照完整性是指两个相关联的数据表中的相关数据是否对应一致。在关系数据库中,关系与关系之间的联系是通过公共属性实现的,这个公共属性是一个表的主键和另一个关系的外键,因此应该对关系中外键作一定的约束外键必须是另一个表的主键有效值,或者是一个“空值”,以保证关系之间联系的有效性。3.用户定义完整性用户定义完整性,是指关系中的属性必须满足用户定义的某种特定的数据类型和约束规则,即限定某个属性的取值类型和取值范围。,上一页,返回,.,11,2.2创建Access数据库,2.2.1数据库设计的步骤1.确定创建数据库的目的设计数据库和用户的需求紧密相关。首先,要明确创建数据库的目的以及如何使用,用户希望从数据库得到什么信息,由此可以确定需要什么样的表和定义哪些字段。其次,要与将使用数据库的人员进行交流,集体讨论需要数据库解决的问题,并描述需要数据库完成的各项功能。,下一页,返回,.,12,2.2创建Access数据库,2.确定数据库中需要的表一个数据库可能是由若干个表组成,所以确定表是数据库设计过程中最重要的环节。在设计表时,就按照以下原则。(1)各个表不应包含重复的信息。(2)每个表最好只包含关于一个主题的信息。(3)同一个表中不允许出现同名字段。,上一页,下一页,返回,.,13,2.2创建Access数据库,3.确定字段确定表的过程实际上就是定义字段的过程,字段是表的结构,记录是表的内容,所以确定字段是设计数据库不可缺少的环节。例如:学生信息表可以包含学号、姓名、性别、年龄、出生日期、籍贯等字段。在定义表中字段时应注意以下几点:(1)每个字段直接与表的主题相关。(2)不包含推导或计算的数据。(3)尽可能包含所需的所有信息。(4)由于字段类型由输入数据类型决定,这样使得同一字段的值具有相同的数据类型。,上一页,下一页,返回,.,14,2.2创建Access数据库,4.确定主键为了连接保存表中的信息,使多个表协同工作,在数据库表中需要确定主键。5.确定表之间的关系因为已经将信息分配到各个表中,并且定义了主键字段,若想将相关信息重新结合到一起,必须定义数据库中的表与表之间的关系,不同表之间确立了关系,才能进行相互访问。6.输入数据表的结构设计完成之后,就可以向表中输入数据了。,上一页,下一页,返回,.,15,2.2创建Access数据库,2.2.2创建数据库在Access中创建数据库,有两种方法:一是使用“向导”创建数据库,即使用系统提供的数据库模版。二是先建立一个空的数据库,然后在向其中添加表、查询等对象。1.使用“向导”创建数据库启动Access后,按照以下步骤进行。(1)选择“文件”“新建”,或单击“常用”工具栏上的新建按钮“”,或单击“任务窗格”中的“新建文件”选项,打开“新建文件”任务窗格,如图2.1所示。,上一页,下一页,返回,.,16,2.2创建Access数据库,(2)在“新建文件”任务窗格中,单击“本机上的模板”选项,弹出“模板”对话框,再选择“数据库”选项卡,如图2.2所示。(3)在“模板”对话框中,选择要创建的数据库类型模板的图标,然后单击“确定”,弹出“文件新建数据库”对话框,如图2.3所示。(4)在“文件新建数据库”对话框中指定数据库的名称和保存的位置,然后单击“创建”按钮。(5)按照“数据库向导”的指导进行操作,主要是选择表中的字段、屏幕显示样式、打印报表所用样式等。使用数据库向导生成的数据库包括表、查询、窗体等对象,如图2.4所示。,上一页,下一页,返回,.,17,2.2创建Access数据库,2.创建空数据库在启动Access后,可以用下面的方法创建空数据库:(1)选择“文件”“新建”,或单击“常用”工具栏上的新建按钮,或单击“任务窗格”中的“新建文件”选项,打开“新建文件”任务窗格,如图2.1所示。(2)在“新建文件”任务窗格中,单击“空数据库”选项,弹出“文件新建数据库”对话框,如图2.3所示。(3)在“文件新建数据库”对话框中指定数据库的名称和保存的位置,然后单击“创建”按钮,出现图2.5所示的窗口,这样一个空数据库创建完毕。,上一页,下一页,返回,.,18,2.2创建Access数据库,2.2.3数据库的打开与关闭1.数据库的打开如果要打开已经创建好的数据库,步骤如下:(1)执行“文件”菜单中的“打开”命令,或单击工具栏上的“打开”按钮,弹出“打开”对话框,如图2.6所示。(2)在“打开”对话框中选择要打开的数据文件,单击“打开”即可。在打开数据库时,可以使用以下4种方式。以共享方式打开:这是默认打开数据库的方式,允许在同一时间内有多个用户同时打开使用并修改。,上一页,下一页,返回,.,19,2.2创建Access数据库,以只读方式打开:以这种方式打开的数据库,用户只能查看而无法编辑其内容。以独占方式打开:是指某个用户以这种方式打开数据库后,在这个用户使用期间其他用户无法访问该数据库。以独占只读方式打开:该方式具有只读和独占的特点。2.数据库的关闭当用户完成了对数据库的操作而不再需要使用它时,应将其关闭,关闭方法如下。(1)单击数据库窗口右上角的“关闭”按钮。(2)双击数据库窗口左上角的控制菜单图标。(3)执行“文件”菜单下的“关闭”命令。,上一页,下一页,返回,.,20,2.3Access表的关系,2.3.1表的构成元素表由字段、记录、值、主关键字和外部关键字组成。具体定义前面已讲解,这里不做陈述。2.3.2表的关系表的关系就是指主表与相关表通过同名字段创建表的关联。其中包含主关键字的表称为“主表”,包含外部关键字的表称为子表。表的关系分为三种类型:一对一关系、一对多关系、多对多关系。1.一对一关系一对一关系中是指主表中的每一条记录只对应子表中一个记录;反之,子表中的记录也只对应主表的一条记录,即如果两个表中相关联的字段在两个表中都是主键,将创建一对一关系,这种关系用得比较少。,上一页,下一页,返回,.,21,2.3Access表的关系,2.一对多关系一对多关系是指主表中的一条记录,可以与子表中的多条记录相对应,但是子表中的一条记录只能与主表的一条记录对应,即如果相关联的字段只在一个表中是主键,将创建一对多的关系,这是最常用的一种关系。3.多对多关系多对多关系是指主表中的一条记录,可以与子表中的多条记录相对应,同时,子表中的一条记录也可以与主表中的多条记录相对应。,上一页,下一页,返回,.,22,2.3Access表的关系,例如:在“教学管理”数据库中,有三个表:“学生表”“成绩表”和“家长联系表”,“学生表”和“家长联系表”的主键都是“学号”,因此两表建立一对一的关系(如图2.7所示)。此外“学生表”和“成绩表”也可通过“学号”字段建立关系,因“学号”字段是“学生表”的主键,但不是“成绩表”的主键,所以这两个表之间就能以“学生表”为主表,以“成绩表”为子表,建立一对多的关系(如图2.7所示)。至于如何查看、删除、建立表的关系,后续章节将会讲解。,上一页,返回,.,23,2.4总结提高,1.关系数据库关系数据库是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。关系、属性、域、值、关系模式、关键字这些都是基本概念,要牢牢记住;掌握关系数据库的三个专门运算:选择、投影和连接;记住关系的三个完整约束:实体完整性、参照完整性、用户定义完整性。2.Access中两种常用的创建数据库的方法直接创建空数据库、利用向导创建数据库,在两种常用的创建数据库的方法中,创建空数据库的优势在于灵活,可以让用户任意在数据库中根据自己的需要添加表、查询、窗体或报表信息;利用模板向导创建数据库的优势在于快捷,可以让用户快速创建一个现成的数据库,然后再根据自己的需求进行修改。,下一页,返回,.,24,2.4总结提高,3.表表是数据库中最重要的对象,它是用来存放数据的场所,一个数据库中可以包含多个表,知道表的三种关系:一对一关系、一对多关系、多对多关系。,上一页,返回,.,25,2.5知识扩展,2.5.1串1.串的定义串(String):是零个或多个字符组成的有限序列。用单引号或双引号括起来。串中所包含的字符个数称为该串的长度。串中任意个连续字符组成的子序列称为该串的子串,包含子串的串相应地称为主串。注:空串是任意串的子串,任意串是其自身的子串。2.串的基本运算求串长、串复制、串连接、串比较、字符定位。,下一页,返回,.,26,2.5知识扩展,2.5.2树1.树的定义树(Tree):是n(n0)个结点的有限集T,T(n=0)为空时,称为空树,否则它满足如下两个条件:(1)有且仅有一个特定的结点为根(Root)的结点。(2)其余的结点可分为m(m0)个互不相交的子集T1,T2,Tm,其中每个子集本身又是一棵树,并称其为根的子树(Subtree),如图2.8所示。2.树的相关术语(1)度:一个结点拥有的子树数为该结点的度。一棵树的度是指该树中结点的最大度数。(2)叶子:度为零的结点称为叶子或终端结点。(3)分支结点:度不为零的结点称为分支结点。,上一页,下一页,返回,.,27,2.5知识扩展,(4)树中某个结点的子树之根称为该结点的孩子(Child)结点或子结点,相应的该结点称为孩子结点的双亲结点或父结点。(5)同一个双亲的孩子称为兄弟结点。(6)结点的层数:是从根起算,设根的层数为1,其余结点的层数等于其双亲结点的层数加1。(7)树中结点的最大层数称为树的高度或深度。(8)森林:是m(m0)棵互不相交的树的集合。删去一棵树的根,就得到一个森林,反之,加上一个结点作树根,森林就变为一棵树,如图2.9所示,由三棵树构成的森林。,上一页,下一页,返回,.,28,2.5知识扩展,3.二叉树(BinaryTree)1)二叉树的定义二叉树是n(n0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成,图2.10所示。2)二叉树的特点二叉树中,每个结点最多只能有两棵子树,并且有左右之分。3)二叉树的五种基本形态二叉树的五种基本形态如图2.11所示。,上一页,下一页,返回,.,29,2.5知识扩展,4.两种特殊的二叉树(1)满二叉树(FullBinaryTree):一棵深度为k且有2k1个结点的二叉树称为满二叉树,如图2.12(1)所示。(2)完全二叉树(CompleteBinaryTree):若一棵二叉树至多只有最下面的两层上结点的度数可以小于2,并且最下一层上的结点都集中在该层最左边的若干位置上,则此二叉树称为完全二叉树,如图2.12(2)所示。5.二叉树的性质性质1:二叉树第i层上的结点数目最多为2i1(i1)。性质2:深度为k的二叉树至多有2k1个结点(k1)。性质3:在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1。,上一页,下一页,返回,.,30,2.5知识扩展,性质4:具有n个结点的完全二叉树的深度为lgn+1(取下整)或lg(n+1)(取上整)。性质5:设完全二叉树共有n个结点。如果从根结点开始,按层序(每一层从左到右)用自然数1,2,n给结点进行编号(k=1,2,n),有以下结论:若k=1,则该结点为根结点,它没有父结点;若k1,则该结点的父结点编号为INT(k/2)。若2kn,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点)。若2k+1n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。,上一页,下一页,返回,.,31,2.5知识扩展,6.二叉树的遍历二叉树的遍历(Traversal):是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。前序遍历:(又称为先序遍历、先根遍历)若二叉树为空,则执行空操作。否则:(1)访问根结点。(2)前序遍历左子树。(3)前序遍历右子树。中序遍历:(又称为中根遍历)若二叉树为空,则执行空操作。否则:(1)中序遍历左子树。(2)访问根结点。,上一页,下一页,返回,.,32,2.5知识扩展,(3)中序遍历右子树。后序遍历:(又称为后根遍历)若二叉树为空,则执行空操作。否则:(1)后序遍历左子树。(2)后序遍历右子树。(3)访问根结点。,上一页,下一页,返回,.,33,2.5知识扩展,2.5.3排序(Sort)1.排序的定义所谓排序,就是指整理文件中的记录,使之按关键字递增(或递减)次序排列起来。2.几种常见的排序(1)冒泡排序(BubbleSorting)。通过对待排序序列从后向前或从前向后(从下标较大的元素开始),依次比较相邻元素的排序码,若发现逆序则交换,使排序码较大的元素逐渐从前部移向后部或较小的元素逐渐从后部移向前部(从下标较大的单元移向下标较小的单元)。,上一页,下一页,返回,.,34,2.5知识扩展,(2)简单选择排序(SelectionSorting)。扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空为止。(3)直接插入排序(InsertionSorting)。每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。(4)快速排序(QuickSorting)。快速排序也称堆排序。任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。,上一页,下一页,返回,.,35,2.5知识扩展,3.各种排序方法的比较各种排序方法的比较,如表2.9所示。2.5.4查找(Searching)1.查找的定义所谓查找是指给定一个值K,在含有n个结点的表中找出关键字等于给定值K的结点。若找到,则查找成功,返回该结点的信息或该结点在表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论