① SQL实战新手入门:前言
前言
信息泛滥并没有减弱的趋势 人们被来自电视 Internet和塞满邮箱的广告等各种各样的信息所淹没 令人遗憾的是 随着信息数量的增长 信息的质量却在急剧下降 图书被期刊和杂志取代 然后被报纸 Web页面 博客取代 最终又被推特(eet)取代 信息量变得越来越庞大 也变得越来越不可信赖 更糟糕的是 在Internet时代数据永远不会真正消失 它不停地累积 隐藏在各种文件 日志和数据库中 根据Google的前CEO Eric Schmidt的说法 现在人类在两天之内创造的数据量就相当于自从出现书写记录到 年(或者任何一年)所创造的数据 即现在只需要两天就会创造出大约 EB(即 亿GB)的数据 这一步伐还在不停地加速
当以电子化方式存储数据变成现实之后 它也带来了自己的规则 要理解数据的含义 人们必须去学习相应的语言 关系数据库理论为人们带来了对电子化数据的掌控能力 它采用结构化查询语言(Structured Query Language SQL)来处理数据 到目前为止 关系数据库获取了巨大的成功
自从 世纪 年代第一次提出关系数据库以来 关系数据库和SQL已经取得了长足的进步 关系数据库和SQL中包含的那些概念对于初学者来说可能并不直观 本书将为读者抽丝剥茧 使读者理解SQL背后的原理 既让读者了解SQL的强大功能 也了解它存在的局限
读者对象
本书从入门知识开始介绍 读者无须具备SQL或关系数据库的预备知识 本书将带领读者走入SQL的发现之旅 读者将亲自创建示例数据库 它不仅结合了本书中所介绍的SQL概念 还将通过几次反复重构引入数据建模 查询调整和优化的概念 本书还介绍了一些适用于每一种SQL的最佳实践
本书适合于准备学习关系数据库程序设计的计算机程序员 也适合那些希望从数据库中释放更强大威力的商业用户 SQL是关系数据库世界的通用语言 每一个对学习SQL这门强大语言感兴趣的人都适合阅读本书
先前已具有一定数据库使用经验的读者可以略过前两章 直接跳到更高级的内容 当然也可以复习一下这两章中介绍的重要原则
内容提要
本书介绍了当前已发布的SQL标准SQL: 把最主要的精力放在了SQL语言实际的运用上 强调了不同SQL实现之间存在的差异 本书介绍了很多示例 在这些示例中使用了最新版本的现代数据库系统对SQL的具体实现 这些数据库要么是可以免费下载的Express版本 要么是免费的开源软件 另外 本书还介绍了目前最流行的桌面型数据库软件Microsoft Access和OpenOffice 本书中介绍的数据库包括
IBM UDB
Oracle g
Microsoft SQL Server / /
MySQL /
PostgreSQL
Microsoft Access /
带有嵌入式 HSQLDB的OpenOffice BASE
本书结构
本书从整体着眼 向读者介绍了关系数据库的一般概念 特别是SQL中的概念 通过一个反复重构数据库的过程 循序渐进地向读者介绍了数据库的各种知识 在这一过程中 对于开始时介绍的每一个概念 随后都进行了更详细的分析 从而启发读者理解这些概念背后的关联性
第 章简要地介绍了SQL及其背后的关系理论 这一章只是浮光掠影般地介绍了数据库最基本的概念 后面的各章都在此基础上展开 该章介绍了数据与信息的区别 一些基本的原理还需要在后面章节中进一步解释 这一章还对本书中所使用的关系数据库管理系统(RDBMS)进行了一个概述
第 章对这些概念进行了更深入的介绍 根据关系模型的分析 应该将无组织的数据结构化 使之符合关系模型的要求 即将 冰箱磁铁 模式转换为 斗柜 模式 然后再将其转换为关系数据库中实际的表
第 章进一步介绍了关系模型 初步介绍了数据库的基本设计和规范化的基本过程 这一章还介绍了一些对规范化数据执行查询的SQL工具 此外 该章还介绍了动态SQL
SQL是一种基于集合的语言 这使得它既有强大的功能 也存在一定的局限 第 章讨论了最流行的过程化扩展(例如Oracle的PL/SQL和Microsoft的Transact SQL) 这一章还介绍了SQL函数 SQL函数可以作为一种补充手段 以弥补在处理基于记录的逻辑时SQL存在的固有不足
第 章介绍了聚合数据 总结了这种方式的威力和局限 该章将前面章节中介绍过的SQL聚合函数提高到了一个新的层次 演示了如何使用SQL来获取数据的聚合值
第 章介绍了子查询 当数据集是交错的 查询数据需要依靠多层次的数据筛选时 可以将一个查询作为另一个查询的筛选条件 可以调整SQL语句 用JOIN代替子查询 这是贯穿本书的主题之一
SQL的强大功能在于处理存储在多个关系表中的数据 第 章介绍了SQL如何在单个数据集中联合这些关系表的数据
本书介绍的是基本的SQL概念 打开了进一步学习SQL的大门 第 章是SQL发现之旅的下一站 它介绍了进一步学习SQL时应该考虑的问题
第 章介绍了性能优化技术 描述了在优化查询和数据库环境时常用的方法和最佳实践 第 章讨论了多用户环境中关系数据库的工作原理 介绍了SQL中实现的处理并发数据访问的机制
SQL所有的操作都与结构和顺序有关 毕竟它是结构化查询语言 真实的数据可以是各种规模和结构 第 章介绍了SQL如何处理半结构化数据(XML文档) 非结构化数据(文本文件)和二进制数据(例如图片和声音)
第 章简要地讨论了数据库领域的最新发展 例如列式数据库 NoSQL数据库 对象数据库和面向服务的架构(SOA) 以及它们与SQL的关系
对于本书所讨论的每一种数据库 附录A按部就班地描述了安装示例数据库Library的过程 以及如何使用特定的指令生成Library数据库的初始数据 可以从本书支持网站上下载到这些SQL脚本
对于本书介绍的关系数据库软件包 附录B提供了一个详细的安装步骤
附录C描述了每一种数据库所提供的工具 使用这些工具可以访问 创建数据库对象 操纵存储在表中的数据
附录D介绍了开源项目SQuirreL Universal SQL Client 可以通过Java Database Connectivity(JDBC)接口 使用SQuirreL Universal SQL Client来访问各种数据库 该附录详细地介绍了如何安装和配置该软件
学习本书的条件
为了充分利用本书 建议下载和安装本书中使用的关系数据库软件 这些软件绝大多数都是免费的 或者具有免费的试用版 可以按照附录B中介绍的步骤来安装这些软件
支持网站和代码
在学习每一章时 建议下载相应的SQL脚本 创建并生成数据库 可以从 wrox 或者 agilitator 下载到本书的代码 在支持网站中 可以使用搜索框来查找指定名称的图书 在找到指定的图书之后 单击Download Code链接就可以访问允许下载的文件 可以通过HTTP或FTP下载这些代码 所有的文件都是以ZIP格式保存
本书的ISBN是 通过ISBN号查找本书 要比通过图书名称来查找更加方便
此外 还可以从Wrox的下载页面 wrox /dynamic/books/download aspx下载到本书的代码 只要单击Discovering SQL: A Hands On Guide for Beginners链接 就可以访问允许下载的文件
勘误表
尽管我们已经尽了最大的努力来保证文章或代码中不出现错误 但是错误总是难免的 如果您在本书中找到了错误 例如拼写错误或代码错误 请告诉我们 我们将非常感激 通过勘误表 可以让其他读者避免走入误区 当然 这还有助于提供更高质量的信息
要在网站上找到本书英文版的勘误表 可以登录// wrox 通过Search工具或书名列表查找本书 然后在本书的细目页面上 单击Book Errata链接 在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项 完整的图书列表还包括每本书的勘误表 网址是 wrox /misc pages/booklist s
如果你在勘误表上没有找到错误 那么可以到 wrox /contact/techsupport s上完成上面的表格 并把找到的错误发送给我们 我们将会核查这些信息 如果无误的话 会把它放置到本书的勘误表中 并在本书的后续版本中更正这些问题
p p wrox
要与作者和同行讨论 请加入p p wrox 上的P P论坛 这个论坛是一个基于Web的系统 便于您张贴与Wrox图书相关的消息和相关技术 与其他读者和技术用户交流心得 该论坛提供了订阅功能 当论坛上有新的消息时 它可以给您传送感兴趣的论题 Wrox作者 编辑和其他业界专家和读者都会到这个论坛上来探讨问题
在//p p wrox 上 有许多不同的论坛 它们不仅有助于阅读本书 还有助于开发自己的应用程序 要加入论坛 可以遵循下面的步骤
( ) 进入p p wrox 单击Register链接
( ) 阅读使用协议 并单击Agree按钮
( ) 填写加入该论坛所需要的信息和自己希望提供的其他信息 并单击Submit按钮
( ) 你会收到一封电子邮件 其中的信息描述了如何验证账户和完成加入过程
不加入P P也可以阅读论坛上的消息 但要张贴自己的消息 就必须加入该论坛
加入论坛后 就可以张贴新消息 回复其他用户张贴的消息 可以随时在Web上阅读消息 如果要让该网站给自己发送特定论坛中的消息 可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标
关于使用Wrox P P的更多信息 可阅读P P FAQ 了解论坛软件的工作情况以及P P和Wrox图书的许多常见问题 要阅读FAQ 可以在任意P P页面上单击FAQ链接
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
lishixin/Article/program/SQL/201311/16496
② Oracle大型数据库系统的前言
风,紧,
夜,深沉,
剑,已出鞘,
影,飘然前行!
本书的立意和内容
在服务器领域,IBM p系列服务器与AIX操作系统毫无疑问是UNIX服务器领域中的佼佼者,它代表着UNIX深刻的技术内涵和广泛的用户基础。同样地,Oracle是数据库领域事实上的市场领导者,众多IT应用系统采用了Oracle构架,运行Oracle数据库作为其数据支撑节点。目前Oracle用户已经可以升级其数据库到Oracle Database 11g Release 2版本。
实践上,运行在AIX上的Oracle数据库系统是诸多大中型系统的典型配置方式——用户得益于IBM AIX的坚固支撑,受惠于Oracle的可用性保证!
但凡事都有两面性,AIX是一套复杂的UNIX系统,Oracle则是一种“最难”的数据库。对于任何用户而言,了解、熟悉、运用、掌握两者的平台特征和工程技术手段,需要进行大量的学习、培训、实践以及长时间的磨练!广大数据库用户需要一种快捷的学习路径以及可参考资料来帮助他们构建、运行、维护乃至优化自己的系统!
本书的立意即在于此!本书以AIX UNIX平台为主线,以其他UNIX系统为参照,描述了数据库系统Oracle 10g、Oracle 11g的构架方法,说明了该数据库在AIX平台常用的诸多管理方面,提供了在AIX上实施Oracle集群的环境要素说明和实施方法,分析了服务器综合容灾的工程手段和技术方法,综合了在AIX系统上优化Oracle运行环境的诸多做法和要点。最后,本书还以AIX上Sybase ASE数据库系统为对比,论述了Oracle在AIX上的独到特征。
基于上述出发点,本书力争面向工程实践,并面向用户的实际需求展开论述。因此,本书并未刻意在学术上进行高、精、尖的探索,而是力争将复杂的事情简单化,把各技术要点以最简单的形式和大家能了解的方法摆在用户面前!
本书的读者群体
本书的目标读者是那些在UNIX上进行数据库开发、维护、管理、优化任务和高可用设置的工程技术人员,以及从事于这个尖端行业的人群。
从技术角度看,本书所涉及的内容全部是生产实践中必要的过程和阶段。因此,本书并没有试图去描绘一些新鲜热辣的炒作概念或遥不可及的无用内容,而是作为一种可以放在手边的技术专着面向大众,服务于系统用户95%的日常工作需求。正因如此,本书注重细节描述和过程说明,读者无须拥有非常深厚的专业技术基础。
当然,学习的热情和探索的精神是必不可少的!
本书的内容安排
本书共分为五篇,按照数据库项目实施中工作内容的不同方向进行了分组,各篇的内容分述如下。
第一篇 构架篇
本篇侧重在于系统的构架,以及构架中的相关要素和重点。 第1章 了解服务器运行环境
本章力图使读者站到一个足够高的层次和高度来看待服务器技术框架。站得高,则看得必远!
第2章 管理和维护服务器设备和服务
Oracle运行在AIX上,Oracle将使用AIX资源、调用AIX服务,受AIX的运行状态影响。
第3章 管理服务器存储
数据库服务器的一个典型特征就是大量使用磁盘空间来存储数据库数据。Oracle需要AIX提供的存储介质来存储数据。
第4章 构建Oracle环境
Oracle的环境构架相对复杂。用户需要掌握Oracle系统构架的具体工程细节,并获得动手能力。
第二篇 管理篇
本篇结合了AIX系统的诸多特点,综合论述了Oracle在AIX上管理的具体方法和实践行为规范。 第5章 在AIX中Oracle数据库管理
日常管理是一个管理员工作的大部分内容。本章描述了常用的管理内容和做法。
第6章 使用ASM跳过AIX卷空间管理
ASM是Oracle提出的存储管理最新的实施方法。Oracle推荐使用ASM来进行磁盘空间的管理。
第7章 管理AIX下Oracle的空间使用
空间管理是系统管理的重点。Oracle需要各种不同的空间要素,需要管理和维护。
第三篇 灾备篇
本篇站在服务器的层面,综合讲述了在AIX运行Oracle系统所需进行的备份管理工作,以及灾难恢复实施方法。 第8章 设计和实施AIX系统备份
服务器系统的备份工作必须能够兼顾操作系统、应用系统、数据库数据备份的各方面。AIX是备份中重要的一环。
第9章 设计Oracle系统备份
Oracle作为数据库系统,其备份方法和恢复手段与操作系统备份截然不同。按照规范的方法进行备份对恢复有着不言而喻的意义。
续表
第三篇 灾备篇
本篇站在服务器的层面,综合讲述了在AIX运行Oracle系统所需进行的备份管理工作,以及灾难恢复实施方法。 第10章 实施Oracle系统备份
工程上实施数据库备份的方法是百花齐放的。这里讨论了若干种具体实施方法和手段。
第11章 恢复崩溃的系统
防患于未然!好的备份系统是经过恢复测试的系统。让我们看看如何用备份进行系统恢复的!
第四篇 集群篇
在AIX平台上RAC集群是一种广泛使用的结构。本篇即针对集群展开讨论。 第12章 构建AIX下的Oracle集群环境
集群是实现Oracle系统网格与高可用的主要技术手段,尤其在AIX承担的关键业务系统中。
第13章 在AIX中管理Oracle集群环境
集群的管理有其自身特色,包括集群件管理、集群服务的管理。
第五篇 优化篇
好的系统需要进行预先的优化结构设计,并在系统运行中进行渐近的再优化。本篇以项目周期为阶段,描述了系统优化的各个过程和方面。 第14章 在AIX上综合设置Oracle环境
系统在构建时,要综合考虑可用性和性能之间的关系,并设置和优化系统。
第15章 AIX上Oracle系统的运行优化
在系统运行过程中,应用性能会随时变化,性能的检查和优化也需随时进行。动态地、渐进式地分析与调整也就十分必要。
第六篇 扩展篇
通过与Sybase ASE的对比来了解什么是Oracle。 第16章 AIX上Oracle与Sybase的比较
Sybase ASE与Oracle同为可在AIX上运行的数据库系统。两种产品中各有特点、各有优势、同样优秀。
本书从构思到最终完成,历时两年时间,其间更改数十稿。单独讲述UNIX不难,单独讲述Oracle不难,但把二者结合起来,站在整个系统的高度来说明问题,却让本书作者难以着手——千头万绪,该写的内容太多!
致谢
本书内容来源于实践,用户即是最佳的实践来源。感谢山东海化集团王凤鸣先生、中国电信青海公司陈宇峰先生、福建公司陈亮先生等人的鼎力支持。本书中若干技术观点和实践总结来源于作者为该单位提供数据库顾问服务的工作现场。感谢他们和作者在工作与技术领域上的不断探讨,这促进了本书内容的不断完善!
在本书编写过程中,很多复杂的、结构性的实验在北京时代朝阳数据库技术中心Trail实验室完成。北京时代朝阳数据库技术中心是一家有着17年企业历史的数据库专业技术机构,精于数据库产品与服务。这里有多样化的UNIX平台、各种集群构架、不同容灾环境等,这为本书所涉及的各项结构性实践提供了可能。感谢Trail实验室各位同事的配合。另外,考虑到本书在部分章节上存在一定难度,为保证本书的可读性,作者也请Trail实验室中参加Oracle职业/就业课程的若干学员试读了本书,感谢他们提出的诸多意见!
感谢本书策划编辑胡辛征先生的热心鼓励和积极推动,感谢文字编辑江立女士的细心编审和中肯点评。没有他们的细致工作和鼓励,本书不能顺利出版。
最后,感谢博文视点以知识传播的方式对中国IT产业的支持——以其广博文字选题,以其超然视点出版!
祝博文视点从成功走向辉煌!
本书作者:文平
2009-09-20于北京
目录第一篇构架篇
第1章了解服务器运行环境
1.1 AIX:一种成熟的UNIX
1.1.1 AIX系统构成要素
1.1.2登录AIX系统
1.1.3 RS6000服务器结构
1.1.4 AIx系统管理界面
1.1.5 AIX中使用的Shell
1.1.6 AJx存储组织结构
1.1.7 AJx换页空间(交换区)
1.1.8 AIX文件系统结构
1.1.9 AJx对象数据管理
1.1.10 AIX当前进程运行
1.1.11 AIX用户访问过程
1.1.12 AIX各种服务提供
1.1.13 AIX网络通信设置
1.1.14 AIX中的常用操作
1.2 Oracle与AIx系统
1.2.1 Oracle与AIX的角色
1.2.2 Oracle系统典型特征
1.2.3系统全局区SGA
1.2.4程序全局区PGA
1.2.5 Oracle后台进程
1.2.6 Oracle数据库物理结构
1.2.7数据库数据存放
1.2.8数据库的用户访问
第2章管理和维护服务器设备和服务
2.1管理AIX中的设备
2.1.1 AIX使用设备类型
2.1.2 AIX的设备分层管理
2.1.3 ODM对象数据库
2.1.4设备的状态特征查看
2.1.5设备的配置和检测
2.1.6设备属性信息查看
2.1.7创建主机硬件配置档案
2.2管理AIX中的服务
2.2.1系统资源控制器的启动
2.2.2系统资源的启动和关闭
2.2.3系统资源的刷新
2.2.4通常启动的资源
2.3 AIX系统错误处理
2.4 AIX系统硬件诊断
2.5 AIX系统日志查看
第3章管理服务器存储
3.1 AIX存储基本框架
3.2 AIX的存储概念要素
3.2.1物理卷和卷组
3.2.2逻辑卷和逻辑分区
3.2.3AIX日志文件系统
3.2.4文件系统挂载和目录树
3.3系统存储结构的管理
3.3.1系统中的卷组定义信息
3.3.2增加、删除和设置卷组
3.3.3卷组中物理磁盘的改变
3.3.4卷组重组提高磁盘性能
3.3.5卷组的活动状态管理
3.3.6卷组的导入导出管理
3.3.7逻辑卷的创建和维护
3.3.8通过镜像保护逻辑卷
3.3.9通过条带优化逻辑卷
3.3.10物理卷的设置和管理
第4章构建Oracle环境
第二篇管理篇
第5章在AIX中Oracle数据库管理
第6章使用ASM跳过AIX卷空间管理
第7章管理AIX下Oracle的空间使用
第三篇灾备篇
第8章设计和实施AIX系统备份
第9章设计Oracle系统备份
第10章实施Oracle系统备份
第11章恢复崩溃的系统
第四篇集群篇
第12章构建AIX下的Oracle集群环境
第13章在AIX中管理Oracle集群环境
第五篇优化篇
第14章在AIX上综合设置Oracle环境
第15章AIX上Oracle系统的运行优化
第六篇扩展篇
第16章AIX上Oracle与Sybase的比较