书籍详情
数据库系统基础教程
作者:(美)[J.D.厄尔曼](Jeffrey D. Ullman) ,(美)[J.维多姆](Jennifer Widom)著;史嘉权等译;史嘉权译
出版社:清华大学出版社
出版时间:1999-01-01
ISBN:9787302036463
定价:¥36.00
购买这本书可以去
内容简介
本书是由美国斯坦福大学两位著名的计算机学者J.D.Ullman和J.Widom为初学数据库的人编写的基本教材。(A First Course in Database Systems)Jeffrey D. Ullman, Jennifer Widom 著 史嘉权 译面向对象的数据库技术是近年来数据库技术发展的重要方向和热点,目前国内已积极开展在该领域方面的科研工作,但在教材中尚无反映,因此急需有关的教材,而本书正是雪中送炭。本书以当前的主流数据库——关系数据库为基础,以数据库系统的最基本内容——数据库的设计与编程为重点,以引进数据库领域的最新成果——比如面向对象的数据库技术为特点,系统地阐述了数据库建模、关系数据库的理论和设计、结构化查询语言SQL及其最新的标准SQL2和SQL3,阐述了递归查询等最新内容,特别是以相当多的篇幅阐述了面向对象数据库的对象定义语言ODL和对象查询语言OQL。本书的主要特点是新颖、丰富、系统、实用,把数据库技术的最新成果迅速反映到教材中。
作者简介
暂缺《数据库系统基础教程》作者简介
目录
第1章 数据库系统的世界
1.1 数据库系统的发展
1.1.1 早期的数据库管理系统
1.1.2 关系数据库系统
1.1.3 越来越小的系统
1.1.4 越来越大的系统
1.2 数据库管理系统的结构
1.2.1 DBMS的组成概述
1.2.2 存储管理程序
1.2.3 查询处理程序
1.2.4 事务管理程序
1.2.5 客户程序服务程序体系结构
1.3 未来的数据库系统
1.3.1 类型. 类和对象
1.3.2 约束和触发程序
1.3.3 多媒体数据
1.3.4 数据集成
1.5 本书概要
1.6 本章参考文献
第2章 数据库建模
2.1 ODL介绍
2.1.1 面向对象的设计
2.1.2 接口说明
2.1.3 ODL中的属性
2.1.4 ODL中的联系
2.1.5 反向联系
2.1.6 联系的多重性
2.1.7 ODL中的类型
2.1.8 本节练习
2.2 实现联系图
2.2.1 E/R联系的多重性
2.2.2 联系的多向性
2.2.3 联系中的角色
2.2.4 把多向联系转换成二元联系
2.2.5 本节练习
2.2.6 本节练习
2.3 设计原则
2.3.1 真实性
2.3.2 避免冗余
2.3.3 对简单笥的考虑
2.3.4 选择合适的元素类型
2.3.5 本节练习
2.4 子类
2.4.1 ODL中的子类
2.4.2 在ODL听多重继承
2.4.3 实体联系图中的子类
2.4.4 E/R模型中的继承
2.4.5 本节练习
2.5 对约束的建模
2.5.1 键码
2.5.2 在ODL中说明键码
2.5.3 在E/R模型中表示键码
2.5.4 单值约束
2.5.5 参照完整性
2.5.6 E/R图中的参照完整性
2.5.7 其他类型的约束
2.5.8 本节练习
2.6 弱实体集
2.6.1 产生弱实体集的原因
2.6.2 对弱实体集的要求
2.6.3 弱实体集的表示法
2.6.4 本节练习
2.7 历史上有影响的模型
2.7.1 网状模型
2.7.2 网状模型的表示
2.7.3 层次模型
2.7.4 本节练习
2.8 本章总结
2.9 本章参考文献
第3章 关系数据模型
3.1 关系模型的基本概念
3.1.1 属性
3.1.2 模式
3.1.3 元组
3.1.4 域
3.1.5 关系的等价表示法
3.1.6 关系实例
3.1.7 本节练习
3.2 从ODL设计到关系设计
3.2.1 从ODL属性到关系属性
3.2.2 类中的非原子属性
3.2.3 其他类型构造符的表示
3.2.4 单值联系的表示
3.2.5 多值联系的表示
3.2.6 假如没有键码
3.2.7 联系与反向联系的表示
3.2.8 本节练习
3.3 从E/R图到关系的设计
3.3.1 实体集到关系的转换
3.3.2 E/R联系到关系的转换
3.3.3 处理弱实体集
3.3.4 本节练习
3.4 子类结构到关系的转换
3.4.1 用关系表示ODL子类
3.4.2 在关系模型中表示“属于”联系
3.4.3 方法的比较
3.4.4 使用NULL值合并关系
3.4.5 本节练习
3.5 函数依赖
3.5.1 函数依赖的定义
3.5.2 关系的键码
3.5.3 寻找关系的键码
3.5.4 超键码
3.5.5 寻找关系的键码
3.5.6 由ODL设计导出的关系的键码
3.6 本节练习
3.6.1 分解/合并规则
3.6.2 平凡依赖
3.6.3 计算属性的闭包
3.6.4 传递规则
3.6.5 函数依赖的闭包
3.6.6 本节练习
3.7 关系数据库模式设计
3.7.1 异常
3.7.2 关系分解
3.7.3 BC范式
3.7.4 分解成BCNF
3.7.5 函数依赖的投影
3.7.6 从分解中恢复信息
3.7.7 第三范式
3.7.8 本节练习
3.8 多值依赖
3.8.1 属性的独立性及其带来的冗余
3.8.2 多值依赖的定义
3.8.3 多值依赖的推论
3.8.4 第四范式
3.8.5 分解成第四范式
3.8.6 范式间的联系
3.8.7 本节练习
3.9 数据库模式实例
3.10 本章总结
3.11 本章参考文献
第4章 关系模型中的运算
4.1 关系代数
4.1.1 关系的集合运算
4.1.2 投影
4.1.3 选择
4.1.4 笛卡尔积
4.1.5 自然连接
4.1.6 连接
4.1.7 查询中的复合运算
4.1.8 改名
4.1.9 基本和导出运算
4.1.10 本节练习
4.2 关系的逻辑
4.2.1 谓词和原子
4.2.2 算术原子
4.2.3 Datalog规则和查询
4.2.4 Datalog 规则的含义
4.2.5 外延和内涵谓词
4.2.6 本节练习
4.3 从关系代数的Datalog
4.3.1 交集
4.3.2 并集
4.3.3 差集
4.3.4 投影
4.3.5 选择
4.3.6 乘积
4.3.7 连接
4.3.8 用Datalog模拟多重运算
4.3.9 本节练习
4.4 Datalog中的递归编程
4.4.1 固定点运算符
4.4.2 计算最小固定点
4.4.3 Datalog中的固定点公式
4.4.4 递归规则中的求反
4.4.5 本节练习
4.5 对关系的约束
4.5.1 用关系代数作为约束语言
4.5.2 参照完整性约束
4.5.3 附加约束的例子
4.5.4 本节练习
4.6 包的关系运算
4.6.1 为什么用包?
4.6.2 饭并集. 交集和差集
4.6.3 包的投影
4.6.4 包的选择
4.6.5 包的乘积
4.6.6 包的连接
4.6.7 包的运算用于Datalog规则
4.6.8 本节练习
4.7 关系模型的其他外延
4.7.1 更新
4.7.2 聚合
4.7.3 视图
4.7.4 空值
4.8 本章总结
4.9 本章参考文献
第5章 数据库语言SQL
5.1 SQL的简单查询
5.1.1 SQL的投影
5.1.2 SQL的选择
5.1.3 字符串的比较
5.1.4 日期和时间的比较
5.1.5 输出的排序
5.1.6 本节练习
5.2 涉及多个关系的查询
5.2.1 SQL中的乘积和连接
5.2.2 消除属性的二义性
5.2.3 元组变量
5.2.4 多关系查询的解释
5.2.5 查询的并. 交. 差
5.2.6 本节练习
5.3 了查询
5.3.1 产生标量值勤的子查询
5.3.2 涉及到关系的条件
5.3.3 涉及到元组的条件
5.3.4 相关子查询
5.3.5 本节练习
5.4 副本
5.4.1 副本的删除
5.4.2 并. 交. 差中的副本
5.4.3 本节练习
5.5 数据库更新
5.5.1 插入
5.5.2 删除
5.5.3 修改
5.5.4 本节练习
5.6 用SQL定义关系模式
5.6.1 插入
5.6.2 删除
5.6.3 修改
5.6.4 本节练习
5.7 用SQL定义关系模式
5.7.1 数据类型
5.7.2 简单表的说明
5.7.3 删除表
5.7.4 更改关系模式
5.7.5 默认值
5.7.6 域
5.7.7 索引
5.7.8 本节练习
5.8 视图的定义
5.8.1 视图的说明
5.8.2 视图的查询
5.8.3 属性改名
5.8.4 视图的更新
5.8.5 对涉及到视图的查询的解释
5.8.6 本节练习
5.9 空值和外部连接
5.9.1 对空值的运算
5.9.1 真值UNKNOWN
5.9.2 SQL 2中的连接表达式
5.9.3 自然连接
5.9.4 自然连接
5.9.5 外部连接
5.9.6 本节练习
5.10 SQL 3中的递归
5.10.1 在SQL3中定义IDB关系
5.10.2 线性递归
5.10.3 在WITH语句中的使用视图
5.10.4 分层求反
5.10.5 SQL 3递归中的未定表达式
5.10.6 本节练习
5.11 本章总结
5.12 本章参考文献
第6章 SQL中的约束和触发程序
6.1 SQL中的键码
6.1.1 说明键码
6.1.2 实施键码约束
6.1.3 本节练习
6.2 参照完整性和外键码
6.2.1 说明外键码约束
6.2.2 保持参照完整性
6.2.3 本节练习
6.3 对属性值的约束
6.3.1 非空约束
6.3.2 基于属性的CHECK约束
6.3.3 域约束
6.3.4 本节练习
6.4 全局约束
6.4.1 基于元组的CHECK约束
6.4.2 断言
6.4.3 本节练习
6.5 约束的更新
6.5.1 对约束命名
6.5.2 更改表的约束
6.5.3 更改域的约束
6.5.4 更必断言
6.5.5 本节练习
6.6 SQL3中的触发程序
6.6.1 触发和约束
6.6.2 SQL3触发程序
6.6.3 SQL3的断言
6.6.4 本节练习
6.7 本章总结
6.8 本章参考文献
第7章 SQL系统概况
7.1 编程环境中的SQL
7.1.1 匹配失衡问题
7.1.2 SQL/宿主语言接口
7.1.3 说明(DECLARE段)
7.1.4 使用共享变量
7.1.5 单行查询语句
7.1.6 游标
7.1.7 通过游标的更新
7.1.8 游标选项
7.1.9 为取出的元组排序
7.1.10 防止并发更新的保护措施
7.1.11 滚动游标
7.1.12 动态SQL
7.1.13 本节练习
7.2 SQL中的事务
7.2.1 可串行性
7.2.2 原子性
7.2.3 事务
7.2.4 只读事务
7.2.5 读脏数据
7.2.6 其他隔离性级别
7.2.7 本节练习
7.3 SQL练习
7.3.1 环境
7.3.2 模式
7.3.3 目录
7.3.4 SQL环境中的客户程序和服务程序
7.3.5 连接
7.3.6 会话
7.3.7 模块
7.4 SQL2的安全和用户授权
7.4.1 权限
7.4.2 建立权限
7.4.3 权限检验处理
7.4.4 授予权限
7.4.5 授权图
7.4.6 取消权限
7.4.7 本节练习
7.5 本章总结
7.6 本章参考文献
第8章 面向对象查询语言
8.1 ODL中相关查询的特点
8.1.1 ODL对象的操作
8.1.2 ODL中方法署名的说明
8.1.3 类的范围
8.1.4 本节练习
8.2 OQL介绍
8.2.1 面向对象的电影实例
8.2.2 OQL类型系统
8.2.3 路径表达式
8.2.4 OQL中的select-from-where表达式
8.2.5 消除重复
8.2.6 复杂的输出类型
8.2.7 子查询
8.2.8 对结果排序
8.2.9 本节练习
8.3 OQL表达式的附加格式
8.3.1 量词表达式
8.3.2 聚合表达式
8.3.3 分组表达式
8.3.4 HAVING子句
8.3.5 集合运算符
8.3.6 本节练习
8.4 OQL中对象的赋值和建立
8.4.1 对宿主语言变量赋值
8.4.2 从聚集中提取元素
8.4.3 获取聚集的每个成员
8.4.4 建立新对象
8.4.5 本节练习
8.5 SQL3中的元组对象
8.5.1 行类型
8.5.2 说明具有行类型的关系
8.5.3 访问行类型的分量
8.5.4 引用
8.5.5 利用引用
8.5.6 引用的作用域
8.5.7 作用值的对象标识
8.5.8 本节练习
8.6 SQL3的抽象数据类型
8.6.1 ADT的定义
8.6.2 ADT方法的定义
8.6.3 外部函数
8.6.4 本节练习
8.7 ODL/OQL和SQL3的方法的比较
8.8 本章总结
8.9 本章参考文献
1.1 数据库系统的发展
1.1.1 早期的数据库管理系统
1.1.2 关系数据库系统
1.1.3 越来越小的系统
1.1.4 越来越大的系统
1.2 数据库管理系统的结构
1.2.1 DBMS的组成概述
1.2.2 存储管理程序
1.2.3 查询处理程序
1.2.4 事务管理程序
1.2.5 客户程序服务程序体系结构
1.3 未来的数据库系统
1.3.1 类型. 类和对象
1.3.2 约束和触发程序
1.3.3 多媒体数据
1.3.4 数据集成
1.5 本书概要
1.6 本章参考文献
第2章 数据库建模
2.1 ODL介绍
2.1.1 面向对象的设计
2.1.2 接口说明
2.1.3 ODL中的属性
2.1.4 ODL中的联系
2.1.5 反向联系
2.1.6 联系的多重性
2.1.7 ODL中的类型
2.1.8 本节练习
2.2 实现联系图
2.2.1 E/R联系的多重性
2.2.2 联系的多向性
2.2.3 联系中的角色
2.2.4 把多向联系转换成二元联系
2.2.5 本节练习
2.2.6 本节练习
2.3 设计原则
2.3.1 真实性
2.3.2 避免冗余
2.3.3 对简单笥的考虑
2.3.4 选择合适的元素类型
2.3.5 本节练习
2.4 子类
2.4.1 ODL中的子类
2.4.2 在ODL听多重继承
2.4.3 实体联系图中的子类
2.4.4 E/R模型中的继承
2.4.5 本节练习
2.5 对约束的建模
2.5.1 键码
2.5.2 在ODL中说明键码
2.5.3 在E/R模型中表示键码
2.5.4 单值约束
2.5.5 参照完整性
2.5.6 E/R图中的参照完整性
2.5.7 其他类型的约束
2.5.8 本节练习
2.6 弱实体集
2.6.1 产生弱实体集的原因
2.6.2 对弱实体集的要求
2.6.3 弱实体集的表示法
2.6.4 本节练习
2.7 历史上有影响的模型
2.7.1 网状模型
2.7.2 网状模型的表示
2.7.3 层次模型
2.7.4 本节练习
2.8 本章总结
2.9 本章参考文献
第3章 关系数据模型
3.1 关系模型的基本概念
3.1.1 属性
3.1.2 模式
3.1.3 元组
3.1.4 域
3.1.5 关系的等价表示法
3.1.6 关系实例
3.1.7 本节练习
3.2 从ODL设计到关系设计
3.2.1 从ODL属性到关系属性
3.2.2 类中的非原子属性
3.2.3 其他类型构造符的表示
3.2.4 单值联系的表示
3.2.5 多值联系的表示
3.2.6 假如没有键码
3.2.7 联系与反向联系的表示
3.2.8 本节练习
3.3 从E/R图到关系的设计
3.3.1 实体集到关系的转换
3.3.2 E/R联系到关系的转换
3.3.3 处理弱实体集
3.3.4 本节练习
3.4 子类结构到关系的转换
3.4.1 用关系表示ODL子类
3.4.2 在关系模型中表示“属于”联系
3.4.3 方法的比较
3.4.4 使用NULL值合并关系
3.4.5 本节练习
3.5 函数依赖
3.5.1 函数依赖的定义
3.5.2 关系的键码
3.5.3 寻找关系的键码
3.5.4 超键码
3.5.5 寻找关系的键码
3.5.6 由ODL设计导出的关系的键码
3.6 本节练习
3.6.1 分解/合并规则
3.6.2 平凡依赖
3.6.3 计算属性的闭包
3.6.4 传递规则
3.6.5 函数依赖的闭包
3.6.6 本节练习
3.7 关系数据库模式设计
3.7.1 异常
3.7.2 关系分解
3.7.3 BC范式
3.7.4 分解成BCNF
3.7.5 函数依赖的投影
3.7.6 从分解中恢复信息
3.7.7 第三范式
3.7.8 本节练习
3.8 多值依赖
3.8.1 属性的独立性及其带来的冗余
3.8.2 多值依赖的定义
3.8.3 多值依赖的推论
3.8.4 第四范式
3.8.5 分解成第四范式
3.8.6 范式间的联系
3.8.7 本节练习
3.9 数据库模式实例
3.10 本章总结
3.11 本章参考文献
第4章 关系模型中的运算
4.1 关系代数
4.1.1 关系的集合运算
4.1.2 投影
4.1.3 选择
4.1.4 笛卡尔积
4.1.5 自然连接
4.1.6 连接
4.1.7 查询中的复合运算
4.1.8 改名
4.1.9 基本和导出运算
4.1.10 本节练习
4.2 关系的逻辑
4.2.1 谓词和原子
4.2.2 算术原子
4.2.3 Datalog规则和查询
4.2.4 Datalog 规则的含义
4.2.5 外延和内涵谓词
4.2.6 本节练习
4.3 从关系代数的Datalog
4.3.1 交集
4.3.2 并集
4.3.3 差集
4.3.4 投影
4.3.5 选择
4.3.6 乘积
4.3.7 连接
4.3.8 用Datalog模拟多重运算
4.3.9 本节练习
4.4 Datalog中的递归编程
4.4.1 固定点运算符
4.4.2 计算最小固定点
4.4.3 Datalog中的固定点公式
4.4.4 递归规则中的求反
4.4.5 本节练习
4.5 对关系的约束
4.5.1 用关系代数作为约束语言
4.5.2 参照完整性约束
4.5.3 附加约束的例子
4.5.4 本节练习
4.6 包的关系运算
4.6.1 为什么用包?
4.6.2 饭并集. 交集和差集
4.6.3 包的投影
4.6.4 包的选择
4.6.5 包的乘积
4.6.6 包的连接
4.6.7 包的运算用于Datalog规则
4.6.8 本节练习
4.7 关系模型的其他外延
4.7.1 更新
4.7.2 聚合
4.7.3 视图
4.7.4 空值
4.8 本章总结
4.9 本章参考文献
第5章 数据库语言SQL
5.1 SQL的简单查询
5.1.1 SQL的投影
5.1.2 SQL的选择
5.1.3 字符串的比较
5.1.4 日期和时间的比较
5.1.5 输出的排序
5.1.6 本节练习
5.2 涉及多个关系的查询
5.2.1 SQL中的乘积和连接
5.2.2 消除属性的二义性
5.2.3 元组变量
5.2.4 多关系查询的解释
5.2.5 查询的并. 交. 差
5.2.6 本节练习
5.3 了查询
5.3.1 产生标量值勤的子查询
5.3.2 涉及到关系的条件
5.3.3 涉及到元组的条件
5.3.4 相关子查询
5.3.5 本节练习
5.4 副本
5.4.1 副本的删除
5.4.2 并. 交. 差中的副本
5.4.3 本节练习
5.5 数据库更新
5.5.1 插入
5.5.2 删除
5.5.3 修改
5.5.4 本节练习
5.6 用SQL定义关系模式
5.6.1 插入
5.6.2 删除
5.6.3 修改
5.6.4 本节练习
5.7 用SQL定义关系模式
5.7.1 数据类型
5.7.2 简单表的说明
5.7.3 删除表
5.7.4 更改关系模式
5.7.5 默认值
5.7.6 域
5.7.7 索引
5.7.8 本节练习
5.8 视图的定义
5.8.1 视图的说明
5.8.2 视图的查询
5.8.3 属性改名
5.8.4 视图的更新
5.8.5 对涉及到视图的查询的解释
5.8.6 本节练习
5.9 空值和外部连接
5.9.1 对空值的运算
5.9.1 真值UNKNOWN
5.9.2 SQL 2中的连接表达式
5.9.3 自然连接
5.9.4 自然连接
5.9.5 外部连接
5.9.6 本节练习
5.10 SQL 3中的递归
5.10.1 在SQL3中定义IDB关系
5.10.2 线性递归
5.10.3 在WITH语句中的使用视图
5.10.4 分层求反
5.10.5 SQL 3递归中的未定表达式
5.10.6 本节练习
5.11 本章总结
5.12 本章参考文献
第6章 SQL中的约束和触发程序
6.1 SQL中的键码
6.1.1 说明键码
6.1.2 实施键码约束
6.1.3 本节练习
6.2 参照完整性和外键码
6.2.1 说明外键码约束
6.2.2 保持参照完整性
6.2.3 本节练习
6.3 对属性值的约束
6.3.1 非空约束
6.3.2 基于属性的CHECK约束
6.3.3 域约束
6.3.4 本节练习
6.4 全局约束
6.4.1 基于元组的CHECK约束
6.4.2 断言
6.4.3 本节练习
6.5 约束的更新
6.5.1 对约束命名
6.5.2 更改表的约束
6.5.3 更改域的约束
6.5.4 更必断言
6.5.5 本节练习
6.6 SQL3中的触发程序
6.6.1 触发和约束
6.6.2 SQL3触发程序
6.6.3 SQL3的断言
6.6.4 本节练习
6.7 本章总结
6.8 本章参考文献
第7章 SQL系统概况
7.1 编程环境中的SQL
7.1.1 匹配失衡问题
7.1.2 SQL/宿主语言接口
7.1.3 说明(DECLARE段)
7.1.4 使用共享变量
7.1.5 单行查询语句
7.1.6 游标
7.1.7 通过游标的更新
7.1.8 游标选项
7.1.9 为取出的元组排序
7.1.10 防止并发更新的保护措施
7.1.11 滚动游标
7.1.12 动态SQL
7.1.13 本节练习
7.2 SQL中的事务
7.2.1 可串行性
7.2.2 原子性
7.2.3 事务
7.2.4 只读事务
7.2.5 读脏数据
7.2.6 其他隔离性级别
7.2.7 本节练习
7.3 SQL练习
7.3.1 环境
7.3.2 模式
7.3.3 目录
7.3.4 SQL环境中的客户程序和服务程序
7.3.5 连接
7.3.6 会话
7.3.7 模块
7.4 SQL2的安全和用户授权
7.4.1 权限
7.4.2 建立权限
7.4.3 权限检验处理
7.4.4 授予权限
7.4.5 授权图
7.4.6 取消权限
7.4.7 本节练习
7.5 本章总结
7.6 本章参考文献
第8章 面向对象查询语言
8.1 ODL中相关查询的特点
8.1.1 ODL对象的操作
8.1.2 ODL中方法署名的说明
8.1.3 类的范围
8.1.4 本节练习
8.2 OQL介绍
8.2.1 面向对象的电影实例
8.2.2 OQL类型系统
8.2.3 路径表达式
8.2.4 OQL中的select-from-where表达式
8.2.5 消除重复
8.2.6 复杂的输出类型
8.2.7 子查询
8.2.8 对结果排序
8.2.9 本节练习
8.3 OQL表达式的附加格式
8.3.1 量词表达式
8.3.2 聚合表达式
8.3.3 分组表达式
8.3.4 HAVING子句
8.3.5 集合运算符
8.3.6 本节练习
8.4 OQL中对象的赋值和建立
8.4.1 对宿主语言变量赋值
8.4.2 从聚集中提取元素
8.4.3 获取聚集的每个成员
8.4.4 建立新对象
8.4.5 本节练习
8.5 SQL3中的元组对象
8.5.1 行类型
8.5.2 说明具有行类型的关系
8.5.3 访问行类型的分量
8.5.4 引用
8.5.5 利用引用
8.5.6 引用的作用域
8.5.7 作用值的对象标识
8.5.8 本节练习
8.6 SQL3的抽象数据类型
8.6.1 ADT的定义
8.6.2 ADT方法的定义
8.6.3 外部函数
8.6.4 本节练习
8.7 ODL/OQL和SQL3的方法的比较
8.8 本章总结
8.9 本章参考文献
猜您喜欢