数据库开发技术期末复习总结资料剖析.docx
- 文档编号:17153453
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:35
- 大小:346.30KB
数据库开发技术期末复习总结资料剖析.docx
《数据库开发技术期末复习总结资料剖析.docx》由会员分享,可在线阅读,更多相关《数据库开发技术期末复习总结资料剖析.docx(35页珍藏版)》请在冰点文库上搜索。
数据库开发技术期末复习总结资料剖析
《数据库应用开发技术》
1、什么是数据库应用体系结构?
数据库应用系统体系结构概述:
数据库应用系统体系结构是指数据库系统中数据存储层、业务处理层、界面表示层以及网络通信之间的布局与分布关系。
数据库应用系统体系结构的三个层次:
数据库存储层:
完成对数据库中数据的各种维护操作。
业务处理层:
又称为应用层或业务逻辑层,此即是数据库应用将要处理的与用户紧密相关的各种业务操作。
界面表示层:
也称为用户界面层,主要完成输入输出数据及与用户进行交互的功能。
三级模式结构
2、C/S结构的基本概念
C/S(client/server)结构即通常所称的客户机/服务器结构,是当今世界最为流行的一种数据库应用系统结构。
在这种体系结构中,根据功能把数据库应用分为客户机应用与服务器应用两大部分,由客户机向服务器提出请求,服务器对客户机的请求做出回应。
有效的实现服务、数据的共享以及应用的分布。
C/S结构一般又根据应用功能的层次划分分为:
两层、三层及多层结构。
3、C/S结构的组成
从用户的角度看,C/S结构基本由三个部分组成:
客户机、服务器、客户机与服务器之间的连接件。
•客户机:
面向最终用户的接口或应用程序
•服务器:
监听客户机调用、处理客户机请求、存储及维护数据
•连接件:
管理及维持客户机与服务器的连接,完成数据交换及命令通讯、提供中间接口及标准
4、C/S结构分为三类:
•服务器业务逻辑结构:
客户机主要负责用户接口及基本数据验证,大部分业务逻辑及数据存储维护均由服务器完成;
•均衡负载结构:
用户接口由客户机完成,数据存储维护由服务器完成,而业务逻辑根据情况均衡分布在客户机和服务器上;
•客户机业务逻辑结构(强客户机结构):
服务器提供数据服务,业务逻辑及用户接口均由客户机完成。
5、C/S结构的优点:
降低了工作站性能需求、减少工作站网络负载、数据库易于维护。
6、C/S结构的缺点:
增加了维护数据库服务器的管理和支持人员的开销;增加了硬件的开销;增加数据库软件费用;客户端开发困难;复杂性;系统维护困难。
7、C/S结构的DBMS功能划分
C/S体系结构,RU(RAD_Unify)体系结构,EWS(ExtendedWorkstationServer)体系结构
8、B/S结构的基本概念
B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。
B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。
随着Windows98/Windows2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。
9、B/S结构的优点:
降低开发成本及开发复杂度;系统易于维护;系统易于管理;易于推广使用
10、B/S结构与C/S结构的比较
⏹硬件环境不同
⏹安全要求不同
⏹对程序架构不同
⏹软件重用不同
⏹系统维护不同
⏹处理问题不同
⏹用户接口不同
⏹信息流不同
11、PowerDesigner的模型文件:
概念数据模型(CDM),物理数据模型(PDM),业务程序模型(BPM),面向对象模型(OOM),需求模型(RQM),信息流模型(ILM)
12、什么是CDM?
☐CDM表现数据库的全部逻辑的结构,与任何的软件或数据存储结构无关。
一个概念模型经常包括在物理数据库中仍然不实现的数据对象。
它给运行计划或业务活动的数据一个正式表现方式。
☐CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等
13、关于联系:
☐联系(Relationship)是指实体集之间或实体集内部实例之间的连接。
☐按照实体类型中实例之间的数量对应关系,通常可将联系分为4类,即一对一(ONETOONE)联系、一对多(ONETOMANY)联系、多对一(MANYTOONE)联系和多对多联系(MANYTOMANY)。
14、联系的类型:
标定联系,递归联系。
15、什么是PDM?
☐PDM定义了模型的物理实现细节。
16、CDMPDMOOM三者的转换关系:
17、从CDM生成PDM的对象规则:
CDM对象
在PDM中生成的对象
备注
实体(Entity)
表(Table)
实体属性(EntityAttribute)
列TableColumn)
主标识符(PrimaryIdentifier)
根据是否为依赖关系确定是主键或外键
标识符(Identifier)
候选键(Alternatekey)
关系(Relationship)
引用(Reference)
18、关系键的确定
在PDM中生成的键类型取决于CDM中用于定义一个关系(Relationship)的基数和依赖类型。
依赖性一对多关系;非依赖性多对多关系;非依赖性一对一关系;非依赖性一对多关系
19、数据模型概述:
数据模型是用于描述数据或信息的标记。
(数据结构、数据操作、数据上的约束)
20、常用的数据模型:
关系模型、层次模型、网状模型、面向对象的数据模型。
21、在SQL中定义关系模式:
Createtable/CreateView
22、关系数据库模式设计
三、SQL语言强化训练与T-SQL
第一节、SQL语言及其基本结构
1、SQL的概念及作用:
一种介于关系代数与关系演算之间的语言,成为关系数据库的标准语言。
功能:
查询、定义、操作、控制。
2、SQL指令构成;
3、标准SQL与个性化SQL;
第二节、SELECT训练
1、单表查询
查询出至少选修了4门课程的学号和门数
SELECTSno,COUNT(Sno)FROMScGROUPBYSnoHAVINGCOUNT(Sno)>=4
求选课在4门以上的平均成绩,不统计不及格的课程,按降序排列总成绩
SELECTSno,AVG(G)AverageFROMScWHEREG>=60GROUPBYSnoHAVINGCOUNT(*)>=4ORDERBYAverageDESCENDING
SELECTSno,AVG(G)FROMScWHEREG>=60GROUPBYSnoHAVINGCOUNT(*)>=4ORDERBY2DESCENDING
2、库函数(集函数)查询
☐求计算机系学生的平均年龄
SELECTAVG(Age)FROMStudentWHEREDept='CS'
☐求S3学生的总分和平均分
SELECTSUM(G),AVG(G)FROMScWHERESno='S3'
☐求计算机系的学生总数
SELECTCOUNT(Sno)FROMStudentWHEREDept='CS'
SELECTCOUNT(*)FROMStudentWHEREDept='CS'
☐查询共有几个系
SELECTCOUNT(*)FROMStudent?
?
SELECTCOUNT(Dept)FROMStudent?
?
SELECTCOUNT(DISTINCTDept)FROMStudent
☐求课程C1的最高分和最低分以及高低分之间的差距
SELECTMAX(G),MIN(G),MAX(G)-MIN(G)FROMScWHERECno=’C1’
3、连表查询
☐复合条件连接
⏹查询“张三”的成绩
SELECTCno,GFROMStudent,ScWHEREStudent.Sno=Sc.SnoANDSn=’张三’
⏹查询所有学生(姓名)选修的课程名和成绩
SELECTSn,Cn,GFROMStudent,Course,ScWHEREStudent.Sno=Sc.SnoANDCourse.Cno=Sc.Cno
4、子查询块嵌套查询
5、并交差集合查询
6、数据库的更新
⏹INSERTINTOR(A1,….An)VALUES(v1,v2….vn)
例6.35:
把SydneyGreenstreet添加到演员列表中去。
InsertintostarsIn(movieTitle,movieYear,starName)
Values(‘TheMalteseFalcon’,1942,’SydenyGreenstreet’);
InsertintostarsIn
Values(‘TheMalteseFalcon’,1942,’SydenyGreenstreet’);
Example6.35:
往关系Studio(name,address,presC#)添加在关系
Movie(title,year,length,inColor,studioName,producerC#)提到的但没有在studio中出现过的所有电影公司。
Insertintostudio(name)
selectdistinctstudioNamefromMoviewherestudioNamenotin(selectnamefromstudio);
⏹DELETEFROMRWHERE
例6.37:
从关系
StarsIn(movieTitle,movieYear,starName)
删除SydneyGreenstreet出演电影nTheMaleseFalcon这一事实。
deletefromstarsInwheremovieTitle=‘ThemalteseFalcon’andmovieYear=1942andstarName=‘SydneyGreenstreet’;
⏹UpdateR
SET
Where
每个新值赋值由一个属性、一个等号和一个表达式组成。
例6.39修改关系MovieExec(name,address,cert#,netWorth),在每个电影公司制片经理的电影制片人名字前加上称呼Pres.。
UpdatemovieExecSETname=‘Pres.’||nameWherecert#IN(selectpresC#fromstudio);
第三节、Transact-SQL概述
2、Transact-SQL应用基础:
游标
关系数据库中的操作会对整个行集产生影响。
由SELECT语句返回的行集包括所有满足该语句WHERE子句中条件的行。
由语句所返回的这一完整的行集被称为结果集。
应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。
这些应用程序需要一种机制以便每次处理一行或一部分行。
游标就是提供这种机制的结果集扩展。
Transact-SQL游标主要用在存储过程、触发器和Transact-SQL脚本中,它们使结果集的内容对其它Transact-SQL语句同样可用。
3、Transact-SQL应用:
游标进程
在存储过程或触发器中使用Transact-SQL游标的典型进程为:
☐声明Transact-SQL变量包含游标返回的数据。
为每一结果集列声明一个变量。
声明足够大的变量以保存由列返回的值,并声明可从列数据类型以隐性方式转换得到的数据类型。
☐使用DECLARECURSOR语句把Transact-SQL游标与一个SELECT语句相关联。
DECLARECURSOR语句同时定义游标的特征,比如游标名称以及游标是否为只读或只进特性。
☐使用OPEN语句执行SELECT语句并生成游标。
☐使用FETCHINTO语句提取单个行,并把每列中的数据转移到指定的变量中。
然后,其它Transact-SQL语句可以引用这些变量来访问已提取的数据值。
Transact-SQL不支持提取行块。
☐结束游标时,使用CLOSE语句。
关闭游标可以释放某些资源,比如游标结果集和对当前行的锁定,但是如果重新发出一个OPEN语句,则该游标结构仍可用于处理。
由于游标仍然存在,此时还不能重新使用游标的名称。
DEALLOCATE语句则完全释放分配给游标的资源,包括游标名称。
在游标被释放后,必须使用DECLARE语句来重新生成游标。
4、两种方法定义使用游标变量
5、游标的提取和滚动
6、打开或关闭游标
打开游标:
OPEN{{[GLOBAL]cursor_name}|cursor_variable_name}
关闭游标:
CLOSE{{[GLOBAL]cursor_name}|cursor_variable_name}
删除游标引用:
DEALLOCATE{{[GLOBAL]cursor_name}|
@cursor_variable_name}
7、游标示例
(1)下面的示例打开一个游标并且提取所有的行。
DECLAREEmployee_CursorCURSORFOR
SELECTLastName,FirstName
FROMNorthwind.dbo.Employees
WHERELastNamelike'B%'
OPENEmployee_Cursor
FETCHNEXTFROMEmployee_Cursor
WHILE@@FETCH_STATUS=0
BEGIN
FETCHNEXTFROMEmployee_Cursor
END
CLOSEEmployee_Cursor
DEALLOCATEEmployee_Cursor
(2)DECLARE@au_lnamevarchar(40),@au_fnamevarchar(20)
DECLAREauthors_cursorCURSORFOR
SELECTau_lname,au_fnameFROMauthorsWHEREau_lnameLIKE"B%"ORDERBYau_lname,au_fname
OPENauthors_cursor
FETCHNEXTFROMauthors_cursorINTO@au_lname,@au_fname
WHILE@@FETCH_STATUS=0
BEGIN
PRINT"Author:
"+@au_fname+""+@au_lname
FETCHNEXTFROMauthors_cursorINTO@au_lname,@au_fname
END
CLOSEauthors_cursor
DEALLOCATEauthors_cursor
第四节、存储过程
1、存储过程的概念:
是一组为了完成特定功能的SQL语句集,经编译后存储在数据库。
用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
(在SQLServer的系列版本中存储过程分为两类:
系统提供的存储过程和用户自定义存储过程。
系统过程主要存储在master数据库中并以sp_为前缀,并且系统存储过程主要是从系统表中获取信息,从而为系统管理员管理SQLServer提供支持。
通过系统存储过程,MSSQLServer中的许多管理性或信息性的活动(如了解数据库对象、数据库信息)都可以被顺利有效地完成。
尽管这些系统存储过程被放在master数据库中,但是仍可以在其它数据库中对其进行调用,在调用时不必在存储过程名前加上数据库名。
而且当创建一个新数据库时,一些系统存储过程会在新数据库中被自动创建。
用户自定义存储过程是由用户创建并能完成某一特定功能(如查询用户所需数据信息)的存储过程。
)
2、用CREATEPROCEDURE命令创建存储过程
☐用CreateProcedure创建存储过程的语法规则如下:
CREATEPROC[EDURE]procedure_name[;number]
[{@parameterdata_type}
[VARYING][=default][OUTPUT]
][,...n]
[WITH
{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
[FORREPLICATION]
ASsql_statement[...n]
3、CREATEPROCEDURE命令参数略解
☐procedure_name 是要创建的存储过程的名字。
☐@parameter 是存储过程的参数。
当调用该存储过程时,用户必须给出所有的参数值,除非定义了参数的缺省值。
一个存储过程至多有1024个参数。
☐Data_type 是参数的数据类型。
☐OUTPUT 表明该参数是一个返回参数。
用OUTPUT参数可以向调用者返回信息。
Text类型参数不能用作OUTPUT参数。
☐RECOMPILE 指明SQLServer并不保存该存储过程的执行计划,该存储过程每执行一次都又要重新编译。
☐ENCRYPTION 加密。
☐AS 指明该存储过程将要执行的动作。
☐Sql_statement 是任何数量和类型的包含在存储过程中的SQL语句。
4、存储过程示例
☐
(一)使用带有复杂SELECT语句的简单过程
USEpubs
IFEXISTS(SELECTnameFROMsysobjectsWHEREname='au_info_all'ANDtype='P')
DROPPROCEDUREau_info_all
GO
CREATEPROCEDUREau_info_all
AS
SELECTau_lname,au_fname,title,pub_nameFROMauthorsaINNERJOINtitleauthortaONa.au_id=ta.au_idINNERJOINtitlestONt.title_id=ta.title_idINNERJOINpublisherspONt.pub_id=p.pub_id
GO
☐
(二)使用带有参数的简单过程
USEpubs
IFEXISTS(SELECTnameFROMsysobjectsWHEREname='au_info'ANDtype='P')
DROPPROCEDUREau_info
GO
CREATEPROCEDUREau_info@lastnamevarchar(40),@firstnamevarchar(20)
AS
SELECTau_lname,au_fname,title,pub_name
FROMauthorsaINNERJOINtitleauthortaONa.au_id=ta.au_id
INNERJOINtitlestONt.title_id=ta.title_id
INNERJOINpublisherspONt.pub_id=p.pub_id
WHEREau_fname=@firstnameANDau_lname=@lastname
GO
☐(三)使用OUTPUT参数
USEpubs
GO
IFEXISTS(SELECTnameFROMsysobjectsWHEREname='titles_sum'ANDtype='P')
DROPPROCEDUREtitles_sum
GO
CREATEPROCEDUREtitles_sum@@TITLEvarchar(40)='%',@@SUMmoneyOUTPUT
AS
SELECT'TitleName'=titleFROMtitlesWHEREtitleLIKE@@TITLE
SELECT@@SUM=SUM(price)FROMtitlesWHEREtitleLIKE@@TITLE
GO
☐(四)使用OUTPUT游标参数
USEpubs
IFEXISTS(SELECTnameFROMsysobjectsWHEREname='titles_cursor'andtype='P')
DROPPROCEDUREtitles_cursor
GO
CREATEPROCEDUREtitles_cursor@titles_cursor
CURSORVARYINGOUTPUT
AS
SET@titles_cursor=CURSORFORWARD_ONLYSTATIC
FORSELECT*FROMtitlesOPEN@titles_cursor
GO
5、管理存储过程
(1)查看存储过程
☐通过EnterpriseManager管理工具同样可以查看存储过程的源代码
☐使用sp_helptext存储过程查看存储过程的源代码,其语法格式为:
sp_helptext存储过程名称
(2)重新命名存储过程
☐修改存储过程的名字使用系统存储过程sp_rename。
其命令格式为:
sp_rename原存储过程名,新存储过程名
(3)删除存储过程
☐删除存储过程使用drop命令,drop命令可将一个或多个存储过程或者存储过程组从当前数据库中删除。
其语法规则为:
DROPPROCEDURE{procedure}}[,…n]
(4)执行存储过程
执行已创建的存储过程使用EXECUTE|EXEC命令
6、Transact-SQL控制流语言
关键字
描述
BEGIN...END
定义语句块。
BREAK
退出最内层的WHILE循环。
CONTINUE
重新开始WHILE循环。
GOTOlabel
从label所定义的label之后的语句处继续进行处理。
IF...ELSE
定义条件以及当一个条件为FALSE时的操作。
RETURN
无条件退出。
WAITFOR
为语句的执行设置延迟。
WHILE
当特定条件为TRUE时重复语句。
7、Transact-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 开发 技术 期末 复习 总结 资料 剖析