590 likes | 780 Views
关系数据库语言及应用. 主讲:李乾宝 E-Mail: qbli@stu.edu.cn. 第一章 绪 论. 1.1 数据库的基本概念 1.2 FoxPro 概述 1.3 FoxPro 的界面风格与工作方式 1.4 Visual FoxPro 简介. 从文件管理到数据库管理. 在数据库出现前,计算机用户就使用数据文件来存放数据。常用高级语言都支持使用数据文件。 一种常见的数据文件的格式是,一个文件包含若干个“记录” (Record) ,一个记录又包含若干个“数据项” (Dataltem) ,用户通过对文件的访问实现对记录的存取。
E N D
关系数据库语言及应用 主讲:李乾宝 E-Mail: qbli@stu.edu.cn
第一章 绪 论 • 1.1 数据库的基本概念 • 1.2 FoxPro概述 • 1.3 FoxPro的界面风格与工作方式 • 1.4 Visual FoxPro简介
从文件管理到数据库管理 • 在数据库出现前,计算机用户就使用数据文件来存放数据。常用高级语言都支持使用数据文件。 • 一种常见的数据文件的格式是,一个文件包含若干个“记录”(Record),一个记录又包含若干个“数据项”(Dataltem),用户通过对文件的访问实现对记录的存取。 • 通常称支持这种数据管理方式的软件为“文件管理系统”,它自50年代末期问世以来,一直是操作系统的重要组成部分。
从文件管理到数据库管理 • 文件管理系统采用一次最多存取一个记录的访问方式,在不同文件之间缺乏相互联系的结构,随着社会信息量的迅速增长,计算机处理的数据量也不断增加,这种方式越来越不能适应管理大量数据的需要,于是数据库管理系统便应运而生。 • 在60年代末期诞生了第一个商品化的数据库系统-美国IBM公司的IMS系统(Information Management System)。 • 从文件管理到数据库管理,代表了两代不同的数据管理技术。今天,数据库管理已成为计算机信息管理的主要方式。
数据库系统的特点 • 数据库系统(DatabaseSystem),其实就是以数据库应用为基础的计算机系统。。 数据库系统的特点 1、数据共享,提高了信息的利用率; 2、冗余度低且可控制。 3、数据独立性高,由“数据依赖于程序” 改变为“以数据为中心”。 4.实现了整体数据的结构化,适于表示相互间有多种联系的大量数据。
数据库系统的发展 经过近30年的发展,数据库系统已经历了第一代和第二代,现正向第三代迈进。 • 第一代:非关系型数据库系统 • 第二代:关系型数据库系统 • 第三代:对象-关系型数据库系统
第一代:非关系型数据库系统 • 包括“层次”与“网状”两种类型,它们都是以记录型(Record Type)为基本的数据结构,在不同的记录型之间允许存在联系 层次模型(Hierachical Model)在记录型之间只能有单线联系 网状模型(Network Model)允许记录型之间存在两种或多于两种的联系。 第一代数据库系统的结构错综复杂,数据存取路径需用户指定,使用难度较高,自关系型数据库系统兴起后,它们已逐渐被取代。
第二代:关系型数据库系统 • 关系型数据库(Relational Database System),简称RDBS) 。70年代中期商品化的RDBS开始问世。80年代后,许多RDBS在微型机上实现。 • RDBS采用人们常用的二维表(或“关系”)为基本的数据结构,通过公共的关键字段实现不同二维表之间的数据联系。二维表形式简单,直观明了,学习和使用都很方便。 • RDBS允许一次访问整个关系,其效率远比第一代数据库系统(一次仅能访问一个记录)为高,因而受到用户的普遍欢迎。
第三代:对象-关系型数据库系统 • 第三代数据库系统,是将数据库技术与面向对象技术相结合的产物。 • “对象-关系型数据库系统”(简称ORDBS):建立在关系型数据库技术之上,可以直接利用第二代数据库系统的原有基础,所以发展迅速,正在形成第三代数据库系统的主流。 • “面向对象型数据库系统”(简称OODBS)。一些厂商现已推出了可供实用的ORDBS产品,显示了光明的发展前景。
数据库系统的分类 数据库系统可按照以下几种方法来分类。 • 单用户数据库和多用户数据库 • 集中式数据库和分布式数据库 • 传统数据库和智能数据库
单用户和多用户数据库 • 单用户数据库:在同一时间只能供一个用户使用。 • 多用户数据库:通过网络可供多个用户同时共享同一数据库。 • 多用户数据库的关键是保证“并行存取”的正确执行。例如飞机订票系统通常是多用户系统。 • FoxPro 2.5是一种多用户数据库管理系统。
集中式和分布式数据库 • 集中式数据库:数据集中在同一数据库服务器中,对服务器的要求高,网络数据流量大; • 分布式数据库:数据分布在不同地点的数据库服务器中,大多数情况下数据可就近存取(称为“局部应用”),仅当需要时才把数据通过网络来传送(称为“分布应用”或“全局应用”),通信量可大大减小,对服务器的要求也相对降低。例如银行储蓄系统。 • 分布式数据库的目标,是存取数据时不要求用户指明数据的存储场地,换言之,应使用户像对集中式数据库访问时一样方便。
传统和智能数据库 • 传统数据库:存储的数据都代表已知的“事实”。 • 智能数据库:除存储事实外,也存储用于逻辑推理的“规则”。所以也称为“基于规则的数据库”(Rules Based Database)。 例如:智能数据库存储有“处长领导科长”的规则,如果它同时存有“甲是处长”、“乙是科长”的数据,它就能推理出“甲领导乙”的新事实。
数据库语言和数据库管理系统 • 数据库的建立和查询,都是通过特定的数据库语言进行的。关系数据库使用的语言称为“关系数据语言”。 • 查询是数据库语言的中心功能,所以数据库语言也称为查询语言。被国际标准化组织(ISO)确定为关系数据语言标准的SQL语言,就是“结构化查询语言”(Structured Query Language)英文名的缩写。 • SQL和其它数据库语言一样,不仅有用于查询的语句,也包含有用于建立数据库的语句。
数据库语言和数据库管理系统 • 使用数据库语言需要一个特定的支持软件,这就是“数据库管理系”(DataBase Management System)。 • 数据库管理系统应该具有下列功能; • 支持“数据定义语言”(Data Definitiom Language,简称DDL),供用户定义数据库文件的结构,建立所需的数据库。 • 支持“数据操作语言"(Data Manipulation Language,简称DML),供用户对数据库进行查询操作(包括检索与统计)和存储操作(包括增加、删除与修改数据)。 • 向数据库系统提供一组管理和控制程序,保障数据库的安全、通信与其它管理事务。 • FoxPro是一种DDL与DML合为一体的语言。
FoxPro概述 • FoxPro是微型计算机上当今最流行的软件之一,也是Xbase数据库家族中继dBASE和FoxBASE+之后又一广泛使用的微机关系数据库管理系统。 • 1989年,Fox软件公司首次发表了FoxPro1.0, • 1991年推出FoxPro 2.0,性能有了重大的提高。 • 1992年微软公司收购了Fox软件公司 • 1993年1月公布了FoxPro的两种版本: • FoxPro 2.5forDOS和FoxPro 2.5forWindows。 • 同年晚些时候再次推出了FoxPro 2.5b及其中文版
FoxPro概述 • 1994年发表了FoxPro 2.6,增加了多种“向导” (Wizard)工具,从而简化了最终用户的操作,但在程序开发方面未见明显的改进。 • 1995年,微软公司把“可视化编程”(Visual Programming)技术引入了FoxPro,使Visual FoxPro继VB和Visual C++之后,成为该公司Visual系列软件的又一新成员。 • 由于FoxPro 2.5的优越性已经深入人心,加上它与Xbase完全兼容,对运行环境要求较低(相对于Visual FoxPro)的特点,至今它仍拥有大量用户,被许多学校用为数据库教学语言。
初识FoxPro • 例1.1: 下表是某工厂的一张设备登记表。假设已经用FoxPro的建库命令“CREATE shebei”建立了一个名为shebei(设备)的数据库文件,并将登记表的内容(包括结构和数据)存入这一库文件。
用FoxPro命令完成以下操作 • 列表显示数据库文件shebei的内容 USE shebei LIST • 将库中的主设备复制到zushebei库文件 COPY TO zushebei FOR 主要设备 • 将主设备的名称和价格由低到高排列,生成名为jiage的文件。 SORT ON 价格 TO jiage FIELDS 名称,价格 • 将主要设备的价格全部上调20% REPLACE ALL 价格 WITH 1.2*价格 FoxPro建立的数据库文件采用表格的形式,与人们的习惯相符,所以易学易用。 FoxPro采用命令式的语言,一条命令(如USE,LIST,COPY等)即可完成一项相当复杂的功能。
FoxPro的语言成分(命令) • 一般地说,FoxPro的命令总是由一个称为命令字的动词开头,后随一个宾语和若干子句(称为命令子句),用来说明命令的操作对象、操作结果与操作条件。
FoxPro命令的特点 • 采用英语祈使句的形式,命令的基本部分简洁规范,粗通英语的人都能看懂。 • 操作对象,结果(目的地)和条件均可用命令子句的形式来表示。命令子句的数量不限,顺序不拘。这使命令的附属功能可以方便地增删,十分灵活。 • 命令中只讲对操作的要求,不描述具体的操作过程,言简意赅,所以又称为“非过程化”(Non—Procedural)语言。 • FoxPro的命令既可逐条用交互的方式执行,又可编写成程序,以“程序文件”的方式执行。 • 命令中的词汇(专用名词除外)可使用简写,即只写出它们的前四个字母。
FoxPro的语言成分(表达式) • 表达式是FoxPro语言的重要成分,通常由常量、变量和函数用运算符连接而成。 • FoxPro有两类变量: • 字段变量:它们代表库文件中的列。字段变量是多值变量,因为一个数据库文件有多少条记录,其字段变量就会有多少个值。 • 内存变量:主要用于存储在命令或程序执行中临时使用的输入、输出或中间数据。FoxPro允许使用“数组”,其实数组就是带下标的内存变量。
FoxPro的语言成分(表达式) • FoxPro的变量有数值型、字符型、逻辑型、日期型等数据类型。它的字段变量还允许使用备注型和通用型字段,后者可以存储多媒体数据。 • FoxPro有四类运算符: • 算术运算符:+,-,*(乘),/(除),^或**(幂) • 字符运算符:+,- • 关系运算符:>, ≥ ,=,< >,<,≤,$ • 逻辑运算符:.AND.,.OR.,.NOT.或! • 主要由关系运算符构成的表达式称为关系表达式,在FoxPro命令中,它们常被用作FOR命令子句或WHILE命令子句中的条件。
FoxPro的语言成分(函数) • FoxPro提供近290种标准函数,以方便用户进行运算或作出判断。 • 与其它语言相似,FoxPro的函数也具有自变量与结果数(即函数的返回值)。每个函数必须也只能有一个返回值。 • FoxPro的函数通常具有<函数名>( )的形式。例如,LEN(“车床”)表示计算字符串“车床”的长度 • 由于函数执行后总要返回一个值给调用者,所以在FoxPro表达式中也允许包含函
FoxPro文件的主要类型 • FoxPro支持近40种文件,前提到的数据库文件(.dbf),程序文件(.prg)是FoxPro中最常用的两类文件。表1.4列出了其中常用的一些类型。 , • FoxPro的文件都是按名访问的。文件名由不含空格的字符串构成,主名长度不超过八位,扩展名不超过三位。扩展名用来区分文件的类型,除非用户另有指定,在文件建立时系统将为它们自动加上默认的扩展名。
FoxPro 2.5的特点 • 是一个具有典型Windows界面风格的微机关系数据库管理系统。它支持命令、选单操作和程序执行多种工作方式,具有现代应用软件“对用户友好”的特征; • 拥有丰富的辅助设计和辅助管理工具,可以明显减少程开发的工作量; • 采用了Rushmore(快速查找),OLE(对象链接与嵌入)等新技术,使系统的查询速度和多媒体支持功能均有明显的提高。
FoxPro 2.6的改进 • 增加了一组“向导”工具。FoxPro 2.5只有一种向导工具,即“图形向导”(Graph Wizard),用于帮助用户把查询结果用图表而不是数据的形式输出。FoxPro 2.6增加了“库表” (Table)向导、“屏幕”(Screen)向导、“报表”(Report)向导、“标签” (Label)向导、“邮件合并”(Mailmerge)向导等多种向导工具,可进一步简化用户操作。 • 配合上述向导工具新增了一个“目录管理器” (Catalog Manager)。在它的选单中含有File,Data,Tools等多个目录项,用户可通过这些目录对系统中的文件、数据和向导工具选择调用,操作更加方便。
FoxPro的主要技术指标 • 数据库 • 库文件最大记录数: 109个 • 记录的最大字段数: 225个 • 记录的最大长度: 65000字节 • 字符型字段的最大长度: 254字节 • 数值型字段的最大长度: 20位 • 数值计算精度: 16位 • 内存变量: • 变量总数、数组总数: 不多于65000个 • 每个数组的项数: 不多于65000项
FoxPro的主要技术指标 • 其它重要指标 • 可同时打开的.DBF文件数: 不多于225个 • .CDX文件索引码最大长度: 240字节 • 命令行的最大长度: 2048字符 • DO命令嵌套深度: 不多于32层 • READ命令嵌套深度: 不多于5层 • ,DBF文件关联个数: 不受限制
FoxPro的安装环境 • 硬件配置: • 80386以上的CPU、4M以上内存 • 1.2M软驱、不少于20MB的硬盘自由空间 • 软件配置: • 3.0以上版本的Windows操作系统 • 英文版Windows操作系统需UCWIN、中文之星等支持 • 多用户使用,必须具有相应的网络环境
FoxPro的安装步骤 • 插入第一张安装软盘(或光盘) • 运行安装盘上Foxpro的安装程序(Setup.exe) • 在安装过程中依次正确回答安装程序的提问 • 安装目录名称:默认为C:\FOXPROW • 程序管理器中的组图标名:默认FoxPro Fox Windows • 安装方式:Complete, Custom, Minimum 三种选一 • 按键风格:Windows-Style 和 DOS-Style • 安装完成后程序会提示你按“确定”结束安装,并在程序管理器窗口创建组图标,并建立启动FoxPro的图标(快捷方式) 三种安装方式的区别,仅在于辅助文件的安装数量不同。Complete安装所有的辅助文件,Custom安装用户指定的辅助文件,Minimum不安装辅助文件。
FoxPro的启动与退出 • 启动(windows 95及以后版本): • 按左下角的“开始”按钮,按照“程序” “FoxPro For Windows” “FoxPro For Windows”的顺序,找到并单击选单中的狐狸头图标。 • 为了方便启动FoxPro数据库,可以在程序安装结束后在桌面上创建快捷方式图标,以后启动之只需在桌面上按此图标即可 • 退出(可选以下两种方式之一): • 在FoxPro窗口的“文件”(File)选单中选择Exit • 在Command窗口中键入命令QUIT
FoxPro的界面风格与工作方式 • 鼠标器及其操作 • FoxPro的界面风格 • FoxPro的帮助系统 • FoxPro的工作方式
鼠标器及其操作 • 鼠标器的种类: • 鼠标器属于指点式设备(Pointing Device),有机械鼠、光学鼠和光学机械鼠等类型 • 鼠标器的操作: • 滑动(Slipping) • 单击(Clicking) • 双击(Double Clicking) • 拖动(Dragging) • 鼠标器的优点: • 定位迅速、操作简单、光标可变提示操作
FoxPro的界面风格 系统选单 多窗口(Multi-Windows)、选单(Menu)和联机帮助(On-line Help)信息,是一个典型的Windows界面的三要素,也被并称为用户界面的三大友好技术。 命令窗口 主窗口 状态条
FoxPro的窗口 可以进行放大、缩小、移动等操作 控制选单:主要供键盘操作的用户选用 主窗口或程序窗:用于显示FoxPro命令或程序执行的结果 命令窗口:用于显示所执行的FoxPro命令
FoxPro的选单 选单的种类 全屏幕选单(Full Screen Menu) 光带(Light Bar) 弹出式选单(Popup Menu) 下拉式选单(Pull Down Menu)
FoxPro选单的约定 • 对话框标记:选单项右方紧跟一个省略号(…),表示选择该项后将弹出一个对话框。 • 子选单标记:选单项后面带有三角形箭头(),表示选择该项会打开一个新的子选单。 • 选中标记:如果选单项被选择后在其左方出现一个“对号”(√),表示该项在当前有效。若要使它失效,只须再将它选择一次,使√号消失即可。 • 灰色选单项: 当选单项以灰色显示时,表示该项在当前环境下不能使用。 • 热键(Hot Key):指选单项中带下划线的字母,如Fi1e(文件)项中的F。 • 快捷键(Shortcut Key):常出现在选单项名称的右方,一般采用组合键的形式,例如Ctrl+D,Ctrl+F1等。
FoxPro的对话框 • FoxPro大量使用对话框,借以达到对用户操作的正确引导。典型的对话框通常由下列控制对象组合而成: • 列表框(List Box) • 弹出式列表框(Popup List Box)、 • 文本编辑框(Edit Box)、 • 单选钮(Radio Butlon)、 • 复选框(Check Box)、 • 按钮(Push Button) • 和数码器(Spinner) 现以Sort对话框为例,介绍对话框的操作方法
FoxPro的向导工具 • 对于某些复杂的功能,如果把参数设置和对输入/输出的要求集中在一个对话框中,其操作可能变得十分复杂,使用户难于掌握。 • 为了解决这类问题,FoxPro向用户提供了一种称为“向导”的工具。其基本思想是把一项复杂的功能分解为若干简单的步骤完成,每一步使用一个对话框,然后把这些较简单的对话框按适当的顺序组合在一起。 • 由此可见,向导实质上是一组有序的系列对话框,它们是对话框技术的发展。
FoxPro的状态条 • 状态条(Status Bar)是使用较早的一种联机帮助技术,它通常出现在主窗口的底部。其主要作用,是利用较小的空间(通常为一行),把当前最有用的信息告知用户。 • 在FoxPro状态条中显示的信息可能有以下几种: • 配合选单操作显示选项的功能,使用户能及时了解所选命令的基本作用。 • 显示系统对用户的反馈信息:FoxPro命令执行后,系统会向用户反馈执行的结果。 • 显示操作键的当前状态:状态条右端有3个小格。依次显示Insert、Num Lock和Caps Lock的状态
FoxPro的帮助系统 • 帮助选单 帮助目录:是帮助信息的总目录 附件:运行计算器、日历、Filter管理器等附件程序 搜索关于…的帮助:用于查看某个指定主题(Topic)的详细说明 帮助的使用方法:告知用户如何使用帮助系统 关于FoxPro:显示FoxPro的版本信息和关于本机运行情况的信息
FoxPro的帮助系统 • 帮助窗口: 打开帮助窗口有三种方法: • 在Help选单中选定Contents选项 • 在主窗口环境中按F1键 • 在命令窗口中键入HELP命令 界面目录:包含选单、窗口和对话框三类界面的分类目录和所有界面按字母顺序(A-Z)排列的综合目录,在FoxPro 2.6的界面目录中还在末尾增加一个向导类目录。 语言目录:包含四组不同的目录。第一组包括所有的命令与函数;第二组给出按功能分类的命令与函数; 第三组含有FoxPro数十种系统内存变量的目录;第四组为FoxPro常用命令与函数的目录。 附加目录:介绍一些辅助信息。如:FoxPro for Windows和for DOS两类版本的区别;不同版本的兼容性和差异;错误信息的种类与含义;新版本较以往版本的改进等。 • 各帮助按钮的作用如下: • 目录按钮 返回到帮助窗口的初始画面。 • 搜索按钮 用于搜索特定主题的帮助信息。 • 后退按钮 显示前次查看的主题的帮助信息。 • 历史记录 显示刚才查看过的所有帮助信息。 • 词汇表 罗列FoxPro的所有词汇,并对指定 的词汇给出简短的说明。 • <<按钮 显示当前主题的前一个主题的说明。 • >>按钮 显示当前主题的后一个主题的说明。 帮助窗口主要由:帮助目录、一排命令按钮和一个水平选单条构成。为了方便检索,帮助目录的信息又分为三类。
FoxPro的帮助系统 • 对指定主题的帮助:可以越过总目录直接检索某一主题的帮助信息,可以通过以下几种方法进入: • 在主窗口的Help选单中选择“Search for Help on”选项,或在帮助窗口选“搜索”按钮,或在命令窗口中键入命令:HELP <主题名>(例如:HELP SORT)都会在屏幕上出现一个标题为“帮助主题”的对话框(windows 3.x版本不同),键入要查询的主题的前几个字母,在其下的列表框中选择要查询的主题,按显示按钮,即可显示该主题的帮助信息。 • 利用FoxPro帮助系统的“上下文敏感性”在某对话框或窗口激活时按下F1功能键,系统会给出与当前操作直接相关的帮助信息,更直截了当。
FoxPro的工作方式 作为90年代的一种流行软件,FoxPro支持三种不同的工作方式: • 命令交互方式 • 程序执行方式 • 选单操作方式
命令交互方式 • 用户每发出一条命令,FoxPro随即执行并完成一项任务。 • 许多命令执行后会在屏幕上显示必要的反馈信息,包括命令的执行结果或出错时的错误信息。 • 这种工作方式直截了当,不同类的信息使用不同的窗口,避免了相互混淆。适合于程序员使用。
命令交互方式 • 命令交互方式除了要记忆大量的FoxPro命令,可能令初学者望而却步外,还存在以下缺点: • 执行完上一条命令才能输入下一条命令。机器执行和用户操作相互交叉,限制了执行速度; • 数据库应用中有许多需要重复执行的操作。采用命令交互方式时,要在命令窗反复输入内容相同或者相似的命令集合,不但费时,而且令人乏味。
程序执行方式 • 程序执行方式将FoxPro的命令编成特定的序列,并将它们存入程序文件(或称命令文件)。 • 用户需要时,只须通过特定的命令(例如DO命令)调用程序文件,FoxPro就能自动执行这一程序文件,把用户的介入减至最小限度。 • 这种方式不仅运行效率高,而且可重复执行。
程序执行方式 • 虽然编程序的人须熟悉FoxPro的命令和掌握编程的方法,使用程序的人却只须了解程序的运行步骤和运行过程中的人—机交互要求,对程序的内部结构和其中的命令可不必知道。 • 为了方便用户编程,FoxPro还提供了多种实用的辅助设计工具,能帮助用户通过简单的人—机交互,自动生成FoxPro程序。