数据库原理与Visual-FoxPro应用技术全套电子课件完整版ppt整本书电子教案最全教学教程_第1页
数据库原理与Visual-FoxPro应用技术全套电子课件完整版ppt整本书电子教案最全教学教程_第2页
数据库原理与Visual-FoxPro应用技术全套电子课件完整版ppt整本书电子教案最全教学教程_第3页
数据库原理与Visual-FoxPro应用技术全套电子课件完整版ppt整本书电子教案最全教学教程_第4页
数据库原理与Visual-FoxPro应用技术全套电子课件完整版ppt整本书电子教案最全教学教程_第5页
已阅读5页,还剩309页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库原理与Visual FoxPro应用技术第1章 信息管理与数据库系统第2章 关系数据模型 第3章 关系数据库的标准语言SQL 第4章关系数据库设计理论 第5章数据库设计 第6章FoxPro基础 第7章 Visual FoxPro程序设计基础 第8章 建立数据库 第9章设计简单的应用程序 第10章 索引 第11章 数据完整性与表间关系 第12章 查询与视图 第13章 对象与表单控件 第14章 报表设计 第15章 菜单 本书是根据高职高专教学计划要求编写的教材。主要包括两大部分内容,第一部分介绍数据库基本原理,第二部分介绍Visual FoxPro 6.0的基本操作和程序设计方法。 第一部分

2、共分五章,内容包括:信息管理与数据库系统概述、关系模型、SQL语言、关系数据库设计理论以及数据库的设计方法。第二部分共分十章,内容包括:Visual FoxPro概述、Visual FoxPro 的基本操作、程序设计基础、设计简单的应用程序、索引、数据的完整性与表间关系、查询与视图、对象与表单控件、报表与菜单,并结合一些实例介绍了在应用系统中如何使用Visual FoxPro提供的各种功能。 本书内容组织合理,深入浅出,语言通俗易懂,而且理论与实践紧密结合,实例丰富,有很强的实用性。 本书可以作为高职高专的教材,还可以作为各类成人高校的数据库技术教材,同时也可作为各类信息管理人员或自学者的参考

3、书。第1章 信息管理与数据库系统 1.1 信息与数据 1.2 数据管理问题举例 1.3 数据库管理系统 1.4 数据库系统的组成 1.5 数据管理技术的发展 1.6 概念模型与数据模型1.1 信息与数据1.1.1 信息1.1.2 数据1.1.3 信息与数据的关系1.1.4 信息管理系统1.1.1 信息信息是对事物存在状态及其运动形态的综合反映,它是人们进行各种活动所需要的知识。信息应该是关于事物的,并且是能被其它事物所接受的。与任何事物无关的不叫信息,不能被任何人理解,也不能被其它任何事物所接受的不是信息。信息具有载体,同一信息可以有多种的载体,载体的改变不等于信息的改变。1.1.2 数据数据

4、是用于记载信息的符号,所采用的形式可以是数字、文字、图形、图像或其它特殊符号。数据不只是数字,还包括文字、图形、图像等。但在计算机中,数据需要用数字来表示。利用外部设备,计算机可以把数据输出到显示设备、打印设备、音响设备、机电控制设备等。1.1.2 数据(续)1.1.3 信息与数据的关系 数据是信息的符号表示或载体;而信息是数据的内涵。在一些不需要严格分辨的场合,可以把信息与数据不加区分地使用。1.1.4 信息管理系统信息管理系统就是管理信息的系统。信息管理系统的主要功能就是组织、存储、查询、统计和更新信息,以及安全、可靠地控制信息等。计算机信息管理系统的最基本的框架。1.1.4 信息管理系统

5、(续)1.2 数据管理问题举例1.2.1 文本文件方式1.2.2 二维表格文件方式1.2.3 利用关系数据库管理系统1.2.1 文本文件方式 是用文本的方式来描述职工信息,把企业中每一名职工的情况信息分别存入一个文本文件。依靠操作系统的文件管理功能来管理一个个的文本文件。缺点是很难完成查询和统计功能。1.2.2 二维表格文件方式 采用的方法是:抽取每个事物的一些属性,排列成属性组,由这些属性组形成二维表格形式的数据文件;在这个文件中,每个事物的属性种类和属性排列顺序相同。1.2.2 二维表格文件方式(续) 采用二维表格方式的特点是:在表格中,为每条记录(行)的相同属性分配相同长度的存储空间,从

6、而保证了每条记录是等长的。每一列具有固定的数据类型。可以通过计算来定位每一条记录,从而使查询和统计的速度加快。可以为表格设计索引,进一步提高查询和统计的效率。 1.2.3 利用关系数据库管理系统 问题:每一张表格都有不同的结构,如果针对每一个表都单独编写专门的程序来实现数据的输入、查询和统计等功能,那么要设计开发一个涉及多表的信息管理系统,工作量将非常大。1.2.3 利用关系数据库管理系统(续1) 虽然每个表格的结构不同,但是建立表结构、操作表的程序却可以大同小异,因此完全可以编写通用的表格程序。为了反映表与表之间的结构差异,可以采取一些措施把每个表的结构传递给通用程序;例如,可以把表格的结构

