数据库基础
数据库系统的基本概念
数据(Data)是数据库存储的基本对象,是描述事物的符号记录。
数据库(DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。
它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享,所以数据库技术的根本目标是解决数据共享问题。数据库管理系统(DBMS)是数据库的管理机构,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。数据库管理系统是数据库系统的核心。数据库系统包含数据库和数据库管理系统。
数据库管理系统提供相应的数据语言:
数据定义语言(DDL):负责数据模式定义和数据物理存取构建。
数据操纵语言(DML):负责数据的操纵。
数据控制语言(DCL):负责数据完整性,安全性的定义与检查以及并发控制,故障恢复等功能。数据库系统(DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员和用户构成。
数据库技术发展的3个阶段
- 人工管理阶段
- 文件系统阶段
- 数据库系统阶段
文件系统阶段的缺陷:
(1)数据冗余
(2)不一致性
(3)数据联系弱。数据库系统的基本特点:
(1)数据的高集成性
(2)数据的高共享性和低冗余性
(3)数据高独立性
(4)数据统一管理与控制。分布式数据库:分布式数据库是多个互连的数据库,他们通常位于多个服务器上,但彼此通信以实现共同目标;通过分布式数据库管理系统(DDBMS)进行管理。
分布式数据库为数据库管理领域提供了分布式计算的优势。基本上,我们可以将分布式数据库定义为分布在计算机网络上的多个相关数据库的集合。
分布式数据库优点:
1、可以管理具有不同透明度的数据
理想情况下,数据库应该是分布透明的,隐藏每个文件在系统中物理存储的位置的细节。在分布式数据库系统中,基本上可以使用以下类型的透明度:
● 网络透明度:这基本上是指用户从网络的操作细节中获得的自由。它们有两种类型:位置和命名透明度。
● 复制透明度:它基本上使用户不知道副本的存在,因为我们知道数据副本可能存储在多个站点,以获得更好的可用性和可靠性。
● 碎片透明度:它基本上使用户不知道碎片的存在,它可能是垂直碎片或水平碎片。
2、提高可靠性和可用性
可靠性基本上定义为系统在特定时间运行的概率,而可用性定义为系统在一段时间内连续可用的概率。当数据和DBMS软件分布在多个站点上时,一个站点可能会失败而其他站点继续运行,并且我们无法仅访问故障站点中存在的数据,这基本上可以提高可靠性和可用性。
3、更容易扩展
在分布式环境中,在添加更多数据,增加数据库大小或添加更多数据方面扩展系统,增加数据库大小或添加更多处理器要容易得多。
4、改进的性能
通过将查询分解为基本上并行执行的多个子查询,我们可以通过在不同站点执行多个查询来实现查询间和内部查询并行性,这基本上可以提高性能。
分布式数据库缺点:
1、复杂性,分布式数据库架构在设计,故障排除和管理方面要求更高。
2、必须开发许多复杂的例程以确保数据同步正常工作。
3、主数据和卫星数据足迹之间将存在延迟,其中由卫星数据库生成的许多报告与主数据不同。必须在同步频率的设计期间评估该问题。
数据模型
数据独立性是数据与程序间的互不依赖性,即数据库中的数据独立于应用程序而不依赖于应用程序。 数据的独立性一般分为物理独立性与逻辑独立性两种。
(1)物理独立性:
当数据的物理结构(包括存储结构、存取方式等)改变时,其逻辑结构,应用程序都不用改变。
(2)逻辑独立性:
数据的逻辑结构改变了,如修改数据模式、增加新的数据类型、改变数据间联系等,用户的应用程序可以不变。数据模型:是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,描述的内容有数据结构、数据操作和数据约束。有3个层次:概念数据模型、逻辑数据模型和物理数据模型。
数据库系统的三级模式
(1)外模式,外模式也称子模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,一个概念模式可以有若干个外模式。
(2)概念模式,也称逻辑模式,是对数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。一个数据库只有一个概念模式。
(3)内模式,内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。一个数据库只有一个内模式。
内模式处于最底层,它反映了数据在计算机物理结构中的实际存储形式,概念模式处于中间层,它反映了设计者的数据全局逻辑要求,而外模式处于最外层,它反映了用户对数据的要求。两级映射保证了数据库系统中数据的独立性。
E-R模型:提供了表示实体、属性和联系的方法。实体间的联系有“一对一”“一对多”“多对多”。E-R模型用E-R图表示。
(1)实体的表示:用矩形表示实体集,在矩形内写上该实体集的名字。
(2)属性的表示:用椭圆形表示属性,在椭圆形内写上该属性的名称。
(3)联系的表示:用菱形表示联系,菱形内写上联系名。层次模型:
网状模型:
关系模型:
关系模式采用二维表来表示,(数据模式)由关系数据结构,关系操纵和关系完整性约束3部分组成,在关系数据库中,用来表示实体间联系的是关系。
在二维表中惟一标识元组的最小属性值称为该表的键或码。
三类数据约束,它们是实体完整性约束、参照完整性约束以及用户定义的完整性约束。其中实体完整性约束、参照完整性约束必须满足的完整性约束条件。参照完整性约束不允许关系应用不存在的元组。实体完整性约束要求关系的主键中属性值不能为空,这是数据库完整性的最基本要求。
关系代数
- 投影:一元运算,对一个关系进行垂直切割,消去某些列。
- 除:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z是属性组,R中的Y和S中Y可以有不同的属性名,但必须出自相同的域集。
- 自然连接满足的条件是
(1)两关系间有公共域
(2)通过公共域的相等值进行连接。
数据库设计与管理
- 数据库设计
①面向数据的方法是以信息需求为主,兼顾处理需求;
②面向过程的方法是以处理需求为主,兼顾信息需求。
由于数据在系统中稳定性高,数据已成为系统的核心,故面向数据的设计方法已成为主流。 - 数据库设计生命周期:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段。
- 规范化:一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式的集合。
- 概念结构设计是将需求分析阶段得到的用户需求抽象为信息结构即概念模型的过程,它是整个数据库设计的关键。
- 逻辑结构设计的任务是将E—R图转换成关系数据模型的过程。
- 常用的存取方法:索引方法,聚簇方法和HASH方法。
- 数据库概念设计的过程中,视图设计一般有三种设计次序:
①自顶向下。这种方法是先从抽象级别高且普遍性强的对象开始逐步细化、具体化与特殊化。
②由底向上。这种设计方法是先从具体的对象开始,逐步抽象,普遍化与一般化,最后形成一个完整的视图设计。
③由内向外。这种设计方法是先从最基本与最明显的对象着手逐步扩充至非基本、不明显的其它对象。 - 分布式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点。
- 范式:关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同的范式。满足最低要求的叫第一范式,简称1NF。在满足第一范式的基础上,进一步满足更多要求规范则是第二范式。然后在满足第二范式的基础上,还可以再满足第三范式,以此类推。
- 第一范式:其中的每个属性都已不能再分为简单项。
- 第二范式:消除了非主属性对主键的部份依赖。
- 第三范式:且表中的列不存在对非主键列的传递依赖。
- BC范式:所有属性都不传递依赖于关系的任何候选键。