欢迎光临
免费的PDF电子书下载网站

SQL Server数据库技术实用教程(第二版) PDF下载

编辑推荐

 ;  ;  ;本书采用*的"工作过程导向"编写模式,以"工作场景导入"→"知识讲解"→"回到工作场景"→"工作实训营"→"习题"为主线推进学习进程。每章均针对数据库设计和实施中的一个工作过程环节来传授相关的课程内容,实现实践技能与理论知识的整合,将工作环境与学习环境有机地结合在一起。本书内容简明扼要,结构清晰,通过工作过程的讲解将关系数据库的理论知识和SQL Server 2012的使用方法有机地结合在一起,示例众多,步骤明确,讲解细致,突出可操作性和实用性,再辅以丰富的实训和课后练习,可以使学生得到充分的训练,具备使用SQL Server 2012解决实际问题的能力。 ;

内容简介

 ;  ;  ;本书是采用“工作过程导向”模式规范编写的教材,共14章,可分为两大部分:数据库的创建和数据库的管理。本书的内容组织以关系数据库的理论知识为基础,注重操作技能的培养和实际问题的解决,旨在使学生掌握Microsoft SQL Server 2012的使用和管理。本书以创建“学生管理系统”数据库为工作任务,具体内容包括设计数据库、创建数据库、创建表、更新和查询记录、T-SQL语言、视图和索引、用户自定义函数、存储过程、触发器、管理数据库安全、备份和还原数据库、导入和导出数据库中的数据。最后一章介绍了学生管理系统应用程序的设计和实施,从而创建一个完整的数据库系统。本书注重实践,结构合理,内容丰富,操作方便。 本书作为Microsoft SQL Server 2012的入门类教材,既可以作为高等职业教育计算机及相关专业的教材,也可以作为等级考试、职业资格考试或认证考试等各种培训班的培训教材,还可用于读者自学。

作者简介

暂无

SQL Server数据库技术实用教程(第二版) PDF下载

目录

目 ; ; ; 录

 ;

第1章 ; 设计数据库 ; ; ; ; 1

1.1 ; 工作场景导入 ; ; ; ; ; ; ; 2

1.2 ; 数据库概述 ; ; 2

1.3 ; 需求分析 ; ; ; ; ; ; ; 4

1.4 ; 概念模型设计 ; ; ; ; ; ; ; 5

1.5 ; 逻辑模型设计 ; ; ; ; ; ; ; 7

1.6 ; 物理模型设计 ; ; ; ; ; ; ; 10

1.7 ; 数据库的实现、运行和维护 ; ; ; ; ; ; ; 10

1.8 ;SQL Server 2012简介 ; ; ; ; 10

1.9 ; 回到工作场景 ; ; ; ; ; ; ; 14

1.10 ;工作实训营 16

1.11 ;习题 ; ; ; ; ; 16

第2章 ; 创建数据库 ; ; ; ; 19

2.1 ; 工作场景导入 ; ; ; ; ; ; ; 20

2.2 SQL Server数据库 20

2.3  数据库的创建与操作   22

2.4  文件组及其创建与使用        27

2.5  回到工作场景        31

2.6  工作实训营   35

2.7  习题        36

第3章  创建和管理表          39

3.1  工作场景导入        40

3.2  数据类型        41

3.3  表的创建与操作   45

3.4  数据完整性   49

3.5  回到工作场景        62

3.6  工作实训营   67

3.7  习题        68

第4章  插入、更新和删除记录          71

4.1  工作场景导入        72

4.2  插入记录        74

4.3  更新记录        75

4.4  删除记录        76

4.5  回到工作场景        77

4.6  工作实训营   79

4.7  习题        82

第5章  查询          87

5.1  工作场景导入        88

5.2  简单查询        92

5.3  多表连接        100

5.4  子查询   105

5.5  回到工作场景        107

5.6  工作实训营   113

5.7  习题        114

第6章  使用T-SQL语言      117

6.1  工作场景导入        118

6.2 T-SQL 语言    118

6.3 T-SQL语法要素      118

6.4 T-SQL程序      124

6.5  错误信息处理        128

6.6  事务        130

6.7  回到工作场景        132

6.8  工作实训营   134

6.9  习题        135

第7章  使用视图和索引优化查询     137

7.1  工作场景导入        138

7.2  视图        138

7.3  索引        144

7.4  回到工作场景        150

7.5  工作实训营   153

7.6  习题        154

第8章  用户自定义函数     157

8.1  工作场景导入        158

8.2  用户自定义函数介绍   158

8.3  创建用户自定义函数   159

8.4  使用用户自定义函数   163

8.5  修改用户自定义函数   166

8.6  删除用户自定义函数   166

8.7  回到工作场景        167

8.8  工作实训营   170

8.9  习题        171

第9章  存储过程          173

9.1  工作场景导入        174

9.2  存储过程介绍        174

9.3  不带参数的存储过程   175

9.4  带参数的存储过程        181

9.5  回到工作场景        184

9.6  工作实训营   186

9.7  习题        187

第10章  触发器   189

10.1 工作场景导入      190

10.2 触发器介绍 190

10.3 创建触发器 192

10.4 使用触发器 196

10.5 修改触发器 197

10.6 删除触发器 198

10.7 回到工作场景      200

10.8 工作实训营 203

10.8.1 训练实例  203

10.8.2 工作实践常见问题解析  204

10.9 习题      204

第11章  管理数据库安全   207

11.1 工作场景导入      208

11.2 SQL Server 2012的安全机制       208

11.3 SQL Server 2012的验证模式       209

11.3.1 Windows身份验证  209

11.3.2 混合身份验证  209

11.4 Windows登录      211

11.4.1 创建Windows登录 212

11.4.2 创建SQL Server登录        214

11.4.3 管理登录名       215

11.5 数据库用户 217

11.5.1 创建数据库用户       217

11.5.2 管理数据库用户       219

11.6 权限      221

11.6.1 权限类型  221

11.6.2 设置用户权限  221

