Visual FoxPro 程序设计 第1章 数据库系统概述 主讲教师:高骏 Emil:704098395@qq.com
课程概述 - 数据库基础理论 根据教育部提出的非计算机专业计算机基础教学三个层次要求 配合全国计算机等级考试“Visual FoxPro二级”考试大纲的知识要点 以Visual FoxPro 6.0为主要内容,介绍关系数据库管理系统基础理论及应用系统开发知识 主要内容: - 数据库基础理论 - Visual FoxPro 6.0 的基本操作 - 面向过程编程、面向对象可视化编程 注意: 本课程学完可 以报名参加国家二级考试
课程安排 课时: 考试: 参考书: 联系方式:E-mail: 704098395@qq.com 课堂教学+上机实践(1 :1) 期末考试70%+平时作业30% 参考书: 《二级教程-Visual FoxPro程序设计》王利 主编 高教社 《Visual FoxPro实用教程》李明 主编 清华出版社 联系方式:E-mail: 704098395@qq.com 网络课堂:http://learn.huel.edu.cn/
课程要求 本章要求: 本章要点: 学时安排: 1. 了解信息、数据及数据处理等基本概念。 2. 掌握数据库系统的组成及功能。 3. 了解各种数据模型的定义及特点。 4. 掌握关系数据库的一些基本术语,如关系、元组等。 5. 熟悉关系运算:选择、投影、连接。 本章要点: 数据库系统的组成、关系数据库的特点、关系运算。 学时安排: 1学时(理论)+1学时(实践)
第1章 数据库系统概述 1.1 数据处理的发展过程 1.2 数据模型 1.3 关系数据模型 作业 结束
1.1 数据处理的发展过程 1.1.1 数据、信息和信息处理 1. 数据 1.1 数据处理的发展过程 1.1.1 数据、信息和信息处理 1. 数据 是指存储在某一种媒体(载体)上能够识别的物理符号,是信息的一种量化表示(是对客观事物特征的一种抽象的、符号化的表示)。 包括数字、文字、图形、图像、声音和其他的特殊符号。现代计算机可以接受几乎所有类型的数据。
2.信息 是指通过种种方式传播的,可被感受的声音、文字、图象、符号所表征的某一特定事物的消息、情报或知识。换句话说信息是对客观事物的反映,是为某一特定目的而提供的决策依据。 3.数据处理 数据处理是将数据转换成信息的过程,从数据处理角度,信息是一种被加工成特定形式的数据。
1.1.2 数据管理技术的发展 数据处理的核心是数据管理。数据管理包括对各种形式的数据进行收集、存储、加工和传输等活动。 分布式数据库系统阶段 数据库系统阶段 文件系统阶段 人工管理阶段
1. 人工管理阶段 应用程序1 数据集1 应用程序2 数据集2 1.程序间不能共享数据; 2.程序复杂; 3.数据量小且无法长期保存; 时间:20世纪50年代以前 1.程序间不能共享数据; 2.程序复杂; 3.数据量小且无法长期保存; 4.数据重复输入量大。 主要特点 用途:主要用于数值计算 硬件:卡片、纸带和磁带 软件:无系统软件和管理数据的软件
2. 文件系统阶段 文件系统 主要特点 数据集1 应用程序1 应用程序n 数据集n 1.程序间可以共享数据; 2.程序代码有所简化; 3.数据冗余度大; 4.程序对数据依赖性较强。 时间:20世纪50年代后期至60年代中期 硬件:磁鼓和磁盘等直接存取设备 软件:有操作系统和文件系统
3.数据冗余度小,并具有一定的一致性和完整性等特点。 3. 数据库管理阶段 应用程序1 数据库 管理系统 应用程序2 数据库 人工输入 主要特点 1.数据集中式管理,高度共享; 2.数据结构化并与程序分离; 3.数据冗余度小,并具有一定的一致性和完整性等特点。 时间:20世纪60年代后期至70年代后期 用途:主要用于数值计算 外存:大容量磁盘 软件:出现许多数据库管理系统
1.1.3 数据库、数据库管理系统和数据库系统 1. 数据库 数据库(Database,简称DB):是存储在计算机存储设备上,结构化的相关数据的集合。它不仅包括描述事物的数据本身,而且包括相关事物之间的联系。
2. 数据库管理系统 (DBMS---Data Base Management System) 用于建立、维护和管理数据库的系统软件; 提供数据安全性和完整性的控制机制; 具有完备数据库操作命令体系; 可在交互方式下管理和访问(存取)数据库; 可利用开发工具开发数据库管理系统;
2. 数据库管理系统 功能 数据操纵 数据定义 数据查询 数据通讯 数据库运行管理和控制 数据库维护 数据库组织、存储和管理 VF就是一种关系数据库管理系统,其它关系数据库还有: 大型数据库管理系统:Sybase、Oracle 小型数据库管理系统:Access、FoxBASE、FoxPro
3. 数据库系统 数据库系统(DBS─DataBase System)是指引入数据库技术后的计算机系统,实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的使用手段。 硬件 软件 数据(DB):数据库系统的核心 人员:管理、开发、最终用户 :计算机 操作系统(OS) 数据库管理软件(DBMS) 应用程序 数据库系统(DBS)
1.2 数据模型 1.2.1 数据描述 人们把客观存在的事物以数据的形式存储到计算机中,经历了对现实生活中事物特征的认识、概念化到计算机数据库中的具体表示的逐级抽象过程。这一过程经历了三个层次,即现实世界、信息世界和数据世界。
1.2 数据模型 1.2.1 数据描述 人们把客观存在的事物以数据的形式存储到计算机中,经历了对现实生活中事物特征的认识、概念化到计算机数据库中的具体表示的逐级抽象过程。这一过程经历了三个层次,即现实世界、信息世界和数据世界。 1. 现实世界(实体的描述) 现实世界是存在于人脑之外的客观世界。现实世界的事物及事物之间存在着联系,这种联系是客观存在的,是由事物本身的性质决定的。
数据处理是指将数据转换成信息的过程,信息是由若干个数据组成的 。 2. 信息世界 信息是指通过种种方式传播的,可被感受的声音、文字、图象、符号所表征的某一特定事物的消息、情报或知识。换句话说信息是对客观事物的反映,是为某一特定目的而提供的决策依据。 3. 数据世界 数据是指存储在某一种媒体(载体)上能够识别的物理符号, 是信息的一种量化表示(是对客观事物特征的一种抽象的、符 号化的表示)。 数据处理是指将数据转换成信息的过程,信息是由若干个数据组成的 。
1.2.2 概念模型 1. 实体的描述 是客观事物的真实反映 事物的特性 是实体属性的量化表示 用实体名及所有属性的集合 如一个学生、一本书、一次比赛、一次会议 1.2.2 概念模型 1. 实体的描述 如学生实体可以用学号、姓名、性别、年龄等若干个属性来描述 实体 是客观事物的真实反映 如学生的姓名、性别是属性的型,而具体的值“李明、男”是属性的值 实体属性 事物的特性 如对学生实体的型可以描述为:学生(学号,姓名,性别,年龄) 属性值 是实体属性的量化表示 例如在学生实体集中,(20130101、李明、男、20)是一个具体学生。 实体类型 用实体名及所有属性的集合 实体集 具有相同属性的实体集合
2.实体之间的联系 两个实体存在一一对应关系 一个实体对应多个实体 多个实体对应多个实体 一对一 一对多 m:n联系 多对多 实体名 m 班级 组成 学生 1 n 1:n联系 课程 选修 学生 m n m:n联系 班级 班级-班长 班长 1 1:1联系 联系 一对多 一个实体对应多个实体 多对多 多个实体对应多个实体
3.教学管理系统实体联系模型 教学管理由学生、教师、课程三个实体组成。 在教学管理系统中,存在着以下联系: 一个学生可以选修多门课程,而一门课程可以被多个学生选修。 一位教师可以讲授多门课程,一门课程可以有多位教师讲授。 一个学生将有多位教师授课,一位教师可以对多位学生授课。
1.2.3 数据模型 用于描述数据库管理系统的数据模型有三种: 层次模型 网状模型 关系模型 数据模型是指反映客观事物及客观事物间联系的数据结构和形式。 用于描述数据库管理系统的数据模型有三种: 层次模型 网状模型 关系模型
特点:有且仅有一个结点没有父结点,称为根结点; 每个非根结点有且仅有一个父结点。 1. 层次模型 学生 职工 车辆 办公用品 实验仪器 学院 科研项目 固定资产 学校 特点:有且仅有一个结点没有父结点,称为根结点; 每个非根结点有且仅有一个父结点。
特点:可能有多个结点没有父结点,即多个根结点; 某个非根结点可能有多个父结点。节点的联系是任意的。更适合于描述客观世界。 2. 网状模型 出版社 科研机构 作者 图书 读者 特点:可能有多个结点没有父结点,即多个根结点; 某个非根结点可能有多个父结点。节点的联系是任意的。更适合于描述客观世界。
3. 关系模型 用二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。
1.3关系数据模型 主关键字(主码):能唯一确定记录的字段。 域:属性的取值范围 元组:一行。表示一个实体,在表中称为记录。 属性:一列。表示每一列相同的属性,在表中称为字段,列名为属性名 候选关键字(候选码) 1.3.1 关系模型 1.关系术语 外关键字(外码):如果表中的一个属性不是主关键字和候选关键字,但是是另外一个表的主关键字或候选关键字,这个属性就称为外部关键字(外码)。 关系表
模型理论与关系数据库中术语的对照关系 在关系模型理论中 在关系数据库中 关系 数据表 元组 记录 属性 字段
2.关系的特点 关系中每一列元素是数据类型相同的数据。 关系中不能出现相同的属性名,及字段不能重名。字段的顺序可以任意改变。 关系中元组的顺序也可以改变,关系中不能出现相同的 记录。 每一个属性是不可再分的最小数据项。这一点最重要!
3. 建立关系模型 5、数据库(database): 表的集合 学生表 学号 姓名 出生日期 年级 性别 系 001 张三 03/05/90 2006 男 计科系 002 李四 01/15/89 2005 女 003 王五 07/21/90 会计系 4、表(table):按一定结构存储的一组相关的数据。由若干记录组成,记录中的字段规定了表中数据的结构。 选课表 成绩表 课程号 课程名 学分 01 数据库 2 02 计算机 3 03 会计学 4 学号 课程号 成绩 001 01 80 002 02 65 003 03 50 3、记录(record):由若干字段组成,组成记录的字段的长度之和称为记录的长度 1、字符:标识实体属性的符号集 2、字段(field):最基本的不可再分的有名字的数据单位
1.3.2 关系运算 1.传统的集合运算 传统的集合运算包括并、差、交和笛卡尔积,一般要求进行这些集合运算的两个关系具有相同的结构 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 003 张冰冰 20 005 张宇飞 男 006 姜飞飞 008 郭建设 009 路齐 18 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 002 李慧君 20 否 003 张冰冰 004 朱文静 18 团员关系S 女生关系R
R S (1)并 设有两个关系R和S,R和S的并是由属于R或属于S的元组组成的集合,记为R∪S。 R∪ S 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 002 李慧君 20 否 003 张冰冰 004 朱文静 18 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 002 李慧君 20 否 003 张冰冰 004 朱文静 18 005 张宇飞 男 006 姜飞飞 008 郭建设 009 路齐 女生关系R 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 003 张冰冰 20 005 张宇飞 男 006 姜飞飞 008 郭建设 009 路齐 18 R∪ S 团员关系S
R S (2)差 设有两个关系R和S, 定义R和S的差是由属于R但不属于S的元组组成的集合,记为R-S。 R- S 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 002 李慧君 20 否 003 张冰冰 004 朱文静 18 学号 姓名 性别 年龄 团员 002 李慧君 女 20 否 004 朱文静 18 女生关系R 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 003 张冰冰 20 005 张宇飞 男 006 姜飞飞 008 郭建设 009 路齐 18 R- S 从表中可以看出R-S的属性名及其排列完全和R、S相同,它是由属于R而不属于S的元组形成的。也就是求不是团员的女生记录。 团员关系S
R S (3)交 设有两个关系R和S,R和S的交是既属于R又属于S的元组组成的集合,记为R∩S。 R∩ S C 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 002 李慧君 20 否 003 张冰冰 004 朱文静 18 C 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 003 张冰冰 20 女生关系R 学号 姓名 性别 年龄 团员 001 赵丹丹 女 19 是 003 张冰冰 20 005 张宇飞 男 006 姜飞飞 008 郭建设 009 路齐 18 R∩ S 从表中可以看出R∩S的属性名及其排列完全和R、S相同,它是由既属于R又属于S的元组形成的。也就是求是团员的女生记录。 团员关系S
(4)笛卡尔积 课号 课程名称 教室 20000102 英语 数学楼202 20000104 数据结构 数学楼301 20000105 组合数学 设R的元数m元,关系S的元数为n元,定义R和S的笛卡尔积R×S是(m×n)个分量的元组的集合,每个元组的前m个分量来自关系R的一个元组,后n个分量来自关系S的一个元组。 学号 姓名 20000109 赵丹 20000101 秦飞 20000103 张宇飞 课程关系S 学生关系R R×S 学号 姓名 课号 课程名称 教室 20000109 赵丹 20000102 英语 数学楼202 20000104 数据结构 数学楼301 20000105 组合数学 20000101 秦飞 20000103 张宇飞 VF中没有直接提供传统的集合运算,可以通过其它操作或编写程序来实现。
2. 特殊的集合运算 投影是从表中选取若干列进行操作 例:在人才档案表中,显示有学号、姓名、出生日期、系组成一个新关系。 (1)投影(Projec) 投影是从表中选取若干列进行操作 学号 姓名 出生日期 年级 性别 系 001 张三 03/05/90 2006 男 计科系 002 李四 01/15/89 2005 女 003 王五 07/21/90 会计系 学号 姓名 出生日期 系 001 张三 03/05/90 计科系 002 李四 01/15/89 003 王五 07/21/90 会计系
选择操作是从表中选取满足某种条件的元组(记录)进行操作。 (2)选择(Select) 例:在人才档案表中,选出性别=“男”的人员的档案。 选择操作是从表中选取满足某种条件的元组(记录)进行操作。 学号 姓名 出生日期 年级 性别 系 001 张三 03/05/90 2006 男 计科系 002 李四 01/15/89 2005 女 003 王五 07/21/90 会计系 学号 姓名 出生日期 年级 性别 系 001 张三 03/05/90 2006 男 计科系 003 王五 07/21/90 会计系
联接是对两张表按一定的条件进行联接,同时生成一张新表。 例:将两个表按相同的学号进行连接,形成一个新表 (3)连接(Join) 联接是对两张表按一定的条件进行联接,同时生成一张新表。 学号 课程 成绩 001 数据库 80 002 计算机 65 003 会计学 50 学号 奖励 日期 001 三号学生 2007.9 002 优秀班干部 2008.3 003 优秀党员 学号 课程 成绩 奖励 日期 001 数据库 80 三号学生 2007.9 002 计算机 65 优秀班干部 2008.3 003 会计学 50 优秀党员
关系的完整性,即关系中的数据及具有关联关系的数据间必须遵循的制约和依存关系,以保证数据的正确性、有效性和相容性。 1.3.3 关系的完整性约束 对“人才档案”表的“编号”属性设为主关键值,那么“编号”的值不能为空(即不确定的值)也不能重复。如不满足,则违反了关系的实体完整性的约束。 关系的完整性,即关系中的数据及具有关联关系的数据间必须遵循的制约和依存关系,以保证数据的正确性、有效性和相容性。 1.实体完整性 是指关系中的主关键字的值不能为空也不能有相同值。
2. 参照完整性 相关联的两个表之间的约束。对具有主从关系的两个表来说,表中每条记录外键的值必须是主表中存在的。 专业 名称 类别 101 关系模型:专业 相关联的两个表之间的约束。对具有主从关系的两个表来说,表中每条记录外键的值必须是主表中存在的。 专业 名称 类别 101 102 201 202 301 数学 电子学 法学 新闻学 英语 理科 文科 关系模型:民族 民族 名称 01 02 10 11 汉族 满族 朝族 蒙古族 关系模型:学生 学号 姓名 性别 民族 出生日期 专业 0310101 0310102 0311101 0301201 李大明 张晓光 韩雪 王宇鹏 男 女 02 01 10 1985/05/04 1986/06/01 1985/01/12 1985/10/01 101 301 202
3. 用户定义完整性 不同的关系数据库系统根据其应用环境的不同,需要针对某一具体字段设置约束条件。 对于“性别”字段,定义的是两个字节的字符型数据,其取值范围只能是“男”、“女”或者“工资现状”字段取值一定要大于0。 3. 用户定义完整性 对于人才档案关系,“编号”的前两位是籍贯所在地, 如果该记录中的“编号”是:bj11002,籍贯不是“北京”,就出现了记录上的不一致性,这个问题可能是用户的输入错误造成的。 不同的关系数据库系统根据其应用环境的不同,需要针对某一具体字段设置约束条件。 (3)表约束:表约束是对表格进行的一种约束。通常使用触发器方式进行设置。 Visual FoxPro提供了删除、插入和更新三种触发器。 (2)记录有效性约束:记录是字段的集合,当字段值组合在一起时,必须是有意义的,不能造成逻辑上的错误。 (1)字段有效性约束:具体某个字段设置限制条件
本章小结 本章首先介绍了数据库系统的有关概念、数据库管理系统的功能;重点讲解了关系模型的特点和关系运算;对使用VF开发数据库应用系统的数据库设计方法作了较全面地描述。其中,关系数据库和数据库设计这两部分是必备的基础知识,同学们一定认真掌握。
实验题一 1、设计一个“图书销售信息管理”数据库 2、设计一个“友人通讯录”数据库 3、设计一个“学生信息管理”数据库