×
数据库系统基础教程

数据库系统基础教程

1星价 ¥15.5 (4.3折)
2星价¥15.1 定价¥36.0

温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>

暂无评论
图文详情
  • ISBN:7302036462
  • 装帧:简裝本
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:332
  • 出版时间:2006-06-26
  • 条形码:9787302036463 ; 978-7-302-03646-3

内容简介

本书是由美国斯坦福大学两位著名的计算机学者J.D.Ullman和J.Widom为初学数据库的人编写的基本教材。(A First Course in Database Systems)Jeffrey D. Ullman, Jennifer Widom 著 史嘉权 译面向对象的数据库技术是近年来数据库技术发展的重要方向和热点,目前国内已积极开展在该领域方面的科研工作,但在教材中尚无反映,因此急需有关的教材,而本书正是雪中送炭。本书以当前的主流数据库——关系数据库为基础,以数据库系统的*基本内容——数据库的设计与编程为重点,以引进数据库领域的*新成果——比如面向对象的数据库技术为特点,系统地阐述了数据库建模、关系数据库的理论和设计、结构化查询语言SQL及其*新的标准SQL2和SQL3,阐述了递归查询等*新内容,特别是以相当多的篇幅阐述了面向对象数据库的对象定义语言ODL和对象查询语言OQL。本书的主要特点是新颖、丰富、系统、实用,把数据库技术的*新成果迅速反映到教材中。

前言

本书是从斯坦福大学的“数据库入门”(CS145)的课程笔记演变而来的。CS145是五门系列课程的**门。后面的四门是: 数据库系统原理,数据库系统实现的工程训练,事务和分布式数据库,以及数据库理论。由于Arthur Keller颇有创意的讲授,使这门课逐步发展成着重于数据库的设计和编程的课程,而这两方面内容对计算机科学专业的大多数学生来说是*有用的。这门课还包括一个内容广泛、不断滚动的课外工程项目,供学生设计并实现一个具体的数据库应用。与该工程项目相关的作业、其他课外作业、测验以及其他课程资料都可以从本书的主页上得到;请参阅“万维网(World Wide Web)上的支持”部分。 本 书 的 使 用 本书适用于讲授一学期的课程。如果像CS145这样按四分之一学年(译注:每学年分为四学期,这种制度的一学期)的课程来安排,就不得不省略或跳过书中的某些内容。*好由教师自己决定削减哪些内容,但以下内容显然是可以削减的:有关Datalog的部分,SQL编程的高级部分以及SQL3的细节部分。 如果课程中安排了不断滚动的工程项目,那么,提早讲授SQL语句部分是很重要的。可以推后讲授的内容包括:有关Datalog的部分,第5章和第6章的SQL3部分以及第3章的某些理论部分(但是,如果学生们在开始进行SQL编程之前,想设计出优秀的关系模式的话,他们就需要规范化的知识,或许还需要多值依赖的知识)。 预 备 知 识 我们把本书定位于“夹层”水平,即高年级本科生和低年级研究生水平。这门课程正规的预备知识相当于大学二年级的水平:(1) 数据结构、算法和离散数学;(2)软件系统、软件工程和编程语言。学生们对以下内容至少要有初步的了解:代数的表达式和定律、逻辑、基本数据结构(如搜索树)、面向对象的编程概念以及编程环境。我们相信,按照典型的计算机科学专业的教学计划,到大学三年级结束时,学生们肯定会拥有充分的背景知识。 练习 本书包括多方面的练习,几乎每节都有。我们把比较难的练习或练习中比较难的部分用惊叹号(!)标出。*难的练习用双惊叹号(!!)标出。 有一些练习或练习的某些部分标有星号(*)。对于这些练习,我们将尽量通过本书的主页提供解答。这些解答是公开的,并可用于自我检测。注意:在某些情况下,练习B要求您对另一个练习A的解答进行修改或改进。如果A的某些特定部分有解答,那么B的相应部分也将有解答。 万维网上的支持 本书的主页是: http://wwwdb.stanford.edu/~ullman/fcdb.html 这里有带星号的练习的解答,对已发现的书写或印刷错误的勘误表以及辅助教材。我们希望每一个像我们一样讲授CS145课程的人都能获得这些课程笔记,包括课外作业、解答和工程项目的作业。 致谢 特别感谢Bobbie Cochrane和Linda DeMichiel,感谢他们在SQL3标准方面给予的帮助。还有其他许多人帮助我们审校手稿,他们是:Donald Aingworth,Jonathan Becker,Larry Bonham,Christopher Chan,Oliver Duschka,Greg Fichtenholtz,Bart Fisher,Meredith Goldsmith,Steve Huntsberry,Leonard Jacobson,Thulasiraman Jeyaraman,dwight Joe,Seth Katz,Brian Kulman,LeWei Mo,Mark Mortensen,Ramprakash Narayanaswami,Torbjorn Norbye,Mehul Patel,Catherine Tornabene,Jonathan Ullman,Mayank Upadhyay,Vassilis Vassalos,Qiang Wang,Sundar Yamunachari和Takeshi Yokukawa。当然,剩下的错误由我们负责。