11.7 角色      225

11.7.1 角色分类  225

11.7.2 创建角色  226

11.7.3 指派角色  227

11.8 回到工作场景      227

11.9 工作实训营 231

11.9.1 训练实例  231

11.9.2 工作实践常见问题解析  232

11.10 习题   232

第12章  备份和还原数据库       233

12.1 工作场景导入      234

12.2 备份和还原 234

12.2.1 备份  234

12.2.2 还原  235

12.3 完整数据库备份 235

12.3.1 创建备份  236

12.3.2 还原备份  239

12.4 事务日志备份      241

12.4.1 创建备份  241

12.4.2 还原备份  242

12.5 差异备份      244

12.5.1 创建备份  244

12.5.2 还原备份  245

12.6 文件或文件组备份      246

12.6.1 创建备份  246

12.6.2 还原备份  247

12.7 回到工作场景      248

12.8 工作实训营 250

12.8.1 训练实例  250

12.8.2 工作实践常见问题解析  251

12.9 习题      251

第13章  导入和导出数据库中的

数据         253

13.1 工作场景导入      254

13.2 使用SQL Server导入和导出向导       254

13.3 SSIS概述       259

13.3.1 SSIS介绍   259

13.3.2 SSIS的工作方式        259

13.4 使用SSIS       260

13.4.1 创建SSIS包       260

13.4.2 执行SSIS包       265

13.5 回到工作场景      266

13.6 工作实训营 267

13.6.1 训练实例  267

13.6.2 工作实践常见问题解析  268

13.7 习题      268

第14章  学生管理系统案例       269

14.1 工作场景导入      270

14.2 程序设计介绍      270

14.2.1 Microsoft Visual Studio 2015

集成环境         270

14.2.2 C#语言      271

14.2.3 ASP.NET     271

14.3 回到工作场景      272

14.3.1 基于Windows的学生管理

系统         272

14.3.2 基于Web的学生管理

系统         276

14.4 工作实训营 282

附录  各章习题参考答案     284

参考文献         298

前沿

前    言

  为适应高职院校应用型人才培养迅速发展的趋势,培养以就业市场为导向的、具备"职业化"特征的高级应用型人才,"任务驱动、项目导向"已成为高职院校主流的教学模式。本书以Microsoft SQL Server 2012(以下一般简称为SQL Server 2012)为数据库管理系统,通过创建一个完整的学生管理系统,引导学生掌握SQL Server 2012的使用和管理。

  本书不仅将使用的软件平台从第一版的Microsoft SQL Server 2008升级为第二版的Microsoft SQL Server 2012,而且对第一版中的错误进行了修正,对案例和习题进行了优化。

本书特色

  本书采用最新的"工作过程导向"编写模式,以"工作场景导入"→"知识讲解"→"回到工作场景"→"工作实训营"→"习题"为主线推进学习进程。每章均针对数据库设计和实施中的一个工作过程环节来传授相关的课程内容,实现实践技能与理论知识的整合,将工作环境与学习环境有机地结合在一起。本书内容简明扼要,结构清晰,通过工作过程的讲解将关系数据库的理论知识和SQL Server 2012的使用方法有机地结合在一起,示例众多,步骤明确,讲解细致,突出可操作性和实用性,再辅以丰富的实训和课后练习,可以使学生得到充分的训练,具备使用SQL Server 2012解决实际问题的能力。

  本书是由高职院校的优秀教师在其已有教学成果的基础上整合编写而成的,作者拥有丰富的开发案例和教学经验。

本书主要内容

  本书共14章,需要授课60个课时,用一学期进行学习。

  第 1 章介绍学生管理数据库的设计。通过本章任务的完成,主要学习数据库的基本概念、发展历史、系统结构,数据库的需求分析、概念模型设计、逻辑模型设计、物理模型设计,了解SQL Server 2012组件,为后面使用SQL Server 2012做准备。

  第2章讲解如何创建学生管理数据库。通过本章任务的完成,主要掌握SQL Server数据库的分类和组成的文件,了解SQL Server数据库中数据的存储方式,掌握创建数据库的方法,掌握文件组的概念、作用和创建的方法。

  第3章介绍如何创建学生管理数据库中的五个表,设置表的数据完整性,并在表中录入记录。通过本章任务的完成,掌握使用SQL Server系统数据类型和创建用户定义数据类型的方法,创建、修改、删除表的方法,在表中录入记录的方法,以及数据完整性的概念、分类和具体实施方法。

  第4章通过在学生管理数据库的表中使用T-SQL语句插入、更新和删除记录,学习插入单个记录和多个记录的方法、更新记录(包括根据子查询更新记录)的方法、删除记录(包括根据子查询删除记录)的方法、清空表的方法。

  第5章讲解如何查询学生管理数据库中的记录,学习简单查询、多表连接和子查询。

  第6章介绍三个任务,第一个任务是判断闰年,讲解T-SQL语言的基础知识,包括T-SQL 语法要素、T-SQL程序;第二个任务是带错误信息提示的单语句插入记录操作,介绍T-SQL语言中的错误信息处理;第三个任务是带错误信息提示的多语句更新记录操作,介绍事务的概念、属性、分类和使用。

  第7章介绍四个任务,前三个任务是创建、使用和修改可以查询所有学生的姓名、课程名称和成绩的视图,学习视图的概念、分类、创建和使用;第四个任务是在学生表上分别创建两个索引,学习索引的概念、分类、创建、设计和优化。

  第8章通过统计学生的学期课程门数及成绩,以及各门课程的最高分和最低分,来学习用户自定义函数的概念、作用、分类和使用。

  第9章通过讲解创建存储过程用于重复的查询任务,学习存储过程的概念、分类和作用,创建和使用存储过程的方法,存储过程中输入参数和输出参数的使用方法。

  第10章介绍四个任务,前三个任务是根据学生表的学生记录的插入、更新和删除操作来修改班级表中该班级的人数,第四个任务是防止数据库中成绩表的结构被随意修改。通过本章任务的完成,学习触发器的概念、分类、工作原理、创建和使用。

  第11章通过控制数据库管理员、教师用户、学生用户对学生管理数据库和成绩表的操作权限,来讲解SQL Server 2012的安全机制和验证模式,介绍登录、用户、权限的创建与管理,角色的概念、分类、创建和使用。

  第12章讲解学生管理数据库的备份和还原,包括备份和还原的概念,备份的类型,创建完整数据库备份、事务日志备份、差异备份和文件或文件组备份的方法,以及还原各种备份的方法。

  第13章通过导入和导出学生管理数据库中学生的个人信息,学习SSIS的作用和工作方式,掌握创建和执行SSIS包来导入和导出数据库中数据的方法。

  第14章设计并完成基于Windows的学生管理系统和基于Web的学生管理系统。通过本章任务的完成,学习Windows应用程序的创建方法、Web应用程序的创建方法、注册和登录页面的设计方法,以及学生信息查询功能的实现方法。

