本人今年考研,复试有数据库,以下是本人准备复试期间做的数据库复习笔记希望能帮助到有需要的同学。
数据库的概念
数据库是指长期保存在计算机的存储设备上并按照某种模型组织起来的、可以被各种用户或应用共享的数据集合
数据有如下基本特征:
(1)数据独立性
(2)高访问效率
(3)低数据冗余
(4)安全性
(5)多用户共享,保证数据的一致性和完整性
数据库管理系统
DBMS(数据库管理系统)是位于用户和操作系统之间的数据管理软件,数据库在建立、运用和维护时由数据库管理系统统一管理、控制。
DBMS的目标
(1)用户界面友好
(2)功能完备
(3)效率高
(4)结构清晰
(5)开放性
DBMS的功能
数据库定义功能
数据库操纵功能
数据库控制功能
数据库运行管理功能
数据库组织和存储管理功能
数据库的建立和维护功能
数据库通信功能
DBMS的组成
数据定义语言(DDL)及其翻译程序
数据操纵语言及其编译程序
DBMS提供一套数据操纵语言DML用于实现对数据库的一些基本操作,如数据检索、数据插入、数据修改和数据删除
DML分为宿主型DML和自主型DML
数据库运行控制程序
系统初启程序
访问控制程序
安全性控制程序
完整性控制程序
并发控制程序
数据存取、更新程序
通信控制程序
数据库服务实用程序
数据库系统
数据库系统是指在计算机系统中引入数据库后的系统构成一般由数据库、数据库系统运行环境、数据库管理系统及其开发工具、数据库管理员和用户构成
数据库系统的三级模式结构
模式是数据库中全体数据的逻辑结构和特征的描述,模式的一个具体的值称为模式的一个实例,模式是相对稳定的,而实例则是相对变动的。模式反映的是数据结构及其关系,而实例反映的是数据库某一时刻的状态。
三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式、内模式三级构成的
1.外模式
外模式也称子模式或者用户模式,是数据库用户看见和使用的局部数据的逻辑结构和特征的描述,是数据库的用户视图,是和某个应用相关的数据逻辑表示
外模式通常是模式的子集,一个数据库可以有多个外模式,一个外模式可以为多个用户使用,但是一个应用程序只能使用一个外模式,只有有相同数据视图的用户才能够共享一个外模式
设计外模式可以:方便用户使用、简化用户接口、保证数据的独立性、有利于数据共享、有利于数据的安全与保密
DBMS提供外模式描述语言(外模式DDL)来严格定义外模式
2.模式
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共视图,是数据库的这个逻辑描述,并说明一个数据库所采用的数据模型。
模式实际上是数据库在逻辑上的视图,一个数据库只有一个模式。
3.内模式
内模式也称为存储模式,是数据物理结构和存储方式的描述,数据库的内部表示方式。
一个数据库只有一个内模式
数据库系统的二级映像功能和数据独立性
为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像,即外模式/模式映像和模式/内模式映像,从而保证了数据库系统中数据能够具有较高的逻辑独立性和物理独立性。
外模式/模式映像
对于每个外模式,数据库系统都有一个外模式/模式映像,他定义该外模式与模式之间的对应关系,通常包含在各自外模式的描述中。
当模式改变是,DBA对各个外模式/模式的映像做出相应的改变,使外模式保持不变,从而使应用程序不改变,保证了数据的逻辑独立性。
模式/内模式映像
数据库中只有一个模式、一个内模式,因此模式/内模式映像也是唯一的,它定义了数据全局逻辑结构和存储方式之间的对应关系。
该映像定义通常包含在模式描述中,如果数据库的存储方式改变了,则DBA将对模式/内模式映像做出相应的改变,可以使模式保持不变,从而保证了数据的物理独立性。
数据库系统的体系结构
1.单用户结构的数据库系统
2.主从式结构的数据库系统
3.分布式结构的数据库系统
分布式结构的数据库系统是指数据库中的数据在逻辑上是一个整体,但数据分布在计算机网络的不同结点上,网络的每个结点都可以独立地处理本地数据库中的数据,还可以同时存取和处理多个异 地数据库中的数据。
它适应了地理上分散的公司、团体对数据库应用的需求,但是数据分布存储给数据管理和维护带来了困难,而且当用户远程访问数据时增加了网络数据的传输量,系统效率会受到制约。
4.客户端/服务器结构的数据库系统
由于工作站的功能越来越强,使用越来越广泛,人们开始吧数据库管理系统功能和应用程序分开,网络中的某个结点上的计算机专门用于执行DBMS功能,这个结点称为数据库服务器,简称服务器, 其他结点上的计算机安装DBMS的外围应用工具以支持用户的应用,称为客户端,这就是客户端/服务器结构的数据库系统。
客户端的用户请求被传输到数据库服务器中,数据库服务器进行处理后,只将结果而不是整个数据返回给用户,从而显著减少了网络数据的传输量,克服了分布式结构的数据库的缺陷,提高了系统 的性能、吞吐量和负载能力。
客户端/服务器结构的数据库往往更加开放,一般都能够在多种不同的硬件和软件平台上运行,可以使用不同的数据库应用开发工具,应用程序具有更强的可移植性,同时减少软件维护开销。
数据库系统的工作流程
第一阶段,数据库管理员建立并维护数据库。
第二阶段,用户编写应用程序。
第三阶段,应用程序在DBMS支持下运行,在模式、外模式、内模式、用户源程序翻译为目标代码后,即可启动目标程序。
数据库的发展
–
2.1数据描述
2.1.1数据的三种范畴
现实世界
信息世界
又称观念世界,是现实世界在人们头脑中的反映,或者说,在信息世界中所存在的信息是现实世界中客观事物在人们头脑中的反映,经过一定的选择、命名和分类而形成的。
在进行现实世界管理时,客观事物必然在人们的头脑中产生反映,把这种反映称为信息。
信息世界中所涉及的基本概念
(1)实体(Entity)
实体是客观存在的事物在人们头脑中的反映
实体可以指人,可以指物,还可以指抽象的事物,甚至可以指事物与事物之间的联系
(2)属性(Attribute)
属性是指实体所具有的某一方面的特性。
一个实体可以由若干个属性来刻画,例如,教师的属性有姓名、年龄、性别、职称等。
属性所取的具体值称为属性值。
(3)域
一个属性可能取的所有属性值的范围称为该属性的域。例如,教师属性“性别”的域为男、女;教师属性“职称”的域为助教、讲师、副教授、教授等。
每个属性都是变量,属性值就是变量所取的值,而域则是变量的变化范围。因此,属性是表征实体的最基本的信息。
(4)码
(5)实体型
具有相同属性的实体必然具有共同的特性和性质。
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,教师(姓名,年龄,性别,职称)就是一个实体型
(6)实体集
机器世界
在信息管理进入计算机后,就把他称为机器世界或者存储世界。机器世界也称为存储世界。
由于计算机只能处理数据化的信息,所以信息世界中的信息必须进行数据化。信息经过加工、编码后即进入机器世界,利用计算机来处理他们。
机器世界中的对象是数据,现实世界中的客观事物及其联系在机器世界中是用数据模型来描述的。
数据化后的信息称为数据,所以说数据是信息的符号表示。
机器世界中涉及一些相关的基本概念
(1)数据项(字段,Field)——对应于信息世界中的属性。例如,实体型“教师”中的各个属性中,姓名、性别、年龄、职称等就是数据项
(2)记录(Record)对应于每个实体所对应的数据。例如,对应某一教师的各项属性值为李辉,男,45,副教授等就是一个记录。
(3)记录型(Record Type)对应于信息世界中的实体型
(4)文件(File)对应于信息世界中的实体集
(5)关键字(Key)对应于能够唯一标识一个记录的字段集
机器世界就是通过这些概念来描述客观事物及其联系的
2.1.2实体间的关系
1.一对一关系
2.一对多关系
3.多对多关系
2.2概念模型与E-R方法
2.2.1数据模型概述
数据库不仅要反映数据本身的内容,而且要反映数据之间的联系。为了用计算机处理现实世界中的具体事物,必须进行数据建模。数据模型就是现实世界的模型。
数据模型应满足三方面要求:
一是能够比较真实地模拟现实世界
二是容易为人所理解
三是便于在计算机上实现
数据库系统针对不同的使用对象和应用目的,采用不同的数据模型
根据模型的不同应用目的,可以将这些模型划分为以下两类,它们分属于不同的层次。
第一类是概念模型,也称信息模型。它是按用户的观点来对数据和信息建模,主要用于数据设计。
另一类模型是基本数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模的,主要用于DBMS的实现。
数据模型是数据库系统的核心和基础。各种计算机上实现的DBMS软件都是基于某种数据模型的
实现世界中客观对象的抽象过程
2.2.2数据模型的三要素
表示实体类型及实体之间关系的模型称为数据模型(Data Model),数据模型是严格定义的概念的集合。这些概念精确地描述了系统的静态特征、动态特征和完整性约束条件。因此,数据模型通常都应包含数据结构、数据操作和数据完整性约束三个部分,它们是数据模型的三要素。
1.数据结构
数据结构用于描述系统的静态特性。数据结构是所研究对象类型的集合,这些对象是数据库的组成部分,这些对象包括两类,一类是与数据类型、内容、性质相关的对象,例如,网状模型中的数据 项、记录,关系模型中的域、属性、关系等;一类是与数据之间联系有关的对象,例如网状模型中的系型(Set Type)
数据结构是刻画一个数据模型性质最重要的方面。数据库系统通常按照其数据结构类型来命名数据模型,例如,层次结构、网状结构、关系结构的数据模型分别命名为层次模型、网状模型和关系模 型。
2.数据操作
数据操作用于描述系统的动态特征。数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
数据库主要有检索和修改(包括插入、删除、更新)两大数据操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则及实现操作的语言。
3.数据完整性约束
数据完整性约束是一组完整性规则的集合。
完整性规则是给定的数据模型中数据及其联系所具有的制约和存储规则,用于限制符合数据模型的数据库状态及状态的变化,用于确保数据的正确、有效和相容。
2.2.3概念数据模型
概念数据模型简称概念模型。概念模型是按用户的观点对现实世界进行数据建模而形成的,是一种独立于计算机系统的模型,完全不涉及信息在计算机系统中的表示,也不依赖与具体的数据库管理系统,只是用于描述某个特定组织所关心的信息结构。是对现实世界的第一层抽象,是用户和数据库设计人员之间交流的工具。
1.概念模型的基本概念
2.概念模型中的基本关系
实体间一对一、一对多、多对多三类基本联系是概念模型的基础,也就是说,在概念模型中主要解决的问题仍然是实体之间的联系。
实体之间的联系类型并不取决于实体本身,而是取决于现实世界的管理方法,或者说取决于语义,即同样两个实体,如果有不同的语义,则可以得到不同的联系类型。
2.2.4概念模型的E-R图表示方法
概念模型的表示方法很多,其中最为著名、最为常用的是实体-联系方法。该方法用E-R图来描述现实世界的概念模型,E-R图描绘的模型也称为E-R模型。
E-R图提供了表示实体型、属性和联系的方法。
(1)实体型:用矩阵表示,矩形框内写明实体名。
(2)属性:用椭圆表示,椭圆形框内写明属性名,并用无向边将其与相应的实体连接起来。
(3)联系:用菱形表示,菱形框内写联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标注联系的类型(1:1,1:n或m:n)
现实世界中的任何数据集合,均可用E-R图来描述。
实体-联系方法是抽象和描述现实世界的有力工具。用E-R图表示的概念模型独立于具体的DBMS所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。
E-R模型有两个明显的优点
1.一是接近人的思想,容易理解
2.二是与计算机无关,用户容易接受
因此,E-R模型已经成为数据库概念设计的一种重要方法,它是设计人员和不熟悉计算机的用户之间的共同语言。
2.2.5概念模型实例
2.3传统三大数据模型
2.3.1层次模型
2.3.2网状模型
2.3.3关系模型
是一种用二维表格结构来表示实体之间联系的数据模型
优点
1.数据结构较为简单
2.具有较高的数据独立性
3.可以直接处理多对多联系
4.坚实的理论基础
2.4数据独立与三层结构
数据库管理系统的三级模式体系结构使得应用程序与数据的组织、存储数据分离开来,真正实现了应用程序与数据的相互独立。
2.4.1数据库系统的三级模式结构
数据库的三级结构是数据三个抽象级别,用户只要抽象地处理数据,而不必关心数据在计算机中如何表示和存储。
1.外模式
2.模式
模式可分为概念模式和逻辑模式两种,是所有数据库用户的公共数据视图,是数据库中全部数据的逻辑结构和特征描述。
一个数据库只有一个模式。其中概念模式可用实体-联系模型来描述,逻辑模式以某种数据模型为基础,综合考虑所有用户的需求,并将其形成全局逻辑结构。
内模式
内模式又称存储模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。
一个数据库只有一个内模式。内模式描述记录的存储方式、索引的组织方式、数据是否压缩、是否加密等。但不涉及物理记录,也不涉及硬件设备。
2.4.2数据独立性
数据独立性是指应用程序和数据之间相互独立、不受影响
数据库管理系统在三级模式之间提供了两层映像,即外模式/模式映像、模式/内模式映像。
这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和存储独立性。
数据独立性的好处
1.减轻了应用程序的维护工作量
2.对同一数据库的逻辑模式,可以建立不同的用户模式,从而提高数据共享性,使数据库系统有较好的可扩充性,给DBA维护、改变数据库的物理存储提供了方便。
2.5数据库管理系统
2.5.1数据库管理系统的主要功能
1.数据库定义
2.数据库操作及查询优化
3.数据库控制运行管理
4.数据组织、存储和管理
5.数据库的恢复和维护
6.数据库的多种接口
7.其他功能
2.5.2数据库管理系统的组成
DBMS是由两大部分组成:查询处理器和存储管理器。
(1) 查询处理器有四个主要成分:DDL编译器、DML编译器、嵌入型DML的预编译器、查询运行核心程序。
(2) 存储管理器有四个主要成分:授权和完整性管理器、事务管理器、文件管理器、缓冲区管理器。
–
利用关系模型描述的数据库称为关系数据库
3.1关系模型的基本概念
3.1.2关键字
超关键字(超码):在关系中能够唯一标识元组的属性集合称为超关键字
候选关键字(候选码):如果某一属性集合是超关键字,但去掉其中任意属性后就不再是超关键字,这样的属性称为候选关键字
主关键字(主码):如果关系中存在多个候选码,用户可选作元组标识的一个候选码为主码。
合成关键字(合成码):当某个候选码包含多个属性时,该候选关键字称为合成关键字。
3.2关系模式
关系的描述称为关系模式
形式为R(U,D,DOM,I,F)
3.3关系模式的完整性
1.域完整性约束
2.实体完整性约束
如果属性A是关系R的主属性,则属性A不能取空值
完整性约束规定基本关系的所有主属性都不能取空值,而不仅是主属性整体不能取空值。
3.参照完整性约束
这条规则要求“不引用不存在的实体”
定义如下:如果属性集K是关系R的主关键字,K也是关系S的外关键字(关系R和S不一定是不同的关系),那么在关系S中,K的取值只允许两种可能,或者为空值,或者等于关系R中某个主关键字的值。
关系R称为“参照关系”模式,关系S称为“依赖关系”模式
4.用户定义完整性约束
3.4关系代数
–
4.1问题的提出
针对一个具体问题,应该如何构造一个适合于它的关系数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成等。这是数据库设计的问题,确切的讲是关系数据库逻辑设计问题。
4.1.1关系模式
一个关系模式是一个系统,由一个五元组R(U,D,DOM,I,F)
R为关系名,U是属性名集合,D是U中属性的域,DOM为属性到域的映像集合,I为完整性约束,F为属性间数据的依赖关系
关系模式是用于描述关系的数据结构和语义约束,它不是集合,而关系是一个数据的集合。
4.1.2关系
4.1.3插入异常
4.1.4删除异常
4.1.5更新异常
出现上述异常是因为这个模式中的函数依赖存在某些不好的性质。我们需要对初始的逻辑数据库模式做进一步的处理,用规范化的方法消除上述三个问题。
4.2关系模式的函数依赖
4.2.1函数依赖
1.函数依赖
通俗的说,对一个关系r,不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或者Y函数依赖X
函数依赖是语义范畴的概念,我们只能根据数据的语义来确定函数依赖关系
2.完全函数依赖和部分函数依赖
设R(U)是属性集U上的关系模式,如果X→Y,并且对于X的任何一个真子集Z,都有Z\→Y,则称Y完全函数依赖于X。
若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X。
3.传递函数依赖
求属性闭包
–
5.1数据库设计概述
5.1.1数据库设计的内容和特点
数据库设计包括结构特性设计与行为特性设计两个方面
结构特性设计:
就是数据库框架和数据库结构设计,其结果是得到一个合理的数据模型,反应真实的事务间的联系,目的是汇总各用户的视图,尽量减少冗余,实现数据共享。
是静态的,一旦形成之后,经常不再轻易变动。
行为特性设计:
是指应用程序设计,如查询、报表处理等。
它确定用户的行为和动作,用户通过一定的行为和动作存取和处理数据。
结构特性必须适应行为特性
数据库设计过程:
5.1.2数据库设计方法
5.1.3数据库设计步骤
1.数据库规划设计
2.需求分析
准确弄清用户请求是数据库设计的基础,它影响到数据库设计的结果是否合理与实用。
数据流图(DFD):是描述各处理活动之间的有力工具,是一种从数据流的角度描述一个组织业务活动的图示。
数据字典(DD):描述每个数据流、每个文件、每个加工的集合就是所谓的数据字典。包括数据项、数据文件、数据流、数据加工处理四个部分。
3.概念结构设计
概念结构设计独立于计算机的数据模型,独立于特定的DBMS,它是通过对用户需求综合、归纳抽象、形成独立于具体DBMS的概念模型
局部E-R图
全局E-R图
4.逻辑结构设计
5.物理结构设计
从一个满足用户要求的已确定的逻辑模型出发,设计一个在限定的软件、硬件条件和应用环境下可实现的,运行效率高的物理数据库结构
如选择数据库文件的存储结构、索引的选择、分配存储空间以形成数据库的内模式
6.数据库实施与维护