《数据库系统原理与应用SQL Server 》教学指导.docx
- 文档编号:27536205
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:35
- 大小:29.11KB
《数据库系统原理与应用SQL Server 》教学指导.docx
《《数据库系统原理与应用SQL Server 》教学指导.docx》由会员分享,可在线阅读,更多相关《《数据库系统原理与应用SQL Server 》教学指导.docx(35页珍藏版)》请在冰豆网上搜索。
《数据库系统原理与应用SQLServer》教学指导
《数据库系统原理与应用(SQLServer2000)》
教
学
指
导
概述
为什么需要这门课程
当今的计算环境,通常可分为后端应用程序和前端应用程序,两者交互作用,协同工作。
前端应用程序由前端工具开发,既可以是运行于桌面的独立软件,也可以是基于Web的应用系统。
最终用户通过前端与后端系统进行交互。
典型地,数据存储在后端且通常由RDBMS(关系型数据库管理系统)管理。
与前序课程的关系
⏹《计算机应用基础》培养学生基本计算机操作能力和常用软件的应用;
⏹《C#语言程序设计》(《C++语言程序设计》)使学生具有面向对象程序设计的基本概念。
与后继课程的关系
⏹为《JSP技术应用》和《J2EE技术应用》课程提供坚实的语言基础;
⏹为《软件工程》课程提供开发实例;
⏹为“毕业设计”提供开发平台支持。
必备能力
学生在开始SQLServer模块前,应该具备以下知识:
⏹构造程序框图–具备表达逻辑、任务执行顺序、及实现条件操作和循环的能力。
这是使用SQLServer编程的基本要求。
⏹在Windows环境下工作–能在Windows环境下熟练操作。
SQLServer是基于Windows的,因此,具备这方面的知识非常重要。
⏹创建并维护文档–能使用一种编辑器完成简单的编辑任务。
SQLServer脚本将存储在文本文件中,因此必须具备这一能力。
课程目标
这门课程将重点聚焦在使用MSSQLServer实现数据库设计,从介绍数据库开始,逐渐转向介绍SQLServer。
使用结构化查询语言(SQL)检索和维护数据也将作为重点内容详细讲解。
本课程还将涉及SQLServer的一些其他特性,如约束、规则、缺省值、索引、视图、存储过程、触发器和事务等。
在完成本模块学习后,学生应该能做到应用MicrosoftSQLServer的多种特性设计并实现一个数据库,这些特性有:
⏹查询数据库
⏹检索结果集
⏹函数和连接
⏹子查询
⏹创建表,强制数据完整性
⏹维护数据库
⏹实现索引
⏹实现视图和批处理
⏹实现存储过程
⏹实现游标
⏹实现触发器和事务
⏹企业管理器和复制策略
常见问题解答
Q1:
我们为什么要使用SQLServer?
A1:
SQLServer正在快速地发展成为仅次于Oracle服务器的优选RDBMS,此前Oracle一直控制着RDBMS市场。
SQLServer2000有些什么新特性?
⏹支持XML
该关系数据库引擎可以返回扩展标记语言(XML)文档格式的数据。
另外,XML还可用于在数据库中插入、更新、和删除数据库中的值。
⏹用户定义函数
可以通过创建自己的Transact-SQL函数来扩展Transact-SQL的可编程性。
用户定义函数可返回标量值也可返回表。
⏹索引视图
当应用程序中包含需要经常执行连接或聚合操作的查询时,利用索引视图可显著提高应用性能。
索引视图允许在视图中创建索引,在数据库中存储视图的结果集并编制索引。
不必为了利用索引视图所带来的性能改进而修改现有的应用程序。
⏹新数据类型
SQLServer2000引入了三种新的数据类型:
bigint是8字节的整型类型,sql_variant数据类型允许存储不同数据类型的数据值,table类型允许应用程序临时存储结果供以后使用。
Table类型可用于变量,并可作为用户定义函数的返回类型。
⏹INSTEADOF和AFTER触发器
执行INSTEADOF触发器代替执行触发操作(例如INSERT、UPDATE和DELETE)。
这些触发器同样可在视图中定义,这样可以大大扩展视图所能支持的更新操作类型。
AFTER触发器在触发操作完成后激发。
SQLServer2000还增加了指定那个AFTER触发器可始终激发的功能。
⏹全文检索增强
全文检索现在包括更改跟踪和图像筛选。
更改跟踪维护全文索引数据所有更改的日志。
你要使全文索引更新内容,可根据调度手工刷新日志,也可以使用后台更索引选项,在更改一发生时更新。
图像筛选功能允许为存储在图象列中的文档创建索引并执行查询。
如果某个文档以文件的形式存储在文件系统中,则用户可在包含该文档应具有的文件扩展名的列中提供文档类型。
使用该信息,全文检索可以装载相应的文档筛选以抽取文本化信息进行索引。
⏹多个SQLServer实例
SQLServer2000支持在同一台计算机上运行多个关系数据库引擎的实例。
每一台计算机都可以从SQLServer6.5或7.0版中运行一个关系数据库引擎实例,同时从SQLServer2000中运行一个或多个数据库引擎的实例。
每一个实例都有自己的一套系统和用户数据库。
应用程序可以连接计算机上的任一个实例,连接方式类似于连接运行在其它计算机上的SQLServer实例。
SQLServer2000实用程序和管理工具已得到增强,可以处理多个实例。
⏹索引增强
现在可以在已计算的列上创建索引。
可指定以升序还是降序生成索引,以及数据库引擎是否应在索引创建过程中使用并行扫描和排序。
CREATEINDEX语句现在可以将tempdb数据库用作生成索引所需的排序的工作区域。
这将改进索引创建步骤中读写磁盘的模式,使索引页更有可能分配在邻接条带中。
另外,创建索引的完整过程不仅适用于初始表扫描,还适用于并行操作。
⏹Net-Library增强
SQLServer2000Net-Library已重新编写,使得在连接SQLServer2000客户端到SQLServer2000实例时,不需要管理客户端计算机上的Net-Library配置。
新的Net-Library还支持连接同一台计算机上的多个SQLServer实例,并支持在所有Net-Library上进行SecureSocketsLayer加密。
SQLServer2000为虚拟接口构架(VIA)系统范围的网络引入了Net-Library支持,从而在服务器之间(例如在应用程序服务器和数据库服务器之间)提供了高速连接。
⏹64-GB内存支持
MicrosoftSQLServer2000企业版可以使用MicrosoftWindows2000AdvancedWindowsExtension(AWE)API,支持计算机上有多达64GB的物理内存(RAM)。
⏹分布式查询增强
SQLServer2000引入了新的OPENROWSET函数,用于在分布式查询中指定特殊的连接信息。
SQLServer2000还指定了一些方法,OLEDB提供者通过这些方法报告它所支持的SQL语法的级别,以及数据源中键值分布的统计数据。
然后,分布式查询优化器可使用这些信息减少必须从OLEDB数据源中发送的数据量。
比起早期版本的SQLServer,SQLServer2000委派给OLEDB数据源更多的SQL操作。
分布式查询还支持在SQLServer2000中增加的其它功能,例如支持多个实例、允许在结果集中混合不同排序规则的列、支持新的bigint和sql_variant数据类型。
⏹可更新的分布式分区视图
SQLServer2000增强了分布式分区视图的功能。
用户可以跨多个服务器水平地分区表,并在每个成员服务器上定义一个分布式分区视图,看起来就好象在每台服务器上存储了原始表的一个完整复本。
以这种分区方式相互协作的SQLServer服务器组称为服务器联合体。
使用SQLServer2000数据库生成的数据库联合体能支持最大型Web站点或企业级数据库的处理要求。
⏹备份和还原增强
SQLServer2000增加了一种全新的、更易于理解的模型来指定备份和还原选项。
这种新模型使用户能够更加清楚地针对不同计划的性能和日志空间要求,权衡增加或降低工作损失的暴露。
SQLServer2000通过在事务日志中使用命名日志标记,增加了对还原到特定工作点的支持,并支持进行部分数据库还原。
用户可以为备份集和媒体集设定密码,以防止XX的用户访问SQLServer备份。
⏹实用程序操作可伸缩性增强
SQLServer2000中实用程序操作的增强功能包括:
更快速的差异备份、并行数据库控制台命令检查(DBCC)和并行扫描。
现在完成差异备份所需的时间与自最后一次完整备份以来所改动的数据量成正比。
运行DBCC时,无须为扫描表而获取共享表锁,因此,DBCC可以与表上的更新活动并发运行。
另外,DBCC现在可利用多个处理器,因此,可以获得与CPU数量成近似线性关系的性能增益(假设I/O不是瓶颈)。
⏹TextinRow数据
SQLServer2000支持新的textinrow表选项,用来指定将小的文本、ntext和图象值直接放入数据行而不是放入单独的页中。
这将减少用于存储小文本、ntext和图象数据值的空间,并减少处理这些值所需的磁盘I/O量。
Q2.该课程针对哪种认证考试?
A2.该课程针对XXXX考试。
Q3.如何准备认证考试?
A3.必须完成引导学生教材中的所有练习。
教学指南中提供了完整的考试目标和考试样题。
强烈建议所有的教师尽可能地利用这些资源及相关网站资源为考试作准备。
建库脚本
在《数据库系统原理与应用(SQLServer2000)》这门课程中,需要使用以下两个示例数据库:
⏹Student(学生信息管理)
⏹Eshop(商品信息管理)
student(不带约束).sql:
该脚本创建不带任何约束的student数据库。
教师需要在第7章之前演示和实践。
student(带约束).sql:
该脚本创建带约束的student数据库。
教师需要在第7章演示和实践该脚本中的约束。
eshop(不带约束).sql:
该脚本创建不带任何约束的eshop数据库。
学生需要在第7章之前进行实践。
eshop(带约束).sql:
该脚本创建带约束的eshop数据库。
学生需要在第7章进行实践。
数据库在第一次创建以后,教师和学生必须将相应数据库进行备份;教师在上课之前和学生在做实习之前,必须首先撤消相应数据库,使用MicrosoftSQLServer企业管理器还原数据库备份复本。
注意:
你也可以重新安装数据库,但从备份中还原可以节约时间。
--建立不带约束数据库student
--如果数据库student已经存在,先删除
USEMASTER
IFEXISTS(SELECT*FROMsysdatabases
WHERENAME='student')
DROPDATABASEstudent
GO
--创建数据库student
CREATEDATABASEstudentON(NAME='Student_dat',
FILENAME="d:
\data\student_dat.mdf",
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOGON(NAME='Student_log',
FILENAME="d:
\data\student_log.ldf",
SIZE=5,
MAXSIZE=25,
FILEGROWTH=5)
GO
--打开数据库
USESTUDENT
GO
--创建表information(带约束)
CREATETABLEinformation(s_noCHAR(11)NOTNULL,
s_nameCHAR(8)NOTNULL,
s_sexCHAR
(2),
s_birthDATETIME,
s_addressVARCHAR(30),
s_classCHAR(10))
GO
--创建表score(带约束)
CREATETABLEscore(s_noCHAR(11)NOTNULL,
semesterCHAR(8)NOTNULL,
c_noVARCHAR(12)NOTNULL,
gradeDECIMAL(5,1))
GO
--创建表course(带约束)
CREATETABLEcourse(c_noVARCHAR(12)NOTNULL,
c_nameVARCHAR(20)NOTNULL,
c_creditCHAR
(2)NOTNULL,
c_typeCHAR(10)NOTNULL)
GO
--往information表中插入记录
INSERTINTOinformationVALUES('20021003010','刘奇','男','1979-08-02','广西南宁','信息021')
INSERTINTOinformationVALUES('20021003011','刘晶晶','女','1985-04-14','湖南株洲','信息021')
INSERTINTOinformationVALUES('20021003016','周天','男','1984-04-20','广东广州','信息021')
INSERTINTOinformationVALUES('20021003012','张以能','女','1985-10-02','湖南长沙','信息021')
INSERTINTOinformationVALUES('20021003013','曾建桥','男','1984-01-22','湖南株洲','信息021')
INSERTINTOinformationVALUES('20031201001','王玉梅','女','1986-05-18','湖南株洲','电商031')
INSERTINTOinformationVALUES('20031001001','李婷','女','1986-06-10','湖北武汉','软件031')
INSERTINTOinformationVALUES('20021001001','谭桂香','女','1984-07-25','湖南长沙','软件021')
INSERTINTOinformationVALUES('20041001001','谭华','男','1988-11-20','湖南长沙','软件041')
INSERTINTOinformationVALUES('20041003012','罗桂华','女','1985-06-15','湖南株洲','信息041')
GO
--往score表中插入记录
INSERTINTOscoreVALUES('20041003012','200401','1003vbcxsj',95)
INSERTINTOscoreVALUES('20031201001','200401','1203dzswwzjs',98)
INSERTINTOscoreVALUES('20031001001','200401','1002sjkyl',96)
INSERTINTOscoreVALUES('20041001001','200402','1001gdsx',87)
INSERTINTOscoreVALUES('20021001001','200402','1003xmkf',87)
INSERTINTOscoreVALUES('20021003010','200401','1002c#',78)
INSERTINTOscoreVALUES('20021003010','200401','1002sjkyl',87)
INSERTINTOscoreVALUES('20021003010','200402','1001dxyy',82)
INSERTINTOscoreVALUES('20021003010','200402','1001gdsx',63)
INSERTINTOscoreVALUES('20021003010','200402','1003rjgc',75)
INSERTINTOscoreVALUES('20021003010','200402','1003c#_w',85)
INSERTINTOscoreVALUES('20021003011','200402','1003c#_w',92)
INSERTINTOscoreVALUES('20021003016','200402','1003c#_w',76)
INSERTINTOscoreVALUES('20021003012','200402','1003c#_w',83)
INSERTINTOscoreVALUES('20021003013','200402','1003c#_w',87)
GO
--往course表中插入记录
INSERTINTOcourseVALUES('1003vbcxsj','VB程序设计',4,'专业课')
INSERTINTOcourseVALUES('1203dzswwzjs','电子商务网站建设',4,'专业课')
INSERTINTOcourseVALUES('1002sjkyl','数据库原理与应用',4,'专业基础课')
INSERTINTOcourseVALUES('1001gdsx','高等数学',4,'基础课')
INSERTINTOcourseVALUES('1003xmkf','项目开发',2,'专业课')
INSERTINTOcourseVALUES('1002c#','C#程序设计',4,'专业基础课')
INSERTINTOcourseVALUES('1001dxyy','大学英语',4,'基础课')
INSERTINTOcourseVALUES('1003rjgc','软件工程',2,'专业课')
INSERTINTOcourseVALUES('1003c#_w','C#的windows程序开发',4,'专业课')
GO
--建立不带约束数据库e_shop
--请首先保证D:
\data文件夹存在
USEMASTER
GO
IFEXISTS(SELECT*FROMsysdatabases
WHERENAME='eshop')
DROPDATABASEeshop
GO
CREATEDATABASEeshop
ON
(
NAME=eshop_dat,
FILENAME='d:
\data\eshop_dat.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5
)
LOGON
(
NAME=eshop_log,
FILENAME='d:
\data\eshop_log.ldf',
SIZE=10,
MAXSIZE=25,
FILEGROWTH=5
)
GO
--打开数据库
USEeshop
GO
--创建“订单表”(orders)
CREATETABLEorders(
M_accountVARCHAR(20)NOTNULL,
P_noVARCHAR(20)NOTNULL,
O_quantityINTNOTNULL,
O_dateDATETIMENOTNULL,
O_confirm_stateBITNOTNULL,
O_pay_stateBITNOTNULL,
O_send_stateBITNOTNULL)
GO
--创建“会员表”(members)
CREATETABLEmembers(
M_accountVARCHAR(20)NOTNULL,
M_nameVARCHAR(20)NOTNULL,
M_birthVARCHAR(20)NULL,
M_sexCHAR
(2)NULL,
M_addressVARCHAR(50)NULL,
M_salarydecimal(7,1)NULL,
M_passwordVARCHAR(20)NOTNULL
)
GO
--创建“产品表”(products)
CREATETABLEproducts(
P_noVARCHAR(20)NOTNULL,
P_nameVARCHAR(50)NOTNULL,
p_dateDATETIMENULL,
P_quantityINTNOTNULL,
P_priceSMALLMONEYNOTNULL,
P_informationVARCHAR(500)NULL,
)
GO
--产品表添加记录
INSERTINTOproductsVALUES('0130810324','清华同方电脑','2005-12-11',7,8000.0,'优惠多多')
INSERTINTOproductsVALUES('0140810330','洗衣粉','2005-05-31',1000,8.6,'特价销售')
INSERTINTOproductsVALUES('0140810332','红彤彤腊肉','2005-5-20',43,15.0,'是一种卫生食品')
INSERTINTOproductsVALUES('0140810333','力士牌香皂','2005-05-06',22,6.0,'是一种清洁用品')
INSERTINTOproductsVALUES('0240810330','电动自行车','2005-05-31',10,1586.0,'价廉物美')
INSERTINTOproductsVALUES('0240810333','自行车','2005-05-31',10,586.0,'价廉物美')
INSERTINTOproductsVALUES('0910810001','爱国者MP3','2005-05-31',100,450.0,'价廉物美')
INSERTINTOproductsVALUES('0910810002','商务通','2005-05-20',10,850.0,'价廉物美')
INSERTINTOproductsVALUES('0910810003','名人好记星','2005-05-31',100,550.0,'价廉物美')
INSERTINTOproductsVALUES('0910810004','奥美嘉U盘','2005-05-31',100,350.0,'价廉物美')
--会员表添加记录
INSERTINTOmembersVALUES('liuzc518','刘志成','1972-05-18','男','湖南株洲',3500.0,'liuzc518')
INSERTINTOmembersVALUES('zhao8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库系统原理与应用SQL Server 数据库系统原理与应用SQL Server 教学指导 数据库 系统 原理 应用 SQL 教学 指导