读者对象

  本书作为Microsoft SQL Server 2012入门类教材,既可以作为高等职业教育计算机及相关专业的教材,也可以作为等级考试、职业资格考试或认证考试等各种培训班的培训教材,还可用于读者自学。

本书读者

  本书由高云(南京信息职业技术学院)任主编,崔艳春(南京信息职业技术学院)任副主编,其中第1~7章由高云编写,第8~14章由崔艳春编写,由高云负责统稿。全书框架结构由何光明拟定。另外,本书的编写得到陈海燕、王珊珊、吴涛涛、赵梨花、张伍荣、李海、赵明、吴婷、许勇、姚昌顺、戴仕明等同志的大力支持和帮助,在此表示感谢。限于作者水平,书中难免存在不当之处,恳请广大读者批评指正。

 

 

                             编  者

免费在线读

第1章  设计数据库

本章要点:
数据库的发展历史和数据库的基本概念。
需求分析。
概念模型设计。
逻辑模型设计。
物理模型设计。
数据库的实现、运行和维护。
SQL Server 2012数据库管理系统。

技能目标:
掌握数据库的基本概念和数据库的发展历史。
了解需求分析的任务和方法。
掌握概念模型的概念和设计方法。
掌握逻辑模型的概念和设计方法。
了解物理模型的概念和设计方法。
了解数据库的实现、运行和维护的内容。
熟悉SQL Server 2012数据库管理系统的功能和组成部分。
  

1.1  工作场景导入
  【工作场景】
  为了提高教务管理工作水平,达到学校日常管理工作信息化、智能化的要求,教务处要求信息管理员小孙创建一个学生成绩管理系统。学生成绩管理系统所涉及的信息包括校内所有的系、班级、学生、课程和学生成绩。
  学生成绩管理系统的具体实施步骤分成两步。
  第一步,创建一个学生成绩数据库,将系统所有的信息存储在数据库中。
  第二步,以学生成绩数据库为基础创建学生成绩管理系统,通过Windows应用程序或浏览器来完成系统信息的修改和查询。
  【引导问题】
  (1) 什么是数据库?数据库的发展历史是怎样的?
  (2) 怎样完成需求分析?
  (3) 怎样完成概念模型设计?
  (4) 怎样完成逻辑模型设计?
  (5) 怎样完成物理模型设计?
  (6) 怎样完成数据库的实施、运行和维护?
  (7) 什么是SQL Server 2012?
1.2  数据库概述
1.2.1  数据库的基本概念
  数据是描述事物的符号记录。数据包括文字、图形、图像、声音等。
  数据库(Database,DB)是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合。数据库中的数据是按照一定的数据模型组织、描述和存储的,有较小的冗余度、较高的数据独立性和易扩展性。
  数据库管理系统(Database Management System,DBMS)是使用和管理数据库的系统软件,负责对数据库进行统一的管理和控制。所有对数据库的操作都交由数据库管理系统完成,这使得数据库的安全性和完整性得以保证。
  数据库管理员(Database Administrator,DBA)是专门负责管理和维护数据库服务器的人。通常,数据库管理员的工作职责包括安装和升级数据库服务器及应用程序工具,编制数据库设计系统存储方案并制订未来的存储需求计划,根据应用来创建和修改数据库,管理和监控数据库的用户,监控和优化数据库的性能,制订数据库备份计划,定期进行数据库备份,在灾难出现时对数据库信息进行恢复等。在实际工作中,可能一个数据库有一个或多个数据库管理员,也可能一个数据库管理员同时负责系统中的多项工作。
  数据库系统(Database System,DBS)是由数据库及其相关应用软件、支撑环境和使用人员所组成的系统,专门用于完成特定的业务信息处理。数据库系统通常由数据库、数据库管理系统、数据库管理员、用户和应用程序组成。
1.2.2  数据库的发展历史
  数据库的发展大致可划分为以下几个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
  (1) 人工管理阶段。20世纪50年代中期之前,计算机刚刚出现,主要用于科学计算。硬件存储设备只有磁带、卡片和纸带;软件方面还没有操作系统,没有专门管理数据的软件。因此,程序员在程序中不仅要规定数据的逻辑结构,还要设计其物理结构,包括存储结构、存取方法、输入/输出方式等。数据的组织单纯面向该应用,不同的计算程序之间不能共享数据,使得不同的应用之间存在大量的重复数据,数据与程序不独立。数据是通过批处理方式进行处理的,处理结果不保存,难以重复使用。
  (2) 文件系统阶段。20世纪50年代中期到60年代中期,随着计算机大容量存储设备(如硬盘)和操作系统的出现,数据管理进入文件系统阶段。在文件系统阶段,数据以文件为单位存储在外存,且由操作系统统一管理。用户通过操作系统的界面管理数据文件。文件的逻辑结构与物理结构相对独立,程序和数据分离。用户的程序与数据可分别存放在外存储器上,各个应用程序可以共享一组数据,通过文件来进行数据共享。但是,数据在文件中的组织方式仍然是由程序决定的,因此必然存在相当大的数据冗余。数据的逻辑结构和应用程序相关联,一方修改,必然导致另一方也要随之修改。简单的数据文件不能体现现实世界中数据之间的联系,只能交由应用程序来进行处理,缺乏独立性。
  (3) 数据库系统阶段。20世纪60年代后,随着计算机在数据管理领域的普遍应用,数据管理开始运用数据库技术,进入了数据库系统阶段。数据库技术以数据为中心组织数据,采用一定的数据模型。数据模型不仅体现数据本身的特征,而且体现数据之间的联系。形成的数据库数据冗余小,易修改,易扩充,便于共享,程序和数据有较高的独立性。不同的应用程序对数据库的操作均由数据库管理系统统一执行,这就保证了数据的安全性、完整性,可有效地完成并发管理。