目录

第1章数据库系统的世界1 1.1数据库系统的发展1 1.1.1早期的数据库管理系统1 1.1.2关系数据库系统3 1.1.3越来越小的系统4 1.1.4越来越大的系统4 1.2数据库管理系统的结构5 1.2.1DBMS的组成概述5 1.2.2存储管理程序7 1.2.3查询处理程序7 1.2.4事务管理程序8 1.2.5客户程序服务程序体系结构10 1.3未来的数据库系统10 1.3.1类型、类和对象10 1.3.2约束和触发程序13 1.3.3多媒体数据13 1.3.4数据集成14 1.4本书概要15 1.4.1设计15 1.4.2编程15 1.5本章总结16 1.6本章参考文献17 第2章数据库建模18 2.1ODL介绍18 2.1.1面向对象的设计19 2.1.2接口说明20 2.1.3ODL中的属性20 2.1.4ODL中的联系22 2.1.5反向联系22 2.1.6联系的多重性24 2.1.7ODL中的类型26 2.1.8本节练习27 2.2实体联系图29 2.2.1E/R联系的多重性30 2.2.2联系的多向性30 2.2.3联系中的角色31 2.2.4联系中的属性32 2.2.5把多向联系转换成二元联系33 2.2.6本节练习34 2.3设计原则35 2.3.1真实性36 2.3.2避免冗余36 2.3.3对简单性的考虑36 2.3.4选择合适的元素类型37 2.3.5本节练习38 2.4子类40 2.4.1ODL中的子类40 2.4.2在ODL中的多重继承40 2.4.3实体联系图中的子类42 2.4.4E/R模型中的继承42 2.4.5本节练习43 2.5对约束的建模44 2.5.1键码45 2.5.2在ODL中说明键码46 2.5.3在E/R模型中表示键码47 2.5.4单值约束47 2.5.5参照完整性48 2.5.6E/R图中的参照完整性48 2.5.7其他类型的约束49 2.5.8本节练习49 2.6弱实体集50 2.6.1产生弱实体集的原因50 2.6.2对弱实体集的要求52 2.6.3弱实体集的表示法52 2.6.4本节练习53 2.7历史上有影响的模型53 2.7.1网状模型53 2.7.2网状模式的表示54 2.7.3层次模型55 2.7.4本节练习56 2.8本章总结56 2.9本章参考文献57 第3章关系数据模型58 3.1关系模型的基本概念58 3.1.1属性59 3.1.2模式59 3.1.3元组59 3.1.4域60 3.1.5关系的等价表示法60 3.1.6关系实例61 3.1.7本节练习62 3.2从ODL设计到关系设计62 3.2.1从ODL属性到关系属性63 3.2.2类中的非原子属性63 3.2.3其他类型构造符的表示66 3.2.4单值联系的表示67 3.2.5多值联系的表示68 3.2.6假如没有键码69 3.2.7联系与反向联系的表示70 3.2.8本节练习71 3.3从E/R图到关系的设计72 3.3.1实体集到关系的转换72 3.3.2E/R联系到关系的转换73 3.3.3处理弱实体集75 3.3.4本节练习77 3.4子类结构到关系的转换78 3.4.1用关系表示ODL子类78 3.4.2在关系模型中表示“属于”联系79 3.4.3方法的比较80 3.4.4使用NULL值合并关系80 3.4.5本节练习81 3.5函数依赖82 3.5.1函数依赖的定义82 3.5.2关系的键码83 3.5.3超键码84 3.5.4寻找关系的键码85 3.5.5由ODL设计导出的关系的键码86 3.5.6本节练习87 3.6函数依赖规则88 3.6.1分解/合并规则88 3.6.2平凡依赖89 3.6.3计算属性的闭包90 3.6.4传递规则92 3.6.5函数依赖的闭包93 3.6.6本节练习94 3.7关系数据库模式设计95 3.7.1异常96 3.7.2关系分解96 3.7.3BC范式98 3.7.4分解成BCNF99 3.7.5函数依赖的投影102 3.7.6从分解中恢复信息103 3.7.7第三范式105 3.7.8本节练习107 3.8多值依赖108 3.8.1属性的独立性及其带来的冗余108 3.8.2多值依赖的定义109 3.8.3多值依赖的推论111 3.8.4第四范式112 3.8.5分解成第四范式113 3.8.6范式间的联系114 3.8.7本节练习114 3.9数据库模式实例116 3.10本章总结118 3.11本章参考文献119 第4章关系模型中的运算121 4.1关系代数121 4.1.1关系的集合运算122 4.1.2投影123 4.1.3选择124 4.1.4笛卡尔积124 4.1.5自然连接125 4.1.6θ连接127 4.1.7查询中的复合运算128 4.1.8改名129 4.1.9基本和导出运算130 4.1.10本节练习131 4.2关系的逻辑136 4.2.1谓词和原子136 4.2.2算术原子137 4.2.3Datalog规则和查询137 4.2.4Datalog规则的含义138 4.2.5外延和内涵谓词140 4.2.6本节练习140 4.3从关系代数到Datalog140 4.3.1交集141 4.3.2并集141 4.3.3差集141 4.3.4投影142 4.3.5选择142 4.3.6乘积144 4.3.7连接144 4.3.8用Datalog模拟多重运算145 4.3.9本节练习146 4.4Datalog中的递归编程147 4.4.1固定点运算符147 4.4.2计算*小固定点148 4.4.3Datalog中的固定点方程149 4.4.4递归规则中的求反153 4.4.5本节练习156 4.5对关系的约束157 4.5.1用关系代数作为约束语言158 4.5.2参照完整性约束158 4.5.3附加约束的例子159 4.5.4本节练习160 4.6包的关系运算161 4.6.1为什么用包?162 4.6.2包的并集、交集和差集163 4.6.3包的投影164 4.6.4包的选择165 4.6.5包的乘积165 4.6.6包的连接166 4.6.7包的运算用于Datalog规则167 4.6.8本节练习168 4.7关系模型的其他外延169 4.7.1更新169 4.7.2聚合169 4.7.3视图169 4.7.4空值170 4.8本章总结170 4.9本章参考文献171 第5章数据库语言SQL172 5.1SQL的简单查询172 5.1.1SQL 的投影173 5.1.2SQL的选择175 5.1.3字符串的比较176 5.1.4日期和时间的比较178 5.1.5输出的排序178 5.1.6本节练习179 5.2涉及多个关系的查询180 5.2.1SQL中的乘积和连接180 5.2.2消除属性的二义性181 5.2.3元组变量182 5.2.4多关系查询的解释183 5.2.5查询的并、交、差185 5.2.6本节练习186 5.3子查询188 5.3.1产生标量值的子查询188 5.3.2涉及到关系的条件189 5.3.3涉及到元组的条件190 5.3.4相关子查询191 5.3.5本节练习192 5.4副本193 5.4.1副本的删除193 5.4.2并、交、差中的副本194 5.4.3本节练习195 5.5聚合195 5.5.1聚合运算符195 5.5.2分组196 5.5.3HAVING子句198 5.5.4本节练习199 5.6数据库更新200 5.6.1插入200 5.6.2删除202 5.6.3修改203 5.6.4本节练习203 5.7用SQL定义关系模式204 5.7.1数据类型205 5.7.2表的简单说明205 5.7.3删除表206 5.7.4更改关系模式206 5.7.5默认值207 5.7.6域207 5.7.7索引208 5.7.8本节练习209 5.8视图的定义211 5.8.1视图的说明211 5.8.2视图的查询212 5.8.3属性改名213 5.8.4视图的更新213 5.8.5对涉及到视图的查询的解释216 5.8.6本节练习217 5.9空值和外部连接218 5.9.1对空值的运算218 5.9.2真值UNKNOWN219 5.9.3SQL2中的连接表达式221 5.9.4自然连接222 5.9.5外部连接222 5.9.6本节练习224 5.10SQL3中的递归225 5.10.1在SQL3中定义IDB关系225 5.10.2线性递归228 5.10.3在WITH语句中使用视图228 5.10.4分层求反229 5.10.5SQL3递归中的未定表达式230 5.10.6本节练习232 5.11本章总结233 5.12本章参考文献235 第6章SQL中的约束和触发程序236 6.1SQL中的键码236 6.1.1说明键码236 6.1.2实施键码约束238 6.1.3本节练习238 6.2参照完整性和外键码238 6.2.1说明外键码约束239 6.2.2保持参照完整性240 6.2.3本节练习241 6.3对属性值的约束243 6.3.1非空约束243 6.3.2基于属性的CHECK约束243 6.3.3域约束244 6.3.4本节练习245 6.4全局约束246 6.4.1基于元组的CHECK约束246 6.4.2断言247 6.4.3本节练习250 6.5约束的更新251 6.5.1对约束命名251 6.5.2更改表的约束252 6.5.3更改域的约束253 6.5.4更改断言253 6.5.5本节练习253 6.6SQL3中的触发程序254 6.6.1触发和约束254 6.6.2SQL3触发程序254 6.6.3SQL3的断言257 6.6.4本节练习258 6.7本章总结259 6.8本章参考文献260 第7章SQL系统概况261 7.1编程环境中的SQL261 7.1.1匹配失衡问题262 7.1.2SQL/宿主语言接口262 7.1.3说明(DECLARE)段263 7.1.4使用共享变量263 7.1.5单行查询语句264 7.1.6游标265 7.1.7通过游标的更新267 7.1.8游标选项267 7.1.9为取出的元组排序268 7.1.10防止并发更新的保护措施269 7.1.11滚动游标269 7.1.12动态SQL270 7.1.13本节练习271 7.2SQL中的事务273 7.2.1可串行性273 7.2.2原子性275 7.2.3事务276 7.2.4只读事务277 7.2.5读脏数据278 7.2.6其他隔离性级别279 7.2.7本节练习280 7.3SQL环境281 7.3.1环境281 7.3.2模式282 7.3.3目录283 7.3.4SQL环境中的客户程序和服务程序284 7.3.5连接284 7.3.6会话285 7.3.7模块285 7.4SQL2的安全和用户授权286 7.4.1权限286 7.4.2建立权限287 7.4.3权限检验处理287 7.4.4授予权限289 7.4.5授权图290 7.4.6取消权限290 7.4.7本节练习293 7.5本章总结294 7.6本章参考文献296 第8章面向对象查询语言297 8.1ODL中相关查询的特性297 8.1.1ODL对象的操作297 8.1.2ODL中方法署名的说明298 8.1.3类的范围300 8.1.4本节练习300 8.2OQL介绍301 8.2.1面向对象的电影实例302 8.2.2OQL类型系统302 8.2.3路径表达式303 8.2.4OQL中的selectfromwhere表达式304 8.2.5消除重复305 8.2.6复杂的输出类型305 8.2.7子查询306 8.2.8对结果排序307 8.2.9本节练习307 8.3OQL表达式的附加格式308 8.3.1量词表达式308 8.3.2聚合表达式308 8.3.3分组表达式309 8.3.4HAVING 子句311 8.3.5集合运算符311 8.3.6本节练习312 8.4OQL中对象的赋值和建立313 8.4.1对宿主语言变量赋值313 8.4.2从聚集中提取元素313 8.4.3获取聚集的每个成员314 8.4.4建立新对象314 8.4.5本节练习316 8.5SQL3中的元组对象316 8.5.1行类型317 8.5.2说明具有行类型的关系317 8.5.3访问行类型的分量318 8.5.4引用318 8.5.5利用引用320 8.5.6引用的作用域320 8.5.7作为值的对象标识321 8.5.8本节练习323 8.6SQL3的抽象数据类型324 8.6.1ADT的定义324 8.6.2ADT方法的定义327 8.6.3外部函数329 8.6.4本节练习329 8.7ODL/OQL和SQL3方法的比较330 8.8本章总结331 8.9本章参考文献332
展开全部

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航