数据结构课程教案.doc
《数据结构课程教案.doc》由会员分享,可在线阅读,更多相关《数据结构课程教案.doc(42页珍藏版)》请在冰点文库上搜索。
计算机科学与工程学院
课 程 教 案
2008~2009学年第一学期
课程名称数据结构与算法
授课对象软件工程071-4
主讲教师
教研室软件工程
职称职务
使用教材 数据结构(C语言版)
___8月31日
数据结构与算法课程教案
(1)
第1周 星期 第 节 年月日
授课章节
第一章绪论
教学目的
1、掌握数据结构的基本概念,计算语句频度和估算算法时间复杂度的方法
2、熟悉各名词含义算法的C语言书写规范
3、了解抽象数据类型的定义、表示和实现方法
教学重点
数据/数据元素、数据对象、数据结构、逻辑结构、存储结构等基本概念
算法的特性,算法时间复杂度的计算
教学难点
逻辑结构与存储结构之间的关系
语句频度、时间复杂度的计算
教学方式
讲授
课程设计
1.1、数据结构范畴
利用计算机解决问题时通常涉及到两个问题:
信息的表示与信息的处理问题1-5介绍数据结构与算法.数据结构课程主要是研究程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
1.2、基本概念和术语
数据(Data)是对客观事物的符号表示。
数据元素(DataElement)是数据的基本单位。
由数据项组成。
数据对象(DataObject)是具有相同性质的数据元素的集合。
数据结构(DataStructure)是指互相之间存在着一种或多种关系的数据元素的集合。
通常有下列四类基本的结构:
⑴集合结构。
⑵线性结构。
⑶树型结构。
⑷图型结构。
该结构的数据元素之间存在着多对多的关系。
数据结构包括数据的逻辑结构和数据的物理结构。
数据的逻辑结构可以看作是从具体问题抽象出来的数学模型,它与数据的存储无关。
数据结构在计算机中的标识(又称映像)称为数据的物理结构,或称存储结构。
数据类型(DataType)是一个值的集合和定义在这个值集上的一组操作的总称。
1.3、抽象数据类型的表示和实现
1.4、 算法和算法分析
算法(Algorithm)是对特定问题求解步骤的一种描述,是指令的有限序列。
一个算法应该具有特性
算法性能分析与度量
时间复杂度:
T(n)=O(f(n))
空间复杂度
6、课堂小结
参考资源
数据结构题集(C语言版)严蔚敏清华大学出版社
数据结构C++语言描述
作业
作业1
教学后记
数据库技术课程教案
(2)
第周 星期 第 节 年月日
授课章节
关系数据库回顾及SQL语言介绍
教学目的
1、掌握SQL语言的分类,简单查询语句的使用,并在工具中实现查询
2、熟悉
3、了解
教学重点
SQL语言介绍
sqlserver2005管理工作室及基本使用
教学难点
SQL语言介绍
SqlServer2005管理工作室及基本使用
教学方式
讲授
课程设计
1、关系数据库概要
2、SQL发展历史
3、SQL语句分类:
数据定义语言(DDL):
被用于定义数据库、数据类型、结构和数据上的约束
create,alter,drop
数据操纵语言(DML):
被用于在数据库对象中操纵数据
Insert,update,delete
数据控制语言(DCL):
被用于在数据库中控制数据访问
grant,revoke
数据查询语言(DQL):
被用于从数据库对象中查询数据
Select
4、sqlserver2005管理工作室基本使用与常用数据库对象简介
5、简单select语句
1)查找所有
2)查找指定列
3)alldistinct指定
4)指定标题显示(三种方式)
5)输出文字串
6)文字连接符
7)运算符运算
6、课堂小结
参考资源
作业
教学后记
数据库技术课程教案(3)
第周 星期 第 节 年月日
授课章节
简单查询进阶
教学目的
1、掌握SELECT语句的使用
2、熟悉
3、了解
教学重点
SELECT语句的语法
查询的使用
教学难点
SQLserver查询环境的使用
查询语句的语法
教学方式
讲授
课程设计
1、数据类型
数据类型:
指定对象可以包含的数据类型。
SQLServer常用的数据类型有:
intfloatcharVarcharDatetimemoney
2、抽取数据语句:
Select的完整语法:
3、简单Select用法
⑴如果你需要抽取指定的列,你可以在SELECT语句中指定列名称。
SELECT[ALL|DISTINCT]select_column_list
[INTO[new_table_name]]
FROM{table_name|view_name}
⑵可以使用以下项自定义结果集的显示:
用户定义的标题
文字
连接符
⑶可以使用以下算术操作符对数值型的列值进行计算:
+(加法)
-(减法)
/(除法)
*(乘法)
%(取模)
4、实例演示
5、课堂练习
6、课堂小结
参考资源
作业
作业1-6
教学后记
数据库技术课程教案(4)
第周 星期 第 节 年月日
授课章节
条件查询
教学目的
1、掌握带查询条件的SELECT语句
2、熟悉各个子句的使用方法和区别
3、了解
教学重点
查询条件的描述
教学难点
比较逻辑运算符的使用
范围、列表运算
教学方式
讲授
课程设计
1、基于一个和多个条件的抽取选定行的查询
可以使用带WHERE条件的SELECT语句抽取选定的行。
使用比较操作符构造单一条件:
可以使用WHERE语句以指定条件
SQLServer提供的操作符
2、逻辑操作符:
逻辑操作符被用在SELECT语句中以抽取基于一个和多个条件的记录,构造复杂些的条件。
SQLServer支持的逻辑操作符是:
ANDORNOT
语法:
3、其它各种类别的条件查询
使用范围操作符用于SELECT语句以抽取基于一个范围的记录。
SQLServer支持的范围操作符是:
BETWEEN
NOTBETWEEN
语法:
IN关键字:
IN关键字选择满足列表中任何一个值的值。
NOTIN关键字:
NOTIN关键字禁止满足任何列表中的值的值的选择。
语法:
4、实例演示
5、课堂小结
参考资源
作业
教学后记
数据库技术课程教案(5)
第周 星期 第 节 年月日
授课章节
模糊条件查询、排序
教学目的
1、掌握LIKE/ORDERBY/NULL/TOP关键字的使用
2、熟悉
3、了解
教学重点
模糊查询条件、判空条件、截断结果行集
排序
教学难点
LIKE使用
TOP使用
教学方式
讲授
课程设计
1、模糊查询
LIKE关键字:
可以用来搜索匹配特定模式的字符串、日期或时间值
使用通配符如*、%来执行模式匹配
2、可以使用带有ISNULL关键字的SELECT语句抽取数据
3、其它特殊查询
ORDERBY从句:
可以使用带ORDERBY从句的SELECT语句以指定的顺序显示记录。
以升序或降序显示记录。
SELECTselect_listFROMtable_name
[ORDERBYorder_by_expression[ASC|DESC]
[,order_by_expression[ASC|DESC]…]
TOP关键字:
可以使用带TOP关键字的SELECT语句来仅抽取表顶部的第一个行集。
这个记录集可以是一个数字或行的百分数。
示例
DISTINCT关键字:
带有DISTINCT关键字的SELECT语句用来消除重复行。
语法:
示例
4、综合演示
你是AdventureWorks,Inc的数据库开发人员。
AdventureWorks数据库是存储在SQLSERVER01数据库服务器上的。
销售人员的详细信息被存储在SalesPerson表中。
管理层想浏览前3个销售人员的详情,他们挣到的奖金在$4,000和$6,000之间。
5、课堂小结
参考资源
作业
作业1-20
教学后记
批改作业并进行讲解
数据库技术课程教案(6)
第周 星期 第 节 年月日
授课章节
系统函数的使用
教学目的
1、掌握常用函数的使用
2、熟悉查询相应功能函数
3、了解
教学重点
函数的功能
函数的参数
教学难点
各个函数的使用
各个函数的参数
教学方式
讲授
课程设计
一、字符串函数
语法:
SELECTfunction_name(parameters)
函数名:
函数名称的书写,函数的功能,返回值及其数据类型;
参数:
参数个数、参数的类型。
1、大小写转换
2、 ASCII码与字符转换
3、返回由数字数据转换的字符
4、 字符串检索
CHARINDEX(expression1,expression2[,start_location])
PATINDEX('%pattern%',expression)
5、 字符串比较:
SOUNDEX和DIFFERENCE
6、 求子串
返回字符串中从左边开始指定个数的字符LEFT
返回字符串中从右边开始指定个数的字符RIGHT
求子串SUBSTRING(expression,start,length)
7、 空格处理
返回删除了前导空格之后的字符表达式LTRIM(character_expression)
截断所有尾随空格后返回一个字符串RTRIM(character_expression)
返回由重复的空格组成的字符串SPACE(integer_expression)
8、 字符串替换
删除指定长度的字符,并在指定的起点处插入另一组字符STUFF替换指定字串REPLACE
9、 返回字符表达式的逆向表达式reverse(character_expression)
10、 求字符串长度len(string_expression)
11、字符串连接符:
+
参考资源
作业
作业1-10
教学后记
批改作业并进行讲解
数据库技术课程教案(6)
第周 星期 第 节 年月日
授课章节
系统函数的使用
教学目的
3、掌握常用函数的使用
4、熟悉查询相应功能函数
3、了解
教学重点
函数的功能
函数的参数
教学难点
各个函数的使用
各个函数的参数
教学方式
讲授
课程设计
二、日期函数
函数
参数/功能
GetDate( )
返回系统目前的日期与时间
GETUTCDATE()
返回表示当前的UTC时间
day(), month(),year()
返回日期的年、月、日数值
DateDiff (datepart,date1,date2)
以datepart 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (datepart,number,date)
以datepart指定的方式,加上number之后的日期
DatePart (datepart,date)
返回日期date中,datepart指定部分所对应的整数值
DateName (datepart,date)
返回日期date中,datepart指定部分所对应的字符串名称
三、数学函数
1.返回以弧度指定的角的相应角度/度转换为弧度
2.截尾函数/产生随机数
3.返回一个数值表达式,舍入到指定的长度
四、排名函数
行号row_number() over(orderby列名desc)
排名Rank() over(orderby列名desc)
紧排名dense_rank()over(orderby列名desc)
五、系统函数;
六、类型转换函数
七、综合问题及课堂演示
八、课堂小结
参考资源
作业
作业1-10
教学后记
批改作业并进行讲解
数据库技术课程教案(7)
第周 星期 第 节 年月日
授课章节
聚合函数、分类汇总
教学目的
1、掌握聚合函数、GROUPBY/COMPUTE的使用
2、熟悉各个子句的使用方法和区别
3、了解
教学重点
聚合函数
分类汇总
教学难点
各个子句功能区别
子句使用注意点
教学方式
讲授
课程设计
1、聚合函数
AVG(expression):
满足条件的记录基础上该表达式的平均值。
COUNT(*):
满足条件的行数。
COUNT([ALL|DISTINCT]expression):
满足条件的表达式非空值个数,ALL为默认值,包含重复值的计数;DISTINCT为排除重复值的计数。
MAX(expression):
满足条件记录基础上表达式中的最大值。
MIN(expression):
满足条件基础上表达式的最小值。
SUM([ALL|DISTINCT]expression):
满足条件基础上表达式中的和。
2、分组汇总:
语法:
SELECTcolumn_listFROMtable_nameWHEREcondition
[GROUPBY[ALL]expression[,expression][HAVINGsearch_condition]
3、明细分组汇总:
COMPUTE:
COMPUTE从句被用来通过使用集合函数以产生汇总行。
COMPUTEBY:
COMPUTEBY从句被用来以数据分组计算结果集的汇总值。
注意区别:
groupby用于产生一个组的汇总报表,而不产生结果集的各个表行,即只有分组的汇总记录。
相反,compute和computeby子句产生的汇总报表,带有从表中各个数据行。
即compute子句用于产生控制中断的汇总报告,并带有结果集的详细信息,即既有明细记录又有汇总记录。
4、交叉汇总
PIVOT操作符被用于将值转换为列集,以便方便产生交叉汇总表。
语法:
5、实例演示及综合问题
6、课堂小结
参考资源
作业
作业1-6
教学后记
批改作业并进行讲解
数据库技术课程教案(8)
第周 星期 第 节 年月日
授课章节
连接查询
教学目的
1、掌握各种类型联接的使用
2、熟悉各个联接的使用方法和区别
3、了解
教学重点
内联接
外联接
教学难点
多表联接
各种联接的区别和用途
教学方式
讲授
课程设计
1、引入连接可以分为以下类型:
内连接外连接
交叉连接自连接
2、内连接
内连接在公共的列上使用比较操作符从多表中抽取数据。
语法:
SELECTcolumn_name,column_name[,column_name]FROMtable1_name
JOINtable2ONtable1_name.ref_column_namejoin_operator
分为:
自然连接、等值连接、不等值连接
3、外连接:
外连接显示包含来自一个表中所有行和来自另一个表中匹配行的结果集。
外连接将显示没有找到匹配记录的相关表的列置值为NULL。
有三种类型:
左连接
右连接
完全外连接
4、交叉连接:
在两个表中将一个表中的每行与另一个表中的每行连接。
结果集中行的数量是第一个表中行的数量与第二个表中行的数量的乘积。
连接关键字使用crossjoin
5、自连接:
在一个表中的一行与同一表中的另一行相关时使用自连接为了区别同一表的两个实例,表被给出两个别名
6、实例演示及综合问题
7、课堂小结
参考资源
作业
作业1-10
教学后记
批改作业并进行讲解
数据库技术课程教案(9)
第周 星期 第 节 年月日
授课章节
子查询
教学目的
1、掌握利用子查询进行多表查询
2、熟悉子查询和联接的不同之处
3、了解
教学重点
单值子查询
多值子查询
教学难点
嵌套子查询
相关子查询
教学方式
讲授
课程设计
1、引入:
子查询是另一种多表查询技术。
当一个查询中嵌套另一个查询时需要使用子查询。
尤其当一个查询的结果作为另一个查询的条件的情形时使用。
子查询的种类:
2、单返回值的子查询
语法:
=单一值
关系运算符+聚合函数:
使用集合函数以产生来自内查询的集合值
3、多返回值子查询
(1)IN关键字用于在子查询中根据给定列表中的值匹配进行抽取行
(2)EXISTS关键字:
使用EXISTS关键字以检查数据的存在性并返回true或false
注意:
Exists关键字前没有列名
(3)使用修改的比较操作符:
>ALL 表示大于列表中最大值
>ANY 表示大于列表中最小值
=ANY 表示等于列表中任何值,与in作用一样
<>ANY 表示不等于任何列表中的值
<>ALL 表示不等于列表中所有值,与notin作用一样
4、嵌入(嵌套)子查询:
子查询中包含子查询
如果服务器的可用内存足够大,最多可以实现高达32级的子查询嵌套
5、相关(关联)子查询:
可以被定义为依赖于它的外部查询的查询
在相关子查询中,WHERE从句引用在FROM从句中的表中的字段
内部查询将为外部查询指定表的每行进行求值
6、实例演示及综合问题
7、课堂小结
参考资源
作业
作业1-10
教学后记
批改作业并进行讲解
数据库技术课程教案(10)
第周 星期 第 节 年月日
授课章节
管理数据库、表
教学目的
1、掌握利用工具和代码管理数据库及其表
2、熟悉
3、了解
教学重点
SQLserver中数据库的逻辑结构和物理结构
建立、管理数据库和表
教学难点
数据库结构
数据库、表的管理
教学方式
讲授
课程设计
1、数据库的逻辑与物理结构
数据库的逻辑结构---用户视图(各种数据库对象):
表、视图、索引、存储过程、约束、规则、默认值和触发器等
数据库的物理结构---文件组成:
主数据文件、次数据文件、日志文件、文件组
2、SQLServer2005系统数据库:
Master:
服务器主数据库
Tempdb:
临时数据库
Model:
模板数据库
Msdb:
服务代理数据库
Resource:
资源数据库
3、创建数据库CREATEDATABASE
4、数据库的管理
数据库的附加
查看数据库Sp_helpdb
重命名数据库
删除数据库DROPDATABASE
5、创建表CREATETABLE
6、管理表:
使用sp_help命令来观察表的结构
使用ALTERTABLE语句修改表
使用DROPTABLE语句删除表
7、实例演示
8、课堂小结
参考资源
作业
作业1-8
教学后记
批改作业并进行讲解
数据库技术课程教案(11)
第周 星期 第 节 年月日
授课章节
实施数据完整性
教学目的
1、掌握数据完整性概念,并通过约束来实现数据完整性
2、熟悉
3、了解
教学重点
主键约束、外键约束
检查约束、默认约束
教学难点
外键约束
检查约束
教学方式
讲授
课程设计
1、数据完整性包括:
实体完整性:
确保每行都可以被一个称为主键的属性唯一确定
域完整性:
确保仅在列中保存值的有效范围
参照完整性:
确保外键的值与相应主键的值相匹配
用户定义完整性:
指用户指定的一系列规则,它不属于实体、域和参照完整性类型
2、使用约束以实现数据完整性
约束有以下类型:
主键约束/唯一约束/外键约束/检查约束/默认约束
约束可以使用下面的语句之一来创建:
CREATETABLE语句语法
ALTERTABLE语句语法
(1)创建主键约束:
主键约束是定义在列上或一系列列上,它们的值唯一识别表中的所有行。
列中不允许NULL值。
确保实体完整性。
(2)创建唯一约束
唯一约束被用来增强非主键列的唯一性。
列中允许一个NULL值
(3)创建外键约束
外键约束被定义用来删除两个表间的不一致,当一个表中的数据依赖与另一个表中的数据的时候。
外键约束将一个表中的一个或多个列(外键)与另一个表中一个同一系列的列(主键列)相联系。
语法:
参考资源
作业
作业1-6
教学后记
批改作业并进行讲解
数据库技术课程教案(11)
第周 星期 第 节 年月日
授课章节
实施数据完整性
教学目的
1、掌握数据完整性概念,并通过约束来实现数据完整性
2、熟悉
3、了解
教学重点
主键约束、外键约束
检查约束、默认约束
教学难点
外键约束
检查约束
教学方式
讲授
课程设计
4)创建检查约束
检查约束通过限制列中要插入的值增强域完整性。
检查约束可以被应用到多个列。
检查约束可以通过使用下面的关键字被指定:
IN、LIKE、BETWEEN
语法:
(5)创建默认约束
默认约束可以用于指定一个常量值到列。
语法:
3、使用规则实现域完整性
规则为列或用户定义数据类型增强了域完整性。
规则在INSERT或UPDATE语句被执行之前被应用到列或用户定义数据类型。
规则被用于实现商