数据库系统概念第一章学习

     数据库管理系统(DBMS)是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称作数据库

数据库系统的应用:

数据库的应用非常广泛,以下是一些具有代表性的应用:企业信息、银行和金融、大学、航空业、电信业。


文件处理系统的主要弊端:

(1)数据的冗余和不一致
(2)数据访问困难
(3)数据孤立
(4)完整性原则
(5)原子性原则
(6)并发访问异常
(7)安全性问题


数据视图:

一个可用的系统必须能高效地检索数据。这种高效的需求促使设计者在数据库中使用复杂的数据结构来表示数据。由于许多数据库系统的用户并未受过计算机专业训练,系统开发人员通过如下几个层次的抽象来对用户屏蔽复杂性,以简化用户与系统的交互:

数据抽象
(1)物理层:

最低层次的抽象,描述数据实际上是怎样存储的。物理层详细描述复杂的底层数据结构

(2)逻辑层:

比物理层层次稍高的抽象,描述数据库中存储什么数据及这些数据间存在什么关系。这样逻辑层就通过少量
相对简单的结构描述整个数据库。虽然逻辑层的简单结构的实现可能涉及复杂的物理结构,但逻辑层的用户
不必知道这样的复杂性。这就称作“物理数据独立”。数据库管理员使用抽象的逻辑层,他必须确定数据库中
应保存哪些信息

(3)视图层

最高层次的抽象,只描述整个数据库的某个部分。尽管在逻辑层使用了比较简单的结构,但由于一个大型数据
库中所存的信息的多样性,仍存在一定程度的复杂性。数据库系统很多用户并不需要关心所有的信息,而只需
要访问数据库的一部分。视图层抽象的定义正是为了使这样的用户与系统的交互更简单。系统可以为同一数据
库提供多个视图。

在这里插入图片描述
实例和模式

(1)特定时刻存储在数据库中的信息的集合称作数据库的实例。
(2)数据库的总体设计称作数据库模式
(3)数据库系统可分为物理模式、逻辑模式、子模式

数据模型

数据库结构的基础是数据模型。数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。数据模型提供了描述物理层、逻辑层以及视图层数据库设计的方式

数据模型可被划分为四类:
(1)关系模型

关系模型用表的集合来表示数据和数据间的关系。每个表有多个列,每列有唯一的列名。关系模型是基于记
录的模型的一种。基于记录的模型的名称的又来是因为数据库是由若干种固定格式的记录来构成的。每个表
含某种特定类型的记录。每个记录类型定义了固定数目的字段(或属性)。表的列对应于记录类型的属性。
关系数据模型是使用最广泛的数据模型。当今大量的数据库系统都基于这种关系模型。

(2)实体-联系模型

实体-联系(E-R)数据模型基于对现实世界的这样一种认识:现实世界由一组称作实体的基本对象以及这些对
象间的联系构成。实体是现实世界中可区别于其他对象的一件“事情”或一个“物体”。实体-联系模型被广泛应
用数据库设计。

(3)基于对象的数据模型

面向对象的程序设计已经成为占主导地位的软件的开发方法。这种导致面向对象数据模型的发展,面向对象
的数据模型可以看成是E-R模型增加了封装、方法(函数)和对象标识等概念后的扩展。对象-关系数据模型
结合了面向对象的数据模型和关系模型的特征

(4)半结构化数据模型

半结构数据模型允许那些相同类型的数据项含有不同的属性集的数据定义。这和早先提到的数据模型形成对比:
在那些数据模型中所有某种特定含类型的数据必须有相同的属性集。"可扩展标记语言(XML)"被广泛地用来表示
半结构化数据。

数据库语言:

数据库系统提供数据定义语言来定义数据库模式,以及数据操纵语言来表达数据库的查询和更新。而实际上,数据定义和数据操纵语言并不是两种分离的语言,相反地,它们简单地构成了单一的数据语言(SQL)的不同部分

数据操纵语言(DML)

