560 likes | 750 Views
第 1 章 数据库基础. 1.1 数据库基本概念 1.1.1 数据处理 数据( Data )是对客观事物的某些特征及其相互联系的一种抽象化、符号化表示。 例如:王华出生日期为 1970 年 7 月 12 日,身高 1.75m ,体重 65kg ,部门代码 A01 ,职称是副教授,其中王华、 1970 年 7 月 12 日、 1.75m 、 65kg 、 A01 、副教授等都是数据. 数据处理发展的三个阶段. ( 1 )手工处理阶段:使用简单的手工工具 处理效率低,能处理的数量少而且可靠性差。 ( 2 )机械处理阶段:使用了比第一阶段先进得多且比较有效的工具
E N D
第1章 数据库基础 1.1 数据库基本概念 1.1.1 数据处理 数据(Data)是对客观事物的某些特征及其相互联系的一种抽象化、符号化表示。 例如:王华出生日期为1970年7月12日,身高1.75m,体重65kg,部门代码A01,职称是副教授,其中王华、1970年7月12日、1.75m、65kg、A01、副教授等都是数据.
数据处理发展的三个阶段 (1)手工处理阶段:使用简单的手工工具 处理效率低,能处理的数量少而且可靠性差。 (2)机械处理阶段:使用了比第一阶段先进得多且比较有效的工具 处理效率高,且可靠性也有较大的提高。 (3)电子处理阶段:使用电子计算机进行数据处理,为数据处理展现了广阔的前景 处理效率高,可靠性高。
1.1.2 数据模型 实体: 现实世界中客观存在并且相互区别的事物。 实体可以是具体的人、事、物,也可以是抽象的概念或事件。 实体集: 同类型实体的集合。 例如,学校全体学生构成一个学校的学生实体集。 属性: 实体的特性,属性是实体之间相互区别的标志,一个实体可以由若干个属性来刻画。 例如,学生实体可以用学号、姓名、性别、出生日期和籍贯等属性来描述。
1. 实体联系 实体之间的对应关系称为联系,它反映了现实世界各个事物之间的相互关系。实体之间的联系有3种类型。 一对一联系(1:1): 如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。 负责人 领导 部门
一对多联系(l:n): 如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。 部门 任职 职员
多对多联系(m:n): 如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。 职员 参与 工作
2. 数据模型 模型: 现实世界特征的模拟和抽象 数据模型(Data Model):现实世界数据特征的抽象。在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息。 数据模型应满足三方面要求: (1)能比较真实地模拟现实世界; (2)容易为人所理解; (3)便于在计算机上实现。 数据模型分为两类,属于两个不同的层次。 概念模型(信息模型): 按用户的观点来对数据和信息建模,主要用于数据库设计。 数据模型: 按计算机系统的观点对数据建模,主要用于DBMS的实现。
(1)层次模型 满足下面两个条件的基本层次联系的集合为层次模型。 (1)有且只有一个结点没有双亲结点,这个结点称为根结点; (2)根以外的其他结点有且只有一个双亲结点。 在层次模型中,每个结点表示一个实体集,实体集之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。 根 兄弟 叶
(2)网状模型 把满足以下两个条件的基本层次联系集合称为网状模型: (1)允许一个以上的结点无双亲; (2)一个结点可以有多于一个的双亲。 网状模型去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许一个结点有多个双亲结点,此外它还允许两个结点之间有多种联系(称之为复合联系)。 多双亲
(3)关系模型 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 关系 主码 元组 域(Domain):属性的取值范围。 分量:元组中的一个属性值。 关系模式:对关系的描述,一般表示为: 关系名(属性1,属性2,…,属性n) 属性
1.1.3 数据库系统 1. 数据库系统组成 数据库系统(DataBase System, DBS): 将引进数据库技术的计算机系统。 数据库系统由以下几部分组成。 (1)计算机硬件系统:用来运行操作系统、数据库管理系统、应用程序以及存储数据库的本地计算机系统和网络硬件环境。 (2)数据库集合:存储在本地计算机外存设备或网络存储设备上的若干个设计合理、满足应用需要的数据库。 (3)数据库管理系统:数据库管理系统是数据库系统的核心,用于协助用户创建、维护和使用数据库的系统软件。 (4)相关软件:包括操作系统、编译系统、应用开发工具软件和计算机网络软件等。 (5)人员:包括数据库管理员和用户。数据库管理员负责数据库系统的建立、维护和管理。用户可分为专业用户和最终用户。
2.数据库系统特点 (1)数据结构化:同一数据库中的数据文件是有联系的,且在整体上服从一定的结构形式。 (2)数据共享:数据库中的数据不仅可为同一企业或结构之内的各个部门所共享,也可为不同单位、地域甚至不同国家的用户所共享。 (3)数据独立:数据库系统力求减少这种依赖,实现数据的独立性。 (4)冗余度可控:在数据库系统中实现共享后,不必要的重复将删除,但为了提高查询效率,有时也保留少量重复数据,其冗余度可由设计人员控制。 (5)数据统一控制:为保证多个用户能同时正确地使用同一个数据库,数据库系统提供以下数据控制功能: 安全性控制:保证只有合法用户才能进行指定权限的操作,防止非法使用所造成的数据泄密和破坏。 完整性控制:数据库系统提供必要措施来保证数据的正确性、有效性和相容性。 并发控制:保证多个用户的操作不相互干扰。
3.数据库管理系统 数据库管理系统是位于用户与操作系统之间的一层数据管理软件。它的主要功能包括以下几个方面: (1)数据定义功能:DBMS提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。 (2)数据操纵功能:DBMS提供数据操纵语言(Data Manipulation Language,DML),用户可以使用DML操纵数据实现对数据库的基本操作,如查询、插入、删除和修改等。 (3)数据库的运行管理功能:数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。 (4)数据库的建立和维护功能:包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。
1.2 关系数据库 1.2.1 关系数据结构定义 关系模型是建立在集合代数的基础上。 1. 域( Domain) 定义1-1 域是一组具有相同数据类型值的集合。通常用字母D来表示域。 例如:自然数、整数、实数、长度小于25的字符串集合、{0,l}、大于等于0且小于等于100的正整数等,都可以是域。
2.笛卡尔积(Cartesian Product) 定义1-2 给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为: D1×D2×…×Dn ={(d1,d2,…, dn) | di∈Di,i=l,2,…,n } 元素(d1,d2,…, dn)叫作一个n元组(n-tuple), 值di叫作一个分量 若Di为有限集,则D1×D2×…×Dn的基数M(元素个数)为: M=∏mi(i=l,2,…,n ) 例如,D1={a,b,c}, D2={A,B}, D3={0,1} 则D1×D2×D3元素个数为3×2×2=12,如下: D1×D2×D3={(a,A,0),(a,A,1),(a,B,0),(a,B,1), (b,A,0),(b,A,1),(b,B,0),(b,B,1), (c,A,0),(c,A,1),(c,B,0),(c,B,1)}
3.关系( Relation) 定义1-3 D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,记为: R(D1,D2,…,Dn) R为关系的名称,n是关系的目或度(Degree)。当n=l时,称该关系为单元关系(Unary relation)。当n=2时,则称该关系为二元关系(Binary relation)。关系中的每个元素都是关系中的元组,通常用字母t表示。 关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。
1.2.2 关系运算 关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、比较运算符和逻辑运算符,如表所示。
1. 集合运算 (1)并(Union) 关系R与关系S的并记作: R∪S = { t | t∈R ∨ t∈S } 其结果仍为n目关系,由属于R或属于S的元组组成。
(2)差(Difference) 关系R与关系S的差记作: R-S = { t | t∈R ∧ t ¬∈S } 其结果关系仍为n目关系,由属于R而不属于S的所有元组组成。
(3)交(Intersection) 关系R与关系S的交记作: R∩S = { t | t∈R ∧t∈S } 其结果关系仍为n目关系,由既属于R又属于S的元组组成。
2.专门的关系运算 引入如下几个记号: (1)设关系为R(A1,A2,…,An)。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。 (2)若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2, …, Aik是A1,A2,…,An中的一部分,A称为属性列或域列。t[A]=(t[Ai1],t[Ai2]…,t[Aik])表示元组t在属性列A上诸分量的集合。 (3) R为 n目关系,S为 m目关系。tr∈R,ts∈S,trts称为元组的连接(Concatenation)。它是一个n+m′列的元组,前n个分量为R中的一个n元组,后m′个分量为S中的m元组去掉与R中重复的列分量后的一个m′元组。
(1)选择(Selection) 选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的各元组,记作: бF(R)= { t | t ∈ R ∧ F(t) =“真” } 其中:F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。由逻辑运算符¬,∧,∨连接各算术表达式组成。 A=a1
(2) 投影(Projection) 关系R上的投影是从R中选择出若干属性列组成新的关系。记作: πA(R)= { t[A] | t∈R } 其中:A为R中属性列的集合。 BC
(3) 连接(Join) 进行连接运算的两个关系必须具有相同的属性列,并且根据相同的属性列的取值是否相等来选择构成结果关系的元组,在结果中把重复的属性列去掉。 设R和S具有相同的属性组B,则连接运算可记作: R|╳|S={trts | tr∈R∧ts∈S∧tr[B]=ts[B]}
1.2.3 关系数据库 在关系数据库中,关系模式是型,关系是值。一个关系需要描述以下两方面: (1) 必须指出这个元组集合的结构, 即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。 (2) 赋予关系的元组语义。 元组语义实质上是一个n目谓词(n是属性集中属性的个数),凡使该n目谓词为真的笛卡尔积中的元素的全体就构成了该关系模式的一个关系。 在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。 关系数据库的型:其也称为关系数据库模式,是对关系数据库的描述, 关系数据库的值:是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
1.3 Visual FoxPro发展历史 1981年Ashon-Tate公司推出了微机关系型数据库管理系统dBASE Ⅱ,1984年和1985年,又陆续推出了dBASE Ⅲ和dBASE Ⅲ PLUS,一直发展到1989年推出的dBASE Ⅳ。 1987年Fox software公司推出了与dBASE兼容的FoxBASE+1.0。先后推出了FoxBASE+2.0、FoxBASE+2.1版本。1989年该公司开发了FoxBASE+的后继产品FoxPro。
1992年Microsoft公司收购了Fox software公司,1993年1月,Microsoft公司推出了FoxPro 2.5 for DOS和FoxPro 2.5 for Windows两种版本,使微机关系数据库系统由基于字符界面演变到基于图形用户界面。1994年发布了FoxPro 2.6。 随着可视化技术的迅速发展和广泛应用,Microsoft公司将可视化技术引入了FoxPro,于1995年推出了Microsoft Visual Studio组件,它包括Visual Basic、Visual C和Visual FoxPro等编程工具。 1998年Microsoft Visual Studio 6.0组件发布,它包括Visual Basic 6.0、Visual C 6.0和Visual FoxPro 6.0等编程工具。
1.4 Visual FoxPro系统特点 1.面向对象的程序设计方法 Visual FoxPro 6.0提供了面向对象的、由事件驱动的程序设计方法,允许用户对“对象”(Object)和类(Class)进行定义,并编写相应的代码。 Visual FoxPro预先定义和提供了一批基类,用户可以在基类的基础上定义自己的类和子类(Subclass),利用类的继承性(Inheritance),减少编程的工作量,加快软件的开发。
2.提供可视化工具 Visual FoxPro 6.0提供了40多个3类可视化设计和操作工具.包括: 向导(Wizard) 设计器(Designer) 生成器(Builder) 上述工具普遍采用图形界面,配置有工具栏和弹出式快捷菜单,能够帮助用户以简单的操作完成各种查询和设计任务,并自动生成程序代码,大大减轻了设计人员的工作量。
3.增强项目和数据库管理功能 Visual FoxPro项目管理器全面管理项目中的数据库、应用程序和各类文档资料,使数据库的应用和开发更加方便。 Visual FoxPro提供了超出以往微机数据库管理系统的多种数据管理功能,例如,设置字段、记录的有效性规则,表间记录的参照完整性规则等,极大地保证了数据库的安全性和完整性。
4.支持网络应用 Visual FoxPro 6.0的视图和表单,不仅可以访问本地数据库中的数据,还可以访问网络服务器中的数据。其网络应用主要包括: (1)支持客户/服务器结构。 (2)对于来自本地、远程或多个数据库表中的异种数据,可通过本地或远程视图访问。 (3)Visual FoxPro 6.0允许建立事务处理程序来控制对数据的共享,包括支持用户共享数据,或限制部分用户访问某些数据等。
1.5 Visual FoxPro操作界面 Visual FoxPro操作界面大量使用窗口(Windows)、图标(Icons)和菜单(Menus)等可视化技术,主要通过以鼠标为代表的指点式设备(Pointing device)来操作。所以常称为WIMP界面。 1.Visual FoxPro界面组成 (1)标题栏;(2)控制按钮;(3)菜单栏 ;(4)工具栏;(5)工具窗;(6)状态栏;(7)主窗口工作区;(8)命令窗口 如下页图所示.
2.Visual FoxPro界面操作 鼠标和图形界面操作方法两种: (1). 鼠标操作 鼠标操作分为两步:先移动光标到选定对象,然后选择“单击”、“双击”或“拖曳”等操作。 (1)单击(Click):轻按鼠标左键后马上抬起; (2)双击(Double click):快速连按鼠标左键两次,注意两次按键之间不要移动鼠标; (3)拖曳(Drag):按下鼠标左键不放并移动鼠标,当鼠标到达新的位置后再释放左键。
(2)窗口操作 常见的窗口操作如下: (1)打开窗口:键入相关命令;单击工具栏相关按钮;打开相关菜单,再单击相关命令。 (2)关闭窗口:单击关闭按钮。 (3)窗口最大化:单击窗口右上角的最大化按钮,再单击“还原”按钮可将窗口恢复为最大化前的大小。 (4)窗口最小化:单击窗口右上角的最小化按钮,再单击“还原”按钮可将窗口恢复为最小化前的大小。 (5)移动窗口位置:把鼠标指针定位到窗口的标题栏上,按下鼠标左键即可将窗口拖放到新的位置。 (6)改变窗口大小:当移动鼠标指针缓慢通过窗口的一角或某条边线时,鼠标指针将变成双向箭头形状。此时若按下鼠标左键拖曳,被指针压住的一角或边线将随之移动,使窗口放大或缩小。
(3)菜单操作 下拉式菜单操作 鼠标操作:将鼠标指针移到所需菜单选项,单击后其下方会出现一个子菜单。然后将指针移到子菜单中的某个命令,单击该命令使之执行。 注意三级菜单的操作 键盘操作:主菜单选项、菜单命令名称之后的括号内有一个带下划线的字母,该字母称为访问键。在键盘上按下Alt+访问键,其效果相当于用鼠标单击与该访问键相对应的选项/菜单命令。 例如,若要执行“文件”菜单中的“新建”命令,只需在键盘上先按下Alt+F(文件菜单项),再按Alt+N(新建命令)即可。
(3)菜单操作 常用的菜单命令还设有快捷键,在子菜单中显示在命令名的右方。用户可利用它来直接选定菜单命令。例如,“文件”菜单中的“新建”命令的快捷键为Ctrl+N。 快捷菜单的操作 快捷菜单一般用鼠标来操作,其操作方法和特点如下: ① 单击鼠标右键可打开菜单,单击左键则关闭菜单。 ② 快捷菜单具有对区域的敏感性,其内容将随打开菜单的区域差异而不同。 ③ 快捷菜单中使用的符号,其含义与下拉式菜单使用的符号是一样的。
(4)对话框操作 对话框的操作是对按钮和各类矩形框的操作。 按钮操作:通常用鼠标操作,单击鼠标即可执行按钮所代表的功能。 文本框操作:把鼠标指针移到文本框,单击框内要输入字符的位置,激活后从键盘向框内输入字符。 选择框操作:通常用鼠标来选择。单击一次鼠标可使原来未选的选项被选中,也可使原已选中的选项被取消。 单选按钮以圆圈“○”为特征,选中后“○”内将出现一个黑点变为“⊙”;复选框以方框“□”为特征,选中后“□”内将出现一个“√”号。
(4)对话框操作 列表框操作:当鼠标单击列表框内的任何一行时,该行就会被一条光带所覆盖,表示该行已被选中。可以用鼠标拖动周边的滚动条,使窗口数据滚动显示。 组合框操作:组合框的操作需要增加展开与关闭列表框的操作。步骤如下: ① 单击文本框右侧的下拉按钮“▼”,使文本框下方展开一个下拉的列表框。 ② 在列表框中选择并且单击需要的选项。 ③ 再次单击下拉按钮,关闭下拉列表框。 微调控件的操作:用鼠标单击“增1”、“减1”两个微调按钮(▲、▼)按钮时,文本框中的数码值即增1或减1。如果需改变较大的幅度,可单击数码文本框后从键盘直接输入所需的数值。
1.6 Visual FoxPro工作方式 一.Visual FoxPro命令的格式与特点 1.命令格式 Visual FoxPro的命令是由命令字开头,后随操作对象和若干命令子句。命令字指明具体操作,而子句说明操作结果的呈现形式与操作条件等。以下给出几个简单的命令示例。 USE da && 打开名称为da的表文件 LIST && 列表显示当前表的所有记录 LIST FOR ALLTRIM(职称)=“副教授” && 显示职称为副教授的教师记录信息
2.命令特点 Visual FoxPro的命令具有下列特点: (1)命令的各部分简洁规范,通俗易懂。 (2)命令子句的数量不限,顺序不拘。 (3)命令中只规定对操作的要求,不描述具体的操作过程,所以称为“非过程化”语言。 Visual FoxPro的命令既可逐条用交互的方式执行,又可编写成程序,以“程序文件”的方式执行。 命令中的词汇可使用简写,即只写出它们的前4个字母(例如:REPLACE可简写作REPL)即可。
3.命令分类 Visual FoxPro拥有近500条命令,可分为以下7类: 建立和维护数据库的命令。 数据查询命令。 程序设计命令:包括程序控制、输入/输出、打印设计、运行环境设置等命令。 界面设计命令:包括菜单设计、窗口设计、表单设计等命令。 文件和程序的管理命令。 面向对象的设计命令。 其他命令。
二.两类工作方式 (1)交互操作方式 即命令执行方式。用户从键盘上发一条所需的命令,即可在屏幕上显示执行的结果。 随着Windows的推广,交互操作方式逐渐从以命令方式为主转变为以界面操作为主、命令方式为辅。 (2)程序执行方式 将Visual FoxPro的命令编成特定的序列,并存入程序文件。需要时只需通过特定的命令(例如,DO命令)调用程序文件,Visual FoxPro就能自动执行这一程序文件。 Visual FoxPro提供了大量的辅助设计工具,不仅可直接产生应用程序所需要的界面,而且能自动生成程序代码。
1.7 Visual FoxPro设计工具 1.7.1 向导 向导通过一组对话框依次与用户对话,引导用户分步完成Visual FoxPro的某种任务。 例如,创建一个新表,建立一个查询,或设置一个报表的格式等。 Visual FoxPro有20多种向导工具,书中列出了常用的向导名称及其简要说明。
1.7.2 设计器 设计器比向导具有更强的功能,可用来创建或修改Visual FoxPro应用程序所需要的构件. 例如,用表设计器创建一个新表或修改已有的表,使用表单设计器创建一个表单等。 书中列出了Visual FoxPro的9种设计器及用途。
1.7.3 生成器 生成器的主要功能是在Visual FoxPro应用程序的构件中生成并加入某类控件。 例如,生成一个组合框,生成一个列表框等等。 书中列出了Visual FoxPro的10种生成器及用途。
1.8 项目管理器 在数据库应用系统的开发过程中,将会产生各种类型文件,包括:数据库文件、表文件、表单文件、报表文件和程序文件等。项目管理器(Project Manager)是管理、控制这些文件的主要组织工具。 项目管理器的内容保存在带有.PJX扩展名的文件中。项目管理器并不保存各种文件的具体内容,其只记录各种文件的文件名、文件类型、路径,以及编辑、修改或执行这些文件的方法。 用户通过项目管理器,可以方便地完成各种文件的建立、修改、运行、浏览等操作,还可以完成应用程序的编译,生成可脱离Visual FoxPro系统运行的可执行文件。
1.8.1 项目管理器的功能特性 一.采用目录树管理内容 项目管理器采用了目录树结构进行管理,其内容可详(目录树展开时)可略(目录树折叠时)。 下图为项目exam.pjx新建时项目管理器刚打开的界面。
二.使用方便的功能按钮 新建按钮:用于建立新的数据库、表、查询或程序等。 添加按钮:添加按钮可以在打开对话框中将已经建立好的数据库、表、查询或程序等添加到项目中。 修改按钮:修改按钮可打开相应的设计器或编辑窗口修改选定数据库、表、查询或程序。 打开、关闭、浏览或运行按钮:当选定数据库时,会变为打开或关闭功能;当选定表时,会变为浏览功能;当选定查询或程序时,会变为运行功能。 移去按钮:将对话框中选定的数据库、表、查询或程序从项目管理器中删除。 连编按钮:用于访问连编的选项,可以连编一个项目或应用程序。
三.支持建立数据字典 Visual FoxPro将表分为数据库表和自由表两大类。 对于同属于一个数据库的数据库表,在建表的同时也同时定义它与库内的其它表之间的关系。 项目管理器根据用户对数据库的定义和设置,自动为每个数据库建立一个数据字典(Data Dictionary),用以存储各表之间的永久和临时关系,以及用户设置的对表内记录或字段进行有效性检查的一些规则。