7、放在表格文件的开始位置 。1.2.3 利用关系数据库管理系统(续2)1.2.3 利用关系数据库管理系统(续3)关系数据库管理系统提供了对二维表格进行操作的通用程序包。使用关系数据库管理系统后程序与数据之间的关系。应用系统的开发人员可以在程序中调用关系数据库管理系统提供的各种功能。 1.3 数据库管理系统 1.3.1 数据库与数据管理系统的概念 1.3.2 数据库管理系统的功能 1.3.3 DBMS的使用方式1.3.1 数据库与数据库管理系统的概念 1. 数据库2. 数据库管理系统1.3.2 数据库管理系统的功能 1数据库定义功能2数据操纵功能3数据库的运行和控制功能 (1)数据的安全性 (2)

8、数据的完整性 (3)并发(Concurrency)控制 4数据组织、存储和管理 5数据库的建立和维护 6数据通信接口1.3.3 DBMS的使用方式 可以采用以下两种方式使用DBMS: 1. 命令方式 应用程序向DBMS发出命令(函数调用),由DBMS操作数据库中的数据。 2. 交互方式使用DBMS提供的交互式的操作界面1.4 数据库系统的组成1硬件2数据库3软件4数据库管理员5用户1.5 数据管理技术的发展 1.5.1 人工管理阶段1.5.2 文件系统阶段1.5.3 数据库系统阶段1.6 概念模型与数据模型 1.6.1 模型1.6.2 概念模型1.6.3 数据模型1.6.4 三个世界 1.6.

9、1 模型 模型是对所描述的客观对象的模拟和抽象表示,人们为了研究和解决客观世界中存在的种种问题,在对客观现实进行了模拟、思考、抽象以后,用文字、图表、符号、表达式以及实物等手段,描述所认识到的客观对象的一种简化的表示形式。 例如:汽车的外部模型,零件的三维数字化几何模型,信息系统的功能模型,表示电压和电流关系的数学模型(I=U/R)。1.6.2 概念模型对现实世界原始信息结构的描述称为概念模型。概念模型是数据库设计人员与最终用户之间进行交流的语言。概念模型是对现实世界的的刻画,它不依赖于具体的计算机系统。 1.6.2 概念模型 (续1) 1概念模型的基本术语 (1)实体 (2)属性 (3)实体

10、型 (4)实体集 (5)关键字 (6)域 (7)联系 分为:一对一联系,一对多联系和多对多联系 1.6.2 概念模型 (续2) 2概念模型的表示方法E-R图 E-R图提供了表示实体型、属性和联系的方法。 (1)实体和属性的表示方法 职工实体及其属性 1.6.2 概念模型 (续3) (2)联系的表示方法1.6.2 概念模型 (续4) (3)联系属性的表示方法1.6.2 概念模型 (续5) (4)多个实体间相互联系的表示方法 1.6.2 概念模型 (续6) 用E-R图表示概念模型的简单实例生产与销售系统 1.6.3 数据模型 概念模型需要在计算机中实现,在实现之前需要规划和设计所需要的数据结构、数

11、据的约束条件和对数据进行的操作。数据模型与具体数据库管理系统所支持的数据组织与存储方法有关。对数据结构、数据的约束条件、数据操作的描述称为数据模型。传统的数据模型主要分为三种:层次模型、网状模型和关系模型。 1.6.4 三个世界 第2章 关系数据模型 用二维表来组织数据,从而表示实体及实体间联系的数据模型称为关系模型。使用关系模型组织数据的数据库称为关系数据库。本章讲述关系模型的三个基本要素:数据结构、数据操作和完整性约束。2.1 关系模型的数据结构 2.2 关系的完整性2.3 关系代数2.1 关系模型的数据结构2.1.1 二维表2.1.2 关系的基本术语2.1.3 关系的基本性质 2.1.1

12、 二维表 学生关系学号姓名性别出生年月籍贯系号020633张常男84-02-16江西03020668汪洋男83-12-25安徽01020711谢小平女83-06-06天津01020721陈东女83-09-22四川02021145王飞男83-04-03北京032.1.2 关系的基本术语(1)关系(2)元组(3)属性(4)域(5)候选关键字(候选码)(6)主关键字(主码)(7)关系模式 格式: 关系名(属性名1,属性名2,属性名n) 2.1.3 关系的基本性质1. 每一列中的数据必须具有相同的数据类型。例如,在同一列中,不能有的数据是字符(串)类型,而有的使用数值型(如整数、浮点数)。2. 每一个

13、关系模式中属性的个数是固定的,并且必须命名,而且属性名不能相同。3. 在同一个关系模式中,每一个属性必须是不可分解的。4. 在关系中,行的顺序(即元组的顺序)是无关紧要的。即元组的存入顺序对关系没有影响。5. 在关系中,列的顺序(即属性的顺序)也是无关紧要的,即列的顺序可以任意交换。在交换列的顺序时,必须连同属性名一起交换。6. 在关系中,不允许出现两个完全相同的元组。 2.2 关系的完整性1实体完整性 每一个关系的元组,其组成主关键字的属性不能取空值。2参照完整性 在两个关系A与B中,若关系模式A把关系模式B中的主关键字作为自己的外部关键字,那么在关系模式A中,这个外部关键字或取空值,或者等

