2020/1/19信息电子技术学院公共教学部VisualFoxPro6.0数据库程序设计教程第1章VisualFoxPro基础教学目的和要求通过本章的学习,使学生掌握数据库系统的基础知识,熟悉关系数据库的概念、数据模型和关系运算第1章VisualFoxPro基础教学重点1、数据库的基本概念,如数据库、数据模型、数据库管理系统、数据库(应用)系统2、关系数据库的一些基本术语,如关系、元组、属性、域、主关键字、外部关键字3、关系运算:选择、投影、连接第1章VisualFoxPro基础VisualFoxPro的概念:VisualFoxPro是微型计算机上的数据库管理系统;它是微软公司开发的一个通用系统软件。VisualFoxPro采用了可视化的、面向对象的程序设计方法,大大简化了应用系统的开发过程。1.1.1数据库基础知识数据(Data)数据是描述现实世界事物的符号记录,是用物理符号记录的、可以鉴别的信息。数据库(DataBase,DB)是存放在计算机的存储设备上、结构化的相关数据的集合。通俗点讲,数据库就是存储数据的仓库。数据库管理系统(DBMS)数据库管理系统(DataBaseManagementSystem)是对处于用户(应用程序)和操作系统之间的一种软件,其作用是对数据库中的数据实施有效的组织和管理。数据库系统(DataBaseSystem,DBS)数据库系统是引进数据库技术后的计算机系统,实现有组织、动态存储大量相关的数据,提供数据处理和信息资源共享的便利手段。1.1.2数据模型数据模型是对客观事物及其联系的数据描述,反映了实体内部和实体之间的联系。1、实体的描述实体(Entity)•客观存在并且可以相互区别的事物称实体。实体可以是实际的事物,也可能是抽象的事件。例如,职工、图书等属于实际事物;一场比赛、一堂课、一次选课都是比较抽象的事件。实体的属性(Attribute)•描述实体的特性称为属性。•例如,职工(职工号,姓名,性别,出生日期,职称)•图书(编号、书名、作者、出版社、单价、类别)域(Domain)属性的取值范围称为该属性的域。例如:职工号的域为8位整数,姓名的域为字符串集合,性别的域为(男,女)。1.1.2数据模型实体集和实体型•某一实体属性的集合表示这种实体的类型,称为实体型。属性值的一个集合表示一个实体,同类型的实体的集合,称为实体集。•例如:•(教师编号、姓名、性别、出生日期、职称、基本工资、研究方向)表征“教师”这样一种实体的实体型•(19010123、张磊、男、1980、讲师、3500、云计算及大数据)表征一个实体1.1.2数据模型VisualFoxPro中的实体集在VF中用“二维表”来存放同一类实体,即实体集。在二维表中,每一列表示一个属性,称为字段(包括字段名和字段值),每一行字段值的集合表示一个实体,称为一个记录1.1.2数据模型2、实体间联系及联系的种类实体的联系:实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。联系的种类:是指一个实体型中可能出现的每一个实体与另一个实体型中多个具体实体存在联系。(1)一对一联系(onetoonerelationship)例如:班级与班主任的联系(2)一对多联系(onetomanyrelationship)例如:班级与学生的联系(3)多对多联系(manytomanyrelationship)例如:学生与某学期课程的联系(1)VF中一对一联系实例1.1.2数据模型(2)VF中一对多联系实例1.1.2数据模型(3)多对多联系实例1.1.2数据模型E-R图实例:某个工厂物资管理的概念模型物资管理涉及的实体:仓库:属性有仓库号、面积、电话号码。零件:属性有零件号、名称、规格、单价、描述。供应商:属性有供应商号、姓名、地址、电话号码、账号。项目:属性有项目号、预算、开工日期。职工:属性有职工号、姓名、年龄、职称。实体之间的联系1、一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。用库存量来表示某种零件在某个仓库中的数量。2、一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作。3、职工之间具有领导-被领导关系。即仓库主任领导若干保管员。4、一个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件可由不同供应商供给。工厂物资管理E-R图1.1.2数据模型3、数据模型任何一个数据库管理系统都是基于某种数据模型的。数据管理系统支持:层次模型、网状模型、关系模型三种数据模型,相应的数据库类型也有三种:层次模型数据库、网状模型数据库、关系(模型)数据库。关系模型:用二维表结构来表示实体及实体之间的联系一个二维表中,所有的记录格式相同、长度相同。同一字段数据的性质是相同的,它们均为同一属性的值。行和列的排列顺序并不重要。1.1.2数据模型1.1.3关系数据库1.1.3.1关系数据库的几个基本概念1、关系模型用二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。2、关系术语关系:一个关系就是一个二维表,每个关系有一个关系名。在VisualFoxPro中,一个关系存储为一个表文件,其扩展名为.dbf,称为表。元组:在一个二维表(关系)中,水平方向的行称为元组。而在VisualFoxPro中,一行称为一个记录。属性:一个二维表(关系)中,垂直方向的列称为属性,每一列有一个属性名。而在VisualFoxPro中,属性被称为字段,属性名对应字段名,属性值对应各个记录的字段值。1.1.3关系数据库域:一个属性的取值范围,称为该属性的域。关键字:关键字是一个关系中能唯一区分,确定不同元组的属性或属性的组合,称为该关系的一个关键字。在VisualFoxPro中,关键字是字段或字段的组合。在一个表中可以选一个关键字做为主关键字,而其它关键字则称为候选关键字。外部关键字:如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,这个字段就称为外部关键字。(P14)注:关键字的属性值不能取“空值”,因而无法唯一区分、确定元组。1.1.3关系数据库3、关系的特点⑴关系必须规范化:所谓规范化是指关系模型中的每一个关系模式都必须满足一定的要求,最基本的要求是每个属性必须是不可分割的数据单元。⑵在同一个关系中不能出现相同的属性名⑶关系中不允许有完全相同的元组,即冗余⑷在一个关系中行、列的次序无关紧要1.1.3关系数据库4、实际关系模型一个数据库中包括相互之间存在联系的多个表,在实体之间的联系中,公共字段名起着桥梁的作用。1.1.4关系运算1.1.4.1、传统关系运算对关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算。(1)传统的集合运算(设有两个相同结构的关系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关系运算(2)专门的关系运算选择:从关系中找出满足给定条件的元组的操作称为选择投影:从关系模式中指定若干个属性组成新的关系称为投影连接:连接是关系的横向结合。将两个关系拼接成一个更宽的关系,生成的新关系中包含满足连接条件的元组。1.1.4关系运算专门的关系运算举例1.1.4关系运算1.1.4.3、关系的完整性约束⑴实体完整性:主关键字不能取“空值”⑵参照完整性:主关键字和外部关键字的关系⑶用户定义完整性:字段有效性约束和记录有效性约束经典题解【例1】设有供应商关系S和零件关系P如下图所示。它们的主码分别是供应商号和零件号。而且,零件关系P的属性供应商号是它的外码,属性颜色只能取值为(红,白,兰)。(这里假定DBMS不支持级联修改功能)下列不能插入到关系P中?I.(‘201’,‘白’,‘SIO’)II(‘101’,‘兰’,‘S01’)III(‘301’,‘绿’,‘B01’)A.仅IB.仅I和ⅡC.仅IIID.全部S(供应商)P(零件)经典题解【例2】有如下两个关系,其中关系EMP的主码是雇员号,并且工资金额不得小于1500元,关系DEPT的主码是部门号。向EMP中插入行(NULL,“李津”,“03”,1200)该操作违反了()I实体完整性约束II参照完整性约束III用户定义完整性约束A)仅IB)II和IIIC)I和IIID)都违反EMPDEPTVFP的常用文件类型1、表文件.DBF.FPT2、数据库文件.DBC.DCT3、程序文件.PRG.FXP4、索引文件.IDX.CDX6、项目文件.PJT.PJX7、报表格式文件.FRX.FRT8、文本文件.TXT9、菜单文件.MNX.MNT5、表单文件.SCX.SCT