1.2.3  数据库系统的结构
  数据库系统通常采用3级模式结构,即数据库系统由模式、外模式和内模式3级组成。
* 模式。模式也称逻辑模式,表示数据库中全体数据的逻辑结构、数据之间的联系、安全性和完整性要求,是完整的数据视图。模式所描述的逻辑结构包含整个数据库。
* 外模式。外模式也称子模式或者用户模式,表示数据库用户能够使用的部分数据的逻辑结构和特征,是用户的数据视图。外模式面向用户,用于描述用户所关心的数据。
* 内模式。内模式也称存储模式,表示数据库中数据的物理结构和存储结构。内模式描述了数据库在物理存储设备上的存储方式。
  外模式可以有多个,而模式只有一个。每个外模式和模式之间存在外模式与模式映像,是外模式和模式之间的对应关系。当模式改变时,外模式与模式的映像随之改变,使得外模式保持不变,使用外模式的应用程序也保持不变,保证了数据的逻辑独立性。逻辑独立性将数据库的结构与应用程序相分离,减少了修改应用程序的工作量。
  内模式和模式一样,只有一个。模式和内模式之间存在模式与内模式映像,是模式和内模式之间的对应关系。当内模式改变时,模式与内模式的映像随之改变,使得模式保持不变,保证了数据的物理独立性。
1.3  需求分析
  自数据库系统阶段至今,人们将软件工程的理论应用于数据库设计,形成了一个完整的数据库设计实施方法,整个过程包括需求分析、概念模型设计、逻辑模型设计、物理模型设计及数据库实现、运行和维护5个阶段。
1.3.1  需求分析的任务
  需求分析的内容是充分调查研究,收集基础数据,了解系统运行环境,明确用户需求,确定新系统的功能,最终得到系统需求分析说明书,作为设计数据库的依据。
  需求分析所调查的重点是数据和处理,以获得用户对数据库的以下要求:用户需要从数据库中获得信息的内容与性质;用户要完成什么处理功能,对处理的响应时间有什么要求;安全性和数据完整性要求;企业的环境特征,包括企业的规模与结构、部门的地理分布、主管部门对机构的规定与要求、对系统费用与利益的限制及未来系统的发展方向。
1.3.2  需求分析的方法
  在做需求分析时,首先要了解用户单位的组织机构组成,然后调查用户单位的日常业务活动流程。在此基础上,明确用户的信息需求和系统概念需求,明确用户对系统的性能和成本的要求,确认数据项,产生系统需求说明书。需求分析的调查方法包括跟班作业、开调查会、请专人调查、发放用户调查表和查阅原系统有关记录。
1.3.3  需求分析的成果
  需求分析生成的结果包括数据字典、数据流图、判定表、判定树等。
  (1) 数据字典是系统中所有数据及其处理的描述信息的集合。数据字典由数据项、数据结构、数据流、数据存储及处理过程组成。
  (2) 数据流图是结构化分析方法中使用的图形化工具,描绘数据在系统中流动和处理的过程。
  数据流图包括数据流、数据源、对数据的加工处理和数据存储。数据流图根据层级不同可分为顶层数据流图、中层数据流图和底层数据流图。顶层数据流图经过细化可以产生中层流图和底层流图。
  (3) 判定表和判定树是描述加工的图形工具,分别是表格和树状结构,适合描述问题处理中具有多个判断的结构,而且每个决策与若干条件有关。判定表和判定树可以给出判定条件和判定决策,以及判定条件的从属关系、并列关系和选择关系。
1.4  概念模型设计
  需求分析结束后,进入概念模型设计阶段。
1.4.1  数据模型
  数据模型是用来描述现实世界的数据、数据之间的联系、数据的语义和完整性约束的工具。数据模型包括概念模型、逻辑模型和物理模型。
1.4.2  概念模型
  概念模型要能真实地反映现实世界,包括事物和相互之间的联系,能满足用户对数据的处理要求,是表示现实世界的一个真实模型。概念模型是用户与数据库设计人员之间进行交流的语言。概念模型不依赖于特定的数据库管理系统,但可以转换为特定的数据库管理系统所支持的数据模型。因此,概念模型要易于理解、易于扩充和易于向各种类型的逻辑模型转换。
1.4.3  概念模型设计的任务
  概念模型设计的任务是根据需求分析说明书对现实世界进行数据抽象,建立概念模型。概念模型的作用是与用户沟通,确认系统的信息和功能,与DBMS无关。
1.4.4  概念模型设计的方法
  概念模型的设计方法有4种,分别是自顶向下、自底向上、逐步扩张和混合策略。自顶向下是指先设计概念模型的总体框架,再逐步细化。自底向上是指先设计局部概念模型,再合并成总体。逐步扩张是指先设计概念模型的主要部分,再逐步扩充。混合策略是指将自顶向下和自底向上相结合,先设计概念模型的总体框架,再根据框架来合并各局部概念模型。
1.4.5  概念模型设计的成果
  概念模型有实体-联系模型、面向对象的数据模型、二元数据模型、语义数据模型、函数数据模型等。下面仅介绍常用的实体-联系模型。
