《《数据库》第1章 数据库基础知识.docx》由会员分享,可在线阅读,更多相关《《数据库》第1章 数据库基础知识.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章数据库基础知识1.1 数据库系统概述1.1.1 基本概念1、数据(Data)数据就是描述事物的符号记录,它是数据库中存储的基本对象。描述事物的符号可以是 数字,也可以是文字、图形、图像、音频、视频等广义的数据,这些数据都可以经过数字化 后存入计算机中。2、数据库(DataBase, DB)数据库即存放数据的仓库。数据库就是长期存储在计算机内、有组织、可共享的大量数据的集合。数据库中的数据 按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性, 并可以为各种用户共享。3、数据库管理系统(DataBase Management System, DBMS)数据库管理系
2、统是位于用户与操作系统之间的一层管理软件,是数据库与用户之间的接 口,是数据库系统的一个重要组成部分。DBMS通常应具备以下主要功能:数据的定义功 能;数据组织、存储和管理;数据操纵功能;数据库的建立和维护功能;其他功能。4、数据库系统(DataBase System, DBS )数据库系统是指由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理 员(DBA)共同组成的整个系统。一般在不至于引起混淆的情况下,通常将数据库系统简称为数据库。1.1.2 数据管理技术的发展数据管理是指对数据进行分类、组织、编码、存储、检索和维护,而数据的处理是指对 各种数据进行收集、存储加工和传播的一系列
3、活动的总和。数据管理经历了以下三个阶段:1、人工管理阶段20世纪50年代中期,计算机主要用于科学计算。当时没有磁盘等直接存取设备,只有 纸带、卡片、磁带等外存,也没有操作系统和管理数据的专门软件。数据处理的方式是批处 理。该阶段管理数据的特点是:(1)数据不保存。(2)应用程序管理数据。(3)数据不共享。(4)数据不具有独立性。2、文件系统阶段20世纪50年代后期到60年代中期,随着计算机硬件和软件的发展,磁盘、磁鼓等直 接存取设备开始普及,操作系统中已经有了专门用F数据管理的软件,通常称为文件系统。 处理上不仅有批处理,还能够联机实时处理。该阶段管理数据的特点是:(1)数据可以长期保存(2)
4、由文件系统管理数据(3)数据共享性差,冗余度大(4)数据独立性差3、数据库系统阶段20世纪60年代后期以来,计算机管理的对象规模越来越大,应用越来越广泛,数据量 激增,各种复杂的应用要求越来越强烈。此时大容量硬盘的价格普遍下降,软件的价格则上升,开发和维护软件的成本增加。在 处理方式上,更多的要求联机实时处理,并开始提出和考虑分布处理。在这样的背景下,统 一管理数据的专门软件系统一一数据库管理系统应运而生,数据管理登上了一个新的高度。1.13数据库系统的特点与分类1、数据库系统的特点(1)数据结构化。这是数据库最主:要的特征之一,是指在数据库中的数据不再仅针对 某个应用,而是面向全组织;不仅数
5、据内部是结构化的,而且整体式结构化的,数据之间是 有联系的。因此在应用时,不仅要考虑到某个应用的数据结构,还要考虑整个组织的数据结 构。(2)数据的共享性高,冗余度低,易扩充。从整体角度看待和描述数据,数据库系统 中的数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使 用。数据共享可以大大减少数据集冗余,节约存储空间,还能够避免数据之间的不相容性与 现象。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易 增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。(3)数据独立性高。数据独立性包括数据的物理独立性和数据的逻辑独立
6、性。物理独 立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。逻辑独立性是指用 户的应用程序与数据库的逻辑结构是相互独立的。(4)数据由DBMS统一管理和控制。2、数据库系统的分类数据库系统分为以下四种:(1)面向对象数据库当面向对象技术兴起后,人们就探索用对象模型来组织多媒体数据库,推动并促进了对 象式数据库的产生。在面向对象数据库中,数据量庞大,且长短不检索方式以基于内容 的“非精确匹配和相似查询”为主,而非传统数据库中的以“精确查询”为主。(2)分布式数据库分布式数据库把数据分散地存放在网络上的多个结点上,彼此用通信线路连接。目前在 Internet/Intranet上流行
7、的Web数据库,就是分布式数据库的应用实例。(3)演绎数据库演绎数据库是指具有演绎推理能力的数据库。演绎数据库除了存储事实外,还能存储用 于逻辑推理的规则。与传统数据库存储的数据都代表已知事实(fact)相比,演绎演绎数据 库由“事实+规则”构成,因此也称这类数据库为基于规则(rule-based)的数据库或逻辑数 据库。它采用的数据模型称为逻辑模型或基于逻辑的数据模型。(4)关系数据库1970年美国IBM公司San Jose研究室的研究院首次提出了数据库系统的关系 模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。关系 模型是目前最重要的一种数据模型,关系数据库系统
8、采用关系模型作为数据的组织方式。数据模型1、数据模型数据模型(Data Model)是对现实世界数据特征的抽象。由于计算机不可能直接处理现 实世界中的具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据。也就是 说首先要数字化,把现实世界种具体的人、物、活动、概念用数据模型这个工具来抽象、表 示和处理。根据模型应用的不同目的,数据模型分为两类。第一类是概念模型,它是按照用户的观 点来对数据和信息建模,主要用于数据库设计。第二类中的逻辑模型包括层次模型、网状模 型、关系模型、面向对象模型和对象关系模型。它是按计算机系统的观点对数据建模,主要 用于DBMS的实现。2、概念模型概念模型用于
9、信息世界的建模,一方面应该具有较强的语义表达能力,能够方便直接地 表达应用中的各种语义知识,另一方面它还应该简单、清晰、易于用户理解。信息世界涉及的主要概念有:(1)实体(Entity)实体是客观存在并可相互区别的事物。客观存在的、具体的事物都是实体,如一个学生、 一个办公室、一门课、上级领导的一次检查、采购部门的一次订货、学生和所选课程的关系 等都是实体。(2)属性(Attribute)实体所具有的某一特性称为属性。若干个属性组合起来可以刻画某个实体,如学生实体 可以由学号、姓名、性别、出生年月、籍贯、是否党员、所在系等属性组成。可以用这些属 性的值来表征某一个学生实体,如(05062101
10、3,王蕾,女,198909,安徽,是,计算机系)。(3)域(Domain)域是一组具有相同数据类型的值的集合。域是属性的取值范围,如学生姓名的域是字符 串集合,性别的域为(男,女)。(4)实体型(Eniity Type)用实体名及其属性名集合来描述同类实体,称为实体型。例如,学生(学号,姓名,性 别,出生年月,籍贯,是否党员,所在系)就是一个实体型。(5)实体集(EntitySet)同一类型实体的集合称为实体集。例如,全体学生即是一个实体集。实体型之间的联系有三种情况:一对一联系(1:1)、一对多联系(1:)和多对多联系 (机概念模型最常用的表示方法称为实体-联系方法(Entity-Relat
11、ionship Approach),该方法 采用E-R图(E-R Diagram)来描述现实世界中的概念模型。E-R图采用三种图形来表示实体及其联系: 矩形:表示实体型,矩形框中写出实体名。 椭圆形:表示属性,椭圆形框中写出属性名,并用无向边将其与相对应的实体型连接 起来。 菱形:表示联系,菱形框内写出联系名,并用无向边分别与有关实体型连接起来,同 时在无向边的旁边标上联系的类型(一对一、一对多或多对多)。3、数据模型的分类目前在数据库领域最常用的逻辑数据模型有:层次模型(Hierarchical Model)、网状模 型(Network Model)s 关系模型(Relational Mod
12、el) 面向对象模型(Object Oriented Model) 和对象关系模型(Object Relational Model)。其中,关系模型自诞生以后,发展迅速,深受用户的青睐。它具有以下特点:(1)关系模型建立在严格的数学概念的基础之上。(2)关系模型的概念单一。(3)关系模型的存取路径对用户是透明的,从而具有更高的数据独立性、更好的安全保密性,也大大简化了程序员的工作和数据库开发建立的工作。1.1.1 数据库1.1.2 关系1、重要术语域(Domain): 一组具有相同数据类型的值的集合。如自然数,0, I,都可以是域。笛卡尔积(Cartesian Product):域上的一种集合
13、运算。关系(Relation): 一组域上笛卡尔积的有限子集,关系就是一张二维表。表的每一行称 为一个元组。表的每一列对应一个域,,每一列有一个唯一的名字,称为属性。表1-1就是一 个关系:表1-1 一个关系学号姓名性别出生日期是否团员籍贯00001李平男1978/12/11否山东00002王佳佳女1980/04/17是江苏()0003陈瑶女1979/09/02否上海00004张山洲男1982/11/18是安徽候选码(Candidate key)指的是某个属性组,该属性组能唯一标识一个元组。候选码也 称为主关键字、主键。若一个关系有多个候选码,则选定一个为主码(Primary key)。候选码
14、的诸属性称为 主属性(Prime attribute)。若F是关系R的一个或一组属性,但F不是R的码。K是关系S的主码。如果F和K 相对应,则称F是R的外码(Foreign key)或外键,或外部关键字。关系通常具备如下性质:(1)每一列中的数据项属于同一种数据类型,来自同一个域,即同质的。(2)不同的列可出自同一个域,其中的每一列为一个属性,不同的属性的名称互不相 同。(3)行和列的次序可以任意交换。(4)不允许有重复的行,至少两个元组的候选码不能完全相同。(5)表中的数据项均是不可再分的,即每个具体的数据都必须取原子值。2、关系模式关系模式(Relational Schema)就是对关系的
15、描述,它是“型”,而关系是“值二可以把关系模式形式化地表示为一个五元组:R(U, D, DOM, F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域, DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。1.1.3 关系的运算关系的运算用来表达查询。关系运算的对象是关系,其运算结果也是关系。关系的运算分为传统的集合运算和专门的关系运算。1、传统的集合运算(1)并(Union )关系R与关系S的并由属于R或属于S的元组组成。(2)交(Intersection)关系R与关系S的交由既属于R 乂属于S的元组组成。(3)差(Exception)关系R与美系S的差由属于R
16、但不属于S的元组组成。2、专门的关系运算(1)选择(Selection)选择运算是从关系R中选择满足给定条件的诸元组,是从行的角度进行的运算。例如:要在学生档案中查找男生的信息,就可以杳询满足条件“性别=男”的元组。(2)投影(Projection)投影运算是从关系R中挑选出若干属性列组成的新的关系,是从列的角度进行的运算。例如:要查找所有学生的籍贯,就可以在属性“籍贯”上对该关系进行投影操作。注意:投影操作不仅取消了原关系中的某些列,而且可能会取消某些元组。因为在投影 操作后,可能会出现重复的行,那么应该取消这些完全重复的行。(3)联接(Join)连接运算是从两个关系的笛卡尔积中选取属性间满
17、足一定条件的元组。其中有两种非常 重要也很常用的连接:等值连接和自然连接。自然连接是一种特殊的等值连接,它们都是做 属性间为“二”的连接运算,不同的是自然连接会去掉等值连接的结果中可能重复的属性列。1.3 数据库设计基础1.3.1 概述广义地讲,数据库设计是指数据库及其应用系统的设计,即设计整个数据库应用系统。 狭义地讲,是指设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用 系统设计的一部分。1.3.2 数据库设计的特点数据库设计的特点主要有:1、数据库建设的基本规律重视数据,注重技术,强化管理。2、结构(数据)设计和行为(处理)设计相结合在整个设计过程中把数据库结构设计和对
18、数据的处理设计密切结合起来。1.3.3 数据库设计方法数据库设计方法主要有: 新奥尔良(New Orleans)方法 基于E-R模型的数据库设计方法 3NF (第三范式)的设计方法, ODL (Object Definition Language)方法数据库设计的基本步骤数据库设计分为6个步骤:需求分析、概念结构设计、逻辑结构设计、物理结构设计、 数据库实施、数据库运行和维护。其中,需求分析和概念设计可以独在于任何数据库管理系 统进行。逻辑设计和物理设计与选用的DBMS密切相关。1、需求分析阶段进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整 个设计过程的基础,是最
19、困难、最耗时的一个步骤。2、概念结构设计阶段概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形 成一个独立于具体DBMS的概念模型。3、逻辑结构设计阶段逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。4、物理设计阶段物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取 方法)。5、数据库实施阶段在数据库实施阶段,设计人员运用DBMS提供的数据库语言(如SQL)及其宿主语言, 根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行 试运行。6、数据库运行和维护阶段数据库应用系统经过试运行后即投
20、入正式运行。在数据库系统运行过程中必须不断地对 其进行评价、调整与修改。1.4 Visual FoxPro 6.0 系统初识1.4.1 Visual FoxPro 6.0 的产生与发展上世纪70年代末,由美国Ashton-Tate公司研制的dBase II已开始应用于8位微机,随 后该公司推出的dBase III和dBase III+风靡于16位微机市场。1987年,美国FOX软件公司 发布了与dBase兼容的FoxBASE+,不仅功能强大,其运行速度也明显提高。它们都运行在 DOS平台上,提供给用户两种工作方式:命令执行和程序执行,尤以后者更为广泛。1989年,FOX公司继续推出了 FoxB
21、ASE+的后继产品FoxPro,其1.0版和2.0版仍 然是运行在DOS平台上的。1992年,美国Microsoft公司收购了 FOX公司,并于次年推出 了 FoxPro for Windows (2.5版),使它从字符界面演变到图形用户界面。该版本和它的后续 版本2.6版为后来的可视化程序设计打下了良好的基础。1995年,Microsoft公司首次将可视化程序引入了 FoxPro,并将其新版本取名为Visual FoxPro 3.0,简称VFP3.0。新版本在用户界面的直观易用、面向对象的程序设计及数据的处 理能力等方面都有全新的突破。1998年,Microsoft推出了 Visual Fo
22、xPro 6.0 (中文版)。优越的性能使VFP 6.0在同类 的微机数据库管理系统中脱颖而出,初步形成为兼有SQL与本身“自含型”语言、包括结 构化和可视化两类程序设计、支持C/S应用模式与网络应用的交互式数据库开发环境。此后,Microsoft 公司又相继发布了 Visual FoxPro 7.0(2001 年)、Visual FoxPro 8.0(2003 年)和Visual FoxPro 9.0 ( 2004年)等后续版本,这些新版本都没有配置中文版。尽管VFP 正面临着.NET等热门语言的冲击和挑战,但对于初学者入门、课堂教学以及开发中小型数 据库应用系统,Visual FoxPro
23、 6.0仍不失为一款优秀的程序设计语言和系统开发工具。1.4.2 Visual FoxPro 6.0 的工作界面Visual FoxPro 6.0与其他的Windows应用程序一样,采用图形用户界面,在其界面上含 有大量Windows风格的元素,如窗口(windows)、图标(icons)和菜单(menus)等技术。1、Visual FoxPro 6.0 的启动界面启动Visual FoxPro 6.0后,屏幕上就会出现一个窗口,该窗口由以下几个部分组成:(1)标题栏。显示应用程序窗口的名称Microsoft Visual FoxProo(2)控制按钮。在标题栏最右边,有三个控制按钮,分别是“
24、最小化”按钮、“最大化 (还原)”按钮和“关闭” “按钮。(3)菜单栏。用于显示系统菜单(主菜单)所包含的选项,供用户选择。(4)工具栏。由若干工具按钮组成,每个按钮对应一项特定功能。(5)窗口工作区。主要用于:显示命令或程序的执行(运行)结果;显示VFP提供的 工具栏。(6)窗口边框。窗口的外边线,在窗口非最大化时,可拖动外边线改变窗口的大小。2、命令窗口命令窗口是VFP中的一个重要窗口之一,它是VFP主窗口中的一个小窗口。命令窗口 是用户采用命令方式操作的“接口”。它的主要作用是显示命令,而命令的来源有两种情况:(1)当用户采用命令操作方式时,从键盘键入命令,敲击Enter键即可执行该命令
25、。(2)当用户采用界面操作方式时,每操作一步,系统会自动将相应的命令显示在命令 窗口中。3、向导、设计器与项目管理器为了使用户高效、便捷地开发数据库应用系统,Visual FoxPro 6.0提供了一系列可视化 的辅助开发工具,包括向导、设计器、生成器和项目管理器。(1)向导(wizard)向导是一种快捷的设计工具,它通过一系列对话框依次与用户对话,引导用户完成某项 任务。向导最大的特点就是“快”,不仅设计过程简单、迅速,执行速度也很快。向导可以 胜任通用、简单的任务。Visual FoxPro 6.0提供的向导有20多种,包括数据文件(表、视图、查询等)、文档(报 表、标签、表单等)、应用程
26、序和服务器数据库,这些都可以用相应的向导去建立。(2)设计器(designer)设计器比向导的功能更强,可以用来创建或修改复杂的对象,使用方法非常灵活。通常 的做法是川向导快速建立一个简单的框架,再使川设计器进行详细、必要的修改。(3)生成器(builder)生成器又称为构造器,其主要功能是在VFP应用程序的组件中加入某类控件(如组合 框),或为之设置属性等。(4)项目管理器(program manager)项目管理器主要功能是对被开发系统的数据、文档、源代码和类库等资源进行集中、高 效的管理。1.4.3 Visual FoxPro 6.0的主要文件类型Visual FoxPro 6.0包括丰
27、富的文件类型,表1-2列出了主要的文件类型及其文件的扩展 名。表1-2 Visual FoxPro 6.0中的主要文件类型及其扩展名扩展名文件类型扩展名文件类型扩展名文件类型app生成的应用程序.frx报表.OCXActiveX 控件.cdx复合索引.fxp编译后的程序pjt项目备注.dbc数据库.h头文件pjx项目.dbf表.hip帮助文件prg程序.dbg调试器配置.htmHTMLqpr生成的查询程序.det数据库备注.idx索引,压缩索引qpx编译后查询程序.dcx数据库索引.Ibt标签备注.set表单备注.dllWin动态链接库.Ibx标签.sex表单.err编译错误.log代码范围日
28、志.tbk备注备份.exe可执行程序.1st向导列表文档.txt文本.fky宏.mem内存变量保存.vet可视类库备注.01FoxPro动态链接库.mnt菜单备注.vex可视类库.fmt格式文件.mnx菜单.win窗口文件.fpt表备注.mpr生成菜单程序.frt报表备注.mpx编译后菜单程序1.4.4 Visual FoxPro 6.0 的工作方式Visual FoxPro 6.0支持两种工作方式:交互操作方式和程序执行方式。1、交互操作方式交互操作方式又称为命令执行方式。使用命令执行方式时要遵守以下规则:每条命令以命令动词开头,动词后的选项先后顺序可以任意,但必须符合命令格式的 规定。用空
29、格来分隔每条命令中的各个选择项。分号作为续行符(;)用来表示下一行仍是同一命令的一部分,这样就可以把一条长 命令分成多行来写,但命令的最后一行不能以分号结尾。命令动词、各短语中的关键字、函数名都可以简写为4个字符,不区分大小写。Visual FoxPro 6.0同时支持命令执行与界面操作两种方式。但由于更加完善了界面操作, 使交互操作方式的内涵逐渐从以命令方式为主转变为以界面操作为主、命令方式为辅。VFP 提供了功能丰富、强大的各种辅助设计工具(如向导、设计器等),这些工具直观的可视化 界面正越来越多的为用户所熟悉。当然,习惯使用命令的用户仍然可以很方便地通过在命令 窗口中键入命令进行操作。需要说明的是,在对数据库和数据表进行操作时,若用户选择了一个菜单项,在命令窗 口中就会出现条相应的命令,实际.上选择菜单项操作相当于发出Visual FoxPro 6.0命令 来进行操作。2、程序执行方式程序是命令的有序的、特定的集合。用户需要时,只需通过DO命令执行某个程序文件, 系统即自动执行该程序所包含的命令序列,最大程度地提高了用户的工作效率,避免了交互 方式因其固有特点而效率低卜的问题。程序执行方式运行效率高,且可重复执行。