1、2022-12-15信息电子技术学院公共教学部信息电子技术学院公共教学部数据库程序设计教程第1章 Visual FoxPro 基础教学目的和要求教学目的和要求通过本章的学习,使学生掌握数据库系通过本章的学习,使学生掌握数据库系统的基础知识,熟悉关系数据库的概念、数统的基础知识,熟悉关系数据库的概念、数据模型和关系运算据模型和关系运算第1章 Visual FoxPro 基础教学重点教学重点 1、数据库的基本概念,如数据库、数据模型、数据库的基本概念,如数据库、数据模型、数据库数据库 管理系统、数据库管理系统、数据库(应用应用)系统系统 2、关系数据库的一些基本术语,如关系、元、关系数据库的一些基
2、本术语,如关系、元组、属性、组、属性、域、主关键字、外部关键字域、主关键字、外部关键字 3、关系运算:选择、投影、连接、关系运算:选择、投影、连接第1章 Visual FoxPro 基础wVisual FoxPro的概念:的概念:Visual FoxPro是微型计算机上的数据是微型计算机上的数据库管理系统;它是微软公司开发的一个通库管理系统;它是微软公司开发的一个通用系统软件。用系统软件。Visual FoxPro采用了可视化的、面向对采用了可视化的、面向对象的程序设计方法,大大简化了应用系统象的程序设计方法,大大简化了应用系统的开发过程。的开发过程。1.1.1 数据库基础知识w 数据(数据(
3、Data)数据是描述现实世界事物的符号记录,是用物理符号记录数据是描述现实世界事物的符号记录,是用物理符号记录的、可以鉴别的信息。的、可以鉴别的信息。w 数据库(数据库(DataBase,DB)是存放在计算机的存储设备上、结构化的相关数据的集合。是存放在计算机的存储设备上、结构化的相关数据的集合。通俗点讲,数据库就是存储数据的仓库。通俗点讲,数据库就是存储数据的仓库。w 数据库管理系统(数据库管理系统(DBMS)数据库管理系统数据库管理系统(DataBase Management System)是对处是对处于用户于用户(应用程序应用程序)和操作系统之间的一种软件,其作用是和操作系统之间的一种软
4、件,其作用是对数据库中的数据实施有效的组织和管理。对数据库中的数据实施有效的组织和管理。w 数据库系统(数据库系统(DataBase System,DBS)数据库系统是引进数据库技术后的计算机系统,实现有组数据库系统是引进数据库技术后的计算机系统,实现有组织、动态存储大量相关的数据,提供数据处理和信息资源织、动态存储大量相关的数据,提供数据处理和信息资源共享的便利手段。共享的便利手段。1.1.2数据模型w 数据模型是对客观事物及其联系的数据描述,反映了实体内数据模型是对客观事物及其联系的数据描述,反映了实体内部和实体之间的联系。部和实体之间的联系。w 1、实体的描述、实体的描述实体实体(Ent
5、ity)客观存在并且可以相互区别的事物称实体。实体可以是实际的事物,也客观存在并且可以相互区别的事物称实体。实体可以是实际的事物,也可能是抽象的事件。可能是抽象的事件。例例如,职工、图书等属于实际事物;一场比赛、一如,职工、图书等属于实际事物;一场比赛、一堂课、一次选课都是比较抽象的事件。堂课、一次选课都是比较抽象的事件。实体的属性实体的属性(Attribute)描述实体的特性称为属性。描述实体的特性称为属性。例如,职工(职工号,姓名,性别,出生日期,职称)例如,职工(职工号,姓名,性别,出生日期,职称)图书(编号、书名、作者、出版社、单价、类别)图书(编号、书名、作者、出版社、单价、类别)域
6、域(Domain)属性的取值范围称为该属性的域。属性的取值范围称为该属性的域。例如例如:职工号的职工号的域为域为8位整数,姓名的域为字符串集合位整数,姓名的域为字符串集合,性别的,性别的域为域为(男,女男,女)。1.1.2数据模型实体集和实体型实体集和实体型 某一实体属性的集合表示这种实体的类型,称为某一实体属性的集合表示这种实体的类型,称为实体型实体型。属。属性值的一个集合表示一个实体,同类型的实体的集合,称为性值的一个集合表示一个实体,同类型的实体的集合,称为实体集。实体集。例如:例如:(教师编号、姓名、性别、出生日期、职称、基本工资、研(教师编号、姓名、性别、出生日期、职称、基本工资、研
7、究方向)表征究方向)表征“教师教师”这样一种实体的实体型这样一种实体的实体型(19010123、张磊、男、张磊、男、1980、讲师、讲师、3500、云计算及大、云计算及大数据)表征一个实体数据)表征一个实体1.1.2数据模型oVisual FoxPro中的实体集在VF中用“二维表”来存放同一类实体,即实体集。在二维表中,每一列表示一个属性,称为字段(包括字段名和字段值),每一行字段值的集合表示一个实体,称为一个记录1.1.2数据模型2 2、实体间联系及联系的种类、实体间联系及联系的种类o 实体的联系:实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。o 联系的种类:是指一个实体型中
8、可能出现的每一个实体与另一个实体型中多个具体实体存在联系。(1)一对一联系(one to one relationship)例如:班级与班主任的联系(2)一对多联系(one to many relationship)例如:班级与学生的联系(3)多对多联系(many to many relationship)例如:学生与某学期课程的联系(1)VF中一对一联系实例中一对一联系实例1.1.2数据模型(2)VF中一对多联系实例中一对多联系实例1.1.2数据模型(3)多对多联系实例)多对多联系实例1.1.2数据模型E-R图实例:某个工厂物资管理的概念模型w 物资管理涉及的实体:物资管理涉及的实体:仓库仓
9、库:属性有仓库号、面积、电话号码。属性有仓库号、面积、电话号码。零件零件:属性有零件号、名称、规格、单价、描述。属性有零件号、名称、规格、单价、描述。供应商供应商:属性有供应商号、姓名、地址、电话号码、账号。属性有供应商号、姓名、地址、电话号码、账号。项目项目:属性有项目号、预算、开工日期。属性有项目号、预算、开工日期。职工职工:属性有职工号、姓名、年龄、职称。属性有职工号、姓名、年龄、职称。w 实体之间的联系实体之间的联系 1、一个仓库可以存放多种零件,一种零件可以存放在多个仓库中、一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。用库存量来表示某种零件在某个仓库中的数量。用库存量来表
10、示某种零件在某个仓库中的数量。2、一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库、一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作。工作。3、职工之间具有领导、职工之间具有领导-被领导关系。即仓库主任领导若干保管员。被领导关系。即仓库主任领导若干保管员。4、一个供应商可以供给若干项目多种零件,每个项目可以使用不、一个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件可由不同供应商供给。同供应商供应的零件,每种零件可由不同供应商供给。工厂物资管理工厂物资管理E-RE-R图图1.1.2数据模型w 3、数据模型、数据模型任何一个数据库管理系统都是基于某种
11、数据模型任何一个数据库管理系统都是基于某种数据模型的。数据管理系统支持:的。数据管理系统支持:层次模型层次模型、网状模型网状模型、关系模型关系模型三种数据模型,相应的数据库类型也有三种数据模型,相应的数据库类型也有三种:层次模型数据库、网状模型数据库、关系三种:层次模型数据库、网状模型数据库、关系(模型模型)数据库。数据库。关系模型:用二维表结构来表示实体及实体关系模型:用二维表结构来表示实体及实体之间的联系之间的联系一个二维表中,所有的记录格式相同、长度相同。一个二维表中,所有的记录格式相同、长度相同。同一字段数据的性质是相同的,它们均为同一属性的同一字段数据的性质是相同的,它们均为同一属性
12、的值。值。行和列的排列顺序并不重要。行和列的排列顺序并不重要。1.1.2数据模型1.1.3 关系数据库w 1.1.3.1关系数据库的几个基本概念关系数据库的几个基本概念w 1、关系模型、关系模型用二维表的形式表示实体和实体之间联系的数据模型用二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。称为关系数据模型。w 2 2、关系术语、关系术语w 关系关系:一个关系就是一个二维表,每个关系有一个一个关系就是一个二维表,每个关系有一个关系名。关系名。在在Visual FoxPro中,一个关系存储为一个中,一个关系存储为一个表文件,其扩展名为表文件,其扩展名为.dbf,称为表。,称为表。w
13、元组元组:在一个二维表(关系)中,水平方向的行称在一个二维表(关系)中,水平方向的行称为元组。而为元组。而在在Visual FoxPro中,一行称为一个记录。中,一行称为一个记录。属属 性性:一个二维表(关系)中,垂直方向的列称为属一个二维表(关系)中,垂直方向的列称为属性,每一列有一个属性名。性,每一列有一个属性名。而而在在Visual FoxPro中,中,属性被称为字段,属性名对应字段名,属性值对应各属性被称为字段,属性名对应字段名,属性值对应各个记录的字段值。个记录的字段值。1.1.3 关系数据库域域 :一个属性的取值范围,称为该属性的域。关键字关键字:关键字是一个关系中能唯一区分,确定
14、不同关键字是一个关系中能唯一区分,确定不同元组的属性或属性的组合,称为该关系的一个关键元组的属性或属性的组合,称为该关系的一个关键字。字。在在Visual FoxProVisual FoxPro中,关键字是字段或字段的组中,关键字是字段或字段的组合。在一个表中可以选一个关键字做为主关键字,合。在一个表中可以选一个关键字做为主关键字,而其它关键字则称为候选关键字。而其它关键字则称为候选关键字。外部关键字:外部关键字:如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,这个字段就称为外部关键字。(P14)注:关键字的属性值不能取注:关键字的属性值不能取“空值空值
15、”,因而无法唯一区分、,因而无法唯一区分、确定元组。确定元组。1.1.3 关系数据库1.1.3 关系数据库4、实际关系模型、实际关系模型 一个数据库中包括相互之间存在联系的多个表,在实体之一个数据库中包括相互之间存在联系的多个表,在实体之间的联系中,公共字段名起着桥梁的作用。间的联系中,公共字段名起着桥梁的作用。1.1.4 关系运算关系运算关系运算关系运算 对关系数据库进行查询时,需要找到用户感兴对关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算。趣的数据,这就需要对关系进行一定的关系运算。(1)传统的集合运算)传统的集合运算(设有两个相同结构的关系(设有两个相
16、同结构的关系R和和S)并并:并是由属于关系并是由属于关系R和和S的元组组成的集合。的元组组成的集合。差差:R和和S的差是由属于的差是由属于R但不属于但不属于S的元组组成的集的元组组成的集合。合。交交:R和和S的交是由既属于的交是由既属于R又属于又属于S的元组组成的集的元组组成的集合。合。例如:例如:R(1,2,3,4,5,6,7)S(1,3,4,5,7,8,9)1.1.4 关系运算关系运算选择选择:投影投影:连接连接:1.1.4 关系运算关系运算1.1.4 关系运算关系运算关系的完整性约束关系的完整性约束实体完整性:主关键字不能取实体完整性:主关键字不能取“空值空值”参照完整性:主关键字和外部
17、关键字的关系参照完整性:主关键字和外部关键字的关系用户定义完整性:字段有效性约束和记录有效用户定义完整性:字段有效性约束和记录有效性约束性约束经典题解【例例1 1】设有供应商关系设有供应商关系S S和零件关系和零件关系P P如下图如下图所示。它们的主码分别是所示。它们的主码分别是 供应商号供应商号 和和 零零件号件号。而且,零件关系。而且,零件关系P P的属性的属性 供应商号供应商号 是它的外码,属性是它的外码,属性 颜色颜色 只能取值为(红,只能取值为(红,白,兰)。(这里假定白,兰)。(这里假定DBMSDBMS不支持不支持 级联修级联修改改 功能)下列功能)下列 不能插入到关系不能插入到关
18、系P P中中?I I(201201,白白,SIOSIO)IIII(101101,兰兰,S01S01)III(III(301301,绿绿,B01B01)A A仅仅I BI B仅仅I I和和C C仅仅III DIII D全部全部S(供应商)供应商)P(零件)(零件)经典题解【例例2 2】有如下两个关系,其中关系有如下两个关系,其中关系EMP的主码是雇员号,并且的主码是雇员号,并且工资金额不得小于工资金额不得小于1500元,关系元,关系DEPT的主码是部门号。向的主码是部门号。向EMP中插入行(中插入行(NULL,“李津李津”,“03”,1200)该操作违)该操作违反了反了()I实体完整性约束实体完整性约束 II参照完整性约束参照完整性约束 III 用户定义完整性约束用户定义完整性约束A)仅)仅I B)II和和III C)I和和III D)都违反)都违反EMPDEPTVFPVFP的常用文件类型的常用文件类型 1、表文件、表文件.DBF.FPT 2、数据库文件、数据库文件.DBC .DCT 3、程序文件、程序文件.PRG.FXP 4、索引文件、索引文件.IDX.CDX 6、项目文件、项目文件.PJT .PJX 7、报表格式文件、报表格式文件.FRX .FRT 8、文本文件、文本文件.TXT 9、菜单文件、菜单文件.MNX.MNT5、表单文件、表单文件 .SCX.SCT