1.4.6  实体-联系模型
  实体-联系模型是用E-R图来描述现实世界的概念模型。实体-联系模型中的基本概念有以下几个。
* 实体。实体是现实世界中可区分的客观对象或抽象概念,如一个学生、一门课程。
* 属性。属性是实体所具有的特征,如每个学生都有学生编号、姓名、性别、班级、出生日期等属性。
* 实体集。实体集是具有相同属性描述的实体的集合,如学生、课程。
* 联系。两个实体集之间存在一对一、一对多和多对多3种联系。例如,一个班级只有一个班长,班级和班长之间是一对一的联系;一个学生属于一个班级,一个班级有多个学生,班级和学生之间是一对多的联系;一个学生选修多门课程,一门课程有多个学生选修,课程和学生之间是多对多的联系。
* 键。键是可以将实体集中的每个实体进行区分的属性或属性集,也称主属性。例如,每个学生的学生编号绝不相同,学生编号这个属性可以作为学生实体集的键。
* 域。域是实体集的各个属性的取值范围。例如,学生的性别属性取值为"男"或"女"。
  E-R图的内容包括实体集、属性和联系。E-R图中,实体集用矩形表示,内有实体集名称;属性用椭圆形表示,内有属性名称,并用直线与所属实体型相连,作为键的属性用下划线标出;联系用菱形表示,内有联系名称,并用直线与实体集相连,且在联系旁边注明联系的类型(如1∶1、1∶n或者m∶n)。如果联系有属性,那么也要用直线将属性和联系相连,如图1.1所示。

图1.1  E-R图
  
采用实体-联系模型进行概念模型设计的步骤分为如下3步。
  (1) 设计局部实体-联系模型。具体任务是确定局部实体-联系模型中的实体集、实体集的属性、键、实体集之间的联系和属性,画出局部E-R图。
  (2) 设计全局实体-联系模型。具体任务是合并局部E-R图,生成全局E-R图,并消除局部E-R图合并时产生的冲突。
  (3) 优化全局E-R模型。具体任务是修改全局E-R图,消除冗余属性和冗余联系,得到最终的E-R图。
1.5  逻辑模型设计
  概念模型设计结束后,进入逻辑模型设计阶段。
1.5.1  逻辑模型
  逻辑模型通常由数据结构、数据操作和完整性约束组成。其中,数据结构是指表示与数据类型、内容、性质等有关的系统静态特性,数据操作是数据库检索和更新操作的含义、规则和实现的语言,数据的约束条件是逻辑模型中数据及其联系所要遵守的完整性规则的集合。
  逻辑模型是数据库系统的核心和基础。逻辑模型设计的要求是把概念模型转换成所选用的数据库管理系统所支持的特定类型的逻辑模型。
  已有的逻辑模型有层次模型、网状模型和关系模型。
  (1) 层次模型的总体结构为树形结构,其中节点表示记录类型,每个记录类型包含多个属性,节点之间的连线表示记录类型之间的联系,除根节点外的所有节点有且只有一个双亲节点。层次模型的优点是简单,完整性支持良好,适用于层次性联系的场合;缺点是插入和删除操作的限制较多,查询必须逐级通过双亲节点。
  (2) 网状模型允许节点有零个乃至多个双亲,还允许节点之间有多个联系。它较之层次模型更接近现实,存取效率高;但数据独立性复杂,在存取时要指定路径。
  (3) 关系模型建立在严格的数学概念基础上,是当前流行的逻辑模型。关系模型中以表来表示实体和实体之间的联系,以表来存储记录,数据结构简单,存取路径透明,具有良好的数据独立性和安全保密性。
1.5.2  关系模型的概念
  关系模型中,表是基础逻辑结构,由行和列组成,如表1.1所示。

表1.1  教师信息表
教师工号
姓  名
性  别
出生日期
职  称
09001
王斌

1975-3-26
副教授
09002
李梅

1977-6-2
讲师
09003
金志明

1957-12-15
教授
09004
王思思

1981-3-2
助教
  
  关系模型中的基本概念如下。
* 关系:表。
* 元组:也称作记录,指表中的一行。关系中的元组不能重复,而且理论上没有顺序。
* 属性:也称作字段,指表中的一列。关系中的属性值具有原子性,不可分解。
* 码:表中可以唯一确定一个元组的属性或者属性组。
* 候选码:表中所有可以唯一确定一个元组的属性或者属性组。
* 主码:也称作键,指表中唯一确定一个元组的属性或者属性组。
* 外码:不是表中的码,而是与另一个表中的主码相对应的属性或者属性组。
* 域:属性的取值范围。
* 分量:一个元组中的某个属性值。
* 关系模式:对关系的描述,可写成:关系名(属性1,属性2,...,属性n)。
* 关系模型的数据操作主要包括查询、插入、更新和删除。
* 关系模型的完整性分为3类,即实体完整性、参照完整性和用户自定义完整性。其中,实体完整性是指关系的主码值不能为空值;参照完整性是指关系的外码值必须为空值或者等于所对应主码所在关系中某个元组的主码值。
1.5.3  逻辑模型设计的任务
  逻辑模型设计的任务是把概念结构模型转换为所使用的DBMS所支持的逻辑模型。
