数据库原理与Visual-FoxPro应用技术课件(完整版).ppt
-
资源ID:77248347
资源大小:3.39MB
全文页数:314页
- 资源格式: PPT
下载积分:19金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
数据库原理与Visual-FoxPro应用技术课件(完整版).ppt
数据库原理与数据库原理与VisualFoxPro应用技术应用技术目录目录第第1章章信息管理与数据库系统信息管理与数据库系统第第2 2章章 关系数据模型关系数据模型 第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQL SQL 第第4 4章关系数据库设计理论章关系数据库设计理论 第第5 5章数据库设计章数据库设计 第第6 6章章FoxProFoxPro基础基础 第第7 7章章 Visual FoxPro Visual FoxPro程序设计基础程序设计基础 第第8 8章章 建立数据库建立数据库 第第9 9章设计简单的应用程序章设计简单的应用程序 第第1010章章 索引索引 第第1111章章 数据完整性与表间关系数据完整性与表间关系 第第1212章章 查询与视图查询与视图 第第1313章章 对象与表单控件对象与表单控件 第第1414章章 报表设计报表设计 第第1515章章 菜单菜单 本书内容简介本书是根据高职高专教学计划要求编写的教材。主要包括两大部分内容,第一部分介绍数据库基本原理,第二部分介绍VisualFoxPro6.0的基本操作和程序设计方法。第一部分共分五章,内容包括:信息管理与数据库系统概述、关系模型、SQL语言、关系数据库设计理论以及数据库的设计方法。第二部分共分十章,内容包括:VisualFoxPro概述、VisualFoxPro的基本操作、程序设计基础、设计简单的应用程序、索引、数据的完整性与表间关系、查询与视图、对象与表单控件、报表与菜单,并结合一些实例介绍了在应用系统中如何使用VisualFoxPro提供的各种功能。本书内容组织合理,深入浅出,语言通俗易懂,而且理论与实践紧密结合,实例丰富,有很强的实用性。本书可以作为高职高专的教材,还可以作为各类成人高校的数据库技术教材,同时也可作为各类信息管理人员或自学者的参考书。第第1 1章章 信息管理与数据库系统信息管理与数据库系统第第1章章信息管理与数据库系统信息管理与数据库系统1.1信息与数据1.2数据管理问题举例1.3数据库管理系统1.4数据库系统的组成1.5数据管理技术的发展1.6概念模型与数据模型第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.1信息与数据信息与数据1.1.1信息1.1.2数据1.1.3信息与数据的关系1.1.4信息管理系统第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.1.1信息信息信息是对事物存在状态及其运动形态的综合反映,它是人们进行各种活动所需要的知识。信息应该是关于事物的,并且是能被其它事物所接受的。与任何事物无关的不叫信息,不能被任何人理解,也不能被其它任何事物所接受的不是信息。信息具有载体,同一信息可以有多种的载体,载体的改变不等于信息的改变。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.1.2数据数据数据是用于记载信息的符号,所采用的形式可以是数字、文字、图形、图像或其它特殊符号。数据不只是数字,还包括文字、图形、图像等。但在计算机中,数据需要用数字来表示。利用外部设备,计算机可以把数据输出到显示设备、打印设备、音响设备、机电控制设备等。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.1.2数据(续)数据(续)第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.1.3.1.3 信息与数据的关系信息与数据的关系数据是信息的符号表示或载体;而信息是数据的内涵。在一些不需要严格分辨的场合,可以把信息与数据不加区分地使用。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.1.4信息管理系统信息管理系统信息管理系统就是管理信息的系统。信息管理系统的主要功能就是组织、存储、查询、统计和更新信息,以及安全、可靠地控制信息等。计算机信息管理系统的最基本的框架。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.1.4信息管理系统(续)信息管理系统(续)第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.2数据管理问题举例数据管理问题举例1.2.1文本文件方式1.2.2二维表格文件方式1.2.3利用关系数据库管理系统第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.2.1文本文件方式文本文件方式是用文本的方式来描述职工信息,把企业中每一名职工的情况信息分别存入一个文本文件。依靠操作系统的文件管理功能来管理一个个的文本文件。缺点是很难完成查询和统计功能。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.2.2二维表格文件方式二维表格文件方式采用的方法是:抽取每个事物的一些属性,排列成属性组,由这些属性组形成二维表格形式的数据文件;在这个文件中,每个事物的属性种类和属性排列顺序相同。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.2.2二维表格文件方式(续)二维表格文件方式(续)采用二维表格方式的特点是:在表格中,为每条记录(行)的相同属性分配相同长度的存储空间,从而保证了每条记录是等长的。每一列具有固定的数据类型。可以通过计算来定位每一条记录,从而使查询和统计的速度加快。可以为表格设计索引,进一步提高查询和统计的效率。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.2.3利用关系数据库管理系统利用关系数据库管理系统问题:每一张表格都有不同的结构,如果针对每一个表都单独编写专门的程序来实现数据的输入、查询和统计等功能,那么要设计开发一个涉及多表的信息管理系统,工作量将非常大。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.2.3利用关系数据库管理系统(续利用关系数据库管理系统(续1 1)虽然每个表格的结构不同,但是建立表结构、操作表的程序却可以大同小异,因此完全可以编写通用的表格程序。为了反映表与表之间的结构差异,可以采取一些措施把每个表的结构传递给通用程序;例如,可以把表格的结构放在表格文件的开始位置。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.2.3利用关系数据库管理系统(续利用关系数据库管理系统(续2 2)第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.2.3利用关系数据库管理系统(续利用关系数据库管理系统(续3 3)关系数据库管理系统提供了对二维表格进行操作的通用程序包。使用关系数据库管理系统后程序与数据之间的关系。应用系统的开发人员可以在程序中调用关系数据库管理系统提供的各种功能。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.3 1.3 数据库管理系统数据库管理系统 1.3.1数据库与数据管理系统的概念1.3.2数据库管理系统的功能1.3.3DBMS的使用方式第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.3.1数据库与数据库管理系统的概念数据库与数据库管理系统的概念1.数据库数据库2.数据库管理系统数据库管理系统第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.3.2数据库管理系统的功能数据库管理系统的功能1数据库定义功能2数据操纵功能3数据库的运行和控制功能(1)数据的安全性(2)数据的完整性(3)并发(Concurrency)控制4数据组织、存储和管理5数据库的建立和维护6数据通信接口第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.3.3DBMS的使用方式的使用方式可以采用以下两种方式使用DBMS:1.命令方式应用程序向DBMS发出命令(函数调用),由DBMS操作数据库中的数据。2.交互方式使用DBMS提供的交互式的操作界面第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.4数据库系统的组成数据库系统的组成1硬件2数据库3软件4数据库管理员5用户第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.5数据管理技术的发展数据管理技术的发展1.5.1人工管理阶段1.5.2文件系统阶段1.5.3数据库系统阶段第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6概念模型与数据模型概念模型与数据模型1.6.1模型1.6.2概念模型1.6.3数据模型1.6.4三个世界第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.1模型模型 模型是对所描述的客观对象的模拟和抽象表示,人们为了研究和解决客观世界中存在的种种问题,在对客观现实进行了模拟、思考、抽象以后,用文字、图表、符号、表达式以及实物等手段,描述所认识到的客观对象的一种简化的表示形式。例如:汽车的外部模型,零件的三维数字化几何模型,信息系统的功能模型,表示电压和电流关系的数学模型(I=U/R)。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.2 概念模型概念模型对现实世界原始信息结构的描述称为概念模型。概念模型是数据库设计人员与最终用户之间进行交流的语言。概念模型是对现实世界的的刻画,它不依赖于具体的计算机系统。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.2概念模型概念模型(续(续1)1概念模型的基本术语概念模型的基本术语(1)实体(2)属性(3)实体型(4)实体集(5)关键字(6)域(7)联系分为:一对一联系,一对多联系和多对多联系第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.2概念模型概念模型(续(续2)2概念模型的表示方法概念模型的表示方法E-R图图E-R图提供了表示实体型、属性和联系的方法。(1)实体和属性的表示方法 职工实体及其属性第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.2概念模型概念模型(续(续3)(2)联系的表示方法第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.2概念模型概念模型(续(续4)(3)联系属性的表示方法第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.2概念模型概念模型(续(续5)(4)多个实体间相互联系的表示方法第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.2概念模型概念模型(续(续6)用E-R图表示概念模型的简单实例生产与销售系统第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.3数据模型数据模型概念模型需要在计算机中实现,在实现之前需要规划和设计所需要的数据结构、数据的约束条件和对数据进行的操作。数据模型与具体数据库管理系统所支持的数据组织与存储方法有关。对数据结构、数据的约束条件、数据操作的描述称为数据模型。传统的数据模型主要分为三种:层次模型、网状模型和关系模型。第第1 1章章 信息管理与数据库系统信息管理与数据库系统1.6.4三个世界三个世界第第2 2章章 关系数据模型关系数据模型第第2章章关系数据模型关系数据模型用二维表来组织数据,从而表示实体及实体间联系的数据模型称为关系模型。使用关系模型组织数据的数据库称为关系数据库。本章讲述关系模型的三个基本要素:数据结构、数据操作和完整性约束。2.1关系模型的数据结构2.2关系的完整性2.3关系代数第第2 2章章 关系数据模型关系数据模型2.1关系模型的数据结构关系模型的数据结构2.1.1二维表2.1.2关系的基本术语2.1.3关系的基本性质第第2 2章章 关系数据模型关系数据模型2.1.1二维表二维表学生关系学生关系学号学号姓名姓名性别性别出生年月出生年月籍贯籍贯系号系号020633张常男84-02-16江西03020668汪洋男83-12-25安徽01020711谢小平女83-06-06天津01020721陈东女83-09-22四川02021145王飞男83-04-03北京03第第2 2章章 关系数据模型关系数据模型2.1.2关系的基本术语关系的基本术语(1)关系(2)元组(3)属性(4)域(5)候选关键字(候选码)(6)主关键字(主码)(7)关系模式格式:关系名(属性名1,属性名2,属性名n)第第2 2章章 关系数据模型关系数据模型2.1.3关系的基本性质关系的基本性质1.每一列中的数据必须具有相同的数据类型。例如,在同一列中,不能有的数据是字符(串)类型,而有的使用数值型(如整数、浮点数)。2.每一个关系模式中属性的个数是固定的,并且必须命名,而且属性名不能相同。3.在同一个关系模式中,每一个属性必须是不可分解的。4.在关系中,行的顺序(即元组的顺序)是无关紧要的。即元组的存入顺序对关系没有影响。5.在关系中,列的顺序(即属性的顺序)也是无关紧要的,即列的顺序可以任意交换。在交换列的顺序时,必须连同属性名一起交换。6.在关系中,不允许出现两个完全相同的元组。第第2 2章章 关系数据模型关系数据模型2.2关系的完整性关系的完整性1实体完整性实体完整性每一个关系的元组,其组成主关键字的属性不能取空值。2参照完整性参照完整性在两个关系A与B中,若关系模式A把关系模式B中的主关键字作为自己的外部关键字,那么在关系模式A中,这个外部关键字或取空值,或者等于关系模式B中某个元组的主关键字的值。3用户定义的完整性用户定义的完整性是用户规定的数据必须满足的语义要求。如,0年龄150。第第2 2章章 关系数据模型关系数据模型2.3关系代数关系代数2.3.1传统的集合运算2.3.2专门的关系运算第第2 2章章 关系数据模型关系数据模型2.3.1传统的集合运算传统的集合运算传统的集合运算有三种:并、交、差。假设有以下两个集合R和S:第第2 2章章 关系数据模型关系数据模型2.3.1传统的集合运算(续)传统的集合运算(续)1.并并(RS)2.交交(RS)3.差(差(RS)第第2 2章章 关系数据模型关系数据模型2.3.2专门的关系运算专门的关系运算假设有学生关系STUDENT如下:学生关系STUDENT学号学号姓名姓名性别性别出生年月出生年月籍贯籍贯10101张常男84-02-16江西10102汪洋男83-12-25安徽10103谢小平女83-06-06天津20101陈东女83-09-22四川20102王飞男83-04-03北京20103李晓兰女83-10-29上海第第2 2章章 关系数据模型关系数据模型2.3.2专门的关系运算(续专门的关系运算(续1)1.选择运算选择运算 从关系中找出满足条件的元组称为选择,记为(R)(STUDENT)或(STUDENT)第第2 2章章 关系数据模型关系数据模型2.3.2专门的关系运算(续专门的关系运算(续2)学号学号姓名姓名性别性别出生年月出生年月籍贯籍贯10103谢小平女83-06-06天津20101陈东女83-09-22四川20103李晓兰女83-10-29上海选择运算后的结果选择运算得到的结果元组可以形成新的关系,关系模式不变新关系是原关系的一个子集第第2 2章章 关系数据模型关系数据模型2.3.2专门的关系运算(续专门的关系运算(续3)是从关系中挑选出若干属性列组成新的关系,记为例如:2投影运算投影运算(R)(STUDENT)或(STUDENT)第第2 2章章 关系数据模型关系数据模型2.3.2专门的关系运算(续专门的关系运算(续4)3联接运算(联接运算(Join)联接运算是把两个关系模式的属性名拼接成一个更宽的关系模式,产生的新关系中包含满足拼接条件(联接条件)的元组。记为:等值联接自然联接第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL第第3章章关系数据库的标准语言关系数据库的标准语言SQL要编写通用的计算机程序,我们可能使用BASIC、C、PASCAL、FORTRAN等程序设计语言等,这些语言已经成为了国际标准。操作关系数据库也有一种国际标准语言,就是SQL。使用SQL语言可以进行数据定义、数据查询、数据操纵和数据控制。目前,几乎所有的关系数据库系统都支持SQL语言。本章主要介绍SQL语言的四部分功能,即数据定义、数据查询、数据操纵和数据控制。第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL第第3章的章节安排章的章节安排3.1SQL的用途3.2SQL的数据定义功能3.3SQL的数据查询功能3.4SQL的数据操纵功能3.5SQL的数据控件功能3.6视图第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.1SQL的用途的用途 关系数据库系统除了提供自己特有的数据操作语言之外,还要支持SQL语言。第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.1SQL的用途(续)的用途(续)SQL语言有两种使用方法,一种是用户联机使用的交互方式,另一种是作为子语言嵌入到其他高级程序语言中的嵌入方式。第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.2SQL的数据定义功能的数据定义功能SQL的数据定义功能是指定义数据库的结构,包括定义、修改和删除基本表。数据定义功能的SQL语句操作对象操作对象操操作作方方式式创建删除修改表CREATETABLEDROPTABLEALTERTABLE视图CREATEVIEWDROPVIEW索引CREATEINDEXDROPINDEX第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.2.1定义、修改与删除基本表定义、修改与删除基本表1定义基本表定义基本表CREATETABLE表名(列名数据类型列级完整性约束条件,列名数据类型列级完整性约束条件,表级完整性约束条件;例如:CREATETABLE图书(图书编号CHAR(6)NOTNULLUNIQUE,书名CHAR(40)NOTNULL,作者CHAR(12),库存量CHAR(6),定价DECIMAL(6,2);第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.2.1定义、修改与删除基本表(续)定义、修改与删除基本表(续)2修改基本表修改基本表ALTERTABLE表名ADD新列名数据类型完整性约束条件DROP完整性约束名MODIFY列名数据类型;例如:ALTERTABLE图书ADD出版社CHAR(40);ALTERTABLE图书DROPUNIQUE(图书编号);ALTERTABLE图书MODIFY作者CHAR(20);3删除基本表删除基本表DROPTABLE表名;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.2.2建立和删除索引建立和删除索引1建立索引建立索引CREATEUNIQUECLUSTERINDEX索引名ON表名(列名次序,列名次序);例如:CREATEUNQUEINDEX书号ON图书(图书编号);CREATEINDEX库存量ON图书(库存量DESC);第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.2.2建立和删除索引(续)建立和删除索引(续)2删除索引删除索引DROPINDEX索引名;例如:DROPINDEX库存量;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.3SQL的数据查询功能的数据查询功能3.1.1简单查询3.1.2联接查询3.1.3嵌套查询3.1.4集合查询3.1.5SELECT语句的格式第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.3.1简单查询简单查询简单查询是指只涉及一个表的数据查询。例3-7:SELECT客户编号,客户名FROM客户;例3-8:SELECT*FROM订购;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.3.1简单查询(续简单查询(续1 1)例3-9:SELECT图书编号,书名,作者,库存量,定价FROM图书WHERE出版社人民文学出版社ORDERBY定价DESC;例3-10:SELECT图书编号,书名,作者,库存量FROM图书WHERE书名LIKE数据库;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.3.1简单查询(续简单查询(续2 2)例3-11:SELECT客户编号,客户名,所在城市,联系电话FROM客户WHERE所在城市北京OR所在城市上海;例3-14:SELECT最高价图书:,MAX(定价),最低价图书:,MIN(定价),平均价格:,AVG(定价)FROM图书WHERE出版社高等教育出版社;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.3.2联接查询联接查询联接查询是指涉及两个表以上的查询。例3-16:SELECT图书编号,书名,库存量,订货数量,订货日期FROM图书,订购WHERE图书.图书编号订购.图书编号AND图书.图书编号AB-001;例3-18:SELECT客户编号,客户名,所在城市,联系电话,订购数量FROM客户,图书,订购WHERE客户.客户编号订购.客户编号AND图书.图书编号订购.图书编号AND书名关系数据库系统概论;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.3.3嵌套查询嵌套查询嵌套查询是指在SELECT-FROM-WHERE查询块内部再嵌入另一个查询块,嵌入的查询块被称为子查询。例3-19:SELECT客户名,联系电话FROM客户WHERE所在城市IN(SELECT所在城市FROM客户WHERE客户名王强);第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.3.4集合查询集合查询例3-22:SELECT*FROM客户WHERE所在省份黑龙江UNIONSELECT*FROM客户WHERE所在城市牡丹江;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.3.5SELECT语句的格式语句的格式SELECT ALLDISTINCT,FROM,WHERE条件表达式GROUPBY分组属性名组选择条件表达式ORDERBY排序属性升(降)序;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.4SQL的数据操纵功能的数据操纵功能3.1.1插入数据3.1.2修改数据3.1.3删除数据第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.4.1插入数据(插入数据(INSERT)格式:INSERTINTO表名(列名1,列名2,)VALUES(常量1,常量2,;例如:INSERTINTO图书(图书编号,书名,作者,定价)VALUES(”DB-303”,”数据库技术”,”李一”,18.6);第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.4.2修改数据(修改数据(UPDATE)格式:UPDATE表名SET列名1表达式1,列名2表达式2WHERE条件;例如:UPDATE图书SET图书编号WY-303WHERE图书编号WH-303;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.4.3删除数据(删除数据(DELETE)格式:DELETEFROM表名WHERE条件;例如:DELETEFROM图书WHERE图书编号AB-201;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.5SQL的数据控制功能的数据控制功能3.1.1授予权限3.1.2收回权限第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.5.1授予权限(授予权限(GRANT)格式:GRANT权限,权限,ON对象类型对象名TO用户,用户,WITHGRANTOPTION;例如:GRANTSELECTONTABLE客户TOUSER1;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.5.2收回权限(收回权限(REVOKE)格式:REVOKE权限,权限,ON对象类型对象名FROM用户,用户,;例如:REVOKEUPDATEONTABLE客户FROMUSER1,USER2;第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.6视图视图3.6.1视图的作用3.6.2定义、删除视图第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.6.1视图的作用视图的作用限制某些用户的查询范围,保护基本表中希望保密的数据。简化查询语句。使用户能够以多种角度看待同一数据。第第3 3章章 关系数据库的标准语言关系数据库的标准语言SQLSQL3.6.2定义、删除视图定义、删除视图1定义视图定义视图格式:CREATEVIEW视图名(列名,列名)AS子查询WITHCHECKOPTION;例如:CREATEVIEW铁道_图书ASSELECT图书编号,书名,作者,库存量,定价FROM图书WHERE出版社“铁道出版社”;2删除视图删除视图DROPVIEW视图名;第第4 4章章 关系数据库设计理论关系数据库设计理论第第4章章关系数据库设计理论关系数据库设计理论设计数据库时,如果不遵循一定的原则,将会带来许多问题。本章从一个例子入手,研究不合理的数据库设计会带来哪些问题,并分析导致这些问题的原因,从而引入关系数据库设计的规范化理论。关系数据库规范化理论是指导关系数据库逻辑设计的理论,是数据库逻辑设计的一个有力工具。本章介绍关系数据库设计理论中三个方面的内容:函数依赖、范式和关系模式的规范化。第第4 4章章 关系数据库设计理论关系数据库设计理论第第4章的章节安排章的章节安排4.1规范化问题4.2函数依赖4.3关系范式4.4关系模式的规范第第4 4章章 关系数据库设计理论关系数据库设计理论4.1规范化问题规范化问题假设为学校的选课管理建立了一个学生选课关系模式,记作:S-SC-C(SNO,SNAME,AGE,SEX,CNO,CNAME,GRADE,TEACHER)这个关系模式存在如下问题:1.数据冗余2.修改异常3.插入异常4.删除异常利用规范化理论,可以把以上的学生选课关系模式分解为以下三个关系模式:学生关系模式S(SNO,SNAME,AGE,SEX)课程关系模式C(CNO,CNAME,TEACHER)选课关系模式SC(SNO,CNO,GRADE)第第4 4章章 关系数据库设计理论关系数据库设计理论4.2函数依赖函数依赖关系数据库设计理论,是从关系内部属性与属性之间的联系入手,分析所发现的问题,并提出解决问题的方法,形成关系模式设计所必须满足的规范化要求。函数依赖反映了关系内部属性之间的联系。函数依赖是数据依赖的一种。4.2.1数据依赖4.2.2函数依赖4.2.3关键字第第4 4章章 关系数据库设计理论关系数据库设计理论4.2.1数据依赖数据依赖实体内部属性间的联系一般分为三类:(1)一对一联系(1:1)(2)一对多联系(1:m)(3)多对多联系(m:n)一个关系中属性值之间的相互依赖又相互制约的联系称为数据依赖。数据依赖是语义(实际含义)的体现。第第4 4章章 关系数据库设计理论关系数据库设计理论4.2.2函数依赖函数依赖设有一个关系模式为:S-SC-C(SNO,SNAME,AGE,SEX,CNO,CNAME,GRADE,TEACHER)有了这样的一个关系模式,并不等于可以随便输入元组值,下表所示的关系中就有语义错误。S-SC-C的一个关系的一个关系SNOSNAMEAGESEXCNOCNAMEGRADETEACHER993001王维19男C2西方文学75安然993001李洪彪19男C5法语69张伟993001王维20女C2西方文学90安然第第4 4章章 关系数据库设计理论关系数据库设计理论4.2.2函数依赖(续函数依赖(续1 1)在一个关系模式中,属性值不能随意输入,必须符合语义。按照语义,在S-SC-C关系模式中,当学号确定后,学生姓名和性别也就被唯一确定了,我们称姓名和性别依赖于学号。属性间的这种依赖关系类似于数学中的单值函数Y=F(X)。自变量X的值唯一决定Y值。X不同,Y值可以相同,也可以不同。这时,我们说X通过函数F确定Y值,简称X函数确定Y;我们说Y通过函数F依赖于X,简称Y函数依赖于X。第第4 4章章 关系数据库设计理论关系数据库设计理论4.2.2函数依赖(续函数依赖(续2 2)在S-SC-C关系模式中,SNO函数确定SNAME、AGE和SEX,或者说SNAME、AGE和SEX函数依赖于SNO,记作:SNOSNAME,SNOAGE,SNOSEX。设R(U)是属性集U上的关系模式,X与Y是U上的子集,若对R(U)上所有的具体关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”。记作:XY。第第4 4章章 关系数据库设计理论关系数据库设计理论4.2.2函数依赖(续函数依赖(续3 3)如果属性X、之间是1:1的联系,那么,则存在着X与Y相互函数依赖(XY)。如果属性X、Y之间是1:m的联系,那么,则存在着YX的函数依赖,但是,XY。属性X、Y之间是n:m的联系,那么,在X与Y之间则不存在任何函数依赖。第第4 4章章 关系数据库设计理论关系数据库设计理论4.2.2函数依赖(续函数依赖(续4 4)非平凡函数依赖与平凡函数依赖非平凡函数依赖与平凡函数依赖设关系模式R(U)中有函数依赖XY,并且Y不是X的子集,则称XY是非平凡的函数依赖;相反,若Y是X的子集,则称XY是平凡的函数依赖。平 凡 函 数 依 赖 的 例 子 是(SNO,CNO)SNO,(SNO,CNO)CNO。完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖 设关系模式R(U)中有函数依赖XY;若存在X的真子集X,使得X Y成立,则称Y部分依赖于X,记作:XY如果不存在X的真子集X,使得XY成立,则称Y完全依赖于X,记作:XY第第4 4章章 关系数据库设计理论关系数据库设计理论4.2.2函数依赖(续函数依赖(续5 5)传递函数依赖设有关系模式R(U),若其中XY,YZ,并且Y不是X的子集,Z不是Y的子集,YX,则称Z传递函数依赖于X。记为:XZSNOSDEPT,SDEPTMNAME,但SDEPTSNO,所以:SNODMNAME第第4 4章章 关系数据库设计理论关系数据库设计理论4.2.3关键字关键字1候选关键字候选关键字在关系模式R(U)中,K是U中的属性或属性组。如果KU则称K为关系R(U)中的一个候选关键字。候选关键字具有以下两个性质:(1)唯一确定元组(2)无冗余性2主关键字主关键字如果一个关系中有多个候选关键字,则选定其中一个作为主关键字。在许多DBMS中,主关键字不能为空,并能够作为与其它关系自动关联的桥梁。第第4 4章章 关系数据库设计理论关系数据库设计理论4.2.3关键字(续)关键字(续)3外部关键字外部关键字在关系模式R(U)中,若属性或属性组X不是关系R的关键字,但X是其它关系模式的关键字,则称X为关系R(U)的外部关键字。例如:S(SNO,SNAME,AGE,SEX)SC(SNO,CNO,GRADE)SNO对SC来说就是外关键字;而关系模式S和SC之间的联系就是通过SNO实现的。第第4 4章章 关系数据库设计理论关系数据库设计理论4.3关系范式关系范式4.3.1第一范式(1NF)4.3.2第二范式(2NF)4.3.3第三范式(3NF)第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.1第一范式(第一范式(1NF)定定义义:如果关系模式R的每一个属性都是不可分解的,则称R为第一范式的模式,记为R1NF。不满足第一范式的一个关系模式职工号姓名工资扣除实发基本工龄职务房租水电0345林子强3453004008055910第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.2第二范式(第二范式(2NF)关系模式:R(SNO,SNAME,AGE,CNO,GRADE)函数依赖:(SNO,CNO)GRADESNOSNAMESNOAGE第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.2第二范式(第二范式(2NF)(续)(续1 1)SNOSNAMEAGECNOGRADE993001王维19C275993001王维19C569993001王维19C984993002杜林19C288987010朱斌20C667987010朱斌20C270995035李欣如19C1077995035李欣如19C686991078郭庆19C470第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.2第二范式(第二范式(2NF)(续)(续2 2)这个关系存在本章开始时提到的四种问题。造成这些问题的原因是:在这个关系模式中,虽然属性GRADE完全函数依赖于关键字(SNO,CNO),但是属性SNAME和AGE却是部分函数依赖于关键字(SNO,CNO),即SNOSNAME,SNOAGE。为了解决上述问题,人们又提出了关系模式的第二范式。第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.2第二范式(第二范式(2NF)(续)(续3 3)定定义义:如果关系模式R满足第一范式,并且每个非主属性都完全函数依赖于关键字,则称R为第二范式的模式,记为R2NF。为了消除上例中的部分依赖,可以把例子中的关系模式分解为两个关系模式:S(SNO,SNAME,AGE)SC(SNO,CNO,GRADE)第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.2第二范式(第二范式(2NF)(续)(续4 4)不满足2NF的典型做法:第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.3第三范式(第三范式(3NF)关系模式:R(SNO,SNAME,AGE,SDEPT,DLOC,DMNAME)存在的问题:(1)插入异常(2)删除异常(3)数据冗余度大(4)修改复杂第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.3第三范式(第三范式(3NF)(续)(续1)造成问题的原因:虽 然 这 个 模 式 中 存 在 着 两 个 传 递 函 数 依 赖:SNODLOC和 SNODMNAME,即 有 SNOSDEPT,SDEPTSNO,SDEPTDLOC,SDEPTDMNAME为了解决上述问题,人们又提出了关系模式的第三范式。第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.3第三范式(第三范式(3NF)(续)(续2)定定义义:如果关系模式R满足第二范式,并且没有一个非主属性是传递函数依赖于候选关键字,则称R为第三范式的模式,记为R3NF。为了消除例子中的传递函数依赖,可以把该关系模式分解为以下两个关系模式:(1)S(SNO,SNAME,AGE,SDEPT)(2)D(SDEPT,DLOC,DMNAME)第第4 4章章 关系数据库设计理论关系数据库设计理论4.3.3第三范式(第三范式(3NF)(续)(续3)不满足3NF的典型做法:第第4 4章章 关系数据库设计理论关系数据库设计理论4.4关系模式的规范化关系模式的规范化一个低一级范式的关系模式,通过模式分解,可以转换为若干个高一级范式的关系模式的集合,这种过程就叫关系模式的规范化。其基本思想是逐步消除关系模式中不合适的数据依赖,拆分关系模式,使各关系模式达到某种程度的“分离”。关系模式的规范化步骤:(1)消除非主属性对关键字的函数依赖,实现1NF2NF。(2)非主属性对关键字的传递依赖,实现2NF3NF。(3)把3NF关系转换为BCNF或更高级的4NF和5NF关系。第第5 5章章 数据库设计数据库设计第第5章章数据库设计数据库设计5.1数据库设计的步骤5.2需求分析5.3概念结构设计5.4逻辑结构设计5.5数据库物理设计5.6数据库的实施5.7数据库的运行和维护第第5 5章章 数据库设计数据库设计5.1数据库设计的步骤数据库设计的步骤数据库设计分为以下六个步骤:(1)需求分析(2)概念结构设计(3)逻辑结构设计(4)数据库物理设计(5)数据库实施(6)数据库运行和维护第第5 5章章 数据库设计数据库设计5.2需求分析需求分析5.2.1收集用户需求5.2.2分析用户需求5.2.3设计数据流图5.2.4建立数据字典5.2.5取得用户确认第第5 5章章 数据库设计数据库设计5.2.1收集用户需求收集用户需求1.用户需求的内容2.收集用户需求的方法第第5 5章章 数据库设计数据库设计5.2.2分析用户需求分析用户需求分析和整理所收集到的信息,对各种信息进行仔细认定和筛选,并对一些概念进行准确的描述。第第5 5章章 数据库设计数据库设计5.2.3设计数据流图设计数据流图第第5 5章章 数据库设计数据库设计5.2.4建立数据