14、于关系模式B中某个元组的主关键字的值。3用户定义的完整性 是用户规定的数据必须满足的语义要求。如,0 年龄 150。2.3 关系代数2.3.1 传统的集合运算2.3.2 专门的关系运算 2.3.1 传统的集合运算 传统的集合运算有三种:并、交、差。 假设有以下两个集合R和S:2.3.1 传统的集合运算(续) 1. 并(RS) 2. 交(RS) 3.差(RS) 2.3.2 专门的关系运算 假设有学生关系STUDENT如下: 学生关系STUDENT学号姓名性别出生年月籍贯10101张常男84-02-16江西10102汪洋男83-12-25安徽10103谢小平女83-06-06天津20101陈东女8

15、3-09-22四川20102王飞男83-04-03北京20103李晓兰女83-10-29上海2.3.2 专门的关系运算(续1) 1. 选择运算 从关系中找出满足条件的元组称为选择,记为(R)(STUDENT) 或(STUDENT)2.3.2 专门的关系运算(续2)学号姓名性别出生年月籍贯10103谢小平女83-06-06天津20101陈东女83-09-22四川20103李晓兰女83-10-29上海选择运算后的结果选择运算得到的结果元组可以形成新的关系,关系模式不变新关系是原关系的一个子集2.3.2 专门的关系运算(续3)是从关系中挑选出若干属性列组成新的关系,记为例如:2投影运算(R)(STU

16、DENT)或(STUDENT)2.3.2 专门的关系运算(续4)3联接运算(Join)联接运算是把两个关系模式的属性名拼接成一个更宽的关系模式,产生的新关系中包含满足拼接条件(联接条件)的元组。记为:等值联接自然联接第3章 关系数据库的标准语言SQL 要编写通用的计算机程序,我们可能使用BASIC、C、PASCAL、FORTRAN等程序设计语言等,这些语言已经成为了国际标准。操作关系数据库也有一种国际标准语言,就是SQL。使用SQL语言可以进行数据定义、数据查询、数据操纵和数据控制。目前,几乎所有的关系数据库系统都支持SQL语言。 本章主要介绍SQL语言的四部分功能,即数据定义、数据查询、数据

17、操纵和数据控制。第3章的章节安排3.1 SQL的用途3.2 SQL的数据定义功能3.3 SQL的数据查询功能3.4 SQL的数据操纵功能3.5 SQL的数据控件功能3.6 视图3.1 SQL的用途 关系数据库系统除了提供自己特有的数据操作语言之外,还要支持SQL语言 。3.1 SQL的用途(续) SQL语言有两种使用方法,一种是用户联机使用的交互方式,另一种是作为子语言嵌入到其他高级程序语言中的嵌入方式。3.2SQL的数据定义功能 SQL的数据定义功能是指定义数据库的结构,包括定义、修改和删除基本表。 数据定义功能的SQL语句 操作对象操 作 方 式创建删除修改表CREATE TABLEDRO

