数据库复习资料.docx
《数据库复习资料.docx》由会员分享,可在线阅读,更多相关《数据库复习资料.docx(148页珍藏版)》请在冰豆网上搜索。
数据库复习资料
数据库复习资料
第一章数据库系统概论
一、数据库技术概述
1.数据、数据处理、数据管理
数据是描述现实世界中各种具体事物或抽象概念的可存储并具有明确意义的各种符号。
数据处理是指包括数据采集、整理、编码和输入,从而有效地将数据组织到计算机中,由计算机对数据进行存储、加工、分类、检索、传输和输出等一系列的操作过程。
数据管理是指数据处理的一系列活动中的基本操作环节,如对数据的组织、存储、检索和维护等工作,它是数据处理的核心。
通俗说,数据管理就是指在计算机系统里对数据所进行的操作。
在数据组织到计算机中之前不属于数据管理,将数据通过网络传输到另一个计算机系统的传输动作也不属于数据管理。
人工管理阶段
背景:
硬件,没有直接存取设备,软件,没有操作系统及管理数据的软件;数据处理的方式为批处理
文件系统阶段
背景:
硬件,有直接存取设备,软件,有操作系统和专门的数据管理的软件;数据处理方式可为批处理方式也可为联机方式
数据库系统阶段
背景:
多用户、多应用共享数据要求,大量数据处理需求。
3.数据库系统
数据库系统指在计算机系统中引入数据库后的系统构成,由六部分构成:
数据库(DataBase,DB)是存储在计算机系统内的、有结构的数据的集合;
数据库管理系统(DataBaseManagementSystem,DBMS)是管理数据库的系统软件,为用户和数据之间提供接口,使用户可对数据库进行各种操作。
是数据库系统的核心部分。
运行环境包括计算机硬件系统、操作系统、开发工具等;
数据库管理员(DataBaseAdministraor,DBA)主要负责设计、建立、管理和维护数据库,协调各用户对数据库的要求等;DBA不一定只是一个人,可以是一个工作组;
用户(Users)数据库系统的服务对象。
数据库应用系统满足用户功能需求的软件系统。
二、数据模型
1.数据模型概述
数据模型是数据抽象的工具,即用此工具来组织数据,使数据结构化。
目前广泛使用的数据模型可分为两个层次。
第一层数据模型是独立于计算机系统的模型,它完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”。
第二层数据模型是依赖于计算机系统的模型,它是直接面向数据库的逻辑结构,这类模型涉及到计算机系统和数据库管理系统,这类模型称为“结构数据模型”。
现实世界(事物事物特性)
信息世界(实体实体属性)
数据世界(记录数据项)
概念模型
结构模型
1.现实世界的抽象过程
现实世界
客观存在的世界。
在现实世界中存在着各种运动着的物质,即各种事物及事物之间的联系。
客观世界中的事物都有一些特征,人们正是利用这些特征来区分事物。
信息世界
人们通过大脑对客观世界的感知,又通过分析、归纳、抽象等方法处理,形成信息,对这些信息进行记录、整理、归纳和格式化,即构成了信息世界。
实体联系模型、对象模型
数据世界(机器世界)
数据化了的信息世界称为数据世界,也叫机器世界。
关系模型、层次模型、网状模型
2.概念数据模型
概念数据模型是独立于计算机系统,完全不涉及数据在计算机系统中的表示,按用户的观点在信息世界中对事物建模,强调其语义表达能力,主要用于数据库概念设计。
典型的概念模型有:
实体联系模型(ER模型)和对象模型。
3.结构数据模型的三要素
结构数据模型是面向计算机系统的,是现实世界中的信息最终在机器世界中得到的反映,它通常有一组严格定义了语法和语义的语言,人们可以使用它来定义、操纵数据库的数据。
典型的结构数据模型有:
层次模型、网状模型和关系模型。
数据结构
数据操作
数据约束
3.1数据结构
数据结构用于描述数据的静态特性。
数据结构不仅要描述数据本身,如数据类型、内容、属性;还要描述数据之间的联系。
不同的数据模型采用不同的数据结构。
在关系数据模型中用数据记录和数据项来描述。
3.2数据操作
数据操作用于描述数据的动态特性。
是指对数据库中的数据所允许执行的操作的集合。
主要有插入、删除、修改和查询四种操作。
3.3数据约束
数据约束是一组完整性规则的集合。
完整性规则是数据模型中数据及其联系所具有的约束规则,用来限定数据库状态以及状态的变化,以保证数据的正确性。
完备的数据模型都会提供描述约束的机制,尽可能完整地描述现实系统中对事物的约束规定,以达到真实描述现实系统的目的。
4.层次模型
层次模型(HierarchicalDataModel)是数据库系统中最早出现的数据模型。
20世纪60年代后期,IBM开发出IMS(InformationManagementSystem)DBMS,是层次数据模型的基础。
层次模型是以记录型为结点的有向树。
用树形结构表示各类实体以及实体之间的联系。
现实世界中许多实体之间的联系就呈现出一种很自然的层次关系,如:
行政机构、家庭关系等。
层次模型中,每个结点表示一个记录类型,结点之间的连线表示记录类型间的联系,但这种联系只能是父子联系。
层次模型中,任何一个给定的记录值,只有按其路径查看时,才能显示出它的完整意义。
没有一个子女记录值能够脱离双亲记录值而独立存在。
层次模型的数据结构——树结点表示“实体”,即一条记录,树结点之间的连线表示“联系”。
层次模型的数据操作——按数据结构中对树的操作,实现结点的增加、删除、修改和查询。
层次模型的数据约束——一个模型一个根,根以外的结点只有一个双亲结点,一对多关系。
5.网状模型(NetDataModel)
网状数据模型的典型代表是DBTG系统,亦称CODASYL系统。
网状模型去掉了层次模型的两个限制,允许结点有多个双亲结点。
可比层次模型更直接地描述现实世界。
它是层次模型的泛化。
数据结构—用有向图描述,图顶点表示实体,边表示实体间的联系。
数据操作—实现对图中顶点的插入、删除、修改和查询。
数据约束—没有约束。
6.关系模型
关系模型是由E.F.Codd(埃德加.考特)于1970年首先提出。
它的基础不是图而是表。
用二维表来表示实体和联系。
每个二维表称为一个关系。
表中每一行代表一个实体,表中每一列则代表实体的属性。
二维表既反映了实体本身,也反映了实体与实体间的联系。
数据结构——表中的行表示实体,表和表之间的相同属性反映实体间的联系。
数据操作——按行可以增加、删除、修改和查询实体。
数据约束——任何两行不能完全相同,主键约束、域值约束、参照完整性约束、用户自定义约束等。
7.面向对象模型
面向对象模型(Object-OrientedDataModel)用对象来描述事物,一个事物即为一个对象。
面向对象模型的数据结构——用对象、对象属性及对象之间的联系来描述。
面向对象模型的数据操作及完整性约束则是统一封装在对象之中的。
三、数据库系统的构造
数据库系统的三级模式
数据库系统总体结构
数据库系统的主要特点
1.数据库系统三级模式结构
1.1数据的独立性概念
所谓数据独立性,是指应用程序独立于数据的逻辑表示与物理存储。
通过将数据的定义与存储从程序中独立出来实现。
1.2数据的逻辑独立性
数据逻辑独立性是当概念模式改变时,例如,增加了新的关系、新的属性、改变了属性的数据类型等,由DBA对各个外模式/概念模式的映象作相应改变,可使外模式尽可能保持不变。
由于应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
1.3数据的物理独立性
数据的物理独立性是指当数据库的内模式发生改变时,如存储设备或存储方法发生改变,由DBA对概念模式/内模式映象作相应改变,使概念模式尽可能保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
2.数据库系统总体结构图
数据库设计部分结合三级模式讲透。
案例教学:
以教学管理系统为例。
教学管理系统面向教务管理员、教师、学生、教学管理领导。
在此引出视图的概念
3.数据库系统的主要特点
数据结构化
可控数据冗余
数据共享性好
多种应用、多种语言共享
数据独立性高
集中统一控制
数据的安全性控制
数据的完整性控制
并发控制
四、数据库管理系统
什么是数据库管理系统
数据库管理系统的功能
数据库管理系统的组成
数据库语言
1.什么是数据库管理系统
数据库管理系统(DataBaseManagementSystem)简称为DBMS。
是一种负责数据库定义、建立、操作、管理和维护的系统软件。
它的作用既类似于命令解释器,把用户对数据库的操作命令转换为对系统存储文件的操作;又类似于一个向导,把用户对数据库的一次访问,从用户级带到概念级,再导向物理级。
2.DBMS的功能
数据库的定义
数据库的建立
数据库的操作
数据库的控制
数据库的维护与故障恢复
数据通信
。
3.数据库管理系统的组成
从程序的角度看,数据库管理系统是一组程序的集合体,按程序的功能可分为如下三类。
3.1语言处理程序
3.2运行控制程序
3.3服务性程序
3.1语言处理程序
向用户提供数据库的定义、操作等功能。
由以下编译程序或解释程序组成:
数据库各级模式的语言处理程序。
其作用是将各级源模式编译成各级目标模式。
数据库操作编译处理程序。
即将应用程序中DML语句转换成主语言编译程序能处理的形式,实现预编译。
查询语言解释程序。
处理终端查询语句,并决定其操作的执行过程。
数据库控制语言解释程序。
解释每个数据库控制命令的含义,决定操作的执行过程。
3.2运行控制程序
负责数据库运行时的管理、调度和控制。
由以下程序模块组成:
系统总控程序。
它是整个DBMS的核心,负责控制、协调DBMS各个程序的活动,保证系统有条不紊地工作。
访问控制程序。
其内容包括核对用户、口令,核对授权和密码,检验访问的合法性,以决定一个访问是否能进入数据库;
并发控制程序。
在多个用户同时访问数据库时,通过管理访问队列和封锁表,以及封锁的建立和撤消等工作,协调各个用户的访问,以避免造成数据修改和丢失等不正常现象,从而保证各应用程序读写数据的正确性;
保密控制程序。
在执行操作之前,核对保密规定。
即数据加密约定。
数据的完整性控制程序。
在执行用户请求的每次操作前或后,核对数据的完整性约束条件,从而决定是否允许操作执行。
数据存取程序。
执行数据存取操作,是DBMS与文件系统的接口。
把用户对数据库的访问请求转换为相应的文件存取命令,通过文件系统从相应的物理文件中读出数据,或向相应的物理文件写入数据。
数据更新程序。
执行数据库中数据的插入、删除和修改操作,并负责修改相应的指针。
通信控制程序。
实现用户程序与DBMS之间的通信。
3.3服务性程序
提供数据库中数据的装入和维护等服务性功能,由以下一些程序模块组成:
数据库装入程序该程序将初始数据装入数据库中。
运行日志程序该程序记载对数据库的所有访问,包括用户名、进入时间、操作方式、操作对象、数据修改前的值和数据修改后的值等。
重组织程序当数据库性能变坏时,需要重新组织数据库,该程序可按原组织方法重新装入数据或采用新方法、新结构重新组织数据。
数据库恢复程序当数据库系统遭到破坏时,数据库系统恢复程序可将系统恢复到可用状态。
性能监控程序该程序监督用户操作的执行时间与数据存储空间的占用情况,估算系统性能,以决定数据库是否需要重新组织。
转贮程序
编辑和打印程序
4.数据库语言
数据库管理系统是用户与数据库之间的接口。
一个数据库管理系统必须为用户提供某种工具完成下列工作:
建立自己的数据库,对数据库进行各种操作。
这个工具就是数据库语言。
数据库语言包括数据描述语言、数据操作语言、数据库管理例行程序三大部分。
最常用的数据库语言就是SQL语言。
4.1数据描述语言
DataDescriptionLanguage,负责描述和定义数据的各种特性。
这些特性包括数据的结构、数据之间的关系、数据的完整性约束等。
这些描述和定义被存储在数据库管理系统中的数据字典中。
数据字典(DataDictionary,DD)是数据库管理系统中的一个特殊文件,用于存储数据库的一些说明信息,这些说明信息称为元数据(MetaData)。
参见P20.
SQL语言中的CreateTable,CreateView,CreateDatabase,alterdatabase,Droptable,Altertable等都是数据描述语言。
4.2数据操作语言
DataManipulationLanguage,是用户操作数据库中数据的工具。
一般包括以下几方面的操作:
从数据库中检索满足条件的数据;
把新的数据记录插入到数据库中去;
从数据库中删除某些过时的、没有保留价值的原有数据;
修改某些已经发生了变化的数据项值,使之能确切反映变化后的情况。
如,Select,Insert,Delete,Update等。
按使用方式可将数据操作语言分为宿主式操作语言和自主式操作语言。
宿主式操作语言也称为嵌入式操作语言。
4.3数据库管理例行程序
存取控制例行程序
安全性控制例行程序
完整性控制例行程序
事务管理例行程序
恢复例行程序
监控例行程序
五、数据库应用系统开发概述
两种模式
C/S模式
B/S模式
组件与分布式对象技术
组件技术
分布式对象技术
1.C/S模式
是一种分布式的计算模式。
C/S模式通过网络环境,将应用划分为“前端”和“后台”。
前端由客户机担任GUI(GraphicUserInterface)处理以及向服务器发送用户请求和接收服务器回送的处理结果;后端为服务器,主要承担数据库的管理,按用户请求进行数据处理并回送结果等工作。
两层C/S结构
网络为局域网,表示层和功能层揉在一起的,逻辑上没有分开,只是将数据层分开。
三层C/S结构
表示层、功能层、数据层。
表示层
表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。
它用于检查用户从键盘等输入的数据,显示应用输出的数据。
为使用户能直观地进行操作,一般要使用图形用户接口(GUI),操作简单、易学易用。
在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。
检查的内容也只限于数据的形式和值的范围,不包括有关业务本身的处理逻辑。
在这层的程序开发中主要是使用可视化编程工具。
功能层
功能层相当于应用的本体,它将具体的业务处理逻辑编入程序中。
例如,在制作订购合同时要计算合同金额,按照定好的格式配置数据、打印订购合同,而处理所需的数据则要从表示层或数据层取得。
表示层和功能层之间的数据交换要尽可能简洁。
例如,用户检索数据时,要设法将有关检索要求的信息一次传送给功能层,而由功能层处理过的检索结果数据也一次传送给表示层。
在应用设计中,一定要避免进行一次业务处理,在表示层和功能层间进行多几次数据交换的笨拙设计。
这层的程序多半是用可视化编程工具开发的,也有使用C语言的。
数据层
数据层就是DBMS,负责管理对数据库数据的读写。
DBMS必须能迅速执行大量数据的更新和检索。
现在的主流是关系数据库管理系统(RDBMS)。
因此,一般从功能层传送到数据层的要求大都使用SQL语言。
三层C/S的优点:
具有灵活的硬件系统构成
提高程序的可维护性
利于变更和维护应用技术规范
进行严密的安全管理
2.B/S模式(多层)
3.组件技术
组件(Component),是指具有某种功能的独立软件单元,其最重要的特性是可复用性。
组件模型由组件和容器构成。
组件通过接口向外界提供功能入口。
组件的范围很广,小到一个按钮,大到一个系统,如浏览器。
容器(Container),是一种存放相关组件的“器皿”。
如表单(Form)、页面(Page)、框架(Frame)等。
组件技术应解决两个问题:
复用和互操作。
常见的组件规范有:
VBX、OCX、ActiveX。
VBX、OCX、ActiveX都是由微软推出的
4.分布式对象技术
组件向分布式环境延伸,形成了分布式对象技术。
利用分布式对象技术,可以实现异构平台间分布式对象间的相互通信,极大地提高系统的可扩展性。
组件技术与分布式技术用得较广泛的模型有:
CORBA、COM/DCOM/COM+、JavaBeans/EJB/J2EE。
参见P32-33。
六、数据库技术的发展
第一代数据库系统
第二代数据库系统
OLTP与OLAP
数据仓库与数据挖掘
并行与分布式数据库系统
Internet/Web数据库
面向对象的数据库系统
1.第一代数据库系统
以层次数据库管理系统和网状数据库管理系统的出现为标志,其典型代表分别是IMS和DBTG系统。
层次数据库和网状数据库均支持三级模式的体系结构,均用存取路径表示数据间的联系,都有数据定义语言和导航式的数据操纵语言。
对这两种数据库的应用要求:
一是要熟悉数据库的各种路径,二是有较高的应用数据库的编程技巧。
层次型和网状型均缺少相应的数学理论基础。
2.第二代数据库系统
支持关系数据模型的关系数据库系统是第二代数据库系统。
关系模型既简单,又有坚实的数学基础。
3.OLTP与OLAP
OLTP(OnlineTransactionProcessing)即联机事务处理。
是一种数据库应用技术。
如民航的订票系统、银行储蓄系统、证券交易系统等均属于OLTP的应用。
OLAP(OnlineAnalysisProcessing)即联机分析处理。
也是一种数据库应用技术,1993年由E.F.Codd提出。
OLAP着重于“数据分析”,而OLTP着重于“数据管理”。
OLAP的典型应用就是决策支持系统(DSS)。
4.数据仓库与数据挖掘
数据仓库(DataWarehouse)的概念由W.H.Inmon于1991年提出,其给出的定义为:
数据仓库是面向主题的、集成的、稳定的、不同时间的数据集合,用以支持经营管理中决策制定过程。
Sybase:
IndustryWarehouseStudio3.2
IBM:
VisualWarehouseOLAP
Oracle:
OracleWarehouseBuilder
Microsoft:
SQLServerOLAPService
数据挖掘(DataMining)是在大量的、不完整的、有噪声的数据中发现潜在的、有价值的模式和数据间关系的过程。
数据挖掘技术有:
判断法、决策树、人工神经网络、遗传算法、模糊技术、粗集方法、可视化技术等。
5.并行与分布式数据库系统
并行数据库系统即将传统的数据库管理技术与并行处理技术相结合形成的数据库系统。
其特点是由多处理机及多个磁盘构成,数据库系统的吞吐量大大提高,事务响应时间大大缩短。
分布式数据库系统,目前没有统一的定义,多种理解参见P45。
具有如下特点:
数据的物理分散性;数据的逻辑整体性;数据分布的独立性;站点自治与协调;数据的冗余与冗余透明性。
6.Internet/Web数据库
Internet/Web数据库,其实质是在传统的关系数据库技术基础上,对数据库模型、存储机制和检索技术等方面进行改进,而构造出基于Internet/Web应用的数据库系统。
Internet/Web数据库的主要特征:
采用多维处理、变长存储以及面向对象等新技术,使数据库应用转为全面基于Internet的应用。
7.面向对象的数据库系统
面向对象的数据库系统(OODBS),即以面向对象的程序设计语言为基础,引入数据库技术,来建立的新一代的数据库系统。
OODBS概念是1989年以英国Glasgow大学的Atkinson为首的6名学者首先提出的。
1990年,以美国Berkeley大学Stonebraker为首的DBMS功能委员会提出以关系数据库系统为基础,建立对象—关系数据库系统(ORDBS)。
有人把ORDBS归为第三代数据库系统,而把OODBS归为第四代数据库系统。
第二章实体联系数据模型
一、数据模型综述
1.为什么需要数据模型?
由于数据的定义与操作从应用程序中剥离出来,交由DBMS来定义和管理。
于是DBMS需要采用某种数据结构来定义、存储所要管理的数据。
狭义上讲,这种数据结构就是DBMS的数据模型。
另一方面,现实系统要向计算机化的管理转变,因此,在数据库设计时,也必须用某种方式将其所关心、管理的数据抽取出来并组织起来,数据模型也正是起到这种作用。
技术上的要求和应用要求
数据的静态结构。
数据的动态操作(增删改查询)。
数据的完整性约束。
综合说来,应描述数据、数据之间的联系、数据语义及完整性限制,同时还需要提供对数据操作的方法。
2.如何描述数据模型?
用数据模型的三要素
3.如何评价数据模型?
真实地描述现实系统。
—基本要求
易于为一般用户所理解。
易于计算机实现。
4.数据模型为什么有层次性?
从数据抽象的过程看。
数据模型是数据库设计时数据抽象的工具,由于抽象层次的存在,相应地,数据模型也会有层次。
从评价指标(第二、三项)的互斥性看。
目前已被商用化DBMS支持的数据模型中,没有一个能同时满足上述三项要求。
也就是说无法在数据库应用系统开发时,从设计到实现只使用一个数据模型。
5.数据模型的未来
有两个发展方向:
设计、开发与实现的一统数据模型。
如面向对象模型。
“层次共存,自动转换”。
即设计用的数据模型到数据库管理系统所用的数据模型之间的相互转换由计算机辅助完成。
如实现ERM向关系模型相互转换的工具有:
Sybase公司的PowerDesigner、CA公司的ERwin等;实现对象模型向关系模型转换的工具有:
Rational公司的Rose。
6.ERM的地位与作用?
传统三种数据模型的特点:
能较好地满足第一和第三项评价要求。
三种数据模型的不足:
不易被业务用户理解。
这是提出语义数据模型(SemanticDataModel)的基础。
实体联系模型(EntityRelationshipModel,ERM)是用得最多且最成熟的语义数据模型。
属于数据库应用系统设计的内容。
从数据库应用系统设计角度看,ER模型主要用于DB概念设计,是DB概念设计较常用的设计工具。
二、数据库设计综述
数据库设计一般分为如下步骤:
需求分析
概念数据库设计
逻辑数据库设计
模式优化
物理数据库设计
安全设计
三、实体联系模型
实体、实体集及属性
联系及联系集
ERM中的完整性约束
弱实体
ERM各元素图示
1.实体、实体型及属性
1.1实体、实体型
实体(Entity):
现实世界中有别于其他对象的对象。
对象可以是具体的,也可以是抽象的。
具体的实体如某某学生、某某老师等;而抽象的实体如某门课程、某份合同等。
实体型(EntitySet):
同类实体的集合。
通常情况下简称为实体。
如学生、教师、课程、合同。
实体是指具体的个体,而实体型是对有共同特性的实体进行归类。
实体用矩形来表示。
学生
1.2属性
属性(Attribute):
是指实体的特征或性质,即实体用属性描述。
如学生实体的属性有:
学号、姓名、生日、年龄、性别、住址等。
属性按结构分:
简单属性、复合属性和子属性。
简单属性表示属性不可再分;复合属性表示该属性还可再