1、数据库基础知识数据库基础知识Visual FoxPro简介简介 Visual FoxPro简称VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。Visual FoxPro原名FoxBase,是美国Fox Software公司推出的数据库产品,在DOS上运行,与xBase系列相容。FoxPro原来是FoxBase的加强版,最高版本曾出过2.6。之后,Fox Software被微软收购,加以发展,使其可以在 Windows 上运行,并且更名为 Visual FoxPro。目前最新版为 Visual FoxPro 9.0,而在学校教学和教育部门考证中还依然延用经典
2、版的 Visual FoxPro 6.0。在桌面型数据库应用中,处理速度极快,是日常工作中的得力助手。Visual FoxPro 6.0 简介Visual FoxPro 6.0是在 xBASE(dBASE,FoxBASE,FoxPro)的基础上发展而来的32位数据库管理系统。它是由微软公司于1998年在推出 Windows 98 操作系统的同时推出的。1.数据 数据是指存储在某一种媒体上能够识别的物理符号。数据的概念包括两个方面:其一是描述事物特性的数据内容;其二是存储在某一种媒体上的数据形式。由于描述事物特性必须借助一定的符号,这些符号就是数据形式。数据形式可以是多种多样的,例如某人的出生日
3、期是“1988年6月25日”,当然也可以将该形式改写为“88/06/25”,但其含义并没有改变。数据的概念在数据处理领域已经大大地拓宽了。数据不仅仅指数字、字母、文字和其他特殊字符组成的文本形式的数据,而且还包括图形、图像、动画、影像、声音(包括语音、音乐)等多媒体数据。2.数据处理数据处理是指对各种形式的数据进行收集、存储、加工和传播的一系列活动的总和。在计算机的三大主要应用领域(科学计算、数据处理和过程控制)中,数据处理是计算机应用的主要方面。数据库技术就是作为数据处理中的一门技术而发展起来的。数据处理是指对各种形式的数据进行收集、存储、加工和传播的一系列活动的总和。其目的之一是从大量的、
4、原始的数据中抽取、推导出对人们有价值的信息以作为行动和决策的依据;目的之二是为了借助计算机科学地保存和管理复杂的、大量的数据,以便人们能够方便而充分地利用这些宝贵的信息资源。数据库的重要性数据库的重要性l数据库的应用领域非常广泛,不管是家庭、公司或大型企业,还是政府部门,都需要使用数据库来存储数据信息。l传统数据库中的很大一部分用于商务领域,如证券行业、银行、销售部门、医院、公司或企业单位,以及国家政府部门、国防军工领域、科技发展领域等。l 数据库技术所研究的问题就是如何科学地组织和存储数据,如何高效地获取和处理数据。数据库技术作为数据管理的主要技术目前已广泛应用于各个领域,数据库系统已成为计
5、算机系统的重要组成部分。数据库的应用领域数据库的应用领域l1多媒体数据库多媒体数据库l这类数据库主要存储与多媒体相关的数据,如声音、图像和视频等数据。多媒体数据最大的特点是数据连续,而且数据量比较大,存储需要的空间较大。l2移动数据库移动数据库l该类数据库是在移动计算机系统上发展起来的,如笔记本电脑、掌上计算机等。该数据库最大的特点是通过无线数字通信网络传输的。移动数据库可以随时随地地获取和访问数据,为一些商务应用和一些紧急情况带来了很大的便利。l3空间数据库空间数据库l这类数据库目前发展比较迅速。它主要包括地理信息数据库(又称为地理信息系统,即GIS)和计算机辅助设计(CAD)数据库。其中地
6、理信息数据库一般存储与地图相关的信息数据;计算机辅助设计数据库一般存储设计信息的空间数据库,如机械、集成电路以及电子设备设计图等。l4信息检索系统信息检索系统l信息检索就是根据用户输入的信息,从数据库中查找相关的文档或信息,并把查找的信息反馈给用户。信息检索领域和数据库是同步发展的,它是一种典型的联机文档管理系统或者联机图书目录。l5分布式信息检索分布式信息检索l这类数据库是随着Internet的发展而产生的数据库。它一般用于因特网及远距离计算机网络系统中。特别是随着电子商务的发展,这类数据库发展更加迅猛。许多网络用户(如个人、公司或企业等)在自己的计算机中存储信息,同时希望通过网络使用发送电
7、子邮件、文件传输、远程登录方式和别人共享这些信息。分布式信息检索满足了这一要求。l6专家决策系统专家决策系统l专家决策系统也是数据库应用的一部分。由于越来越多的数据可以联机获取,特别是企业通过这些数据可以对企业的发展作出更好的决策,以使企业更好地运行。由于人工智能的发展,使得专家决策系统的应用更加广泛。数据库数据库l数据库(Database),简单地说就是数据的仓库,即数据存放的地方。数据管理数据管理l是指对数据进行组织、分类、编码、存储、检索和维护。l数据管理经历了四个阶段:l人工管理阶段l文件系统阶段l倒排文件系统阶段l数据库阶段人工管理阶段人工管理阶段l时间:20世纪50年代中期以前l用
8、途:科学计算l硬件:只有卡片、纸带、磁带,没有磁盘等直接存取设备。l软件:汇编语言,没有操作系统和管理数据的软件l处理方式:批处理应用程序1数据集1应用程序2数据集2应用程序n数据集n特点特点l数据不保存l系统没有专用的软件对数据进行管理l数据不共享l数据不具有独立性文件系统阶段文件系统阶段l时间:20世纪50年代后期至60年代中期l用途:不仅用于科学计算,还大量用于信息管理l硬件:有了磁盘、磁鼓等直接存取设备l软件:出现了高级语言和操作系统。操作系统中有了专门管理数据的软件文件系统l处理方式:有批处理,也有联机处理。文 件系 统应用程序1应用程序2应用程序n文件1文件2文件n特点特点l数据以
9、文件形式长期保存l文件系统可对数据的存取进行管理l文件形式多样化l程序与数据间有一定独立性问题问题l数据冗余大l数据独立性差l数据一致性差倒排文件系统阶段倒排文件系统阶段l对文件系统加以扩充,研制成倒排文件系统。数据库系统阶段数据库系统阶段l时间:20世纪60年代后期开始l用途:计算机应用于管理的规模更加庞大,数据量急剧增加。l硬件:出现了大容量磁盘l软件:硬件价格下降,而软件价格上升,使开发和维护系统软件的成本增加。出现了统一管理数据的专门软件,即数据库管理系统l处理方式:可以实现联机大量存取数据数据库数据库管理系统应用程序1应用程序2应用程序n特点特点l数据共享性高、冗余低l数据结构化l数
10、据独立性高l有统一的数据控制功能数据库技术的历史数据库技术的历史l一、摇篮和萌芽阶段:l首先使用“DataBase”一词的是美国系统发展公司在为美国海军基地在60年代研制数据中引用。l1963年,CWBachman设计开发的IDS(Integrate Data Store)系统开始投入运行,它可以为多个COBOL程序共享数据库。l1968年,网状数据库系统TOTAL等开始出现;l1969年,IBM公司Mc Gee等人开发的层次式数据库系统的IMS系统发表,它可以让多个程序共享数据库。l1969年10月,CODASYL数据库研制者提出了网络模型数据库系统规范报告DBTG,使数据库系统开始走向规范
11、化和标准化。正因为如此,许多专家认为数据库技术起源于20世纪60年代末。数据库技术的产生来源于社会的实际需要,而数据技术的实现必须有理论作为指导,系统的开发和应用又不断地促进数据库理论的发展和完善。l二、发展阶段:l20世纪80年代大量商品化的关系数据库系统问世并被广泛的推广使用,既有适应大型计算机系统的,也有适用与中、小型和微型计算机系统的。这一时期分布式数据库系统也走向使用。l1970年,IBM公司San Jose研究所的E F Code发表了题为“大型共享数据库的数据关系模型”论文,开创了数据库的关系方法和关系规范化的理论研究。关系方法由于其理论上的完美和结构上的简单,对数据库技术的发展
12、起了至关重要的作用,成功地奠定了关系数据理论的基石。l1971年,美国数据系统语言协会在正式发表的DBTG报告中,提出了三级抽象模式,即对应用程序所需的那部分数据结构描述的外模式,对整个客体系统数据结构描述的概念模式,对数据存储结构描述的内模式,解决了数据独立性的问题。l1974年,IBM公司San Jose研究所研制成功了关系数据库管理系统System R,并且投放到软件市场l1976年,美籍华人陈平山提出了数据库逻辑设计的实际(体)联系方法。l1978年,新奥尔良发表了DBDWD报告,他把数据库系统的设计过程划分为四个阶段:需求分析、信息分析与定义、逻辑设计和物理设计。l1980年,JDU
13、lman所著的数据库系统原理一书正式出版。l1981年 E F Code获得了计算机科学的最高奖ACM图林奖。l1984年,David Marer所著的关系数据库理论一书,标志着数据库在理论上的成熟。l三、成熟阶段:l80年代至今,数据库理论和应用进入成熟发展时期 数据库技术的术语数据库技术的术语l数据库lDatabase,DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合l数据库管理系统lDatabase Management System,DBMS是位于用户与操作系统之间一层数据管理软件l是基于某种数据模型的l数据库技术l是研究数据库的结构、存储、设计、管理和使用的一门软件学科。
14、l数据库系统lDatabase System,DBS是由实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统。数据库技术的发展数据库技术的发展l分布式数据库技术l面向对象数据库技术l各种新型的数据库技术目前流行的几种数据库目前流行的几种数据库l数据库的种类繁多,大的数据库系统如、和等,小的如、等。l它们各有所长,能分别满足不同层次的需要:l以稳定性著称,l因先进性闻名,它们适合建立工程、企业等大型数据库;而简单快速。l小巧便捷,能很好地为家庭及中小型数据库服务。l在众多的数据库系统中,有几个数据库系统已成为应用最广泛、市场最流行的数据库平台。数据处理的三个
15、领域数据处理的三个领域l事物信息数据l现实世界信息世界计算机(数据)世界现实世界认识抽象信息世界计算机世界转换信息世界中的基本概念信息世界中的基本概念l实体:l客观存在并且可以相互区别的“事物”成为实体。l实体可以是可触手可及的对象,也可以是抽象的事件l属性l实体的某一特征成为属性l属性型、属性值l实体型l具有相同属性的实体必然具有共同特征,所以,若干个属性的型所组成的集合可以表征一个实体的类型,简称实体性。l实体型通常用实体名和属性名集合来表示l实体集l同型实体的集合成为实体集l键l在实体型中,能惟一标识一个实体的属性或属性集称为实体的键。l域l属性值的取值范围称为该属性的域。l联系l实体型
16、内部的联系l实体型之间的联系l两个实体型之间的联系有如下三种类型:l一对以联系(1:1)l一对多联系(1:n)l多对多联系(m:n)一对一联系一对一联系l实体集A中的一个实体至多与实体集B中的一个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应,则称实体集A与实体集B为一对一联系,记作1:1。A B一对多联系一对多联系l实体集A中的一个实体与实体集B中的n(n=0)个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应,则称实体集A与实体集B为一对多联系,记作1:n。AB多对多联系多对多联系l实体集A中的一个实体与实体集B中的n(n=0)个实体相对应,反
17、之,实体集B中的一个实体与实体集A中的m(m=0)个实体相对应,则称实体集A与实体集B为多对多联系,记作m:n。AB数据模型数据模型l数据模型是现实世界数据特征的抽象l数据模型由三个要素组成l数据结构 用于描述系统的静态特征。用于描述所研究对象的逻辑组成以及它们之间的逻辑关系l数据操作 作用于描述系统的动态特征。是数据库中各种数据的操作集合l数据的约束条件 是一组完整性规则的集合。l层次模型l网状模型l关系模型层次模型层次模型l是数据库系统中最早出现的数据模型l典型代表是:IBM公司的IMS数据库管理系统。l用一颗“有向树”的数据结构来表示各类实体以及实体之间的联系。系教研室教师学生特征特征l
18、有且仅有一个结点没有双亲,该结点就是根结点;l根以外的其他结点有且仅有一个双亲结点,这就使得层次数据库系统只能直接处理一对多的实体关系l任何一个给定的记录值只有按其路径查看时,才能显示它的全部意义数据操作数据操作l进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值;l进行删除操作时,如果删除双亲结点是,则相应的子女结点值也被同时删除;l修改操作时,应修改所有相应的记录,以保证数据的一致性。优点优点l比较简单,只需很少几条命令就能操纵数据库,比较容易使用。l结构清晰,结点间联系简单l提供了良好的数据完整性支持缺点缺点l不能直接表示两个以上实体型间的复杂联系和实体型的多对多联系,只能通过
19、引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性。l对数据插入点和删除的操作限制太多l查询子女结点必须通过双亲结点网状模型网状模型l允许两个或两个以上的结点可以有多个双亲结点有向图l网状模型的特征如下:l有一个以上的结点没哟双亲l至少有一个结点可以有多于一个双亲数据操作数据操作l插入数据时,允许插入尚未确定双亲结点值的子女节点之后l删除数据时,允许删除双亲结点值l修改数据时,只需更新指定记录即可优点优点l能更为直接地描述客观世界,可表示实体间的多种复杂联系l具有良好的性能和存储效率缺点缺点l结构复杂,其定义语言极其复杂l数据独立性差,在访问数据是要指定存取路径关系模型关系模型l关系模型的
20、数据结构是“二维表”,每个二维表又可称为关系l关系模型是“关系”的集合。l系表系代码 系名系地址系电话01机电工程系 东二楼83402计算机系东三楼83503化学工程系 北三楼833l教研室数据表室代码室名室电话系代码01应用电子2000102自动控制2010103机械制造2020104软件工程3010205无机化工21003l教师表职工号姓名性别室代码01何老师男0102王老师女0103李老师女0204黄老师女0205陈老师男0306刘老师男04l学生表学号姓名性别室代码S1A1男01S2B1女01S3C1女02S4A2男02S5C2男03数据操作数据操作l是集合操作l操作对象和操作结果都是关系l用户只要指出“干什么”,不必说明“怎么干”,有较高的数据独立性优缺点优缺点l有较强的数学理论根据l数据结构简单、清晰,用户易懂易用,不仅用关系描述实体,而且用关系描述实体间的联系。l关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据建立和开发的工作。