1、(第二版第二版 )Visual FoxPro应用基础与面向对应用基础与面向对象程序设计教程象程序设计教程李雁翎 编2第一章第一章 数据库数据库基础理论基础理论 信息、数据和数据处理信息、数据和数据处理 数据模型数据模型 数据库系统数据库系统 关系数据库及其设计关系数据库及其设计31.1 信息、数据和数据处理信息、数据和数据处理 1.1.1 数据与信息(Information)客观事物属性的反映。信息是经过加工处理并对人类客观行为产生影响的数据表现形式(Data)反映客观事物属性的记录,是信息的载体。数据是信息的具体表现形式。数据符号:数值型、字符型和特殊型(声音、视频、图象等)4 信息是有用的
2、数据,数据是信息的表现形式。信息是通过数据符号来传播的。只有具有知识性和有用性的数据才能称其为信息。信息处理。利用计算机对各种类型的数据进行处理,它包括利用计算机对各种类型的数据进行处理,它包括对数据的采集、整理、存储、分类、排序、检索、对数据的采集、整理、存储、分类、排序、检索、维护、加工、统计和传输等一系列的过程。维护、加工、统计和传输等一系列的过程。51、2 数据模型数据模型 现实世界中的现实世界中的客观客观事物是彼此相互联系的。事物是彼此相互联系的。对数据组织结构的描述就是数据模型。对数据组织结构的描述就是数据模型。1 1、层次模型层次模型 2 2、网络模型、网络模型 3 3、关系模型
3、、关系模型6 层次模型是一种以记录某一事物的类型为根结点的有向树结构。层次模型象一棵倒置的树层次模型象一棵倒置的树,根结点在上,层次最高;子结点在下,逐层排列。其主要特征如下:其主要特征如下:.仅有一个无双亲的根结点。.根结点以外的子结点,向上仅有一个父结点,向下有若干子结点。7层次模型的示例如图:嘉应学院嘉应学院数学系数学系03级级校团委校团委物理系物理系中文系中文系04级级05级级系学生会系学生会系团委系团委8 网状模型是层次模型的扩展,表示多个从属关系的层次结构,呈现一种交叉关系的网络结构。网状模型是以记录为结点的网络结构网状模型是以记录为结点的网络结构。其主要特征如下:其主要特征如下:
4、.有一个以上的结点无双亲。.至少有一个结点有多个双亲。9网状模型的示例如图:嘉应学院嘉应学院数学系数学系校团委校团委校学生会校学生会中文系中文系系学生会系学生会系团委系团委10 关系模型是指类似关系模型是指类似“二维表二维表”的集合关系的集合关系。40513545女女男男男男女女张红张红刘一峰刘一峰林立林立丁俊丁俊年龄年龄性别性别姓名姓名人才基本情况表人才基本情况表11 1 1、数据项、数据项 最基本的单位 (数据类型)2 2、字段、字段 每一竖列数据项 (字段名)3 3、记录、记录 每一横行 (记录内容)4 4、表、表 一个关系 (文件)12 关系中每一数据项不可再分,是最基本的单位;每一竖
5、列数据项是同属性的。列数根据需要而设,且各列的顺序是任意的;每一横行记录由一个事物的诸多属性项构成。记录的顺序可以是任意的;一个关系是一张二维表,不允许有相同的字段名,也不允许有相同的记录行。13部门部门专业专业姓名姓名性别性别年龄年龄高等院校高等院校 信息管理信息管理张秋红张秋红女女4040科研所科研所软件工程软件工程刘一峰刘一峰男男5151销售公司销售公司计算机计算机林立林立男男3535经贸公司经贸公司 国际贸易国际贸易丁嘉俊丁嘉俊女女4545某地区专门人才基本情况某地区专门人才基本情况141.3 数据库系统数据库系统 数据库是数据库系统的核心和管理对象。数据库是数据库系统的核心和管理对象
6、。(Database)以一定的以一定的组织方式组织方式将关联的数据组织在一起存放在计算机存储器上形将关联的数据组织在一起存放在计算机存储器上形成的、能为多个用户成的、能为多个用户共享共享的、与应用程序的、与应用程序彼此独立彼此独立的一组相关数据的集合。的一组相关数据的集合。15 我们把利用数据库进行信息处理的工作过程,或把掌握、管理和操纵数据库的数据资源的方法看作是一个系统,称这个系统为数据库管理系统简称DBMS。16 数据库管理系统 (Data Base Management System Data Base Management System DBMS DBMS)-实质上就是一个软件如实质
7、上就是一个软件如 Visual Foxpro。17 1、数据描述语言(DDL);2、数据操纵语言(DML);3、数据库管理例行程序。18 用于定义数据库的各级模式(外模式、概念模式、内模式),各种模式通过数据描述语言编译器翻译成相应的目标模式,保存在数据字典中。19 提供对数据库数据存取、检索、插入、修改和删除等基本操作。数据操纵语言一般有两种类型:一种是宿主型语言;另一种是自主型语言。20 是数据库管理系统的核心部分,它包括并发控制、存取控制、完整性条件检查与执行、数据库内部维护等,数据库的所有操作都在上述控制程序的统一管理下进行,以确保数据的正确有效。211.3.3 数据库系统的体系结构数
8、据库系统的体系结构 从数据管理的角度来看,与数据库打交道的从数据管理的角度来看,与数据库打交道的有三类人员:用户、应用程序员和系统程序员。有三类人员:用户、应用程序员和系统程序员。由于他们对数据库的认识、理解和接触范围由于他们对数据库的认识、理解和接触范围各不相同,从而形成了各自的数据库视图。各不相同,从而形成了各自的数据库视图。22 根据各类人员与数据库的不同关系,可把视根据各类人员与数据库的不同关系,可把视图分为三种:图分为三种:对应于用户的对应于用户的外部视图外部视图;对应于应用程序员的对应于应用程序员的概念视图概念视图;对应于系统程序员的对应于系统程序员的内部视图内部视图。由此形成数据
9、库系统的由此形成数据库系统的三级模式结构三级模式结构:外模外模式、概念模式和内模式。式、概念模式和内模式。23图图1-3 数据库系统结构图数据库系统结构图用户用户A1用户用户A2用户用户B1用户用户B2外视图外视图A外模式外模式A外视图外视图B外模式外模式B概念模式概念模式概念视图概念视图存储结构定义存储结构定义(内模式)(内模式)存储数据库存储数据库(内视图)(内视图)DBMS由数据由数据库管理库管理员建立员建立和维护和维护的模式的模式241.3.4 数据库应用系统的构成数据库应用系统的构成 数据库应用系统是指引进了数据库技数据库应用系统是指引进了数据库技术后的整个计算机系统。术后的整个计算
10、机系统。它是由有关的硬件、软件、数据和人员四个它是由有关的硬件、软件、数据和人员四个部分组合形成的为用户提供信息服务的系统部分组合形成的为用户提供信息服务的系统25数据库应用系统的构成:数据库应用系统的构成:数据库应用系统数据库应用系统硬件硬件软件软件数据数据人员人员计算机硬件系统:计算机硬件系统:CPUCPU、内存、内存、外存及输入输出设备外存及输入输出设备系统软件系统软件应用软件应用软件操作系统操作系统数据库管理系统数据库管理系统应用系统开发工具软件应用系统开发工具软件数据库数据库信息源信息源数据库管理员数据库管理员系统分析员、程序员系统分析员、程序员用户用户261.4 关系数据库及其设计
11、关系数据库及其设计 关系数据库关系数据库(relation database)是若干个是若干个数据表文件的集合。数据表文件的集合。也就是说,关系数据库是由若干个二维表组也就是说,关系数据库是由若干个二维表组成的。一个二维表即为一个数据表,数据表包含数成的。一个二维表即为一个数据表,数据表包含数据及数据间的关系据及数据间的关系27 一个数据库由若干个数据表组成一个数据库由若干个数据表组成;一个数据表又由若干个记录组成一个数据表又由若干个记录组成;一个记录又由若干个以字段组成一个记录又由若干个以字段组成。一个数据库有一个名字,称为库文件名。一个数据库有一个名字,称为库文件名。而在数据库中,每一个数
12、据表又有名字,称为而在数据库中,每一个数据表又有名字,称为表文件名。表文件名。28(Relation Database)若干个依照关系模型设计的数据表文件的集若干个依照关系模型设计的数据表文件的集合。合。关系数据库是由若干张完成关系模型设计的关系数据库是由若干张完成关系模型设计的二维表组成的。二维表组成的。29v1.4.2 关系的规范化关系的规范化在一个关系中,消除重复字段,且各字段都是不可分的基本数据项。若关系数据库属于第一范式,则所有非主属性应完全依赖关键字段。若关系数据库属于第二范式,则关系中所有非主属性都直接依赖于关键字段。自然情况自然情况专业专业成果和成就成果和成就编号编号姓名姓名性
13、性别别出生日期出生日期工资现工资现状状党党员员否否专专业业专专业业年年限限职职称称英英语语水水平平名称名称类类别别出出处处bj10001刘伟箭刘伟箭男男1960.08.232000T计计算算机机应应用用20教教授授精精通通略略略略略略略略略略略略略略略略略略略略略略略略略略略略略略jl04010黄晓远黄晓远男男1970.08.1210000F财财政政税税收收0副副教教授授精精通通略略略略略略略略略略略略略略略略略略略略略略略略略略略略略略1.4.3 表间关联关系的类型:有表间关联关系的类型:有 3 种种 一对一一对一 一对多一对多 多对一。多对一。两个数据表中选一个相同字段作为关键字段,两个数
14、据表中选一个相同字段作为关键字段,其中一个表中的关系字段称为主关键字段具有唯一其中一个表中的关系字段称为主关键字段具有唯一值,另一个表中的关系字段为外来关键字段也具有值,另一个表中的关系字段为外来关键字段也具有唯一值。唯一值。编号编号姓名姓名性别性别bj10001刘伟箭刘伟箭男男bj10002刘简捷刘简捷男男gz05001藤波海藤波海男男gz05002杨行东杨行东男男jl04001林惠繁林惠繁女女一对一(编号)一对一(编号)编号编号专业专业专业年限专业年限bj10001计算机应用计算机应用20bj10002环境工程环境工程24gz05001生物工程生物工程30gz05002统计学统计学15jl
15、04001财政税收财政税收1033两个数据表中选一个相同字段作为两个数据表中选一个相同字段作为关键字段,其中一个表中的关系字段称关键字段,其中一个表中的关系字段称为主关键字段具有唯一值,另一个表中为主关键字段具有唯一值,另一个表中的关系字段为外来关键字段该值是重复的关系字段为外来关键字段该值是重复的。的。34一对多(编号)一对多(编号)编号编号成果名称成果名称专业年限专业年限bj10001VF高级编程技术高级编程技术20bj10001专门人才信息管理系统专门人才信息管理系统24bj10001VF编程技巧与常见问题解答编程技巧与常见问题解答30bj10001面向对象编程与系统开发面向对象编程与系
16、统开发15bj10001面向对象编程与系统程序优化面向对象编程与系统程序优化10编号编号姓名姓名性别性别bj10001刘伟箭刘伟箭男男bj10002刘简捷刘简捷男男gz05001藤波海藤波海男男gz05002杨行东杨行东男男jl04001林惠繁林惠繁女女35 两个数据表中选一个相同字段作为两个数据表中选一个相同字段作为关键字段,其中一个表中的关系字段称关键字段,其中一个表中的关系字段称为主关键字段具有重复值,另一个表中为主关键字段具有重复值,另一个表中的关系字段为外来关键字段该值是唯一的关系字段为外来关键字段该值是唯一的。的。36编号编号成果名称成果名称专业年限专业年限bj10001VF高级编
17、程技术高级编程技术20bj10001专门人才信息管理系统专门人才信息管理系统24bj10001VF编程技巧与常见问题解答编程技巧与常见问题解答30bj10001面向对象编程与系统开发面向对象编程与系统开发15bj10001面向对象编程与系统程序优化面向对象编程与系统程序优化10多对一(编号)多对一(编号)编号编号姓名姓名性别性别bj10001刘伟箭刘伟箭男男bj10002刘简捷刘简捷男男gz05001藤波海藤波海男男gz05002杨行东杨行东男男jl04001林惠繁林惠繁女女371.4.4 关系的完整性关系的完整性 用户自定义完整性。用于对数据表中字段用户自定义完整性。用于对数据表中字段属性的
18、约束(值域、类型和有效性规则)。属性的约束(值域、类型和有效性规则)。对关系中记录的唯一性,即主键的约束。对关系中记录的唯一性,即主键的约束。381.4.4 关系的完整性关系的完整性 参照完整性包括:删除约束、更新约束和插入约束。参照完整性包括:删除约束、更新约束和插入约束。对关系数据库中建立关联关系的数据表间数据参照对关系数据库中建立关联关系的数据表间数据参照引用的约束。引用的约束。参照完整性指关系中的外键必须是关系中另一个参照完整性指关系中的外键必须是关系中另一个的主键有效值,或的主键有效值,或NULL。39v 1.4.5 关系运算关系运算 以关系为运算对象的运算。(Select):选择运
19、算是从关系(二维表)中选择某些满选择运算是从关系(二维表)中选择某些满足条件的记录组成一个新的关系(二维表)。足条件的记录组成一个新的关系(二维表)。(人才档案人才档案)举例:SELECT *FROM RCDA WHERE 性别性别=“男男”40 从关系(二维表)中选择某些字段的所有值组成一个新的关系(二维表)。编号编号,姓名姓名,性别性别,出生日期出生日期(人才档案)(人才档案)举例:举例:SELECT 编号编号,姓名姓名,性别性别,出生日期出生日期 FROM RCDA41:将两个或多个关系(二维表)将两个或多个关系(二维表)通过连接条件组成一个新的关系(二维通过连接条件组成一个新的关系(二
20、维表)。表)。(人才档案)(人才档案)(专业特长)(专业特长)ON RCDA.编号编号 =ZYTC.编号编号42 SELECT rcda.编号,rcda.姓名,rcda.性别,zytc.专业,zytc.职称 FROM rcda JOIN zytc ON rcda.编号=zytc.编号431 1、常用的数据模型有几种、常用的数据模型有几种?2 2、什么是数据库、什么是数据库?3 3、什么是关系数据库、什么是关系数据库?4 4、数据库中数据表间的关系有几种、数据库中数据表间的关系有几种?5 5、数据库应用系统的主要组成部分是什么、数据库应用系统的主要组成部分是什么?6、有几种关系运算是什么、有几种关系运算是什么?思考题思考题