1.5.4  关系模型设计的方法
  将实体-联系模型转换成关系模型的步骤分为如下3步。
  (1) 将E-R图转换为关系模式集合。
  在转换时,E-R图中的一个实体集转换为一个关系模式,实体集中的属性转换为关系模式的属性,实体集的码转换为关系模式的关键字。E-R图中的联系也要进行转换,转换方法如下:一对一的联系可以转换成单个关系模式,也可以与任意一端的实体集转换成的关系模式合并;一对多的联系可以转换成单个关系模式,也可以与多端的实体集转换成的关系模式合并;多对多、3个及3个以上的联系只能转换成单个关系模式。
  (2) 对关系模式集合进行规范化处理,满足一定的范式。
  范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足不同的范式。目前关系数据库有6种范式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以此类推。一般来说,数据库只需满足第三范式(3NF)即可。
  第一范式是指表的每一列都是不可分割的基本数据项,同一列中不能有多个值,不能存在两条记录具有完全相同的属性值。在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。例如,学生信息表的属性包含学生编号、学生姓名、班级编号和联系方式,其中联系方式不能将电话、地址和邮编这3类数据合在一列中显示,解决的方法是在学生信息表中设置电话、地址和邮编3列,分别保存这3部分数据。一个学生的记录只能对应学生信息表中的一条记录,不能有两条记录同时对应一个学生。
  第二范式建立在第一范式的基础上,即满足第二范式必须先满足第一范式。第二范式要求实体的属性完全依赖于主码,即不能存在仅依赖主码一部分的属性。如果存在,那么这个属性和主码的这一部分应该分解形成一个新的实体集,新实体集与原实体集之间是一对多的关系。第二范式要求实体集的非主属性不能部分依赖于主码。例如,成绩表的属性包含学生编号、课程编号、成绩、学生姓名、班级编号,主码是学生编号和课程编号。但是,学生姓名和班级编号属性可以由学生编号属性推知,因此成绩表的结构不符合第二范式。这样设计的表在使用中有很多问题,插入一个学生的所有课程成绩将反复插入该学生的基本信息,如果删除该学生的所有课程成绩将导致删除该学生的基本信息,如果该学生的基本信息有变化又需要将其所有的成绩记录进行更新。为了解决数据冗余和重复操作的问题,可以将其中的学生编号、学生姓名和班级属性分解出来,形成学生信息表,原有的成绩表保留学生编号、课程编号和成绩属性。这样调整可使得两个表均满足第二范式的要求。
  第三范式建立在第二范式的基础上,要求一个数据库表中不包含其他表中已包含的非主码信息,即第三范式就是属性不依赖于其他非主属性,也就是不存在传递依赖。例如,班级信息表的属性包含班级编号、班级名称、系名称、系简介,主码是班级编号。如果插入同一个系的两个班级的信息,将产生两条记录,其中系名称和系简介完全一样。其实,同一个系的系名称和系简介是一样的。这样又会产生大量的数据冗余。可以添加系信息表,系信息表的属性包含系编号、系名称、系简介,主码是系编号,在班级信息表中删除系名称和系简介,添加系编号。这样使得数据库满足第三范式的要求。
  BCNF是指关系模式的所有属性都不传递依赖于该关系模式的任何候选码,或是每个决定因素都包含码。第一范式到BCNF的4种范式之间有以下关系:BCNF高于第三范式、高于第二范式、高于第一范式。
  综上所述,规范化的目的是使结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。在对关系模式进行规范化时,必须遵从概念单一化原则,即一个关系模式描述一个实体或实体间的一种联系。规范化的操作方法是将关系模式分解成两个或多个关系模式,分解后的关系模式集合必须保证不会丢失原有关系的信息。实际操作时,并不一定要求全部模式都达到BCNF,有时故意保留部分冗余以便于数据查询。
  (3) 优化关系模式,定义数据完整性、安全性,评估性能。
1.6  物理模型设计
1.6.1  物理模型设计的任务
  物理模型的设计是要选取一个最适合数据库应用环境的物理结构,包括数据库的存储记录格式、存储记录安排和存取方法,使得数据库具有良好的响应速度、足够的事务流量和适宜的存储空间。它与系统硬件环境、存储介质性能和DBMS有关。
1.6.2  物理模型设计的方法
  在关系模型数据库中,物理模型主要包括存储记录结构的设计、数据存放位置、存取方法、完整性、安全性和应用程序。其中,存储记录结构包括记录的组成、数据项的类型和长度以及逻辑记录到存储记录的映像。数据存放位置是指是否要把经常访问的数据结合在一起。存取方法是指聚集索引和非聚集索引的使用。完整性和安全性是指对数据库完整性、安全性、有效性、效率等方面进行分析并做出配置。物理模型设计的内容包括分析影响数据库物理模型设计的因素,确定数据的存放位置、存取方法、索引和聚集,使空间利用率达到最大,系统数据操作负荷最小。
1.7  数据库的实现、运行和维护
  数据库实现的内容包括使用DBMS创建实际数据库结构、加载初始数据、编制和调试相应的数据库系统应用程序。数据库的运行内容是指使用已加载的初始数据对数据库系统进行试运行、制订合理的数据备份计划、调整数据库的安全性和完整性条件。数据库的维护内容是对系统的运行进行监督,及时发现系统的问题,给出解决方案。
1.8  SQL Server 2012简介
1.8.1  SQL Server 2012产品性能
  SQL Server 是一个关系数据库管理系统,最初是由Microsoft、Sybase及Ashton-Tate三家公司开发的,于1988 年推出了第一个OS/2 版本。1992年,Microsoft 将SQL Server 移植到Windows NT系统上。后来,Microsoft不断对SQL Server的功能进行扩充,推出了更多产品版本,分别是SQL Server 7.0、SQL Server 2000、SQL Server 2005、SQL Server 2008、SQL Server 2012和SQL Server 2014。本书使用的是SQL Server 2012。
  SQL Server 2012是一个重要的产品版本。作为新一代的数据平台产品,SQL Server 2012全面支持云技术,并且能够快速构建相应的解决方案,实现私有云与公有云之间数据的扩展与应用的迁移。SQL Server 2012的云计算信息平台可帮助企业对整个组织有突破性的深入了解,并且能够快速在内部和公共云端重新部署方案和扩展数据,提供对企业基础架构最高级别的支持。在业界领先的商业智能领域,SQL Server 2012 提供了更多更全面的功能以满足不同人群对数据以及信息的需求,包括支持来自不同网络环境的数据的交互,全面的自助分析等创新功能。针对大数据以及数据仓库,SQL Server 2012 提供从数 TB 到数百 TB 全面端到端的解决方案。
  SQL Server 2012推出了许多新的特性和关键的改进,包括通过 AlwaysOn 提供所需运行时间和数据保护,通过列存储索引获得突破性和可预测的性能,通过用于组的新用户定义角色和默认架构来帮助实现安全性和遵从性,通过列存储索引实现快速数据恢复以便更深入地了解组织,通过SSIS改进、用于Excel的 Master Data Services外接程序和新Data Quality Services,确保更加可靠、一致的数据,通过使用 SQL Azure 和 SQL Server 数据工具的数据层应用程序组件(DAC)奇偶校验,优化服务器和云间的IT和开发人员的工作效率,从而在数据库、BI和云功能间实现统一的开发体验。
