数据库原理与应用.docx
《数据库原理与应用.docx》由会员分享,可在线阅读,更多相关《数据库原理与应用.docx(180页珍藏版)》请在冰点文库上搜索。
数据库原理与应用
课程:
数据库原理与应用
教师姓名
授课班级
授课形式
理论
授课周数
第1周
授课时数
4
使用教具
多媒体
授课章节名称
第一章数据库的基本概念
教学目的
掌握数据库概念;
学会安装、配置SQLServer2008,并能连接到SQLServer2008数据库。
教学重点
安装SQLServer2008。
教学难点
学生对于SQLServer的许可授权选项会缺乏认识,教师需要加以说明;
对于SQLServer的各个组件,学生还没有了解。
教学内容
1.1数据库基本概念
1.1.1数据库与数据库管理系统
1.数据库(理解概念)
数据库(DB)是存放数据的仓库,只不过这些数据存在一定的关联,并按一定的格式存放在计算机上。
从广义上讲,数据不仅包含数字,还包括了文本、图像、音频、视频等。
2.数据库管理系统
数据库管理系统(DBMS)是管理数据库的系统,它按一定的数据模型组织数据。
DBMS应提供如下功能:
(理解)
(1)数据定义功能
(2)数据操纵功能
(3)数据的完整性检查功能
(4)数据库的安全保护功能
(5)数据库的并发控制功能
(6)数据库系统的故障恢复功能
(7)在网络环境下访问数据库的功能
(8)方便、有效地存取数据库信息的接口和工具。
数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。
1.1.2关系模型
(1)层次模型:
以树形层次结构组织数据。
(2)网状模型:
每一个数据用一个节点表示,每个节点与其他节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络。
(3)关系模型:
以二维表格(关系表)的形式组织数据库中的数据。
(掌握)
例如,学生成绩管理系统所涉及的“学生”、“课程”和“成绩”三个表中,“学生”表涉及的主要信息有:
学号、姓名、性别、出生时间、专业、总学分、备注;“课程”表涉及的主要信息有:
课程号、课程名、开课学期、学时和学分;“成绩”表涉及的主要信息有:
学号、课程号和成绩。
1.2数据库设计
1.2.1概念结构设计(掌握画E-R模型方法)
如果用矩形框表示实体集,用带半圆的矩形框表示属性,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记一斜线。
两个实体集A和B之间的联系可能是以下三种情况之一:
1.一对一的联系(1∶1)
A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。
例如,“班级”与“正班长”这两个实体集之间的联系是一对一的联系,因为一个班只有一个正班长,反过来,一个正班长只属于一个班。
2.一对多的联系(1∶n)
A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。
例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为一个班可有若干学生,反过来,一个学生只能属于一个班。
3.多对多的联系(m∶n)
A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。
例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为一个学生可选多门课程,反过来,一门课程可被多个学生选修。
1.2.2逻辑结构设计(掌握E-R图到关系模式的转换方法)
1.(1∶1)联系的E-R图到关系模式的转换
对于(1∶1)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。
例如,考虑“班级(BJB)”与“正班长(BZB)”实体集通过属于(SYB)联系E-R模型可设计如下关系模式(下横线表示该字段为主码):
BJB(班级编号,院系,专业,人数)
BZB(学号,姓名)
SYB(学号,班级编号)
(2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。
例如,考虑“班级(BJB)”与“正班长(BZB)”实体集通过属于(SYB)联系E-R模型可设计如下关系模式:
BJB(班级编号,院系,专业,人数)
BZB(学号,姓名,班级编号)
或者:
BJB(班级编号,院系,专业,人数,学号)
BZB(学号,姓名)
2.(1∶n)联系的E-R图到关系模式的转换
对于(1∶n)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。
例如,考虑“班级(BJB)”与“学生(XSB)”实体集E-R模型可设计如下关系模式:
BJB(班级编号,院系,专业,人数)
XSB(学号,姓名,性别,出生时间,专业,总学分,备注)
SYB(学号,班级编号)
(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。
例如,“班级(BJB)”与“学生(XSB)”实体集E-R模型可设计如下关系模式:
BJB(班级编号,院系,专业,人数)
XSB(学号,姓名,性别,出生时间,专业,总学分,备注,班级编号)
3.(m∶n)联系的E-R图到关系模式的转换
对于(m∶n)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。
例如,“学生(XSB)”与“课程(KCB)”实体集之间的联系可设计如下关系模式:
XSB(学号,姓名,性别,出生时间,专业,总学分,备注)
KCB(课程号,课程名称,开课学期,学时,学分)
CJB(学号,课程号,成绩)
关系模式CJB的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。
至此,已介绍了根据E-R图设计关系模式的方法,通常将这一设计过程称为逻辑结构设计。
在设计好一个项目的关系模式后,就可以在数据库管理系统环境下,创建数据库、关系表及其他数据库对象,输入相应数据,并根据需要对数据库中的数据进行各种操作。
1.2.3物理结构设计
数据的物理模型即指数据的存储结构,如对数据库物理文件、索引文件的组织方式、文件的存取路径、内存的管理等。
物理模型对用户是不可见的,它不仅与数据库管理系统有关,还和操作系统甚至硬件有关。
1.3数据库应用系统
1.3.1数据库的连接方式(了解)
1.ODBC数据库接口
2.OLEDB数据库接口
3.ADO数据库接口
4.ADO.NET数据库接口
5.JDBC数据库接口
6.数据库连接池技术
1.4SQLServer2008环境
1.4.1SQLServer2008的安装(会安装SQLServer2008)
1.检查计算机的软件、硬件配置
为了正确安装和运行SQLServer2008,计算机必须满足以下配置:
(1)硬件:
处理器:
需要PentiumⅢ 兼容处理器或更高速度的处理器,600MHz以上。
内存:
512MB以上,建议1GB或更大。
硬盘:
750MB的安装空间以及必要的数据预留空间。
(2)软件:
①操作系统要求(32位):
表1.5显示了不同的操作系统是否可以运行SQLServer2008服务器软件的各个32位版本。
②网络软件要求:
由于Windows2003、WindowsXP和Windows2000都具有内置网络软件,所以用户无须进行额外的配置。
③Internet组件要求:
SQLServer2008的32位版本和64位版本的Internet要求是相同的。
表1.6列出了SQLServer2008的Internet要求。
2.SQLServer2008的安装
(给学生演示安装过程,边演示边讲解)
1.4.2SQLServer2005服务器组件
(1)DatabaseEngine。
数据库引擎是SQLServer2008用于存储、处理和保护数据的核心服务。
(2)ReportingServices。
SQLServerReportingServices(报表服务,简称SSRS)是基于服务器的报表平台,可以用来创建和管理包含关系数据源和多维数据源中的数据的表格、矩阵、图形和自由格式的报表。
(3)AnalysisServices。
SQLServerAnalysisServices(分析服务,简称SSAS)为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能。
(4)IntegrationServices。
SQLServerIntegrationServices(集成服务,简称SSIS)主要用于清理、聚合、合并、复制数据的转换以及管理SSIS包。
除此之外,它还提供包括生产并调试SSIS包的图形向导工具、用于执行FTP操作、电子邮件消息传递等工作流功能的任务。
(5)NotificationServices。
SQLServerNotificationServices(通知服务,简称SSNS)是用于开发和部署那些生成并发送通知的应用程序的环境,使用它可以生成个性化消息,并发送给其他人或设备。
课外作业
P231,2,3,4,7
课后体会
学生对数据库的基本概念掌握的较好,安装SQLServer2008有些同学出现一些问题,得到及时解决,整体教学效果良好。
课程:
数据库原理与应用顺序:
教师姓名
授课班级
授课形式
理论
授课周数
第2周
授课时数
2
使用教具
多媒体
授课章节名称
第二章数据库的创建
教学目的
掌握基本的数据库概念
学会用两种方式创建、修改和删除数据库
教学重点
数据库结构介绍、创建数据库及文件组、使用Transact-SQL创建数据库和文件;
教学难点
用命令的方式创建、修改和删除数据库
文件组、架构的概念往往在大型组织才需要用到,学生不易了解到其作用,学生缺乏规划相关的企业场景和知识
教学内容
2.1SQLServer数据库基本概念
2.1.1逻辑数据库(理解)
SQLServer数据库是存储数据的容器,是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。
用户观点将数据库称为逻辑数据库,组成数据库的逻辑成分称为数据库对象。
SQLServer2008的数据库对象主要包括表、视图、索引、存储过程、触发器和约束等。
(1)完全限定名。
在SQLServer2008中,完全限定名是对象的全名,包括四个部分:
服务器名、数据库名、数据库架构名和对象名,其格式为:
server.database.scheme.object
(2)部分限定名。
在部分限定名中,未指出的部分使用以下默认值:
服务器:
默认为本地服务器。
数据库:
默认为当前数据库。
数据库架构名:
默认为dbo。
例如,以下是一些正确的对象部分限定名:
server.database...object/*省略架构名*/
server..scheme.object/*省略数据库名*/
database.scheme.object/*省略服务器名*/
server…object/*省略架构名和数据库名*/
scheme.object/*省略服务器名和数据库名*/
object/*省略服务器名、数据库名和架构名*/
表:
它是用来存储和操作数据的一种逻辑结构。
视图:
视图是从一个或多个基本表中引出的表,数据库中只存放视图的定义而不存放视图对应的数据。
索引:
索引是一种不用扫描整个数据表就可以对表中的数据实现快速访问的途径,它是对数据表中的一列或者多列的数据进行排序的一种结构。
表中的记录通常按其输入的时间顺序存放,这种顺序称为记录的物理顺序。
为了实现对表记录的快速查询,可以对表的记录按某个和某些属性进行排序,这种顺序称为逻辑顺序。
约束:
约束机制保障了SQLServer2008中数据的一致性与完整性。
存储过程:
存储过程是一组为了完成特定功能的SQL语句集合。
触发器:
触发器与表紧密关联。
它可以实现更加复杂的数据操作,更加有效地保障数据库系统中数据的完整性和一致性。
默认值:
默认值是在用户没有给出具体数据时,系统所自动生成的数值。
用户和角色:
用户是对数据库有存取权限的使用者;角色是指一组数据库用户的集合。
规则:
规则用来限制表字段的数据范围。
类型:
用户可以根据需要在给定的系统类型之上定义自己的数据类型。
函数:
用户可以根据需要定义自己的函数。
1.数据库文件(掌握)
(1)主数据文件。
该文件是数据库的关键文件,包含了数据库的启动信息,并且存储数据。
每个数据库必须有且仅能有一个主文件,扩展名为.mdf。
(2)辅助数据文件。
用于存储未包括在主文件内的其他数据。
辅助文件的默认扩展名为.ndf。
一般当数据库很大时,有可能需要创建多个辅助文件。
而数据库较小时,则只要创建主文件而不需要辅助文件。
(3)日志文件。
日志文件用于保存恢复数据库所需的事务日志信息。
每个数据库至少有一个日志文件,也可以有多个,日志文件的扩展名为.ldf。
2.文件组
为了管理和分配数据而将它们组织在一起。
将特定的表、索引等与该文件组相关联,那么对这些表的存储、查询和修改等操作都在该文件组中。
(1)主文件组。
主文件组包含主要数据文件和任何没有明确指派给其他文件组的其他文件。
管理数据库的系统表的所有页均分配在主文件组中。
(2)用户定义文件组。
用户定义文件组是指“CREATEDATABASE”或“ALTERDATABASE”语句中使用“FILEGROUP”关键字指定的文件组。
3.系统数据库与用户数据库
系统数据库存储有关SQLServer的系统信息,它们是SQLServer2008管理数据库的依据。
如果系统数据库遭到破坏,SQLServer将不能正常启动。
(1)master数据库包含了SQLServer诸如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和SQLServer的运行。
(2)model数据库为新创建的数据库提供模板。
(3)msdb数据库为“SQLServerAgent”调度信息和作业记录提供存储空间。
(4)tempdb数据库为临时表和临时存储过程提供存储空间,所有与系统连接的用户的临时表和临时存储过程都存储于该数据库中。
2.2界面方式创建数据库
2.2.1数据库的创建(熟练掌握)
【例2.1】创建数据库PXSCJ,数据文件和日志文件的属性按默认值设置。
创建该数据库的主要过程为:
第1步以系统管理员身份登录计算机,启动“SQLServerManagementStudio”。
如图2.1所示
图2.1连接到服务器
第2步点击“新建数据库”命令
第3步“常规”、“选项”和“文件组”。
这里只配置“常规”选择页,其他选择页使用系统默认设置。
创建的数据库名称“PXSCJ”,也可以在“所有者”文本框中指定数据库的所有者如sa,这里使用默认值,其他属性也按默认值设置,如图2.2所示。
图2.2“新建数据库”窗口
另外,可以通过单击“自动增长”标签栏下面的按钮,出现如图2.3所示的对话框,在该对话框中可以设置数据库是否自动增长、增长方式、数据库文件最大文件大小。
数据日志文件的自动增长设置对话框与数据文件类似。
图2.3自动增长设置
到这里数据库PXSCJ已经创建完成了。
此时,可以在“对象资源管理器”窗口的“数据库”目录下找到该数据库所对应的图标
2.2.1数据库的修改(熟练掌握)
1.数据库的修改
在数据库被创建后,数据文件名和日志文件名就不能改变了。
对已存在的数据库可以进行的修改包括:
增加或删除数据文件;
改变数据文件的大小和增长方式;
改变日志文件的大小和增长方式;
增加或删除日志文件;
增加或删除文件组;
数据库的重命名。
2.数据库系统的删除
2.3命令方式创建数据库(熟练掌握)
2.3.1创建数据库
命令方式创建数据库使用“CREATEDATABASE”命令,创建前要确保用户具有创建数据库的权限。
由语法格式可知,最简单的一句创建数据库的语句为:
CREATEDATABASEdatabase_name
【例2.5】创建一个名为TEST1的数据库,其初始大小为5MB,最大大小不限制,允许数据库自动增长,增长方式是按10%比例增长。
日志文件初始为2MB,最大可增长到5MB,按1MB增长。
假设SQLServer服务已启动,并以系统管理员身份登录计算机。
在“查询分析器”窗口中输入如下Transact-SQL语句:
CREATEDATABASETEST1
ON
(NAME='TEST1_DATA',
FILENAME='C:
\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\TEST1.mdf',
SIZE=5MB,
FILEGROWTH=10%)
LOGON
(NAME='TEST1_log',
FILENAME='C:
\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\TEST1.ldf',
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
输入完毕后,单击“执行”按钮。
可以看到,CREATEDATABASE命令执行时,在结果窗口中将显示命令执行的进展情况。
【例2.6】创建一个名为TEST2的数据库,它有两个数据文件,其中主数据文件为20MB,不限制增长,按10%增长。
1个辅数据文件为20MB,最大大小不限,按10%增长;有1个日志文件,大小为50MB,最大大小为100MB,按10MB增长。
在“查询分析器”窗口中输入如下Transact-SQL语句并执行:
CREATEDATABASETEST2
ON
PRIMARY
(
NAME='TEST2_data1',
FILENAME='C:
\test2_data1.mdf',
SIZE=20MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
),
(
NAME='TEST2_data2',
FILENAME='C:
\test2_data2.ndf',
SIZE=20MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
)
LOGON
(
NAME='TEST2_log1',
FILENAME='C:
\test2_log1.ldf',
SIZE=50MB,
MAXSIZE=100MB,
FILEGROWTH=10MB);
【例2.7】创建一个具有2个文件组的数据库TEST3。
要求:
(1)主文件组包括文件TEST3_dat1,文件初始大小为20MB,最大为60MB,按5MB增长;
(2)有1个文件组名为TEST3Group1,包括文件TEST3_dat2,文件初始大小为10MB,最大为30MB,按10%增长;
(3)数据库只有一个日志文件,初始大小为20MB,最大为50MB,按5MB增长。
新建一个查询,在“查询分析器”窗口中输入如下Transact-SQL语句并执行:
CREATEDATABASETEST3
ON
PRIMARY
(
NAME='TEST3_dat1',
FILENAME='C:
\TEST3_dat1.mdf',
SIZE=20MB,
MAXSIZE=60MB,
FILEGROWTH=5MB
),
FILEGROUPTEST3Group1
(NAME='TEST3_dat2',
FILENAME='C:
\TEST3_dat2.ndf',
SIZE=10MB,
MAXSIZE=30MB,
FILEGROWTH=10%)
LOGON
(NAME='TEST3_log',
FILENAME='C:
\TEST3_log.ldf',
SIZE=20MB,
MAXSIZE=50MB,
FILEGROWTH=5MB)
2.3.1修改数据库
使用“ALTERDATABASE”命令对数据库可进行以下修改:
增加或删除数据文件;
改变数据文件的大小和增长方式;
改变日志文件的大小和增长方式;
增加或删除日志文件;
增加或删除文件组。
语法格式:
ALTERDATABASEdatabase_name
{ADDFILE[,…n][TOFILEGROUPfilegroup_name]
/*在文件组中增加数据文件*/
|ADDLOGFILE[,…n]/*增加日志文件*/
|REMOVEFILElogical_file_name/*删除数据文件*/
|ADDFILEGROUPfilegroup_name/*增加文件组*/
|REMOVEFILEGROUPfilegroup_name/*删除文件组*/
|MODIFYFILE/*更改文件属性*/
|MODIFYNAME=new_dbname/*数据库更名*/
|MODIFYFILEGROUPfilegroup_name{filegroup_property|NAME=new_filegroup_name}
|SET[,...n][WITH]/*设置数据库属性*/
|COLLATE/*指定数据库排序规则*/
}
【例2.8】假设已经创建了例2.5中的数据库TEST1,它只有一个主数据文件,其逻辑文件名为TEST1_DATA,大小为5MB,最大为50MB,增长方式为按10%增长。
要求:
修改数据库TEST1现有数据文件的属性,将主数据文件的最大大小改为100MB,增长方式改为按每次5MB增长。
在“查询分析器”窗口中输入如下Transact-SQL语句:
ALTERDATABASETEST1
MODIFYFILE
(
NAME=TEST1_DATA,
MAXSIZE=100MB,/*将主数据文件的最大大小改为100MB*/
FILEGROWTH=5MB/*将主数据文件的增长方式改为按5MB增长)
GO
【例2.9】先为数据库TEST1增加数据文件TEST1BAK,然后删除该数据文件。
ALTERDATABASETEST1
ADDFILE
(
NAME='TEST1B