1.1 这一章讲述了数据库系统的几个主要的优点。它有哪两个不足之处?
(1) 建立一个数据库系统需要很多知识、技巧和时间。
(2) 数据库的复杂性可能会导致糟糕的性能
(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) 大学需要维护学生图书馆列表,包含有多少图书,图书存放在哪个区,每种图书有几本,有没有被借走,归还时间是什么。
这个题目就借鉴网上查到的答案吧:
Web关键字查询属于信息检索领域,数据库查询数据数据库查询领域。在查询表达式方面,数据系统是结构化的查询表达式,而文本数据是非结构化的。数据查询重点在于从多个来源收集数据,建立统一模式,供使用者查询,而信息系统重点强调基于关键词的查询,文档与查询的相似度,以及文档的分析、分类与索引。信息检索领域搜出来往往是包含指定内容的片段,而数据库查询领域搜索出来的往往是一个表格。
习题
1.7 列出四个你使用过的很可能使用了数据库来存储持久数据的应用。
(1) 电商平台是一个巨大的数据库应用
(2) 各种视频播放APP
(3) 铁路系统订票网站
(4) 银行后台系统
(1) 文件处理系统容易造成数据的冗余和不一致
(2) 文件处理系统数据访问困难
(3) 文件处理系统在原子性方面无法保证
(4) 文件处理系统的安全性也无法保证
物理模式隐藏在逻辑模式下,通常可以在应用程序丝毫不受影响的情况下被轻易地更改。应用程序如果不依赖于物理模式,它们就被称为是具有物理数据独立性,因此即使物理模式改变了它们也无需重写。
(1) 权限及完整性管理
(2) 事物管理
(3) 文件管理
(4) 缓冲区管理
(5) 查询管理
(1) 数据操作要求其独特性与共性,开发适合他的特有语言,开发起来比较方便。
(2) 上层开发语言现在非常多,如果固定为一种语言,别的语言使用者不好进行移植,所以将较低层的操作模块化,方便移植操作的进行。
在没有教员的情况下不等单独添加系别,当系别的预算发生改变,需要改动多个地方,当某个系的所有教员都离职了,这个系就不好体现在这个表上。
(1) 模式定义:模式定义如果不能准确定义,将会使整个数据库系统变得乱七八糟。
(2) 存储结构及存取方法定义:涉及到读取存储效率。
(3) 模式及物理组织的修改:涉及到系统性能问题。
(4) 数据访问授权:权限问题设计到系统安全性
(5) 日常维护:数据丢失、磁盘空间,存储效率均与日常维护操作有关。
在两层体系结构中,应用程序驻留在客户机上,通过查询语言表达式来调用服务器上的数据库系统功能。在三层体系结构中,客户机只作为一个前端并且不包含任何直接的数据库调用。客户端通常通过一个表单界面与应用服务器进行通信。而应用服务器与数据库系统通信以访问数据。
Web更适合三层结构,因为访问量很大,对于数据库的访问操作被分布在多个客户机上不太好。
(1) 注册用户维护表,包含注册用户的ID,用户的资料,用户的好友,用户的博客信息。
(2) 群组讨论表,包含群组的名称,群组的创建信息以及群组的参与人。
(3) 公共信息表,包含公共信息的更新时间以及更新内容。