1.8.2  SQL Server 2012产品版本
  SQL Server 2012包含企业版(Enterprise)、商业智能版(Business Intelligence)、标准版(Standard)、Web版、开发者版(Developer)和精简版(Express)。不同的版本具备不同的性能、功能和价格。
  (1) 企业版。SQL Server 2012企业版是一个全面的数据管理和业务智能平台,提供了全面的高端数据中心功能,可为关键任务工作负荷提供较高服务级别,支持最终用户访问深层数据。它的性能极为快捷、虚拟化不受限制,为关键业务应用提供了企业级的可扩展性、数据仓库、安全、高级分析和报表支持,可以提供更加坚固的服务器和执行大规模在线事务处理。
  (2) 商业智能版。SQL Server 2012商业智能版是一个值得信赖的数据管理和报表平台,可支持组织构建和部署安全、可扩展且易于管理的商业智能解决方案。它提供基于浏览器的数据浏览与可见性等卓越功能、功能强大的数据集成功能,以及增强的集成管理。
  (3) 标准版。SQL Server 2012标准版是一个完整的数据管理和业务智能平台,为部门级应用提供了最佳的易用性和可管理特性,提供了基本数据管理和商业智能数据库,使部门和小型组织能够顺利运行其应用程序,并支持将常用开发工具用于内部部署和云部署,有助于以最少的 IT 资源获得高效的数据库管理。
  (4) Web版。SQL Server 2012 Web版是针对运行于Windows服务器中要求高可用、面向Internet Web服务的环境而设计的,为实现低成本、大规模、高可用性的Web应用或客户托管解决方案提供了必要的支持工具。
  (5) 开发者版。SQL Server 2012开发者版允许开发人员构建和测试基于SQL Server的任意类型应用。这一版本拥有所有企业版的特性,但只限于在开发、测试和演示中使用,而不能用作生产服务器。
  (6) 精简版。SQL Server 2012精简版是SQL Server的一个免费版本,拥有核心的数据库功能,它是为了学习、创建桌面应用和小型服务器应用而发布的。
1.8.3  SQL Server 2012管理工具
  SQL Server 2012的管理工具介绍如下。
  (1) SQL Server Management Studio。SQL Server Management Studio是一套管理工具,用于管理从属于SQL Server 的组件。SQL Server Management Studio 包含用于编写和编辑脚本的代码编辑器,用于查找、修改、编写、运行脚本或运行SQL Server实例的对象资源管理器,用于查找模板以及为模板编写脚本的模板资源管理器,用于将相关脚本组织并存储为项目一部分的解决方案资源管理器,用于显示当前选定对象属性的属性窗口。SQL Server Management Studio提供了用于数据库管理的图形工具和功能丰富的开发环境,使得SQL Server的各组件可以协同工作,如图1.2所示。

图1.2  SQL Server Management Studio
  (2) SQL Server配置管理器。使用 SQL Server 配置管理器可以配置 SQL Server 服务 和网络连接,如图1.3所示。SQL Server 配置管理器管理与 SQL Server 相关的服务,包括启动、停止和暂停服务,配置服务启动方式,禁用服务,修改服务配置,更改SQL Server服务所使用的账户密码,使用命令行参数启动SQL Server,查看服务的属性。SQL Server 配置管理器可以启用或禁用服务器SQL Server 网络协议,配置服务器SQL Server 网络协议。SQL Server配置管理器可以完成客户端连接到 SQL Server 实例时的协议顺序,配置客户端连接协议,创建SQL Server实例的别名,使客户端能够使用自定义连接字符串进行连接。

图1.3  SQL Server配置管理器
  (3) SQL Server Profiler。SQL Server Profiler是用于监视SQL Server 2012数据库引擎和分析服务的实时监视工具,如图1.4所示。SQL Server Profiler显示SQL Server的内部解析查询,供用户监视系统和分析查询性能。SQL Server Profiler可以创建基于可重用模板的跟踪,在跟踪运行时监视跟踪结果,并将跟踪结果存储在表中,根据需要启动、停止、暂停和修改跟踪结果,重播跟踪结果。

图1.4  SQL Server Profiler
  (4) 数据库引擎优化顾问。数据库引擎优化顾问是一种工具,用于分析在一个或多个数据库中运行的工作负荷的性能效果,并提供修改数据库物理结构的建议,包括添加、修改和删除聚集索引、非聚集索引、索引视图和分区,使得查询处理器能够用最短的时间执行工作负荷任务,从而帮助用户优化数据库的结构,如图1.5所示。

图1.5  数据库引擎优化顾问
  (5) 数据质量客户端。数据质量客户端提供了一个非常简单和直观的图形用户界面,用于连接到 DQS 数据库并执行数据清理操作,可以集中监视在数据清理操作过程中执行的各项活动。
  (6) SQL Server数据工具。SQL Server 数据工具(SSDT)为Analysis Services、Reporting Services 和 Integration Services提供集成环境并帮助生成解决方案。SSDT 中的数据库项目使得可以在 Visual Studio 内为任何 SQL Server 平台(无论是内部还是外部)执行其所有数据库设计工作。
  (7) 连接组件。连接组件是客户端和服务器之间通信的组件以及用于 DB-Library、ODBC 和 OLE DB 的网络库。