使用户可以访问或操纵那些按照某种适当地数据模型组织起来地数据。有以下访问类型:
1.对存储在数据库中的信息进行检索
2.向数据库中插入新的信息
3.从数据库中删除信息
4.修改数据库中存储的信息

通常有两类基本的数据操纵语言:

(1)过程化DML:要求用户指定需要什么数据以及如何获得这些数据。
(2)声明式DML:要求用户指定需要什么数据,而不指明如何获得这些数据

数据定义语言(DDL)

       数据库模式使通过一系列定义来说明的,这些定义由一种称作数据定义语言的特殊语言来表达。DDL也可用于定义数据的其他特征。
        数据库系统所使用的存储结构和访问方式是通过一系列特殊的DDL语句来说明的,这种特殊的DDL称作数据存储和定义语言。对用户一般不可见。

(1)域约束

每个属性都必须对应于一个所有可能的取值构成的域(整数型、字符型、日期/时间型)。声明一种属性属于
某种具体的域就相当于约束它可以取的值。域约束是完整性约束的最基本形式。

(2)参照完整性

数据库的修改会导致参照完整性的破坏。当参照完整性约束被违反时,通常处理是拒绝执行导致完整性被破坏
的操作。

(3)断言

一个断言就是数据库需要时刻满足的某一条件。域约束和参照完整性约束是断言的特殊形式。

(4)授权

对于不同用户在数据库中的不同数据上允许不同的访问类型。这些区别以“授权”来表达,最常见的是:
“读权限”:允许读取数据,但不能修改数据
“插入权限”:允许插入新数据,但不允许修改已有数据
“更新权限”:允许修改,但不能删除数据
“删除权限”:允许删除数据、

正如其他程序设计语言一样,DDL以一些指令(语句)作为输入,生成一些输出。DDL的输出放在数据字典中,数据字典包含了元数据,元数据是关于数据的数据。可把数据字典看作一种特殊的表,这种表只能由数据库本身来访问和修改。在读取和修改实际的数据前,数据系统现要参考数据字典。


数据存储和查询:

数据库系统分为不同模块,每个模块完成整个系统的一个功能。数据库系统的功能部件大致可分为存储管理器和查询处理部件

存储管理器

存储管理器是数据库系统中负责在数据库中存储的低层数据于应用程序以及向系统提交的查询之间提供接口的部件。存储管理器负责与文件管理器进行交互。原始数据通过操作系统提供的文件系统存储在磁盘上。存储管理器将各中DML语句翻译为底层文件系统命令。因此,存储管理器负责数据库中数据存储、检索和更新。

存储管理部件包括:

权限及完整性管理器:它检查是否满足完整性约束,并检查试图访问数据的用户的权限。
事物管理器:它保证即使发生了故障,数据库也保持在一致的(正确的)状态,并保证并发事务的执行不发生
	      冲突。
文件管理器:它管理磁盘存储空间的分配,管理用于表示磁盘上所存储信息的数据结构
缓冲区管理器:它负责将数据从磁盘上取到内存中,并决定哪些数据应被缓冲存储在内存中。缓冲区管理器是
		    数据库中的一个关键部分,因为它使数据库可以处理比内存更大的数据。
	
存储管理器实现了几种数据结构,作为系统物理实现的一部分:
(1)数据文件:存储数据库本身
(2)数据字典:存储关于数据库结构的元数据,尤其是数据库模式
(3)索引:提供对数据项的快速访问

查询处理器
查询处理器包括:

DDL解释器:它解释DDL语句并将这些定义记录在数据字典中
DML编译器:将查询语言中的DML语句翻译为一个执行方案,包括一系列查询执行引擎能理解的低级指令
查询执行引擎:执行由DML编译器产生的低级指令

事物管理:

事物使数据库应用中完成单一逻辑功能的操作集合。每一个事物是一个原子性又据一致性的单元。

事物管理器包括“并发控制管理器和恢复管理器


数据库体系结构:

今天数据库的大多数用户并不直接面对数据库系统,而是通过网络与其相连。因此我们可区分远程数据库用户工作用的客户机和运行数据库系统的服务器

数据库应用通常可分为两或三个部分。三层结构的应用更适合大型应用和互联网上的应用。
在这里插入图片描述

在这里插入图片描述



实践习题:

1.1 这一章讲述了数据库系统的几个主要的优点。它有哪两个不足之处?

(1) 建立一个数据库系统需要很多知识、技巧和时间。
(2) 数据库的复杂性可能会导致糟糕的性能

1.2 列出Java或C++之类的语言中的类型说明系统与数据库系统中使用的数据定义语言的5个不同之处。

(1) 在数据库中创建一个对象需要用DDL执行一个操作,但是编程语言类型说明只是编程过程中的一个抽象。
(2) 数据库DDL允许一致性越是,编程语言类型系统一般不允许。包括域约束和参照完整性约束。
(3) 数据库的DDL支持授权给不同的用户不同的访问权限。编程语言类型系统不提供这样的保护(在最好的情 况下,在另一个类的方法访问这个类时会保护它的属性)。
(4) 编程语言类型系统通常比SQL类型系统更加丰富。大多数数据库只支持基本类型例如不同类型的数字和字符串,虽然有些数据库支持复杂类型如数组和对象。
(5) 数据库DDL关注指定类型的属性的关系;相比之下,编程语言允许创建对象和对象集合。

1.3 列出为一个企业建立数据库的六个主要步骤。

(1) 全面刻画预期的数据库用户的数据需求,制定出用户需求的规格文档。
(2) 概念设计,设计者选择一个数据模型,并运用该选定的数据模型的概念,将那些需求转换成一个数据库的概念模式。
(3) 定义数据的完整性约束条件
(4) 物理设计阶段
(5) 做应用层,设计应用层软件给应用者使用数据库
(6) 创建/初始化数据库

1.4 除1.6.2节中已经列出的之外,请列出大学要维护的至少3种不同类型的信息。

(1) 大学维护一个学生公寓列表,详细说明公寓单元号,房间号和房间里学生ID。
(2) 大学维护学生班级列表,包含有几级学生,每级学生有几个班级,每个班级属于哪个系,每个班级有多少学生。
(3) 大学需要维护学生图书馆列表,包含有多少图书,图书存放在哪个区,每种图书有几本,有没有被借走,归还时间是什么。

1.5 假设你想要建立一个类似于YouTube的视频节点。考虑1.2节中列出的将数据保存在文件系统中的各个缺点,讨论每一个缺点与存储实际的视频数据和关于视频元数据(诸如标题、上传它的用户、标签、观看它的用户)的关联。
在这里插入图片描述

1.6 在Web查找中使用的关键字查询与数据库查询很不一样。请列出这两者之间在查询表达方式和查询结果是什么方面的主要差异。      Web关键字查询属于信息检索领域,数据库查询数据数据库查询领域。在查询表达式方面,数据系统是结构化的查询表达式,而文本数据是非结构化的。数据查询重点在于从多个来源收集数据,建立统一模式,供使用者查询,而信息系统重点强调基于关键词的查询,文档与查询的相似度,以及文档的分析、分类与索引。信息检索领域搜出来往往是包含指定内容的片段,而数据库查询领域搜索出来的往往是一个表格。


习题:
1.7 列出四个你使用过的很可能使用了数据库来存储持久数据的应用。

(1) 电商平台是一个巨大的数据库应用
(2) 各种视频播放APP
(3) 铁路系统订票网站
(4) 银行后台系统

1.8 列出文件处理系统和DBMS的四个主要区别
(1) 文件处理系统容易造成数据的冗余和不一致
(2) 文件处理系统数据访问困难
(3) 文件处理系统在原子性方面无法保证
(4) 文件处理系统的安全性也无法保证

1.9 解释物理数据独立性的概念,以及它在数据库系统中的重要性。

     物理模式隐藏在逻辑模式下,通常可以在应用程序丝毫不受影响的情况下被轻易地更改。应用程序如果不依赖于物理模式,它们就被称为是具有物理数据独立性,因此即使物理模式改变了它们也无需重写。