18、P TABLEALTER TABLE视图CREATE VIEWDROP VIEW索引CREATE INDEXDROP INDEX3.2.1 定义、修改与删除基本表 1定义基本表 CREATE TABLE 表名(列名数据类型 列级完整性约束条件 ,列名数据类型 列级完整性约束条件 ,表级完整性约束条件;例如: CREATE TABLE 图书 (图书编号 CHAR(6) NOT NULL UNIQUE, 书名 CHAR(40) NOT NULL, 作者 CHAR(12), 库存量 CHAR(6), 定价 DECIMAL(6,2);3.2.1 定义、修改与删除基本表(续) 2修改基本表 ALTER

19、TABLE 表名 ADD新列名 数据类型完整性约束条件 DROP完整性约束名 MODIFY列名数据类型; 例如: ALTER TABLE 图书 ADD 出版社 CHAR(40); ALTER TABLE 图书 DROP UNIQUE(图书编号); ALTER TABLE 图书 MODIFY 作者 CHAR(20); 3删除基本表 DROPTABLE表名; 3.2.2建立和删除索引 1建立索引 CREATE UNIQUECLUSTERINDEX索引名 ON表名(列名次序,列名次序); 例如: CREATE UNQUE INDEX 书号 ON 图书(图书编号); CREATE INDEX 库存量

20、ON 图书(库存量 DESC);3.2.2建立和删除索引(续) 2删除索引 DROP INDEX 索引名; 例如: DROP INDEX 库存量; 3.3SQL的数据查询功能 3.1.1 简单查询3.1.2 联接查询3.1.3 嵌套查询3.1.4 集合查询3.1.5 SELECT语句的格式3.3.1 简单查询 简单查询是指只涉及一个表的数据查询。例3-7: SELECT 客户编号,客户名 FROM 客户;例3-8: SELECT* FROM 订购;3.3.1 简单查询(续1) 例3-9: SELECT 图书编号,书名,作者,库存量,定价FROM图书WHERE 出版社人民文学出版社ORDER B

21、Y定价DESC;例3-10: SELECT 图书编号,书名,作者,库存量 FROM图书 WHERE 书名 LIKE数据库;3.3.1 简单查询(续2) 例3-11: SELECT客户编号,客户名,所在城市,联系电话 FROM 客户 WHERE 所在城市北京 OR所在城市上海;例3-14: SELECT 最高价图书:,MAX(定价),最低价图书:,MIN(定价),平均价格:,AVG(定价) FROM 图书 WHERE 出版社高等教育出版社;3.3.2 联接查询 联接查询是指涉及两个表以上的查询。例3-16: SELECT 图书编号,书名,库存量,订货数量,订货日期 FROM图书,订购 WHERE

22、图书.图书编号订购.图书编号 AND 图书.图书编号AB-001;例3-18: SELECT 客户编号,客户名,所在城市,联系电话,订购数量 FROM客户,图书,订购 WHERE客户.客户编号订购.客户编号 AND 图书.图书编号订购.图书编号 AND 书名关系数据库系统概论;3.3.3 嵌套查询 嵌套查询是指在SELECT-FROM-WHERE查询块内部再嵌入另一个查询块,嵌入的查询块被称为子查询。 例3-19: SELECT 客户名,联系电话 FROM客户 WHERE所在城市IN (SELECT所在城市 FROM客户 WHERE客户名王强);3.3.4 集合查询 例3-22: SELECT

23、 * FROM 客户 WHERE所在省份黑龙江 UNION SELECT * FROM 客户 WHERE所在城市牡丹江;3.3.5 SELECT语句的格式 SELECT ALLDISTINCT ,FROM ,WHERE 条件表达式GROUP BY 分组属性名 组选择条件表达式ORDER BY 排序属性 升(降)序 ;3.4SQL的数据操纵功能 3.1.1 插入数据3.1.2 修改数据3.1.3 删除数据3.4.1插入数据(INSERT) 格式:INSERT INTO 表名(列名1,列名2,) VALUES(常量1,常量2,;例如: INSERT INTO 图书(图书编号,书名,作者,定价) V

24、ALUES (”DB-303”,”数据库技术”,”李一”,18.6);3.4.2修改数据(UPDATE) 格式:UPDATE表名SET列名1表达式1,列名2表达式2WHERE条件; 例如: UPDATE 图书 SET 图书编号WY-303 WHERE 图书编号WH-303;3.4.3 删除数据(DELETE) 格式:DELETEFROM表名WHERE条件;例如: DELETE FROM 图书 WHERE 图书编号AB-201;3.5SQL的数据控制功能 3.1.1 授予权限3.1.2 收回权限3.5.1授予权限(GRANT) 格式: GRANT 权限,权限,ON 对象类型 对象名 TO 用户,

25、用户, WITH GRANT OPTION;例如:GRANT SELECT ON TABLE 客户 TO USER1;3.5.2收回权限(REVOKE) 格式:REVOKE 权限,权限,ON 对象类型 对象名 FROM 用户,用户,;例如: REVOKE UPDATE ON TABLE 客户 FROM USER1,USER2;3.6视图 3.6.1 视图的作用3.6.2 定义、删除视图3.6.1 视图的作用限制某些用户的查询范围,保护基本表中希望保密的数据。简化查询语句。使用户能够以多种角度看待同一数据 。3.6.2 定义、删除视图 1定义视图 格式: CREATE VIEW 视图名(列名,列

26、名) AS 子查询 WITH CHECK OPTION; 例如: CREATE VIEW 铁道_图书 AS SELECT 图书编号,书名,作者,库存量,定价 FROM图书 WHERE 出版社“铁道出版社”;2 删除视图 DROPVIEW视图名;第4章 关系数据库设计理论 设计数据库时,如果不遵循一定的原则,将会带来许多问题。本章从一个例子入手,研究不合理的数据库设计会带来哪些问题,并分析导致这些问题的原因,从而引入关系数据库设计的规范化理论。 关系数据库规范化理论是指导关系数据库逻辑设计的理论,是数据库逻辑设计的一个有力工具。本章介绍关系数据库设计理论中三个方面的内容:函数依赖、范式和关系模式

27、的规范化。第4章的章节安排4.1 规范化问题4.2 函数依赖4.3 关系范式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.2 函数依赖 关系数

28、据库设计理论,是从关系内部属性与属性之间的联系入手,分析所发现的问题,并提出解决问题的方法,形成关系模式设计所必须满足的规范化要求。 函数依赖反映了关系内部属性之间的联系。函数依赖是数据依赖的一种。 4.2.1 数据依赖 4.2.2 函数依赖 4.2.3 关键字4.2.1 数据依赖 实体内部属性间的联系一般分为三类: (1)一对一联系(1:1) (2)一对多联系(1:m) (3)多对多联系(m:n) 一个关系中属性值之间的相互依赖又相互制约的联系称为数据依赖。数据依赖是语义(实际含义)的体现。4.2.2 函数依赖 设有一个关系模式为:S-SC-C(SNO,SNAME,AGE,SEX,CNO,C

29、NAME,GRADE,TEACHER) 有了这样的一个关系模式,并不等于可以随便输入元组值,下表所示的关系中就有语义错误。S-SC-C的一个关系SNOSNAMEAGESEXCNOCNAMEGRADETEACHER993001王维19男C2西方文学75安然993001李洪彪19男C5法语69张伟993001王维20女C2西方文学90安然4.2.2 函数依赖(续1) 在一个关系模式中,属性值不能随意输入,必须符合语义。按照语义,在S-SC-C关系模式中,当学号确定后,学生姓名和性别也就被唯一确定了,我们称姓名和性别依赖于学号。属性间的这种依赖关系类似于数学中的单值函数Y=F(X)。自变量X的值唯一

30、决定Y值。X不同,Y值可以相同,也可以不同。这时,我们说X通过函数F确定Y值,简称X函数确定Y;我们说Y通过函数F依赖于X,简称Y函数依赖于X。4.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.2.2 函数依赖(续3)如果属性X、之间

31、是1:1的联系,那么,则存在着X与Y相互函数依赖(XY)。如果属性X、Y之间是1:m的联系,那么,则存在着YX的函数依赖,但是,XY。属性X、Y之间是n:m的联系,那么,在X与Y之间则不存在任何函数依赖。 4.2.2 函数依赖(续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,记作:X

32、Y如果不存在X的真子集X,使得X Y成立,则称Y完全依赖于X,记作:X Y4.2.2 函数依赖(续5)传递函数依赖设有关系模式R(U),若其中XY,YZ,并且Y不是X的子集,Z不是Y的子集,YX,则称Z传递函数依赖于X。记为:XZSNOSDEPT,SDEPTMNAME,但SDEPTSNO,所以:SNODMNAME4.2.3 关键字 1候选关键字 在关系模式R(U)中,K是U中的属性或属性组。如果KU 则称K为关系R(U)中的一个候选关键字。候选关键字具有以下两个性质:(1)唯一确定元组(2)无冗余性2主关键字如果一个关系中有多个候选关键字,则选定其中一个作为主关键字。在许多DBMS中,主关键字

33、不能为空,并能够作为与其它关系自动关联的桥梁。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.3 关系范式 4.3.1 第一范式(1NF)4.3.2 第二范式(2NF)4.3.3 第三范式(3NF)4.3.1 第一范式(1NF) 定义:如果关系模式R的每一个属性都是不可分解的,则称R为第一范式的模式,记为R1NF。不

34、满足第一范式的一个关系模式职工号姓名工资扣除实发基本工龄职务房租水电0345林子强34530040080559104.3.2 第二范式(2NF)关系模式:R(SNO,SNAME,AGE,CNO,GRADE)函数依赖:(SNO,CNO)GRADE SNOSNAME SNOAGE4.3.2 第二范式(2NF)(续1) SNOSNAMEAGECNOGRADE993001王维19C275993001王维19C569993001王维19C984993002杜林19C288987010朱斌20C667987010朱斌20C270995035李欣如19C1077995035李欣如19C686991078郭庆

35、19C4704.3.2 第二范式(2NF)(续2) 这个关系存在本章开始时提到的四种问题。 造成这些问题的原因是: 在这个关系模式中,虽然属性GRADE完全函数依赖于关键字(SNO,CNO),但是属性SNAME和AGE却是部分函数依赖于关键字(SNO,CNO),即SNOSNAME,SNOAGE。 为了解决上述问题,人们又提出了关系模式的第二范式。4.3.2 第二范式(2NF)(续3) 定义: 如果关系模式R满足第一范式,并且每个非主属性都完全函数依赖于关键字,则称R为第二范式的模式,记为R2NF。 为了消除上例中的部分依赖,可以把例子中的关系模式分解为两个关系模式: S(SNO,SNAME,A

36、GE) SC(SNO,CNO,GRADE)4.3.2 第二范式(2NF)(续4) 不满足2NF的典型做法:4.3.3 第三范式(3NF) 关系模式: R(SNO,SNAME,AGE,SDEPT,DLOC,DMNAME) 存在的问题: (1)插入异常 (2)删除异常 (3)数据冗余度大 (4)修改复杂4.3.3 第三范式(3NF)(续1) 造成问题的原因: 虽然这个模式中存在着两个传递函数依赖:SNODLOC和SNODMNAME,即有SNOSDEPT,SDEPTSNO,SDEPTDLOC,SDEPTDMNAME 为了解决上述问题,人们又提出了关系模式的第三范式。4.3.3 第三范式(3NF)(续

37、2) 定义:如果关系模式R满足第二范式,并且没有一个非主属性是传递函数依赖于候选关键字,则称R为第三范式的模式,记为R3NF。 为了消除例子中的传递函数依赖,可以把该关系模式分解为以下两个关系模式: (1)S(SNO,SNAME,AGE,SDEPT) (2)D(SDEPT,DLOC,DMNAME)4.3.3 第三范式(3NF)(续3) 不满足3NF的典型做法:4.4 关系模式的规范化 一个低一级范式的关系模式,通过模式分解,可以转换为若干个高一级范式的关系模式的集合,这种过程就叫关系模式的规范化。其基本思想是逐步消除关系模式中不合适的数据依赖,拆分关系模式,使各关系模式达到某种程度的“分离”。

38、 关系模式的规范化步骤: (1)消除非主属性对关键字的函数依赖,实现1NF2NF。 (2)非主属性对关键字的传递依赖,实现2NF3NF。 (3)把3NF关系转换为BCNF或更高级的4NF和5NF关系。第5章 数据库设计 5.1 数据库设计的步骤 5.2 需求分析 5.3 概念结构设计 5.4 逻辑结构设计 5.5 数据库物理设计 5.6 数据库的实施 5.7 数据库的运行和维护5.1 数据库设计的步骤 数据库设计分为以下六个步骤: (1)需求分析 (2)概念结构设计 (3)逻辑结构设计 (4)数据库物理设计 (5)数据库实施 (6)数据库运行和维护5.2 需求分析 5.2.1 收集用户需求 5

39、.2.2 分析用户需求 5.2.3 设计数据流图 5.2.4 建立数据字典 5.2.5 取得用户确认5.2.1 收集用户需求 1. 用户需求的内容 2. 收集用户需求的方法5.2.2 分析用户需求 分析和整理所收集到的信息,对各种信息进行仔细认定和筛选,并对一些概念进行准确的描述。5.2.3 设计数据流图 5.2.4 建立数据字典 (1)数据项(2)数据结构(3)数据流(4)数据存储(5)处理过程5.3 概念结构设计 概念结构设计的主要任务是:通过对用户需求进行综合、归纳与抽象,从而形成概念结构。 5.3.1概念结构设计步骤 5.3.2 设计局部E-R图 5.3.3合并局部E-R图 5.3.4

40、 优化E-R图5.3.1 概念结构设计步骤 5.3.2 设计局部ER图 1. 选择局部应用 2. 确定实体和属性5.3.2 设计局部ER图(续) 3. 分析实体之间的联系 4. 绘制局部E-R图 5. 征求用户意见5.3.3 合并局部E-R图 1. 消除属性冲突 2. 消除命名冲突 3. 消除结构冲突5.3.4 优化ER图消除冗余的属性消除冗余的实体间联系54 逻辑结构设计 逻辑结构设计的主要任务是把概念结构转化为数据模型。 5.4.1 ER模型向关系模型的转换 5.4.2 数据模型的优化5.4.1 ER图向关系模型的转换 转换要遵循以下原则: (1)一个实体型转换为一个关系模式。 (2)一个

41、m:n联系转换为一个关系模式。 (3)一个1:n联系可以转换为一个独立的关系,也可以与n端对应的关系模式合并。(4)一个1:1联系可以转换为一个独立的关系,也可以与任意一端对应的关系模式合并。 (5)三个或三个以上实体间的一个多元联系转换为一个关系。 (6)同一实体集的实体间的联系,即自联系,也可按上述一对一、一对多、多对多三种情况分别处理。 (7)具有相同关键字的关系可以合并。5.4.2 数据模型的优化 按照规范化理论对关系数据模型进行优化的步骤: (1)根据需求分析阶段分析出的数据项或数据集合的含义,找出每个关系模式中存在的数据依赖。 (2)对数据依赖进行分析,结合应用系统的特点和用户对应

42、用系统的需求对模式进行必要的分解甚至合并。5.5 数据库物理设计 为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程就是数据库的物理设计。其任务是结合具体DBMS和存储设备的特点,确定数据存储策略(包括存储结构和存取方法),以有效地实现逻辑模型。 5.5.1物理结构设计的内容 5.5.2评价物理结构5.5.1 物理结构设计的内容 1. 设计索引 2. 确定数据的存放位置 3. 确定系统配置5.5.2评价物理结构 从时间效率、空间效率、维护代价和各种用户需求对物理结构的设计结果进行分析与评估。5.6 数据库的实施 在数据库的实施阶段,首先要根据逻辑设计和物理设计的结构,利用具体的DB

43、MS系统提供的建库方法建立实际的数据库结构,然后组织数据入库。 1建立实际数据库结构 2装入试验数据 3装入实际数据 4数据库的试运行 5.7 数据库的运行和维护 数据库的运行和维护工作主要由数据库管理员(DBA:Database Administrator)来承担,其工作主要包括以下内容: (1)数据库备份与恢复。 (2)保证数据库的安全性与完整性。 (3)监测与改善数据库性能。 (4)数据库的再组织与再构造。 第6章 FoxPro 基础6.1 Visual FoxPro的安装与启动6.2 Visual FoxPro帮助文件的安装与使用6.3 命令窗口6.4 项目管理器6.1 Visual

44、FoxPro的安装与启动6.1.1 Visual FoxPro 6.0中文版的运行环境6.1.2 Visual FoxPro 6.0的安装方法6.1.3 启动Visual FoxPro 6.06.1.4 Visual FoxPro主窗口 6.1.4 Visual FoxPro 主窗口6.2 Visual FoxPro帮助文件的 安装与使用6.2.1 安装MSDN6.2.2 使用帮助文件 使用F1 使用目录 使用关键词索引 使用搜索功能6.3 命令窗口6.3.1 打开命令窗口6.3.2 输入命令6.3.3 命令的出错处理6.4 项目管理器 项目管理器可以将一个项目中的多种内容分门别类地组织起来。

45、在Visual FoxPro的项目管理器中,这些内容分为数据、文档、类、代码和其他等子类型,你可以很方便地在各个对应的选项卡中查看相关内容。 6.4 项目管理器(续)第7章 Visual FoxPro程序设计基础 7.1 数据类型7.2 常量与变量7.3 运算符与表达式7.4 程序文件7.5 程序的基本结构7.6 过程与函数7.7 变量的作用域 7.1 数据类型类型示例数值型123,3.1415,-7整型1,2,3,256,-318浮点型45732.548,-5691.15双精度型货币型$2789.21字符型“Test String”、“123”、“01/01/95”,逻辑型.T.,.F.日期

46、型2003-05-25日期时间型2003-05-25 12:30:00 p备注型通用型OLE对象等二进制字符型二进制备注型7.2 常量与变量7.2.1 常量7.2.2 变量7.2.3 数组7.2.4 字段变量 7.2.1 常量字符型常量 如:“People”、Women、人民等。数值型常量 如:2.13,0.45,315等。逻辑型常量 只有两个值,用.T.、.t.、.Y.或.y.表示逻辑真,用.F.、.f.、.N.或.n.表示逻辑假。日期型和日期时间型常量 如2003/6/5、2003/5/17 16:40:35am。货币型常量 以$开头,自动四舍五入,最多取四位小数。7.2.2 变量 变量是

47、指在命令操作和程序执行过程中可以变化的数据项,一般用于暂时存放初始值、中间结果值、最终结果值或控制值等,它也被用于在多个程序模块之间传递数据。一个变量对应着内存中存储数据元素的一小块区域。STORE 7 T0 MyVarMyVar = 7MyVar = “ABC”DISPLAY MEMORYCLEAR MEMORY7.2.3 数组 数组是一组有序的数据集合,其中的每个数据称为数组元素,每个数组元素在数组中的位置都是固定的,可以通过下标编号访问数组元素。DIMENSION MyArray5,2MyArray5,1 = 2MyArray5,2 = 256MyArray5,2 = abcdefgDI

48、SPLAY MEMORY7.2.4 字段变量 打开的数据表的每一个字段都是一个变量,字段名就是字段变量的名称。7.3 运算符与表达式7.3.1 运算符7.3.2 表达式 7.3.1 运算符1. 字符运算符操作符例子+“Microsoft ” + ”Word”,结果为“Microsoft Word”-“abcd ” - “efg ”,结果为“abcdefg”$“cro” $ “Microsoft”,结果为.T.;“Word” $ “Microsoft”,结果为.F.。7.3.1 运算符(续1)2. 逻辑运算符运算符含义举例NOT或!逻辑非NOT (2 = 3),结果为真。AND逻辑与(2 = 3

49、) AND (3 = 4),结果为假。OR逻辑或(2 = 2) OR (3 = 4),结果为真。7.3.1 运算符(续2)3. 关系运算符运算符运算大于=等于或!=不等于=大于等于=字符串等于7.3.1 运算符(续3)4. 算术运算符运算符运算( )用于构成一个子表达式*或乘方运算*乘/除+加-减7.3.2 表达式 表达式就是通过运算符将常量、变量、函数连接起来的式子。 算术表达式 (2+3)*4/5 256*MyNum-147 字符表达式 “中国首都” + “北京” “ABC”+MyStr 日期表达式 2003-05-08+30 2003-05-08-2002-05-08 逻辑表达式 MyS

50、tr=213.05 AND MyStr=ABC 7.4 程序文件 在Visual FoxPro中,不但可以在命令窗口中执行命令和函数和其它操作,还可以把它们一行行地组织起来,放在程序文件中。 1创建程序文件 依次单击菜单栏上的【文件】【新建】菜单命令 在命令窗口中使用“MODIFY COMMAND”命令2修改程序文件 依次单击菜单栏上的【文件】【打开】菜单命令 在命令窗口中使用“MODIFY COMMAND”命令 7.4 程序文件(续1)3运行程序文件 在项目管理器中选择这个程序,然后单击【运行】命令。 使用菜单栏上的【程序】【运行】菜单命令 在命令窗口中使用“DO”命令例子:计算并显示两个变

51、量的乘积 X=20 Y=30 Z=X*Y ?Z 7.4 程序文件(续2)4注释与续行 * 下面的几行程序是为几个变量赋初值。Pai = 3.14 & 圆周率精确到小数点后两位即可A = 30 & 设置为30的原因详见需求说明书* 以下的程序是对数据处理 如果一条命令很长,允许把命令分成多行书写,需要在未完的程序行后面添加一个分号“;”,但命令的最后一行不能加分号。7.5 程序的基本结构7.5.1 分支结构7.5.2 循环结构 7.5.1 分支结构 IF 条件 语句序列1 ELSE 语句序列2 ENDIF 1. 简单分支语句IF 条件语句序列1ENDIFIF Country = “中国” AND

52、 City = “北京” IsCapital = .T. ? “是首都”ELSE IsCapital = .F.ENDIF7.5.1 分支结构(续1) 1. 简单分支语句7.5.1 分支结构(续2) 2. 多分支语句 DO CASE CASE 条件1 语句序列1 CASE 条件2 语句序列2 CASE 条件m 语句序列m OTHERWISE 语句序列n ENDCASE 7.5.2 循环结构DO WHILE 语句序列ENDDO 1. DO WHILE语句TempInt = 50DO WHILE TempInt 100 TempInt = TempInt + 1 ?TempIntENDDO7.5.

53、2 循环结构(续1)2. FOR循环语句FOR 循环变量 = 初值 TO 终值 STEP 步长 语句序列ENDFOR例子:计算1+2+3+4+ +100,并显示结果。 TheResult = 0 FOR nVar = 1 TO 100 TheResult = TheResult + nVar ENDFOR ?STR(TheResult)7.5.2 循环结构(续2)3. SCAN循环语句 SCAN 范围 FOR 条件1 WHILE 条件2 语句序列 ENDSCAN使用SCAN循环语句的一个例子是: USE 图书 SCAN FOR 物理 $ 书名 MessageBox(书名) ENDSCAN7.6

54、 过程与函数7.6.1 用户定义过程或函数7.6.2 常用的函数 7.6.1 用户定义过程或函数(续) 1. 定义过程的基本形式 PROCEDURE 过程中要执行的语句 ENDPROC 2. 定义函数的基本形式 FUNCTION 函数中要执行的语句 ENDFUNC7.6.1 用户定义过程或函数PROCEDURE 过程中要执行的语句ENDPROC FUNCTION 函数中要执行的语句ENDFUNCDO Myproc WITH Pl,P2或MyProc(P1,P2)MyVar = MyFunc(P1,P2) 7.6.1 用户定义过程或函数(续)A = 10?MyFunc(A, 12)FUNCTIO

55、N MyFunc(M, N) * 首先计算出M! MTotal = 0 FOR nVar = 1 TO M MTotal = MTotal + nVar ENDFOR * 然后计算出N! NTotal = 0 FOR nVar = 1 TO N NTotal = NTotal + nVar ENDFOR * 返回结果 RETURN MTotal + NTotalENDFUNC例子:编制一个函数,求出M!+N! 7.6.2 常用的函数 在Visual FoxPro中最常用的三种函数: 1. 数值型函数 ?MAX(102.3,-545,92) & 结果为102.3 2. 字符型函数 ?ALLTRI

56、M(“ AB CD ”) & 结果为“AB CD” 3. 日期型函数 ?DTOC(2004-09-28) & 结果为“09/28/04” 7.7 变量的作用域1全局变量2局部变量3本地变量第8章 建立数据库8.1 数据库基本操作8.2 建立表8.3 自由表8.4 表的基本操作8.5 工作区 8.1 数据库基本操作8.1.1 建立数据库8.1.2 修改数据库8.1.3 删除数据库 8.1.1 建立数据库利用菜单栏的【新建】命令建立数据库;在项目管理器中建立数据库;使用建立数据库的命令; 创建数据库可以采取以下三种方法:8.2 建立表8.2.1 在数据库中创建表8.2.2 修改表结构8.2.3 使

57、用SQL命令建立表 8.2.1 在数据库中创建表 1.打开表设计器8.2.1 在数据库中创建表(续1)2.设计表结构8.2.1 在数据库中创建表(续2)在数据库设计器中显示的表:8.2.2 修改表结构修改表结构可以采用以下两种方法:如果这个表是某个数据库中的表,可以先打开数据库设计器,在要修改的表上单击鼠标右键,然后在弹出的快捷菜单中单击【修改】菜单项。在命令窗口中执行以下命令: USE MODIFY STRUCTURE 8.2.3 使用SQL命令建立表 可以使用CREATE TABLE-SQL命令创建表。 OPEN DATABASE 图书销售.dbc CREATE TABLE 图书 ( 图书

58、编号 C(6) NOT NULL , ; 书名 C(40) NULL , ; 作者 C(12) NULL , ; 库存量 N(6,0) NULL , ; 定价 N(6,2) NULL ) 8.3 自由表 如果一个表不属于任何数据库,则称之为自由表。可以把一个表从数据库中移去,使之成为自由表;也可以把一个自由表添加到数据库中,从而成为一个数据库表。1从数据库中移去一个表 8.3 自由表(续)2把自由表添加到数据库中 8.4 表的基本操作 8.4.1 打开表8.4.2 浏览表中记录8.4.3 向表中添加记录8.4.4 编辑表中记录8.4.5 删除表中记录8.4.6 记录定位命令 8.4.1 打开表

59、 可以用以下三种方法打开表:1. 依次点击菜单栏上的【文件】【打开】命令,在弹出的“打开”对话框中确定相关的表文件名。2. 直接单击工具栏中的按钮,弹出“打开”对话框。3. 在命令窗口中使用“USE”命令,其简化的格式为: USE 8.4.2 浏览表中记录 1. 使用菜单命令浏览记录 (1)打开数据库表。 (2)依次单击菜单栏上的【显示】【浏览】命令,你将看到打开的浏览窗口中的记录。8.4.2 浏览表中记录(续) 2. 数据浏览命令 在Visual FoxPro中,可以执行BROWSE命令浏览表中记录。以图书表为例,你可以在命令窗口中执行以下命令: USE 图书.dbf BROWSE BROW

60、SE RECORD 5 BROWSE FIELDS 书名,库存量 BROWSE FOR 库存量1000 8.4.6 记录定位命令1GOTO命令 GOTO | TOP | BOTTOM 2SKIP命令 SKIP 3LOCATE命令 LOCATE FOR 逻辑表达式 8.4.6 记录定位命令(续)LOCATE FOR 逻辑表达式DO WHILE FOUND 业务处理 CONTINUEENDDO8.5 工作区8.5.1 工作区与表8.5.2 工作区的选择与当前工作区8.5.3 表别名8.5.4 字段变量 8.5.1 工作区与表 最多允许使用32767个工作区; 在一个工作区中最多只能打开一个表8.5

温馨提示

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

评论

0/150

提交评论