1.9  回到工作场景
  通过对1.2~1.8节内容的学习,已经掌握了数据库的基本概念和数据库发展历史,了解了需求分析,掌握了概念模型设计和逻辑模型设计,了解了物理模型设计、数据库实现、运行和数据库维护,熟悉了SQL Server 2012的组成,此时足以完成学生成绩数据库的设计。下面回到前面介绍的工作场景中,完成工作任务。
  【工作过程】
  创建一个学生成绩数据库,涉及的信息包括校内所有的系、班级、学生、课程和学生成绩。
  本章首先完成学生成绩数据库的设计,具体数据库的建立在后面章节中完成。
  学生成绩数据库的信息内容为:每个系有系编号、系名称,每个班级有班级编号、班级名称、专业、所属系,每个学生有学生编号、姓名、班级编号、生日、性别、住址,每门课程有课程编号、课程名称、课程类别、学分。每位学生属于一个班级,每个班级属于一个系,每个学生修多门课程,每门课程有多个学生选修,并有课程成绩。
  先画出学生成绩数据库的E-R图,再转换成关系模型。
  由题意可知,学生成绩数据库E-R图中包含4个实体集:系、班级、学生和课程。各实体集的属性设计为:系(系编号,系名称),班级(班级编号,班级名称,专业,系编号),学生(学生编号,姓名,班级编号,生日,性别,住址),课程(课程编号,课程名称,课程类别,学分)。各实体集之间的联系包括:班级与系之间的隶属关系;学生与班级之间的隶属关系;学生选修课程之间的"选修"联系,"选修"联系应有成绩属性。根据以上分析得到E-R图,如图1.6所示。
  根据学生成绩数据库E-R图,转换得到学生成绩数据库的关系模式如下。
  系(系编号,系名称)。
  班级(班级编号,班级名称,专业,系编号)。
  学生(学生编号,姓名,班级编号,生日,性别,住址)。
  课程(课程编号,课程名称,课程类别,学分)。
  成绩(学生编号,课程编号,成绩)。

图1.6  学生成绩数据库E-R图

1.10  工作实训营
1.10.1  训练实例
1. 训练内容
  设计一个商品信息管理数据库,其信息内容如下。
  每个业务员有工号、姓名,每种商品有商品编号、商品名称、价格、库存数量。
  每个业务员可以销售多种商品,每种商品可以由多个业务员销售。销售记录有销售编号、商品编号、数量、销售日期、工号。
  每种商品可以由多个供应商供应,每个供应商有供应商编号、供应商名称、联系电话。
  每个供应商可以供应多种商品,每个供应记录有供应编号、商品编号、数量、价格、供应日期、供应商编号。
  先画出商品信息管理数据库的E-R图,再转换成关系模型。
2. 训练目的
  (1) 掌握概念模型设计。
  (2) 掌握逻辑模型设计。
3. 训练过程
  参照1.9节中的操作步骤。
4. 技术要点
  在画E-R图时,要注意E-R图中各实体间的联系及联系上的属性。
1.10.2  工作实践常见问题解析
  【常见问题】如何把握数据库中表的规范化程度?
  【答】所谓规范化处理,是指使用正规的方法将数据分为多个相关的表。规范化数据库中的表列数少,非规范化数据库中的表列数多。规范化的表排序时速度可以大大提高,使表中的索引使用更少的列,可提高数据库性能。通常,合理的规范化会提高性能。但随着规范化的不断提高,查询时常常需要连接查询和复杂的查询语句,这会影响到查询的性能和速度。因此,在满足查询性能要求的条件下,尽量提高数据库的规范化程度,适当的数据冗余对数据库的业务处理是必要的,不必简单追求高规范化。
1.11  习题
一、填空题
  (1) 数据是____________________________________。
  (2) 数据库是一个____________________________________的数据集合。数据库中的数据是按照一定的____________________________________组织、描述和存储的,有较小的____________________________________、较高的__________________________________。
  (3) 数据库管理系统是使用和管理数据库的____________________________________,负责对数据库进行统一的管理和控制。
  (4) 数据库管理员是专门负责____________________________________的人。
  (5) 数据库的发展大致划分为以下几个阶段:________________________________、____________________________和_______________________。
  (6) 数据库系统通常采用3级模式结构,即数据库系统由_________________________、_________________________和_______________________3级组成。
  (7) 数据库设计实施的整个过程包括____________________________________、____________________________________、____________________________________、___________________________________、_________________________________5个阶段。
  (8) 需求分析生成的结果包括________________________________________________、____________________________________、____________________________________和____________________________________等。
  (9) 实体-联系模型属于____________________________________模型。实体-联系模型是用________________________________图来描述现实世界的概念模型。E-R图的内容包括____________________________________。
  (10) 逻辑模型通常由____________________________________________________、____________________________________和___________________________________组成。
  (11) 关系模型的完整性分为3类,即____________________________________、____________________________________和____________________________________。
  (12) 两个实体集之间的联系种类分为____________________________________、____________________________________和____________________________________。在转换成关系模式时,________________________________的联系可以转换成单个关系模式,也可以与任意一端的实体集转换成的关系模式合并;________________________________的联系可以转换成单个关系模式,也可以与多端的实体集转换成的关系模式合并;____________________________________的联系只能转换成单个关系模式。
二、操作题
  设计一个图书管理数据库,信息内容如下。
  每本图书属于一个图书类别,每个图书类别有多本图书。每本图书有图书编号、图书名称、类别编号。每个图书类别有类别编号、类别名称。
  每个读者属于一个读者类别,每个读者类别有多个读者。每个读者有读者编号、读者姓名、类别编号、生日、性别、住址、邮编、电话、注册日期、当前状态、备注。每个读者类别有类别编号、类别名称、借书最大数量、借书期限。
  每个读者可以借阅多本图书,每本图书可以被多次借阅。每次借阅记录有记录编号、读者编号、图书编号、借出日期、还入日期、状态。
  先画出图书管理数据库的E-R图,再转换成关系模型。

 

SQL Server数据库技术实用教程(第二版) pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:SQL Server数据库技术实用教程(第二版)