1.10 列出数据库管理系统的五个职责。对每个职责,说明当它不能被履行时会产生什么样的问题。

(1) 权限及完整性管理
(2) 事物管理
(3) 文件管理
(4) 缓冲区管理
(5) 查询管理

1.11 请给出至少两种理由说明为什么数据库系统使用声明性查询语言,如SQL,而不是只提供C或者C++的函数库来执行数据操作。

(1) 数据操作要求其独特性与共性,开发适合他的特有语言,开发起来比较方便。
(2) 上层开发语言现在非常多,如果固定为一种语言,别的语言使用者不好进行移植,所以将较低层的操作模块化,方便移植操作的进行。

1.12 解释用图1-4中的表来设计会导致哪些问题。

     在没有教员的情况下不等单独添加系别,当系别的预算发生改变,需要改动多个地方,当某个系的所有教员都离职了,这个系就不好体现在这个表上。

1.13 数据库管理员的五种主要作用是什么?

(1) 模式定义:模式定义如果不能准确定义,将会使整个数据库系统变得乱七八糟。
(2) 存储结构及存取方法定义:涉及到读取存储效率。
(3) 模式及物理组织的修改:涉及到系统性能问题。
(4) 数据访问授权:权限问题设计到系统安全性
(5) 日常维护:数据丢失、磁盘空间,存储效率均与日常维护操作有关。

1.14 解释两层和三层体系结构之间的区别。对Web应用来说哪一种更合适?为什么?

     在两层体系结构中,应用程序驻留在客户机上,通过查询语言表达式来调用服务器上的数据库系统功能。在三层体系结构中,客户机只作为一个前端并且不包含任何直接的数据库调用。客户端通常通过一个表单界面与应用服务器进行通信。而应用服务器与数据库系统通信以访问数据。

   Web更适合三层结构,因为访问量很大,对于数据库的访问操作被分布在多个客户机上不太好。

1.15 描述可能被用于存储一个社会网络系统如Facebook中的信息的至少3个表。

(1) 注册用户维护表,包含注册用户的ID,用户的资料,用户的好友,用户的博客信息。
(2) 群组讨论表,包含群组的名称,群组的创建信息以及群组的参与人。
(3) 公共信息表,包含公共信息的更新时间以及更新内容。

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据库系统概念第七版》是一本由Abraham Silberschatz、Henry F. Korth和S. Sudarshan合著的数据库领域经典教材。这本书是数据库系统概念方面的权威教材之一,被广泛用于大学本科和研究生的数据库课程教学。 本书一共有17章,内容详实全面。第一章介绍了数据库的基本概念和发展历程,让读者对数据库技术有个整体的认识。接下来的几章分别涵盖了关系数据库模型、关系代数和SQL语言、数据库设计、数据库完整性约束、数据库安全等基本概念和技术。随后的几章则涉及了面向对象和对象关系数据模型、数据仓库和数据挖掘、数据库性能调优等高级主题。最后几章则介绍了并发控制和故障恢复、分布式数据库、Nosql数据库等前沿技术和趋势。 作者通过详细的讲解和丰富的实例,使读者能够深入理解数据库的理论基础和实际应用。此外,本书还提供了丰富的习题和案例,让读者通过练习和实践加深对知识的理解和掌握。 这个版本是杨冬青进行的翻译,杨冬青是国内知名的数据库和计算机科学专家,对数据库方面有着丰富的研究和教学经验。他在翻译过程中对原书的内容进行了细致的理解和适应,使读者能够更好地理解和运用其中的知识。 总的来说,《数据库系统概念第七版》杨冬青译是一本权威、全面且易于理解的数据库教材,适用于数据库的初学者和进阶者。无论是作为学习参考书还是作为实际应用的指导手册,都能够帮助读者获得扎实的数据库知识和技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LEO-max

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值