描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302496250丛书名: 中国高等学校计算机科学与技术专业(应用型)规划教材
全书共分5篇12章:*篇为基础知识篇(第1~5章),介绍数据库的基础理论知识;第二篇为数据库设计技术篇(第6~7章),介绍数据库设计的理论;第三篇为数据库安全篇(第8章),介绍数据库安全保护技术;第四篇为应用篇(第9~11章),介绍SQL Server 2016数据库管理系统;第五篇为发展篇(第12章),介绍数据库技术的*进展情况。
本书是作者多年来教学经验的总结,融入了大量的教学案例,实用性很强,可作为普通高等院校数据库技术及应用课程的教材,也可作为相关技术人员的参考用书,同时还可作为各类水平考试(包括全国计算机等级考试)的辅导用书。
目录
基础知识篇
第1章数据库系统概述3
1.1数据管理技术的发展3
1.2数据与数据库概念6
1.3数据库系统7
1.4数据库管理系统8
1.4.1数据库管理系统的功能8
1.4.2数据库管理系统的组成9
1.5数据库系统体系结构11
1.5.1数据库系统的内部体系结构11
1.5.2数据库系统的典型外部体系结构13
1.6数据库用户15
习题117
第2章数据模型18
2.1数据模型的组成要素18
2.2概念数据模型19
2.2.1基本概念20
2.2.2ER模型22
2.3逻辑数据模型24
2.3.1层次数据模型25
2.3.2网状数据模型27
2.3.3关系数据模型28
2.3.4面向对象数据模型29
2.3.5对象关系数据模型302.4物理数据模型31
习题231
第3章关系数据库32
3.1关系数据结构32
3.2关系数据操作34
3.2.1传统的关系运算35
3.2.2专门的关系运算37
3.3关系数据的完整性约束41
习题343
数据库技术与应用SQL Server 2016 目录
第4章关系数据库标准语言SQL45
4.1SQL概述45
4.1.1SQL标准的由来45
4.1.2SQL的组成46
4.1.3SQL的特点47
4.2数据定义语言49
4.2.1基本表的定义49
4.2.2索引的定义55
4.3数据查询语言58
4.3.1单表查询59
4.3.2连接查询67
4.3.3集合查询69
4.3.4嵌套查询71
4.4数据更新语言77
4.4.1插入数据78
4.4.2修改数据79
4.4.3删除数据81
4.5视图81
4.5.1视图的概念81
4.5.2创建视图82
4.5.3更新视图83
4.5.4查询视图84
4.5.5删除视图84
习题485
第5章SQL语言高级功能87
5.1数据控制语言87
5.1.1权限和角色87
5.1.2授权语句88
5.1.3收回权限90
5.2存储过程90
5.2.1创建存储过程91
5.2.2修改存储过程92
5.2.3删除存储过程92
5.2.4执行存储过程92
5.2.5过程声明94
5.2.6基本语句和表达式95
5.2.7流程控制97
5.3游标101
5.3.1游标类型101
5.3.2游标的管理103
5.4触发器108
5.4.1触发器的结构108
5.4.2创建DML触发器109
5.4.3创建DDL触发器112
5.4.4创建登录触发器114
5.4.5修改触发器114
5.4.6删除触发器115
5.4.7递归触发器115
5.5嵌入式SQL116
5.5.1基本概念116
5.5.2基本结构118
5.5.3变量声明119
5.5.4数据库连接120
5.5.5执行SQL命令121
5.5.6嵌入式游标123
5.5.7使用动态SQL126
5.5.8异常处理127
习题5128
数据库设计技术篇
第6章数据库设计理论133
6.1数据库设计概述133
6.1.1数据库设计的任务133
6.1.2数据库设计的团队134
6.1.3数据库设计的方法134
6.2数据库设计的步骤135
6.2.1需求分析136
6.2.2概念结构设计138
6.2.3逻辑结构设计142
6.2.4物理结构设计145
6.2.5数据库实施146
6.2.6数据库运行及维护147
习题6148
第7章数据库规范化理论149
7.1关系模式设计中存在的问题149
7.2函数依赖150
7.3多值依赖152
7.4范式152
7.4.1第一范式153
7.4.2第二范式155
7.4.3第三范式156
7.4.4BC范式157
7.4.5第四范式157
7.5关系模式规范化方法158
7.6函数依赖的公理系统159
7.7关系模式的分解160
习题7162
数据库安全篇
第8章数据库的安全性策略165
8.1数据库安全控制概述165
8.2数据库安全控制方法166
8.2.1用户标识和鉴定167
8.2.2存取控制167
8.2.3审计169
8.2.4数据加密170
8.3事务171
8.3.1事务的概念171
8.3.2事务的特性172
8.3.3定义事务172
8.4数据库的恢复技术173
8.4.1数据备份174
8.4.2故障177
8.4.3数据恢复策略178
8.5并发控制182
8.5.1并发异常问题182
8.5.2基于封锁的调度184
8.5.3基于时间戳的调度189
8.5.4基于有效性检验的调度方法190
8.5.5多版本并发控制机制191
习题8191
应用篇
第9章典型关系数据库管理系统SQL Server 2016介绍195
9.1SQL Server 2016系统概述195
9.2SQL Server 2016体系结构199
9.3SQL Server 2016的安装201
9.3.1安装环境要求201
9.3.2安装过程203
9.4SQL Server 2016配置220
9.4.1SQL Server 2016数据库服务器服务的启动和停止221
9.4.2注册服务器224
9.4.3创建服务器组224
9.5SQL Server 2016管理平台226
习题9228
第10章SQL Server 2016的SQL编程技术229
10.1创建数据库229
10.1.1利用对象资源管理器创建数据库229
10.1.2利用TSQL语句创建数据库231
10.2数据定义技术233
10.3数据更新技术244
10.4数据查询技术246
10.5存储过程247
10.6触发器249
10.7应用程序调用数据库的方法251
10.7.1ODBC技术251
10.7.2ADO技术258
10.7.3JDBC技术263
习题10267
第11章SQL Server 2016的数据库保护技术268
11.1数据安全性技术268
11.1.1概述268
11.1.2身份验证模式268
11.1.3登录账号管理269
11.1.4角色管理275
11.1.5用户管理279
11.1.6权限控制281
11.2数据库的备份和恢复283
11.2.1数据库的备份283
11.2.2数据库的恢复286
习题11291
发展篇
第12章数据库技术的新进展295
12.1数据库技术发展概述295
12.1.1影响数据库技术发展的重要因素295
12.1.2数据库新技术的发展296
12.2数据库技术与其他相关技术相结合300
12.2.1面向对象数据库系统300
12.2.2分布式数据库系统304
12.2.3云数据库系统308
12.3面向应用领域的数据库新技术310
12.3.1数据仓库与数据挖掘310
12.3.2空间数据库314
12.3.3机器学习321
12.3.4大数据分析技术323
12.3.5物联网技术326
12.3.6云计算328
习题12331
附录A系统内置函数332
附录BSQL Server中常用的全局变量337
参考文献339
作者2018年3月数据库技术与应用SQL Server 2016
4. 广义笛卡儿积两个分别具有n个属性和m个属性的关系R和S的广义笛卡儿积是一个具有(n m)个属性的关系,记作R×S。新关系的关系模式由关系R的所有属性(次序不变)和关系S的所有属性(次序不变)连接而成。新关系实例中的元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积有k1×k2个元组。广义笛卡儿积运算可用于两张表的合并。【例31】已知两个关系R和S,请分别求R∪S,R∩S,R-S,R×S。RABCa1b1c1a1b2c2a2b2c1SABCa1b2c2a1b3c2a2b2c1【解答】R∪SABCa1b1c1a1b2c2a2b2c1a1b3c2R∩SABCa1b2c2a2b2c1R-SABCa1b1c1R×SABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c13.2.2专门的关系运算对于关系数据的查询操作,有些无法用传统的关系运算完成,需要引入一些新的运算方法,完成诸如属性指定、元组选择、关系合并等操作,这些运算称为专门的关系运算。为了方便介绍专门的关系运算,假设某超市的数据库系统,包括3个关系: 商品关系G、供应商关系S和供应关系SG,以下的所有举例都基于这个数据库系统。GGNOGTYPEGNAMEPRICE101运动类羽毛球拍120102运动类乒乓球拍80201食品类纯牛奶45SSNOSNAMESADDRESSA1五环体育广州A2耐克上海B1三元北京SGGNOSNOCOSTGNOSNOCOST101A1100102A265102A160201B1401. 选择运算选择运算是一元关系运算,它作用在一个关系上,运算前和运算后均只是一个关系。根据选择条件,从关系中筛选出符合条件的若干元组,选择操作的结果得到一个新关系。这两个关系具有相同的关系模式。它的表示方法是:σ选择条件(关系)其中,σ是希腊字母,其下标“选择条件”是个条件表达式,小括号里的关系是操作对象。条件表达式由以下规则组成。(1) 基本逻辑条件: αθβ形式,其中α、β是属性名或常量,但α、β不能同为常量。θ是比较运算符,可以是、≥、=或≠。(2) 复合逻辑条件: 由若干基本逻辑条件经过逻辑与“∧”、逻辑或“∨”和逻辑非“┐”构成。【例32】基于商品关系G,查询价格高于100的商品。【解答】该查询可以用如下的表达式来表示:σPRICE>100(G)查询的结果是:GNOGTYPEGNAMEPRICE101运动类羽毛球拍120【例33】基于商品关系G,查询运动类价格低于100的商品。【解答】该查询可以用如下的表达式来表示:σGTYPE=’运动类’∧PRICE<100(G)查询的结果是:GNOGTYPEGNAMEPRICE102运动类乒乓球拍802. 投影运算投影操作从一个关系中抽取其中某些列的值,作为一个新关系输出。新关系的关系模式是下标中的属性列表,元组则是原关系中每一个元组在投影的属性列表上的取值。它的表示方法是:π属性表(关系)其中,π表示投影操作,其下标位置的属性表表示要抽取的属性列,小括号内跟上操作对象。注意: 如果投影属性中不包含任一个候选码,则抽取结果中很可能包含重复的元组,应把重复的元组去掉。【例34】在商品关系G里查询超市里经营的商品种类。【解答】该查询可以用如下的表达式来表示:πGTYPE(G)查询的结果是:GTYPE运动类食品类3. 连接运算 用笛卡儿积运算建立两个关系的连接,并不是一个很好的方法,因为笛卡儿积的结果是一个比较庞大的关系。在实际中往往需要的是笛卡儿积中符合条件的一些元组,于是引出了连接运算。虽然连接运算可以看作是对两个关系的广义笛卡儿积作选择和投影运算,但连接运算远比单纯的笛卡儿积使用更频繁。在关系代数中,连接运算是最有用的操作之一。连接运算是从两个关系的广义笛卡儿积中选取属性之间满足一定条件的元组,记作:RSαθβ其中,连接运算符用表示,αθβ是连接条件,θ是比较运算符(>、≥、中的内容是必需的。(3) 大括号{ }中的内容至少选择一个。当括号中内容由“|”分隔时,则只能选择其中的一个;当括号中的内容由“,”分隔时,可选择其中的一个或多个。(4) 中括号[ ]中的内容是可选项。当括号中的内容由“|”分隔时,则只能选择其中的一个,或一个也不选;当括号中的内容由“,”分隔时,可选择其中的一个或多个,或一个也不选。(5) 省略号…意味着可以重复最后一个成分任意多次。4.2数据定义语言关系数据库是由一系列的关系组成的,因此,建立关系数据库的第一步工作就是建立表,描述每一个表的结构等信息。表以一定的逻辑结构和物理结构存于数据库中。SQL的数据定义语言用于创建、修改和删除数据库中的表(Table)、视图(View)和索引(Index)等。本节主要讲述关于表和索引的定义问题,视图的定义在4.5节专门介绍。4.2.1基本表的定义关系数据库中的表和常见的二维表的结构类似,表的定义包括表名和表头的定义,其中表头要描述表中各列的特征,包括列名、数据类型、长度以及相应的约束条件。在正式介绍创建表的命令之前,首先介绍定义表时用到的数据类型的定义方法。1. 数据类型SQL中常用的数据类型见表42。表42SQL中常用的数据类型数据类型名含义char(n)定长字符型,其长度为n,即占n个字节的字符串,用来保存长度(ASCII码字符的个数)小于或等于n的字符串。注意: 对于每个汉字区位码字符,其长度为2,相当于两个ASCII码字符varchar(n)长度可变的字符串型,n是最大长度,由用户指定int(integer)整数型,一般是32位字长smallint短整数型,表示的整数范围比int小,一般占16位字长float浮点型,又称实数型。该类型占4个或8个字节,能够表示相当大范围内的任何浮点数或实数,包括整数和小数decimal(m,n)或numeric(m,n)定点数,其精度由用户指定,其中m代表不包含括号位和小数点在内的数字的总位数,n则代表小数点右边的数字位数date日期型,包含年、月、日3个部分的数据time时间型,包含小时、分、秒3个部分的数据timestamp时间戳,格式为YYYYMMDD HH:MM:SS[.nnnnnn],其中nnnnnn是微秒boolean布尔型,其值为TRUE(真)、FALSE(假)除了使用系统本身支持的数据类型之外,SQL还允许用户自己定义新的数据类型,这是通过定义域的命令完成的。定义域的语法格式为:CREATE DOMAIN [AS][DEFAULT default option][CHECK (search condition)];其中,表示要创建的新域名。表示创建的新域所属的基本数据类型。DEFAULT 子句和CHECK子句是可选项,DEFAULT子句表示新定义的域的默认值,CHECK子句是一种约束子句,用于规定所定义数据类型的取值范围。【例41】定义一个专门用来标示性别的新数据类型。大家知道性别只能有两种取值: “男”或“女”,假设默认值是“男”,域名取为GENDERTYPE,那么可以这样定义这个域:CREATE DOMAIN GENDERTYPE AS char(10)DEFAULT ‘男’CHECK (value in (‘男’,’女’));一旦定义了这个域,就可以把GENDERTYPE当作一个新的数据类型来使用了,当创建表时,某一列的数据类型设为GENDERTYPE后,就限定了往表中插入数据时,取值范围是{男,女}。当不需要一个域时,可以采用删除域命令删除域的定义:DROP DOMAIN;【例42】删除性别域GENDERTYPE。DROP DOMAIN GENDERTYPE;2. 表的创建在SQL中创建基本表的语法如下:CREATE TABLE ([列级完整性约束条件][,[列级完整性约束条件]]…[,]);格式说明如下:表名: 用户自己定义要创建的表名。列名: 用户自己定义要创建的表中的列名,可以有多个。数据类型: 表中各列的取值范围,可以采用SQL的标准数据类型,也可以选用用户自己定义的数据类型。列级(或表级)完整性约束条件: 表示该列(或表)内容需要满足的约束,通常有5种。(1) 非空约束: 通过设置某列为NOT NULL,表示该列的内容不能为空,空缺时表示可以为空。(2) 唯一性约束: 通过设置某列为UNIQUE,表示该列的内容不能包含重复值(但允许有多个值为NULL)。由于主码具有唯一性,因此对主码不能再设定唯一性约束。(3) 主码约束: 表示该列为主码,用PRIMARY KEY标明。它同时蕴含了NOT NULL和UNIQUE的要求。如果主码是由多个属性列组成的,则必须采用表级完整性约束条件的方式定义,即用PRIMARY KEY(主码列列表)方式定义,其中主码列列表用“,”隔开;只涉及单个属性列时,既可以定义在列级也可以定义在表级。(4) 默认约束: 如果某列后面跟上DEFAULT,则定义了该列的默认值。如果在插入时没有指定该列的值,则DBMS自动将其值设为指定的默认值。(5) 外码约束: 表示该列是外码,用FOREIGN KEY表示。可以由两种方法定义外码。① 用列级约束定义的方式,即:如果外码只有一个属性,则可以在它的属性名和类型名后面直接用以下形式表示:FOREIGN KEY REFERENCES ();其中,是被参照的表的名称;是被参照表的相关属性名称。若被参照的属性名称与参照的属性名称相同,则可以省去。② 用表级约束定义的方式,即在定义完所有属性以后,增加一个或几个外码的说明,其格式为:FOREIGN KEY REFERENCES ()其中,是外码;是被参照的表的名称;是被参照表的相关属性名称。当采用列级定义方式时,可以省略FOREIGN KEY,直接在列名数据类型后跟上REFERENCES ()即可。无论是哪种方法,后面都还可以加上:ON DELETE(或update)RESTRICT/CASCADE/SET NULL表示当删除(或更新)被参照关系的主码值时,为了保证参照完整性,可以按以下3种方式处理: RESTRICT(限制)方式。凡是被主关系引用的外码,一律不得删除或更新。 CASCADE(级联)。若在被参照关系中删除(或更新)了某一主码值,则相应地删除(或更新)引用了此主码值的参照关系中的元组。 SET NULL。当被引用属性被删除或更新时,将参照关系中对应属性值置为空值。当然,该属性上应没有NOT NULL说明。 定义表的同时还可以定义与该表有关的完整性约束条件,这些完整性约束条件放在数据字典中,当用户操作表中数据时,由DBMS自动检查该操作是否违背这些完整性约束条件。【例43】用SQL语言定义一个“商品”表Goods,它由商品编号Gno、商品名称Gname、价格Price和批次Batch 4个属性组成。其中,商品名称不能为空。CREATE TABLE Goods(Gno CHAR(20) PRIMARY KEY,/ 列级完整性约束/Gname CHAR(50) NOT NULL,/ 列级完整性约束/
评论
还没有评论。