江苏省二级VFP DataBase 睿创教育
第1章 数据库系统及Visual FoxPro概述
计算机的应用领域: 数据处理需求: 科学计算、数据处理(70%)、自动控制、辅助设计、人工智能 大量地处理数据(人事、工资、成绩管理、销售管理、图书馆、售票) 引出数据处理的重要性
数据库是计算机系统的一个重要组成部分。 数据库技术是信息技术中应用最广泛的技术之一。 硬件 软件 系统软件 应用软件 OS DBMS 编译 数据库技术的重要性 Visual FoxPro是DBMS的一员。
1.1 数据管理技术的发展 数据处理是对各种类型的数据进行收集、存储、分类、计算、加工、检索和传输的过程。 数据处理的五个步骤: 数据收集 编码转换 数据输入 数据处理 数据输出 数据处理的中心问题是数据管理 通过何种方式进行数据管理? 引出数据处理的发展阶段问题 数据管理是对数据的分类、组织、 编码、存储、检索和维护。
数据管理 计算机数据管理技术发展的三个阶段 人工管理阶段 文件系统阶段 数据库系统阶段
人工管理阶段 在50年代中期以前: 基础技术: 应用领域:科学计算 应用程序管理自身使用的数据 特点: 数据不保存 没有直接存储设备(只有卡片、纸带、磁带) 没有基本操作系统;批处理 应用领域:科学计算 应用程序管理自身使用的数据 特点: 数据不保存 应用程序管理数据, 数据不共享 数据不具有独立性(针对特定的应用) 程序1 数据1 程序2 数据2 程序3 数据3 程序n 数据n ……
文件系统阶段 特点 50年代后期—60年代中期 基础技术 缺点: 应用领域: 数据可发长期保存(磁介质) 由文件系统管理数据(操作系统负责管理文件) 文件系统中的数据文件已经具有多样化 文件系统数据的存取以记录为单位(不能对数据项) 缺点: 数据共享性差、冗余度大 (文件——应用) 数据独立性差(数据结构变,程序也须变) 50年代后期—60年代中期 基础技术 出现直接存储设备:磁盘、磁鼓; 基本操作系统概念的建立,实现了抽象的文件系统 联机实时处理 应用领域: 扩展到信息管理 数据具有一定的独立性、数据可保存、提供一定的共享 文件彼此独立,冗余和不一致 文件系 统 程序1 程序2 程序m …… 数据文件1 数据文件2 数据文件n
数据库系统阶段 特点: 60年代后期以来 基础技术: 应用领域: …… 从全局、整体的角度对所有的数据进行统一管理,结构化的数据(数据+数据间的关系)(数据库的文件系统的根本区别) 数据共享性高,冗余度低,易扩充(数据面向整个系统) 有较高的数据独立性 提供了数据安全性、完整性、并发控制、数据恢复等功能 为用户提供了方便的接口 60年代后期以来 基础技术: 大容量直接存储设备,硬件价格下降 应用开发(软件)价格上升 应用领域: 管理大量数据,联机实时处理为特点的大型数据管理 数据共享要求越来越强 数据共享,安全、完整、并发控制、恢复 高级数据库技术阶段(分布式数据库、面向对象的数据库): 70年代后期~与其他技术结合的产物(网络、面向对象) 数据库管理系统 程序1 程序2 程序m …… 数据库
1.2 数据库系统的组成 数据库系统(DataBase System) 数据库: 数据库的组成:数据+元数据 数据库按数据模型可分为: 组成:数据库(DB)、数据库管理系统(DBMS)、操作系统、应用程序、计算机硬件以及数据管理员(DBA) DBS=DB+DBMS+DBA 数据库: 以一定的组织形式存放在计算机的存储介质上的相互关联的数据的集合。 特点:按一定的数据模型组织,具有较小的冗余度,较高的数据独立性和扩展性,安全、可靠、保密性好 数据库的组成:数据+元数据 数据库按数据模型可分为: 层次、网状、关系、面向对象数据库 元数据是关于数据结构等的描述信息
数据库管理系统(DBMS) DBMS是DBS的核心 DBMS对DB进行管理(建立、使用和维护)的系统软件,是用户和数据库之间的接口, 模式翻译、应用程序编译、交互式查询、 数据的组织和存取、事务运行和管理、数据库的维护
数据库管理员(DBA) DBA是管理数据库系统的机构和相关人员,具有最高的数据特权,负责全面管理DBS DBA的主要职责 规划和定义数据库的结构 定义数据库的安全性和完整性 选择数据库的存储结构和存取路径 监督和控制数据库的使用和运行 改进数据库系统和重组数据库
DB和DBMS的关系 在数据库系统中,用户通过DBMS可以建立和使用DB,使用DB是目的, 而DBMS是实现目的的手段和工具 数据库系统举例: 教学管理(单机) (vfp:cjgl) 食堂管理(网络) 网上查询成绩、网上购物(使用互联网) 数据库应用广泛,和网络一起成为现在和未来都十分有用的技术
1.3 数据库系统的分级结构 ANSI和SPARC在1975年定义 数据库系统三级结构 外部层(用户看到的) 概念层(所有信息的概括) 内部层(如何存储) 三级结构间存在两级映射,保证了数据的物理独立性和逻辑独立性
数据库系统三级结构 三级结构 两级映射 外部层(多个单用户) 映射1(逻辑独立性) 概念层(全体用户) 映射2(物理独立性) 内部层(如何存储) 两级映射 映射1(逻辑独立性) 映射2(物理独立性)
1.4 数据模型 信息转化的三个阶段: 现实世界、观念世界、数据世界 ↓ ↓ ↓ 事物及联系 实体模型 数据模型 事物 实体 数据 现实世界 信息世界 数据世界 ↓ ↓ ↓ 事物及联系 实体模型 数据模型 事物 实体 数据 ↙ ↘ ↙ ↘ ↙ ↘ 对象 性质 对象 属性 记录 字段 抽象 数据表示
数据模型 数据模型: 数据模型的三要素 数据模型分类 是数据库领域定义数据及其操作的一种抽象表示。 数据结构 (实体及实体联系) 数据操作 数据结构 (实体及实体联系) 数据操作 数据的约束条件 数据模型分类 概念数据模型: 逻辑数据模型: 层次模型、网络模型、关系模型、面向对象模型
概念模型 长期以来广泛使用的概念模型是实体-联系模型, 简称E-R模型 实体: 联系 属性: E-R图:E-R模型的图形化表示 用来对应现实世界的事物, 实体集中的实体借助实体标识符(关键字)来加以区别 联系 分类: 1:1 1:m m:n 属性: 实体或联系所具有的特征 E-R图:E-R模型的图形化表示 实体集--矩形 联系--菱形 属性--椭圆形
教师 专业 职称 系 学生 学号 姓名 …… 选 课 成绩 课程 每个独立的实体构成一张表 两个多对多的联系构成两张表 成绩、任课 一对多的联系体现:构成实体表的一个属性 例如:系代号 教师表因为属性太多所以拆分为两个表 教师+工资 由于篇幅有限,大多数属性省略了
关系模型 关系模型以关系代数理论为基础,是当今广泛使用的数据库关系模型 关系: 属性(字段):一列 Field 是以二维表结构来表示实体及其实体间的联系。 一个关系就是 一张二维表 例子:学生表、成绩表、课程表 类别、产品 属性(字段):一列 Field 元组(记录):一行 Record 关系模式: 是对关系结构的描述,它包括模式名以及组成该关系的各属性名,例:成绩(学号,课程代号,成绩)
关键字 关键字(码):唯一标志一行的多列为关键字。 超关键字 唯一标志一行的多列XH+XIMING+CSRQ 候选关键字 +无多余的列 XH XM+XB 主关键字 +从候选中选唯一的一个 XH 外关键字 其他表的主关键字 CJ表 XH 注:
关系模型 关系模型:用二维表表示实体集,通过外部关键字表示实体间联系的数据模型。 关系模型的组成: 关 系 关系操作:选择、投影、连接、除 关系的三类完整性: 域完整性(列级/元组级) 实体完整性 参照完整性 用户定义的完整性
关系的规范化 关系是一种规范化了的二维表 关系的性质: 不规范的关系模式存在的缺点: 解决办法: 数据冗余度大,插入异常,删除异常 所以 设计关系时应尽量将互相依赖密切的属性构成单独的关系模式 解决办法: 基于关系代数的关系规范化理论, 关系规范化的过程是通过关系中属性和关系的模式分解来实现的。
范式 关系规范化的条件可以分为几级,每级称为一个范式(Normal Form) 1NF 每个属性不可分解 2NF 完全函数依赖于候选关键字 ……
例子 × GRADE SNO+CNO -------SNAME SNO-----CLASS---DEPTNO 书上的例子该如何分解才能满足3NF?
关系运算 传统的集合运算,要求两个相同的关系模式 专门的关系运算 并、交、差 选择 原关系的子集,水平分解 选择 原关系的子集,水平分解 投影 抽取原关系的部分属性形成的新的关系,垂直分解 联接 根据给定的条件将两个关系拼成一个新的关系
例子 例子:已知关系R、S,求自然连接、R在BC上的投影、选择R中C>3的元组 R A B C S D B F a c 5 4 d 8 b d 3 5 a 1 m e 4 3 e 4
面向对象模型 按如下方式组织 事物——对象——对象标识 对象=状态+行为 具有相同属性和方法的对象集合——类 对象——实例 具有相同属性和方法的对象集合——类 对象——实例 类层次 类的继承 父类——子类——子类 类的复合 属性的定义域可以为类 对象是被封装的,状态和行为外部不可见, 外部只能通过显式定义的消息传地对对象进行操作
1.5 主流的DBMS产品简介 常见的关系数据库:IBM DB2、ORACAL、INFOMIX、SYBASE、SQL-SERVER等 微机数据库管理系统:Visual Foxpro、Access 数据库管理系统的发展趋向: 分布式、网络化、面向对象、数据仓库 VFP的发展: 70年代后期微机出现-------1981 dBase--dBaseII-----dBaseIV------Foxbase---Foxpro(dos)--------Foxpro(Windows) -----Visual Foxpro
1.6 Visual Foxpro概述 VFP的特点 最突出的特点:OOP功能
VFP命令(共有500多条) 通过命令窗口输入(命令方式) myform=CreateObject("form") myform.show myform.Width=400 myform.Height=300 myform.AutoCenter=.t. myform.BackColor=RGB(0,0,255) myform.Caption="我是表单" 编写包含多条命令的程序 (程序方式) 程序中使用的命令称为语句 将前面的命令放在一起,建立一个程序看看!!
VFP命令主要书写规则 ◆ VFP命令不区分大小写 COPY FILE = copy file ◆命令动词和短语可以只书写前4个字母 create = crea clear= clea ◆ VFP命令必须以动词开头,短语次序不限 delete file Filename ◆ 一个命令行只能写一条命令
VFP命令 执行命令 Enter键 删除当前输入的命令 Esc键。 一条长命令分为多行输入 在前面几行)的结尾处输入分号 ; (最后一行除外) 重复执行某条命令, 再次按Enter键 若要重复执行已输入的多条命令,执行快捷菜单中“运行所选区域”命令
几个常用命令 * 本行是注释 &&此后是注释 ? 换行显示 ??接着上次的内容显示 CLEAR 清除主窗口信息 DIR 显示文件 MD 创建目录 RD 删除目录 CD 改变目录 COPY FILE 复制文件 RENAME FILE 重命名 DELETE FILE 删除文件 RUN 运行应用程序 QUIT 退出VFP系统
配置VFP操作环境 工具——选项 SET命令 例:设置文件的位置 时间格式 千位年份 例:设置文件的位置 时间格式 千位年份 SET命令 可以进行临时设置 (当前有效,重新启动VFP将不起作用) 设置默认路径 set default to d:\huang 设置日期显示四位年份 set century on
VFP文件类型 与某一种类型的文件相关的磁盘文件类型可能有多个 例如: 项目类 pjx pjt 创建文件: 菜单 /工具栏 / 命令 工具(设计器、向导、生成器)
1.7 项目管理器 ?项目的含义,生活中的意义 项目: 项目管理器 管理文件的文件(保存在磁盘) 说明和某一个任务相关的数据、对象、文档等 1.7 项目管理器 ?项目的含义,生活中的意义 项目: 管理文件的文件(保存在磁盘) 说明和某一个任务相关的数据、对象、文档等 项目管理器 组织工具 选项卡 分类、层次 定制项目管理器
项目管理器的操作 命令按钮指动态的,随着当前选择的操作对象或类型而有所不同 快捷菜单命令:!!! 包含/排除 ?排除的意义 设置主文件 快捷菜单命令:!!! 包含/排除 ?排除的意义 设置主文件 ?可以有几个主文件,哪些文件可以设置为主文件 重命名 编辑说明 项目信息 项目间共享文件 项目中可以添加任何一种类型的文件 一个项目可以和多个其他文件共享文件