您好,欢迎来到聚文网。 登录 免费注册
数据库原理与应用(MYSQL版)/孟凡荣等

数据库原理与应用(MYSQL版)/孟凡荣等

  • 字数: 513000
  • 装帧: 平装
  • 出版社: 清华大学出版社
  • 作者: 孟凡荣 闫秋艳 主编 袁冠 葛欣 雷小锋 谢红侠 徐慧 王志晓 副主编
  • 出版日期: 2019-02-01
  • 商品条码: 9787302522713
  • 版次: 1
  • 开本: 其他
  • 页数: 320
  • 出版年份: 2019
定价:¥49 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
本书着力打通数据库技术从理论到具体DBMS应用再到实例开发的三个重要环节,帮助初学者建立扎实的理论基础,同时建立清晰的知识脉络,为后续的深入学习开辟良好的开端。 本书可以作为高等院校计算机及相关专业的教学用书,亦可作为对数据库技术感兴趣的初学者的自学用书或参考书。
内容简介
全书主要论述了数据库相关基本概念、基本理论和基本技术,共计9章,内容包括数据库系统的产生与发展、数据库系统特点、数据库系统的数据模型、数据库系统体系结构、关系数据库方法、关系数据库标准语言SQL、关系规范化理论、数据库设计、数据库保护、数据库设计实例和数据库技术新发展等。 本书既介绍了经典的数据库理论及设计方法,又展示了目前广泛应用的开源数据库管理系统MySQL的实际操作步骤,同时还给出了一个侧重数据库设计过程的应用系统开发实例,打通了从理论到具体DBMS应用再到实例开发三个重要环节。为初学者打牢理论基础的同时,又梳理了数据库应用程序开发的重要环节,做到学以致用。 本书可以作为高等院校计算机专业数据库原理与应用课程的教学用书、计算机相关专业的教学用书,也可以作为从事计算机、管理科学工作的读者,以及科技人员和对数据库技术感兴趣的初学者等的学习用书或参考书。
目录
第1章绪论 1.1数据库、数据库管理系统、数据库系统和数据库应用系统 1.1.1数据库 1.1.2数据库管理系统 1.1.3数据库系统 1.1.4数据库应用系统 1.2数据库系统的产生与发展 1.2.1数据、信息、数据管理与数据处理 1.2.2数据管理技术的产生与发展 1.2.3数据库系统的特点 1.3数据模型 1.3.1数据模型的几个重要问题 1.3.2实体联系数据模型 1.3.3常用(结构)数据模型 1.4数据库系统结构 1.4.1数据库系统的三级模式结构 1.4.2数据库的两级映像与数据独立性 1.4.3用户通过DBMS访问数据库的过程 1.5数据库管理系统 1.5.1数据库管理系统的组成 1.5.2数据库管理系统的主要功能 1.5.3数据库管理系统应该满足的要求 1.5.4数据库管理系统程序模块的组成 1.5.5数据库管理系统的层次结构 1.5.6常见的数据库管理系统 1.6数据库应用系统开发概述 1.6.1单用户结构 1.6.2集中式结构 1.6.3分布式结构 1.6.4客户机/服务器结构 1.6.5浏览器/服务器结构 *1.7数据库技术的新发展 小结 习题1 第2章关系数据库 2.1关系模型 2.1.1关系数据结构 2.1.2关系操作 2.1.3关系完整性约束 2.2关系代数 2.2.1传统的集合运算 2.2.2专门的关系运算 2.2.3关系代数举例 *2.3关系演算 2.3.1元组关系演算 2.3.2域关系演算 2.4查询优化 2.4.1查询优化的必要性 2.4.2查询优化的策略和算法 2.5关系系统 2.5.1关系系统定义 2.5.2关系系统分类 *2.5.3全关系系统的12条基本准则 小结 习题2 第3章关系数据库标准语言SQL 3.1SQL概述 3.1.1SQL的发展 3.1.2SQL的特点 3.1.3SQL体系结构 3.2SQL的定义功能 3.2.1基本表的定义 3.2.2基本表的修改和删除 3.2.3索引的建立与删除 3.3数据查询 3.3.1单表查询 3.3.2连接查询 3.3.3嵌套查询 3.4数据更新 3.4.1插入数据 3.4.2删除数据 3.4.3修改数据 3.5视图 3.5.1建立视图 3.5.2删除视图 3.5.3查询视图 3.5.4更新视图 3.6数据控制 3.6.1授权 3.6.2收回权限 小结 习题3 第4章关系规范化理论 4.1问题的提出 4.1.1一个泛关系模式的实例 4.1.2改造泛关系模式S_D_P 4.1.3存在问题的原因 4.1.4规范化理论的提出 4.2函数依赖和范式 4.2.1函数依赖的概念 4.2.2码的函数依赖定义 4.2.3范式 4.3数据依赖的公理系统 4.3.1函数依赖集的闭包 4.3.2函数依赖的推理规则 4.3.3属性集闭包与F逻辑蕴涵的充要条件 4.3.4Armstrong公理的正确性和完备性 4.3.5函数依赖集的等价和最小函数依赖集 4.4关系模式的分解方法 4.4.1模式分解的概念 4.4.2分解的无损连接性判定 4.4.3分解的函数依赖保持性判定 4.4.4关系模式的分解算法 小结 习题4 第5章数据库设计 5.1数据库设计概述 5.1.1数据库设计的定义和知识要求 5.1.2数据库设计的内容 5.1.3数据库设计方法 5.1.4数据库设计的基本步骤 5.2需求分析 5.2.1需求分析的任务 5.2.2需求分析的方法和过程 5.2.3需求分析常用工具 5.2.4需求分析实例 5.3概念结构设计 5.3.1概念结构设计的定义 5.3.2概念结构设计方法 5.3.3局部视图设计 5.3.4集成全局视图 5.4逻辑结构设计 5.4.1逻辑结构设计的任务和步骤 5.4.2ER图向关系模型的转换原则 5.4.3逻辑结构的优化 5.4.4设计用户外模式 5.5物理结构设计 5.5.1确定数据库的物理结构 5.5.2评价物理结构 5.6数据库实施 5.7数据库的运行和维护 5.8数据库设计实例 小结 习题5 第6章数据库保护 6.1事务 6.1.1事务的概念 6.1.2事务的特性 6.2数据库恢复 6.2.1数据库系统的故障 6.2.2数据库恢复的实现技术 6.3并发控制 6.3.1并发操作引发的问题 6.3.2调度及其可串行化 6.3.3事务的隔离性级别 6.3.4封锁技术 6.3.5死锁与活锁问题 6.3.6封锁的粒度 6.4数据库安全性 6.4.1用户标识与鉴别 6.4.2存取控制 6.4.3视图机制 6.4.4数据加密 6.4.5审计 6.5数据库完整性 6.5.1完整性约束条件的类型 6.5.2完整性控制机制的功能 6.5.3完整性约束的表达方式 小结 习题6 第7章MySQL数据库操作 7.1MySQL简介 7.2MySQL的体系结构 7.3MySQL的查询语言 7.3.1表、列和数据类型 7.3.2函数 7.3.3SQL语句 7.4MySQL数据库的安装 7.5MySQL数据库的基本操作 7.5.1数据库操作 7.5.2数据库表的操作 7.5.3数据库视图操作 7.5.4数据操作语言 7.6常用开发平台与MySQL数据的连接 7.7MySQL数据库的备份与恢复 7.8MySQL数据库的安全 第8章数据库应用实例 8.1引言 8.2楼盘销售系统 8.2.1开发背景 8.2.2需求分析 8.2.3系统设计 8.2.4系统实现 8.3数据库精品课程学习系统 8.3.1开发背景 8.3.2需求分析 8.3.3系统设计 8.3.4系统实现 8.4煤矿采掘衔接计划管理系统 8.4.1需求概要 8.4.2数据流图 8.4.3系统设计 8.4.4系统实现 小结 第9章数据库新技术 9.1面向对象数据模型 9.1.1面向对象数据模型的定义 9.1.2面向对象数据库管理系统 9.1.3面向对象数据库系统的概念与特征 9.1.4面向对象数据库系统的查询 9.1.5面向对象数据库系统的并发控制 9.2XML数据库 9.2.1XML技术 9.2.2XML数据库 9.2.3XML数据库分类 9.2.4XML数据库管理系统 9.3分布式数据库系统 9.3.1分布式数据库及其分类 9.3.2分布式数据库的特点 9.3.3分布式数据库的分级结构 9.3.4分布式数据库的数据分布 9.4工程数据库 9.4.1工程数据库基本概念 9.4.2工程数据库体系结构 9.4.3长事务管理 9.5其他数据库 9.5.1模糊数据库 9.5.2空间数据库 9.5.3统计与科学数据库 9.5.4实时数据库 9.5.5内存数据库 9.6大数据管理技术 9.6.1什么是大数据 9.6.2大数据的特点 9.6.3传统关系型数据库面临的问题 9.6.4NoSQL数据库 9.7数据仓库 9.7.1什么是数据仓库 9.7.2数据仓库的体系结构 9.7.3数据仓库的作用 9.8知识发现 9.8.1KDD的相关概念 9.8.2KDD的基本任务 9.8.3KDD的处理过程 9.8.4KDD的方法 小结 参考文献
摘要
    第3章关系数据库标准语言SQL SQL(Structured Query Language)是关系数据库的标准语言,也称结构化查询语言。它是介于关系代数和元组演算之间的一种语言。SQL是一种综合性的数据库语言,实现对数据的定义、操纵和控制等功能。本章将对SQL的语法规则进行详细的介绍。 3.1SQL概述3.1.1SQL的发展自从1970年美国IBM研究中心的E.F.Codd提出关系模型,并连续发表多篇论文以后,人们对关系数据库的研究日益深入。1972年,IBM公司开始研制实验型关系数据库管理系统SYSTEM R,并且为其配置了SQUARE(Specifying Queries As Relational Expression)查询语言。1974年,Boyce和Chamberlin在此基础上对其进行改进,将SQUARE语言改为SEQUEL(Structured English Query Language),后来SEQUEL简称为SQL,即“结构式查询语言”,并首先在IBM公司研制的关系数据库系统System R上实现。 由于它具有功能丰富、使用方便灵活、语言简洁、易学等突出优点,深受计算机工业界和计算机用户的欢迎。各厂商纷纷开发基于SQL的商业应用产品,并将SQL作为关系数据库产品事实上的标准,如Oracle、DB2、Sybase等。1986年10月,经美国国家标准局(ANSI)的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL。1987年6月,国际标准化组织(International Organization for Standardization,ISO)将其采纳为国际标准。这两个标准现在称为“SQL 86”。ANSI在1989年10月颁布了增强完整性特征的SQL 89标准,1992年又公布了SQL 92标准,1999年发布了SQL 99,以后每隔几年会推出一个新版本,目前最近的版本是SQL 2016。 本章的论述主要遵循SQL 92标准,由于各数据库厂商的SQL产品在支持标准SQL 92语法的同时,在功能上都做了相应的扩充,在实现上略有不同,因此,在使用具体的DBMS时,请查阅系统提供的参考手册。 3.1.2SQL的特点 SQL有许多优点,主要体现在以下4点。 1. 高度非过程化 “过程化”是指用户不但要知道“做什么”,还应该知道“怎样做”。对于SQL,用户只需要提出“做什么”,无须具体指明“怎么做”。例如,存取路径选择、具体处理操作过程等均由系统自动完成。这种特点使得用户更能集中精力考虑要“做什么”和所要得到的结果,大大提高了开发效率。 2. 功能完备并且一体化 数据库的主要功能就是通过数据库支持的数据语言来实现的。SQL不但具有数据定义功能、数据查询、数据操作功能、数据控制功能,而且这些功能被集成到一个语言系统中,只要用SQL就可以实现数据库生命周期中的全部活动。可见,SQL功能是完备的。 3. 统一的语法结构 SQL可用于所有用户的模型,包括系统管理员、数据库管理员、应用程序员及终端用户,这些用户可以通过自含式语言和嵌入式语言两种方式对数据库进行访问,这两种方式使用统一的语法结构。 4. 语言简洁,易学易用 尽管SQL的功能很强,但语言十分简洁,SQL完成核心功能只用了以下8个动词。 数据查询: SELECT(查询)。 数据定义: CREATE(创建),DROP(撤销)。 数据操作: INSERT(插入),UPDATE(修改),DELETE(删除)。 数据控制: GRANT(授权),REVOKE(收权)。 3.1.3SQL体系结构 SQL支持关系数据库体系结构,即外模式、模式和内模式。利用SQL可以实现对三级模式的定义、修改和数据的操作功能,在此基础上形成了SQL体系结构,如图31所示。 图31SQL体系结构 图31中对应的几个基本概念如下。 (1) SQL用户。可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,也可以作为独立的用户接口,供交互环境下的终端用户使用。 (2) 基本表,简称基表。它是数据库中实际存在的表,在SQL中一个关系对应于一个基本表。 (3) 视图。SQL用视图概念支持非标准的外模式概念。视图是从一个或几个基表导出的表,虽然它也是关系形式,但它本身不实际存储在数据库中,只存放对视图的定义信息(没有对应的数据)。因此,视图是一个虚表(Virtual Table)或虚关系,而基表是一种实关系(Practical Relation)。 (4) 存储文件。每个基表对应一个存储文件,每个存储文件都与外部存储器上一个物理文件对应。一个基表还可以带一个或几个索引,存储文件和索引一起构成了关系数据库的内模式。 由此可以看出,一个基本表可以存放在多个存储文件中,一个存储文件也可以存放多个基本表的数据; 一个视图可以来自多个基本表,一个基本表可以构造多个视图; 一个用户可以查询多个视图,一个视图也可以被多个用户访问。 3.2SQL的定义功能3.2.1基本表的定义1. 表结构的定义 建立数据库最重要的一步就是定义基本表的结构。SQL用于创建基本表的语法结构为: CREATE TABLE <表名> (<列名> <数据类型> [列级完整性约束条件] [,<列名> <数据类型> [列级完整性约束条件] …] [,<表级完整性约束条件>];说明: (1) 表名是所要定义的基本表的名字,表可以由一个或多个属性(列)组成。 (2) 定义表的各个列时需要指明其数据类型及长度。表31列出了主要数据类型。表31SQL 92提供的主要数据类型类型数据类型举例及缩写说明BinaryBinaryLargeOBject(BLOB)这种数据类型以十六进制格式存储二进制字符串的值BitStringBIT(n) BIT VARYING(n)这两种数据类型可以存储二进制和十六进制数据,BIT数据类型长度固定,而BIT VARYING数据类型具有可变长度BooleanBOOLEAN这种数据类型存储真、假值——true、false或unknownCharacterCHAR(n) VARCHAR(n) 这两种数据类型可以存储适宜的字符集中的任意字符组合。VARCHAR数据类型允许字符长度变化,而CHAR数据类型只能有固定的字符长度。VARCHAR数据类型自动删除后继的空格,而CHAR数据类型则添加空格达到指定长度NumericINTEGER SMALLINT DECIMAL(i,j) FLOAT(p,s) REAL DOUBLE PRECISION这些数据类型存储数据的准确值(整数或小数)或近似值(浮点数)续表 类型数据类型举例及缩写说明TemporalDATE TIME TIMESTAMP INTERVAL这些数据类型处理时间的值。DATE 和TIME分别处理日期和时间。TIMESTAMP类型存储着按机器当前运行时间计算出来的值。INTERVAL指定一个时间间隔,它是一个相对值,用于增加或减少一个日期、时间或时间戳类型数据的绝对值 (3) 完整性约束条件。关系完整性约束包括实体完整性、参照完整性和用户定义完整性。这三种完整性约束条件都可以在表的定义中给出。其中,实体完整性定义表的主关键字(Primary Key),参照完整性定义外关键字(Foreign Key),用户定义完整性根据具体应用对关系模式提出要求,主要包括对数据类型、数据格式、取值范围、空值约束等的定义。 完整性约束,又可分为列完整性、元组完整性和表级完整性三个级别。在关系模式的定义中,最常定义的是列完整性约束和表级完整性约束。用户定义的完整性规则属于列级完整性约束,而实体完整性和参照完整性都属于表级完整性约束。 由于完整性约束条件也是关系模式定义的一部分,所以下面给出部分完整性约束条件的定义方法。这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件。 【例31】建立一个“学生”表,它由学号、姓名、性别、出生年份、籍贯和所在学院6个列组成,其中,学号属性不能为空,并且其值是专享的。CREATE TABLE 学生 ( 学号 CHAR(8) NOTNULL UNIQUE, 姓名 CHAR(8), 性别 CHAR(2), 出生年份 SMALLINT, 籍贯 CHAR(8), 学院 CHAR(15));上述SQL语句执行后,将建立一个新的空“学生”表。其中,NOT NULL 和UNIQUE分别说明学号不能取空值和重复的值,该约束等同于主码的约束。 2. 主关键字的定义 一个关系可能有多个候选关键字,但在定义基本表时只能定义一个主关键字。一个关系的主关键字由一个或几个属性构成,在CREATE TABLE中声明主关键字的方法如下。 (1) 在列出关系模式的属性时,在属性及其类型后加上保留字PRIMARY KEY,表示该属性是主关键字。 (2) 在列出关系模式的所有属性后,再附加一个声明: PRIMARYKEY (<属性1>[,<属性2>,…])说明: 如果关键字由多个属性构成,则必须使用第二种方法。 【例32】建立一个“学生”表,它由学号、姓名、性别、出生年份、籍贯和所在学院6个列组成,其中,学号为主关键字。 方法一: CREATETABLE学生 (学号CHAR(8)PRIMARYKEY, 姓名CHAR(8), 性别CHAR(2), 出生年份SMALLINT, 籍贯CHAR(8), 学院CHAR(15));方法二: CREATETABLE学生 (学号CHAR(8), 姓名CHAR(8), 性别CHAR(2), 出生年份SMALLINT, 籍贯CHAR(8), 学院CHAR(15), PRIMARYKEY(学号));【例33】建立一个“课程”表,它由课程号、课程名、学时、开课学期、课程性质5个属性组成,其中,课程号为主关键字。CREATETABLE课程 (课程号CHAR(8)NOTNULLUNIQUE, 课程名CHAR(15), 学时SMALLINT, 开课学期CHAR(4), 课程性质CHAR(15), PRIMARYKEY (课程号));从例33可以看出,虽然非空(NOTNULL)约束和专享(UNIQUE)约束结合在一起的作用等同于主键(PRIMARYKEY)约束,但是,二者是可以重复定义的。同时,虽然主键的声明是可选的,但为每个关系指定一个主键会更好些。 【例34】建立一个“学习”表,它由学号、课程号、成绩3个属性组成,其中,学号和课程号为主关键字。CREATETABLE学习 ( 学号CHAR(8), 课程号 CHAR(8), 成绩 SMALLINT, PRIMARYKEY (学号, 课程号));该例中,由于组成主关键字的属性有两个: 学号和课程号,所以只能在属性列表的最后来定义该主关键字。 3. 外部关键字的定义 外部关键字的定义是建立参照完整性的约束,它是关系模式的另一种重要约束。根据参照完整性的概念,在SQL中,有两种方法用于说明一个外部关键字。 (1) 如果外部关键字只有一个属性,可以在它的属性名和类型后面直接用“REFERENCES”说明它参照了某个表的某些属性(必须是主关键字)。其语法格式是: REFERENCES<表名> (<属性>)(2) 在CREATETABLE语句的属性列表后面增加一个或几个外部关键字说明,其格式为: FOREIGNKEY (<属性1>) REFERENCES <表名> (<属性2>)其中,“属性1”是外部关键字,“属性2”是被参照的属性。 【例35】建立一个“学习”表,它由学号、课程号、成绩3个属性组成,其中,学号和课程号的集合为主关键字,同时,学号、课程号也分别是外关键字,分别参照了学生表中的学号和课程表中的课程号。CREATETABLE学习 ( 学号CHAR(8), 课程号 CHAR(8), 成绩 SMALLINT, PRIMARY KEY (学号, 课程号), FOREIGN KEY(学号)REFERENCES学生(学号) FOREIGN KEY(课程)REFERENCES课程(课程号)该例中定义了两个外关键字: 学习表中的学号和课程号。根据参照完整性规则,学习表中的学号要么取空值,要么取学生表中的学号值。但是,由于学习表中的学号又是该关系主关键字中的属性,根据实体完整性约束条件,主属性不能取空值。所以,学习表中的外关键字学号只能取学生表中学号的值,不能取空值。另一个外关键字课程号的取值亦然。 4. 默认值的定义 可以在定义属性时增加保留字DEFAULT为表中某列的取值定义一个默认值。 例如: 性别 CHAR(2)DEFAULT'男'; 年龄 SMALLINTDEFAULT19;3.2.2基本表的修改和删除1. 修改基本表随着应用环境和应用需求的变化,有时需要修改已经建立好的基本表,如增加列、增加新的完整性约束条件、修改原有的列定义或删除已有的完整性约束条件等,此处仅列出其中的部分语法。 语法格式: ALTER TABLE <表名> [ ADD<新列名>< 数据类型> [完整性约束]] | [DROP<完整性约束名>] | [ALTER COLUMN <列名><数据类型>]其中,表名是要修改的基本表,ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约束条件,ALTER COLUMN子句用于修改原有的列定义,包括修改列名和数据类型。 【例36】在学生表中增加“年龄”属性,类型为SMALLINT。ALTERTABLE学生 ADDCOLUMN 年龄 SMALLINT;【例37】在学生表中删除“年龄”属性。ALTERTABLE学生DROP COLUMN 年龄;【例38】课程表中修改“课程名称”属性的长度为20位。ALTERTABLE课程ALTERCOLUMN 课程名CHAR(20);注意: (1) 可以增加或减少某一列的长度,但是修改后的长度不能小于该列原有数据的长度。 (2) 对于NULL值约束进行修改的问题。该问题产生于将某列的约束从NULL改变为NOT NULL时,要求指定的字段中不能有NULL值。如果包含值为NULL的字段,则必须先删掉所发现的任何NULL值,然后使用ALTER TABLE命令进行修改。 2. 基本表的删除 DROPTABLE<表名>[RESTRICT | CASCADE];RESTRICT表示如果有视图或约束条件涉及要删除的表时,就禁止DBMS执行该命令; 而CASCADE选项则将该表与其涉及的对象一起删除。 【例39】假设已经存在一个表,表名为“临时表”,现将其删除,并将与该表有关的其他数据库对象一起删除。DROPTABLE 临时表CASCADE;

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网