购买

¥15.0

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 自考04735《数据库系统原理》笔记-20180820

自考04735《数据库系统原理》笔记-20180820.ppt

自考04735《数据库系统原理》笔记-20180820

烟雨梦兮
2018-10-24 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《自考04735《数据库系统原理》笔记-20180820ppt》,可适用于高等教育领域

自考《数据库系统原理》笔记原创雷神第一部分 课程说明  《数据库系统原理》课程学习目标:  数据库是计算机科学的一个重要研究领域是专门研究数据处理、数据管理和数据分析的技术从世纪年代末开始经过多年的发展已成为计算机软件学科的一个重要分支。  《数据库系统原理》课程的主要目的:使同学们了解数据库的基本原理掌握数据库技术的基本方法和应用技术能够有效的使用现有的数据库管理系统掌握数据库结构的设计和数据库应用系统的开发方式同时能够利用前端开发工具完成企业管理信息系统的开发。《数据库系统原理》课程地位图示BS结构CS结构浏览器端:HTMLCSSJavaScriptVBScript服务器端:ASP(NET)PHPJSPCS结构:VBVCVC#DelphiJavaNET系列数据库支持:SQLServerOracleSybaseMySQLInformixAccess两大语法体系:Basic系:VBVBScriptVBAC系:JavaJavaScriptCC#参考教材介绍  自学教材《数据库系统原理》全国高等教育自学考试指导委员会组编丁宝康主编经济科学出版社年版。  本教材共分为章详细介绍了数据库系统的基本原理、方法和应用技术。内容包括:数据库系统基本概念(第一章)、数据库的设计和ER模型(第二章)、关系模式设计理论(第三章)、关系运算(第四章)、SQL语言(第五章)、数据库管理(第六章)、SQLServer简介及应用(第七章)、PowerBuilder简介及应用(第八章)、数据库的技术的发展(第九章)。第二部分 内容串讲  我们分章节进行串讲在串讲每一章前我把本章的考核的目标和重点、难点做简要说明。第一章 数据库基础知识  学习目的与要求:  本章属于基础知识主要是对一些概念的理解和记忆。没有难点相对的重点是数据模型的四个层次数据库管理系统的功能数据库系统的全局结构。  考核知识点与考核要求数据管理技术的发展阶段(识记)数据描述的术语(领会)数据抽象的级别(领会)数据库管理系统(DBMS)(领会)数据库系统(DBS)(领会) 数据管理技术的发展  几个数据库的基本术语:  数据:描述事物的符号记录  数据处理:是指从某些已知的数据出发推导加工出一些新的数据这些新的数据又表示了新的信息。  数据管理:是指数据的收集、整理、组织、存储、维护、检索、传送等操作这部分操作是数据处理业务的接、自然联接和除法  交(∩):R和S的交是由既属于R又属于S的元组构成的集合。  联接包括θ联接和F联接是选择R×S中满足iθ(rj)或F条件的元组构成的集合特别注意等值联接(θ为等号“=”)。  自然联接(R|X|S):在R×S中选择R和S公共属性值均相等的元组并去掉R×S中重复的公共属性列。如果两个关系没有公共属性则自然联接就转化为笛卡尔积。  除法(÷):首先除法的结果中元数为两个元数的差可以直接用观察法来得到结果把S看作一个块拿到R中去和相同属性集中的元组作比较如果有相同的块且除去此块后留下的相应元组均相同那么可以得到一条元组所有这些元组的集合就是除法的结果。  对于上述的五个基本操作和组合操作应当从实际运算方面进行理解和运用对其形式定义可不必深究。注意课本上的例子。  关系代数运算的三个要素:  运算对象:关系  运算结果:关系  运算符:四类集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列算术比较符辅助专门的关系运算符进行操作逻辑运算符辅助专门的关系运算符进行操作广义笛卡尔积(ExtendedCartesianProduct)Rn目关系k个元组Sm目关系k个元组R×S列:(nm)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k×k个元组R×S={trts|trR∧tsS}RSR×SABCabcabcabcABCabcabcabcabcabcabcabcabcabcABCabcabcabcABCabcabcabcabcabcabcabcabcabc选择(Selection)  )选择又称为限制(Restriction)  )选择运算符的含义  在关系R中选择满足给定条件的诸元组σF(R)={t|tR∧F(t)='真'}  F:选择条件是一个逻辑表达式基本形式为:  (XθY)φ(XθY)…  θ:比较运算符(>≥<≤=或<>)  XY等:属性名、常量、简单函数属性名也可以用它的序号来代替  φ:逻辑运算符(∧或∨)  :表示任选项  …:表示上述格式可以重复下去  )选择运算是从行的角度进行的运算  )举例  设有一个学生课程数据库包括学生关系Student、课程关系Course和选修关系SC。(a) Student(b)Course (c)SC  例查询信息系(IS系)全体学生     σSdept='IS'(Student)  或  σ='IS'(Student)  结果:  例查询年龄小于岁的学生     σSage<(Student)  或  σ<(Student)  结果:   投影(Projection)  )投影运算符的含义  从R中选择出若干属性列组成新的关系    πA(R)={tA|tR}    A:R中的属性列  )投影操作主要是从列的角度进行运算  但投影之后不仅取消了原关系中的某些列而且还可能取消某些元组(避免重复行)  )举例  例查询学生的姓名和所在系  即求Student关系上学生姓名和所在系两个属性上的投影    πSnameSdept(Student)  或π(Student)  结果:  例查询学生关系Student中都有哪些系    πSdept(Student)  结果:  连接(Join)  )连接也称为θ连接  )连接运算的含义  从两个关系的笛卡尔积中选取属性间满足一定条件的元组RS={|trR∧tsS∧trAθtsB}  A和B:分别为R和S上度数相等且可比的属性组  θ:比较运算符   连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。  )两类常用连接运算  等值连接(equijoin)  什么是等值连接  θ为“=”的连接运算称为等值连接  等值连接的含义  从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组即等值连接为:RS={|trR∧tsS∧trA=tsB}A=B  自然连接(Naturaljoin)  什么是自然连接  自然连接是一种特殊的等值连接  两个关系中进行比较的分量必须是相同的属性组  在结果中把重复的属性列去掉  自然连接的含义  R和S具有相同的属性组B  RS={|trR∧tsS∧trB=tsB}  )一般的连接操作是从行的角度进行运算。  自然连接还需要取消重复列所以是同时从行和列的角度进行运算。  )举例  例RSRS  等值连接RS自然连接RS  外连接  例:列出老师的有关信息包括姓名、工资、所教授的课程∏P#,PN,SAL,C#,CN((PROF)PCC)问题:有关P号职工的姓名和工资信息没有显示出来  外连接  为避免自然连接时因失配而发生的信息丢失可以假定往参与连接的一方表中附加一个取值全为空值的行它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配称之为外连接外连接=自然连接失配的元组  外连接的形式:左外连接、右外连接、全外连接   左外连接=自然连接左侧表中失配的元组   右外连接=自然连接右侧表中失配的元组   全外连接=自然连接两侧表中失配的元组所有老师的信息P孙立所有课程的信息C化学所有老师和课程的信息P孙立C化学  重要内容分析  ()一般规则  对于只涉及到选择、投影、联接的查询可用下列表达式表示:    π…(σ…(R×S))或者π…(σ…(R⋈S))  对于否定的操作一般要用差操作表示例如“检索不学C课的学生姓名”。  对于检索具有“全部”特征的操作一般要用除法操作表示例如“检索学习全部课程的学生姓名”。  ()“检索不学C课的学生姓名”决不能用下式表示:πSNAMEAGE(σC#≠'C'(S⋈SC))  一定要用“差”的形式:πSNAMEAGE(S)-πSNAMEAGE(σC#='C'(S⋈SC))  ()“检索学习全部课程的学生学号”要用πS#C#(SC)÷πC#(C)表示  而不能写成πS#(SC÷πC#(C))形式。这是因为一个学生学的课程的成绩可能是不一样的。  非过程性语言与过程性语言的区别  编程时必须指出“干什么”及“怎么干”的语言称为过程性语言编程时只须指出“干什么”不必指出“怎么干”的语言称为非过程性语言。 关系演算  把数理逻辑的谓词演算引入关系运算中就可得到以关系演算为基础的运算。关系演算分为元组关系演算或域关系演算前者以元组为变量后者以域为变量。  元组关系演算  形式化定义{t|P(t)}表示所有使谓词P为真的元组集合  t为元组变量  如果元组变量前有“全称”()或“存在”()量词则称其为约束变量否则称为自由变量。  P是公式  由原子公式和运算符组成原子公式s∈Rs是关系R中的一个元组sxuysx与uy为元组分量他们之间满足比较关系sxc分量sx与常量c之间满足比较关系  公式的递归定义  原子公式是公式  如果P是公式那么┑P也是公式  如果P,P是公式则PP,PP,PP也是公式  如果P(t)是公式R是关系则tR(P(t))和tR(P(t))也是公式。公式的等价性PP┑(┑P┑P)tR(P(t))┑tR(┑P(t))PP┑PPpq┑ppq┑pqTTFTTTFFFFFTTTTFFTTTRS{t|tStA>}{t|tR┑tS}ABCABCABCABC{t|tSuR(tC<uB)}{t|tRuS(tC<uA)}{t|vS(uR(uA>vBtA=uBtB=vCtC=uA))}ABCABCRBSCRA  表达式的安全性  元组关系演算有可能会产生无限关系这样的表达式是不安全的。  如{t|┑(tR)}求所有不在R中的元组  引入公式P的域概念用dom(P)表示  dom(P)=显式出现在P中的值在P中出现的关系的元组中出现的值(不必是最小集)  如dom(t|┑(tR))是R中出现的所有值的集合  如果出现在表达式{t|P(t)}结果中的所有值均来自dom(P)则称{t|P(t)}是安全的。dom(┑(tR))={{A,A},{B,B,B}}R{t|┑(tR)}ABABABABABABABAB  示例:  找出工资在元以上的老师{t|tPROFtSAL>}  找出工资在元以上的老师的姓名  {t|sPROF(tPNAMEsPNAMEsSAL>)}  给出计算机系老师的姓名  {t|uDEPT(uDNAME=“计算机系”sPROF(sDNO=uDNOtPNAMEsPNAME))}  求选修了全部课程的学生号{t|uC(sSC(sCNO=uCNOtSNOsSNO))}  求选修了张军同学所选修的全部课程的学生姓名课程张军选之所求同学选之{t|uC(sSCwS(sCNO=uCNOwSNOsSNOwSNAME=“张军”))  元组关系演算与关系代数的等价性  投影∏A(R)={t|sR(sA=tA)}  选择F(A)(R)={t|tRF(tA)}  广义笛卡儿积R(A)S(B)={t|uRsS(tA=uAtB=sB)}  并RS={t|tRtS}  交RS={t|tR┑tS}  域关系演算  形式化定义{<x,x,…,xn>|P(x,x,…,xn)}xi代表域变量P为由原子构成的公式  原子公式  <x,x,…,xn>R  xi是域变量或域常量  xy  域变量x与y之间满足比较关系  xc  域变量x与常量c之间满足比较关系RSR={<x,y,z>|<x,y,z>Rx<y>}R={<x,y,z>|<x,y,z>R(<x,y,z>Sy=)}WR={<x,y,z>|(u)(v)(<z,x,u>R<y,v>Wu>v)}ABCABCABCABCDEBDA  示例:  找出工资在元以上的老师{<a,b,c,d,e>|<a,b,c,d,e>PROFe>}  找出工资在元以上的老师的姓名{<b>|a,c,d,e(<a,b,c,d,e>PROFe>)} 关系代数表达式的优化问题  目的  在关系代数中找一种好的操作步骤既省空间查询效率又比较高。  在关系代数中笛卡儿积和联结运算是最费时间和空间的在关系很大的时候必须要考虑怎样做才能合理的安排做到省时省力。  一个例子  设关系R和S都是二元关系属性名分别是A、B和C、D。那么如下查询:E=πA(σB=CD=‘’(R×S))  也可以是E=πA(σB=C(R×σD=‘’(S))  或E=πA(RσD=‘’(S))  这三个代数表达式的等价的但是执行的效率不一样。  第一种:先做笛卡儿积。假设每个物理块可以存储R的B个元组或者S的B个元组R关系中有n个元组S关系中有n个元组内存每次只能装载m块数据。  在做联接的时候先把R的第一个m块数据装入内存然后逐个调入S中的数据块  R中的每个数据块只要进入内存一次总共需要装入的块数示nB  S中的每个数据块需要进入内存(nB)(m)次总共需要装入的块数是:  (nB)((m))(nB)  这三个代数表达式的等价的但是执行的效率不一样。  执行RXS的总装入块数是(nB)(n(m)B)  若n=n=B=B=m=那么总的装入块数是若每秒装入块需要分钟。  耗费时间长在实际使用中不采用。  这三个代数表达式的等价的但是执行的效率不一样。  第二种和第三种:先做了选择装入的块数为nBnB大约需要装入块耗费时间分多钟。  对于S来说元组并不是全部进入内存而且只是进入一次所以速度快。  优化的一般策略  我们所说的优化和存储没有关系主要是如何来安排操作的顺序节省时间和空间的消费优化的一般技术:  在关系代数表达式中尽可能早地执行选择操作。  把笛卡儿积和其后的选择操作合并成F联接运算。  同时计算一连串的选择和投影操作避免分开运算造成多次扫描文件。  关系代数表达式的优化算法  对一个关系代数表达式进行语法分析可以得  到一棵语法树叶子式关系非叶子结点式关  系代数操作。  算法关系代数表达式的优化。  输入:一个关系代数表达式的语法树。  输出:计算表达式的一个优化程序。  方法:依次执行下面的每一步。  ()使用等价变换规则将每个形为σF…Fn(E)的子表达式转换成串接形式:  σF(…(σFn(E))…)  ()对每个选择操作尽可能把选择操作移近树的叶端(尽可能早的实行选择操作)。  ()对每个投影操作尽可能把投影操作移近树的叶端。()把选择和投影合并成单个选择、单个投影或一个选择后跟一个投影。  ()将上述步骤得到的语法树的内结点分组。()生成一个序列每一组结点的计算是序列中的一步。  见课本例子。本章结束第五章SQL语言  学习目的与要求:  SQL语言是关系数据库的标准语言是本课程的一个重点。本章总的要求是:全面掌握深刻理解。熟练应用。  要求掌握的技能是:SQL定义语句、嵌入式SQL语句的应用。  要求熟练掌握的技能是:SQL查询语句、视图、SQL更新语句的应用。  方法:多做题多上机实践。  考核知识点与考试要求  SQL简介(识记)  SQL的数据定义(综合应用)  SQL的数据查询  SELECT查询语句的基本结构连接、嵌套、存在量词的三种查询方式(综合应用)  SELECT语句完整的结构分组子句、排序子句的用法(综合应用)  数据查询中的限制和规定(简单应用)  条件表达式中的比较操作(简单应用)  嵌套查询的改进写法(领会)  基本表的连接操作(综合应用)SQL的数据更新(综合应用)视图(简单应用)嵌入式SQL(领会)存储过程SQLPSM(识记) SQL简介  SQL发展历程  SQL从年美国IBM研究中心的EFCodd发表论文到年Boyce和Chamberlin把SQUARE语言改为SEQUEL语言到现在还在不断完善和发展之中SQL(结构式查询语言)虽然名为查询但实际上具有定义、查询、更新和控制等多种功能。  SQL数据库的体系结构  SQL数据库的体系结构也是三级结构但术语与传统关系模型术语不同在SQL中关系模式称为"基本表"存储模式称为"存储文件"子模式称为"视图"元组称"行"属性称"列"。  SQL数据库体系的结构要点如下:  ()一个SQL数据库是表的汇集。  ()一个SQL表由行集构成行是列的序列每列对应一个数据项。  ()表或者是基本表或者是视图。基本表是实际存储在数据库中的表视图由是由若干基本表或其他视图构成的表的定义。  ()一个基本表可以跨一个或多个存储文件一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。  ()用户可以用SQL语句对表进行操作包括视图和基本表。  ()SQL的用户可以是应用程序也可以是终端用户。  SQL的组成  SQL由四部分组成:  ()数据定义:SQLDDL。定义SQL模式基本表、视图和索引。  ()数据操纵:SQLDML。包括数据查询和数据更新(增、删、改)。  ()数据控制:包括对基本表和视图的授权、完整性规则的描述事务控制等。  ()嵌入式SQL的使用规定。  SQL的特点  ()SQL具有十分灵活和强大的查询功能。  ()SQL不是一个应用开发语言它只提供对数据库的操作功能不能完成屏幕控制、菜单管理、报表生成等功能。  ()SQL是国际性标准语言有利于各种数据库之间交换数据有利于程序的移植有利于实现高度的数据独立性有利于实现标准化。  ()SQL的词汇不多完成核心功能只用了个英语动词它的语法结构接近英语因此容易学习和使用。 SQL的数据定义  SQL模式的创建和撤消:  SQL模式的创建可简单理解为建立一个数据库定义一个存储空间其句法是:CREATESCHEMA<模式名>AUTHORIZATION<用户名>  撤消SQL模式的句法为:DROPSCHEMA<模式名>CASCADE|RESTRICT  方括号中的选项参数CASCADE表示连锁方式执行时将模式下所有基本表、视图、索引等元素全部撤消。RESTRICT表示约束式执行时必须在SQL模式中没有任何下属元素时方可撤消模式。  SQL提供的基本数据类型  数值型:包括integer、smallint、real、doubleprecision、float(n),numeric(pd)  字符串型:char(n)、varchar(n)前者是定长后者为变长串  位串型:bit(n),bitvarying(n)同上。  时间型:date、time。  基本表的创建、修改和撤消  基本表的创建:(可理解为建立表结构)  CREATTABLESQL模式名基本表名  (列名类型  ……  完整性约束)  完整性约束包括主键子句(PRIMARYKEY)、检查子句(CHECK)和外键子句(FOREIGNKEY)。  基本表结构的修改  ALTERTABLE基本表名ADDDROP(增加删除)列名类型名(增加时写出)  删除时有子句CASCADE|RESTRICT前者为连锁删除后者为约束删除即没有对本列的任何引用时才能删除。  基本表的撤消  DROPTABLE基本表名CASCADE|RESTRICT  索引的创建和撤消  创建:CREATEUNIQUEINDEX索引名ON基本表名(列名表ASC|DESC)  撤消:DROPINDEX索引名  总结:凡创建都用CREATE,删除都用DROP,改变用ALTER,再跟类型和名字附加子句很容易了。 SQL的数据查询  SELECTFROMWHERE句型  SELECT列名表(逗号隔开)FROM基本表或视图序列WHERE条件表达式  在这里重点要掌握条件表达式中各种运算符的应用如=>,<,<>等算术比较运算符、逻辑运算符AND、OR、NOT、集合成员资格运算符:INNOTIN以及嵌套的SELECT语句的用法要特别注意理解。针对课本的例题和课后习题进行掌握。  在查询时SELECT语句可以有多种写法如联接查询、嵌套查询和使用存在量词的嵌套查询等。最好都掌握但是起码应能写出一种正确的查询语句。  SELECT语句完整的句法:  SELECT列名表(逗号隔开)  FROM基本表或视图序列  WHERE条件表达式(此为和条件子句)  GROUPBY列名序列(分组子句)  HAVING组条件表达式(组条件子句)  ORDERBY列名ASC|DESC(排序子句)  这段关于完整句法的内容能够理解也就问题不大了。  SELECT语句中的限定  这一段内容主要是对SELECT语句进一步使用进行的深入学习领会下列各种限定的使用目的和方法。  要求输出表格中不出现重复元组则在SELECT后加一DISTINCT  SELECT子句中允许出现加减乘除及列名常数的算术表达式  WHERE子句中可以用BETWEENAND来限定一个值的范围  同一个基本表在SELECT语句中多次引用时可用AS来增加别名  WHERE子句中字符串匹配用LIKE和两个通配符和下划线  查询结果的结构完全一致时可将两个查询进行并(UNION)交(INTERSECT)差(EXCPT)操作  查询空值操作不是用='',而是用IS来测试。  集合成员资格比较用INNOTIN集合成员算术比较用元组θSOMEALL  可以用子查询结果取名(表名(列名序列))来作为导出表使用  基本表的自然联接操作是用NATURALINNERJOIN来实现的。 SQL的数据更新  数据插入:  INSERTINTO基本表名(列名表)  VALUES(元组值)  或  INSERTINTO基本表名(列名表)  SELECT查询语句  其中元组值可以连续插入。用查询语句可以按要求插入所需数据。  数据删除:  DELETEFROM基本表名WHERE条件表达式  数据修改:  UPDATE基本表名  SET列名=值表达式,列名=值表达式  WHERE条件表达式 视图  视图的创建和撤消  创建:CREATEVIEW视图名(列名表)ASSELECT查询语句  撤消:DROPVIEW视图名  视图的操作  查询与关系中一致  更新与关系不同  如果视图是从多个使用联接操作导出的不允许对此视图更新  如果在导出视图的过程中使用了分组和聚合函数不允许对此视图更新。  如果视图是从单个关系使用选择、投影操作导出的并且包含了关系的主健或某个候选健称此视图为“行列子集视图”允许对此视图更新。CREATEVIEWSMAILASSELECTS#,SNAME,AGEFROMSWHERESEX=‘M’INSERTINTOSMALEVALUES(‘S’,‘WU’,)与INSERTINTOSVALUES(‘S’,‘WU’,,‘M’)相同  视图的优点  使用视图的优点:  视图提供了逻辑数据的独立性  简化了用户观点  用户只需关心视图的内容而不必关心构成视图的若干关系的联结、投影操作。  能够将对数据库的访问限制在一定范围内有利于数据安全保护功能。  可针对不同的用户定义不同的视图在视图种只出现用户需要的数据系统提供视图让用户使用。 嵌入式SQL  SQL语言提供了两种不同的使用方式:  交互式  嵌入式  为什么要引入嵌入式SQL  SQL语言是非过程性语言  事务处理应用需要高级语言  这两种方式细节上有差别在程序设计的环境下SQL语句要做某些必要的扩充。嵌入式SQL的一般形式为了区分SQL语句与主语言语句需要:前缀:EXECSQL结束标志:随主语言的不同而不同以C为主语言的嵌入式SQL语句的一般形式EXECSQL<SQL语句>例:EXECSQLDROPTABLEStudent以COBOL作为主语言的嵌入式SQL语句的一般形式EXECSQL<SQL语句>ENDEXEC例:EXECSQLDROPTABLEStudentENDEXEC  DBMS处理宿主型数据库语言SQL的方法  预编译  修改和扩充主语言使之能处理SQL语句。嵌入式SQL语句与主语言之间的通信将SQL嵌入到高级语言中混合编程程序中会含有两种不同计算模型的语句SQL语句描述性的面向集合的语句负责操纵数据库高级语言语句过程性的面向记录的语句负责控制程序流程工作单元之间的通信方式1)SQL通信区向主语言传递SQL语句的执行状态信息主语言能够据此控制程序流程2)共享变量主语言向SQL语句提供参数将SQL语句查询数据库的结果交主语言进一步处理3)游标解决集合性操作语言与过程性操作语言的不匹配  共享变量  什么是共享变量  嵌入式SQL语句中可以使用主语言的程序变量来输入或输出数据  在SQL语句中使用的主语言程序变量简称为共享变量(HostVariable)  在SQL语句中使用共享变量和指示变量的方法  )说明共享变量和指示变量  BEGINDECLARESECTION    (说明共享变量和指示变量)    ENDDECLARESECTION  游标(cursor)  为什么要使用游标  SQL语言与主语言具有不同数据处理方式  SQL语言是面向集合的一条SQL语句原则上可以产生或处理多条记录。  什么是游标  游标是系统为用户开设的一个数据缓冲区存放SQL语句的执行结果。  每个游标区都有一个名字。  用户可以用SQL语句逐一从游标中获取记录并赋给共享变量交由主语言进一步处理。  )说明游标  使用DECLARE语句  语句格式  EXECSQLDECLARE<游标名>CURSORFOR<SELECT语句>  功能  是一条说明性语句这时DBMS并不执行SELECT指定的查询操作。  )打开游标  使用OPEN语句  语句格式  EXECSQLOPEN<游标名>  功能  打开游标实际上是执行相应的SELECT语句把所有满足查询条件的记录从指定表取到缓冲区中。  这时游标处于活动状态指针指向查询结果集中第一条记录之前。  )移动游标指针然后取当前记录  使用FETCH语句  语句格式  EXECSQLFETCHNEXT|PRIOR|FIRST|LASTFROM<游标名>INTO<共享变量><指示变量>,<共享变量><指示变量>  功能  指定方向推动游标指针然后将缓冲区中的当前记录取出来送至共享变量供主语言进一步处理。  NEXT|PRIOR|FIRST|LAST:指定推动游标指针的方式。  NEXT:向前推进一条记录  PRIOR:向回退一条记录  FIRST:推向第一条记录  LAST:推向最后一条记录  缺省值为NEXT  说明:  ()共享变量必须与SELECT语句中的目标列表达式具有一一对应关系。  ()FETCH语句通常用在一个循环结构中通过循环执行FETCH语句逐条取出结果集中的行进行处理。  ()为进一步方便用户处理数据现在一些关系数据库管理系统对FETCH语句做了扩充允许用户向任意方向以任意步长移动游标指针。  )关闭游标  使用CLOSE语句  语句格式  EXECSQLCLOSE<游标名>  功能  关闭游标释放结果集占用的缓冲区及其他资源。  说明  游标被关闭后就不再和原来的查询结果集相联系。  被关闭的游标可以再次被打开与新的查询结果相联系。动态SQL  )什么是动态嵌入式SQL  动态SQL方法允许在程序运行过程中临时“组装”SQL语句。  )应用范围  在预编译时下列信息不能确定时  SQL语句正文  共享变量个数  共享变量的数据类型  SQL语句中引用的数据库对象(列、索引、基本表、视图等))动态SQL的形式语句可变临时构造完整的SQL语句条件可变WHERE子句中的条件HAVING短语中的条件数据库对象、查询条件均可变SELECT子句中的列名FROM子句中的表名或视图名WHERE子句中的条件HAVING短语中的条件  )常用动态SQL语句  EXECUTEIMMEDIATE  PREPARE(动态预备语句)  EXECUTE  DESCRIBE  使用动态SQL技术更多的是涉及程序设计方面的知识而不是SQL语言本身。 存储过程与SQLPSM  问题  要把完成某功能的SQL做成类似C语言的函数供需要时调用如何做?  什么是存储过程?  是一组被编译在一起的TSQL语句的集合它们被集合在一起以完成一个特定的任务。  存储过程的分类  系统存储过程。  扩展存储过程(提供从SQLServer到外部程序的接口以便进行各种维护活动)。  用户自定义的存储过程。存储过程的创建简单语法:CREATEPROCEDURE存储过程的名字ASSQL语句创建存储过程的步骤:、编写符合要求的SQL语句、测试SQL语句是否正确、按照存储过程的语法创建该存储过程、执行存储过程验证其正确性。带参数的存储过程的创建语法:CREATEPROCEDURE存储过程名字参数名数据类型=默认值,…nASSQL语句作用:可以返回用户输入的查询条件的信息。本章结束第六章 数据库管理  学习目的与要求:  本章总的要求是:了解事务的概念了解数据库的恢复、并发控制、完整性和安全性技术。了解和掌握这些技术在SQL语言中的实现方式。  考核知识点与考核要求  事务(领会)  数据库的恢复(领会)  数据库的并发控制(领会)  数据库的完整性  完整性子系统的功能(领会)SQL中的完整性约束(简单应用)SQL的触发器(领会)  数据库的安全性  安全性问题(领会)SQL中的安全性机制(简单应用)常用的安全性措施(领会) 事务  事务的概念:  事务是一个操作序列。这些操作要么什么都做要么都不做是一个不可分割的工作单位。事务以BEGINTRANSACTION语句开始以COMMIT(提交)语句或ROLLBACK(回退或撤消)语句结束。  一个程序的执行可通过若干事务的执行序列来完成。  事务的性质:  为保证数据库的完整性事务必须具有下列四个性质:  原子性(automicity)  一个事务中对数据库的操作是一个不可分割的整体。  一致性(consistency)  数据不会因事务的执行而遭受破坏。  隔离性(isolation)  在多个事务并发执行时系统应保证与这些事务先后单独执行时的结果一样。  持久性(durability)  一个事务一旦完成全部操作它对数据库的所有更新应永久地反映在数据库中。 数据库的恢复数据库的可恢复性定义?系统能把数据库从被破坏、不正确的状态恢复到最近一个正确的状态DBMS的这种能力称为数据库的可恢复性典型的恢复策略:故障类型和恢复方法1)事务故障2)系统故障3)介质故障 数据库的并发控制  并发控制带来的三类问题:  ()丢失更新的问题  ()不一致分析问题  ()“脏数据”的读出。(在数据库技术中未提交的随后又被撤消的数据为“脏数据”。)  封锁技术  X封锁的规则称为PX协议其内容为:任何企图更新记录R的事务必须先执行LOCKX(R)操作以获得对该记录进行寻址的能力并对它取得X封锁。如果未获得X封锁那么这个事务进入等待状态一直到获准X封锁事务继续进行。  简记为:先锁X再执行取不到就等待。  S封锁的规则称为PS协议:其内容为:任何要更新记录R的事务必须先执行LOCKS(R)操作以获得对该记录寻址的能力并对它取得S封锁。如果未获准S封锁那么这个事务进入等待状态一直到获准S封锁事务才继续进行下去。当事务获准对记录R的要封锁后在记录R修改前必须把S封锁升级为X封锁。  简记为:先锁S再执行锁不到就等待若要修改则升X。 数据库的完整性  数据库的完整性  是指数据的正确性、有效性和相容性。数据库中数据发生错误往往是由非法更新引起的。  数据库完整性是通过DBMS的完整性子系统实现的它有两个功能:  ()监督事务的执行并测试是否违反完整性规则。  ()如有违反则采取恰当的操作如拒绝、报告违反情况改正错误等方法进行处理。  数据库完整性子系统是根据“完整性规则集”工作的这些完整性规则包括:域完整性规则、域联系的规则、关系完整性规则(一个比一个大)。  SQL中的完整性约束  SQL中把完整性约束分成三大类:  1)域约束  域约束子句如CREATDOMAINAGESMALLINTCHECK()  2)基本表约束  ①候选键定义UNIQUE或PRIMARYKEY  ②外键定义FOREIGNKEY(S#)REFERNCES(S#)  ③检查约束定义检查子句(CHECK)  3)断言(CREATEASSERTION断言名CHECK条件)  SQL的触发器  1)触发器的定义:  是一个能由系统自动执行对数据库修改的语句。  2)触发器的组成()事件()条件()动作  3)触发器结构的组成(p结构示意图) 数据库的安全性  数据库安全性定义:数据库的安全性是指保护数据库防止不合法的使用以免数据的泄漏、非法更改和破坏。  安全性级别:包括环境级、职员级、OS级、网络级和数据库系统级。  权限问题:用户或应用程序使用数据库的方式称为权限权限的种类:  访问数据权限:读、插入、修改、删除四种。  修改数据库模式权限:索引(创建或删除索引)、资源(创建新关系)、修改(增删关系结构属性)和撤消权限(撤消关系)。  SQL中的安全性机制  SQL中有四个机制提供了安全性:  1)视图(定义优点)  2)权限(用户权限授权语句回收语句)  3)角色(定义角色内容)  4)审计(定义)常用的安全性机制1)强制存取控制(了解)2)统计数据库的安全性(了解)3)自然环境的安全性(了解)本章结束第章 SQLServer简介及应用  学习目的与要求:  了解SQLServer的基本组成了解和学会图形化工具“企业管理器”的功能与操作。掌握数据定义语言和数据操纵语言数据库的备份与恢复学会存储过程和触发器的编写。  考核知识点与考核要求SQLServer概述(识记)企业管理器(简单应用)TSQL语言(识记) SQLServer概述  SQLServer的结构  MicrosoftSQLServer是一个分布式的关系型数据库管理系统(RDBMS)具有客户服务器体系结构。SQLServer的版本1)SQLServer企业版2)SQLServer标准版3)SQLServer个人版4)SQLServer开发版SQLServer自动创建的数据库个系统数据库和个范例数据库Mater数据库Model数据库Msdb数据库Tempdb数据库Northwind数据库Pubs数据库SQLServer提供的服务1)MSSQLServer:运行SQLServer的服务。2)SQLServerAgent:管理SQLServer周期性行为的安排并在错误时通知系统管理员。它包括作业(Jobs)、警告()Alters)和操作员(Operator)三部分3)MicrosoftServerService:一个全文本索引和搜索引擎。4)MSDTC:管理包含不同数据源的事务。SQLServer主要工具1)服务管理器2)查询分析器3)企业管理器4)事件探察器 企业管理器数据库的操作表的操作索引视图存储过程触发器用户自定义的函数备份恢复与导入导出安全管理 TSQL语言TSQL批处理变量流程控制临时表和表变量本章结束第章 PowerBuilder简介及应用  学习目的与要求:  了解PB的集成开发环境了解和学会应用程序的开发步骤。通过“学生选课系统”的实现掌握使用PB建立本地数据库的能力以及连接数据库和建表的能力初步掌握使用PB建立数据库应用程序的方法。了解PB连接SQLServer数据库的应用实例。  考核知识点与考核要求PB集成开发环境(识记)“学生选课系统”的开发过程(简单应用)PB与数据库的连接(识记) PowerBuilder集成开发环境  PB的特点  1)采用面向对象的编程方法和事件驱动的工作原理。  2)支持跨平台开发具有开放的数据库连接系统。  3)无须记住各种语句格式即可轻松编写语句。  4)人性化设计为用户提供方便快捷的语句块剪切板工具大大提高了程序员的编写程序效率。  5)独特的库文件画板和层次清晰的系统资源树。  6)系统提供了种不同“显示风格”的数据窗口以满足不同的用户需求。  7)提供规范化的Workspase(工作空间)对象让程序员方便地管理创建的应用对象。PowerBuilder开发空间有那三个层次1)Workspace(工作空间)2)Target(目标)3)Library(库文件)系统树、剪贴板和输出窗口系统树窗口剪贴板窗口输出窗口PB的主要画板书上介绍了了重要画板(P~),编程工具的使用多上机实践!本章结束第章 数据库技术的发展  学习目的与要求:  本章是了解数据库技术发展的前景了解面向对象的概念建模和开放数据库互连技术。重点是掌握UML类图的使用了解从ER图到UML类图的发展历程。  考核知识点与考核要求  面向对象的概念建模(领会)  开放数据库互连(ODBC)  ODBC概念(领会)ODBC的体系结构(识记)SQLCLI(识记)典型的数据库应用系统开发工具(领会)  数据模型的演变过程  第一代数据库系统是年代流行的层次、网状DBS。第二代DBS是年代流行的关系数据库系统。但是这两代数据库不能适应新的应用需要:多媒体数据空间数据时态数据复合对象新一代的数据库系统从面向对象技术和数据库结构的角度出发。形成两种风格一是“面向对象的数据库系统”(OODBS)另一种是“对象关系数据库系统”(ORDBS)。 面向对象的概念建模面向对象的数据类型系统基本类型复合类型引用类型  对象联系图  关系模式中的数据结构层次是"关系元组属性"而属性类型是一些基本的数据类型。元组是属性值的有序集合关系是元组的无序集合关系具有规范化结构(NF)因此传统关系模型称为"平面关系模型"。若允许关系的属性值又可以是关系而且可以嵌套形成非NF关系则形成嵌套关系模型。若进一步放宽限制允许关系中的属性可以是基本数据类型、结构类型(元组类型)或集合类型(即关系类型)。则形成复合对象模型。  对象联系图有下列七个基本成分:  1)椭圆代表对象类型(相当于实体类型)  2)小圆圈表示属性是基本数据类型(整型、实型、字符串型等)  3)椭圆之间的边表示对象之间的“应用”  4)单箭头(→)表示属性值是单值  5)双箭头(→→)表示属性值是多值  6)双线箭头(=>)表示对象类型之间的超类与子类联系  7)双线箭头(←→)表示两个属性之间值的联系为逆联系。  UML类图  统一建模语言  统一建模语言(UnifiedModelingLanguage)是一种用于描述、构造软件系统以及商业建模的语言综合了在大型、复杂系统的建模领域得到认可的优秀的软件工程方法。UML是大多数公司采用的标准是ANSI和OMG等部门采用的标准。  UML的产生有三方面的原因:  首先不同的面向对象方法有着许多相似之处通过这项工作消除可能会给使用者造成混淆的不必要的差异是非常有意义的  其次语义和表示法的统一可以稳定面向对象技术的市场使工程开发可以采用一门成熟的建模语言CASE工具的设计者也可以集中精力设计出更优秀的系统  第三这种统一能使现有的方法继续向前发展积累已有的经验解决以前没有解决好的问题。用类图表达类和关联用类图表达关联类用类图表达概化特化用类图表达聚合 开放数据库互连  什么是ODBC  ODBC(OpenDatabaseConnectivity开放数据库互连)是微软公司开放服务结构(WOSAWindowsOpenServicesArchitecture)中有关数据库的一个组成部分它建立了一组规范并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持用户可以直接将SQL语句送给ODBC。  一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS不直接与DBMS打交道所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说不论是FoxPro、Access还是Oracle数据库均可用ODBCAPI进行访问。由此可见ODBC的最大优点是能以统一的方式处理所有的数据库。  ODBC的体系结构  应用程序(Application)。  驱动程序管理器(DriverManager)。驱动程序管理器包含在ODBCDLL中对用户是透明的。其任务是管理ODBC驱动程序是ODBC中最重要的部件。  ODBC驱动程序。是一些DLL提供了ODBC和数据库之间的接口。  数据源。数据源包含了数据库位置和数据库类型等信息实际上是一种数据连接的抽象。SQLCLISQLCLI是ODBC技术的延续。典型的数据库应用系统开发工具PowerBuilder、Delphi、VisualBasic本章结束第三部分 考情交流  本门课程考试情况总体介绍考试过程中应该注意的方法和技巧考前个月的复习技巧。方法  原来就有不少同学说数据库原理难学数据库原理难在抽象特别是有关“范式”和SQL语言的章节学习起来往往感到力不从心。现在教材更新后有的同学说数据库系统原理更难学尤其新增加的那部分。  自考的特点是覆盖面广但并不深你不能临时抓重点来应付考试平时就要多花时间和精力来学习。但自考生由于工作繁忙或其他原因需要掌握高效率的学习方法有目的性、针对性地学习。其实《数据库系统原理》课程中需要记忆的东西并不多这门课的考核要点在于应用。下面我就自己的经验和大家探讨一下这门课的学习方法。  掌握知识结构  《数据库系统原理》的主要内容有SQL语言、关系代数、关系演算语言、数据库设计与保护、关系理论等。其他一些有关关系数据库管理系统实例与数据技术新发展的内容属于了解范围学习这些知识可以扩宽你的眼界对同学们的要求很低。  关系代数、SQL语言的难度都不是很大。其中SQL语言和关系代数(演算)要求掌握各种语句的应用多做书中的例题可以帮助自己熟能生巧。最难的部分在于关系数据库设计理论很多概念比较抽象难于理解这部分需要花多点的时间来学习。  学习数据库设计时必须要对整个数据库设计流程有清晰的认识。从需求分析→概念结构设计→逻辑结构设计→数据库物理→数据库运行和维护各阶段的主要任务都要清楚明了。建议大家参照书中例题多做一些数据库设计会有很好的效果。  数据库保护部分属于需要多看多记的内容数据库设计章节的内容则属于记忆加应用的类型在熟记设计步骤的基础上要反复阅读书中的例子以加深理解。第一范式第二范式……这些概念非常抽象是许多考生头痛的问题。这一部分内容的学习关键是要抓住数据依赖关系来区分各种范式要弄清改变各种范式最终的目的是优化数据库另外最好把各种概念应用到实际例子中来记忆。  认真做好习题  虽然我们并不提倡题海战术但在把基本知识复习好的基础上适当地多做试题的确有助于我们顺利通过考试。你可以从一些提供自考学习资源的网站上获得试卷并将它们打印出来认真地做一遍。以下是一些提供自考试卷的网站地址:华夏大地教育网:http:wwwedueducomcn阶段测评(套)模考(套)真题解析(近年来套试题带讲解)      理论实践相结合考题类型题型一般分为以下几种:一、单项选择题二、填空题三、简答题四、设计题五、综合题考题分析  )单选题  单个用户使用的数据视图的描述称为()(年月全国卷)A外模式B概念模式C内模式D存储模式  方法:  认真读题仔细分析多用排除法。  )填空题分析  数据库的逻辑数据独立性是映象提供的。  将属性集和方法集相同的所有对象组合在一起可以构成一个。  方法:  尽量所添的词和我们参考教材一致文字工整。对于一些专业术语写中文全称和英文简写都可两个都写最好。  )简答题  方法:  对简答题的回答一定要系统、完整的回答。对一些关键词要做必要的解释。  )设计题  主要设计关系代数、关系演算和SQL语言知识点。对与关系代数、和关系演算要注意书写符号要和参考教材一致逻辑要清晰一目了然。  )综合题  主要考察关系模式的规范化!做这种题要注意千万要仔细一步做错后面可能都要错。  方法:  找出主关键字根据主关键字判断出关系模式的函数依赖关系根据依赖关系确定关系模式所属的范式根据范式和函数依赖关系结合分解原则进行分解。对本次考试情况的预测分析只是代表个人意见!第一章  近几年必考的内容有:  数据描述的术语数据抽象的四个级别数据库管理系统的功能和组成数据库系统的组成和全局结构。大多以选择、填空和名词解释题型出现。  今年的出题方向是:  数据模型的四个层次数据库管理系统的功能数据库系统的全局结构等知识点同学们要认真全面掌握。第二章  本章的实用性较强通过本章的学习学生应具有设计数据库结构能力。这一章在试卷中所占分值不多其特点是和设计试题结合一起考察。在专科是我们重点考察的知识。  今年的出题的方向:  ER模型到关系模型的转换规则第三章  本章每年必考内容: 函数依赖、关系模式分解和范式。  今年出题方向:  还是以最后一道综合应用题出现共分同学们要多找些这方面的题来做争取拿满分。第四章  本章每年必考的内容是:  关系代数运算。  今年出题方向:  关系代数运算一定有同学们应熟练掌握关系演算的知识也会涉及到。第五章  本章是本课程一个重点每年必考的内容SQL查询语句、视图、SQL更新语句的应用。  今年的出题方向:  SQL查询语句、视图、SQL更新语句的应用嵌入式语句的应用。同学门应全面掌握深刻理解熟练应用。第六章  本章每年必考内容:  事务、数据库的恢复、并发控制、完整性和安全性技术。一般以填空、名词解释和简答题出现。  今年的出题方向:  题型不会有太大改变重点在事务的性质数据库恢复的策略并发控制带来的问题等。第七、八章  本章是新教材新加内容主要是面向应用的同学们要多上机实践。  今年出题方向:  笔试中不会占太多分数重点看一看SQLServer的版本和自动创建的数据库(Master,Model,Msdb,Tempdb,Northwind,Pubs数据库)  PB的特点、PowerBuilder的开发空间有哪三个层次、什么是“数据窗口”?它有什么特点。第九章  本章第二小节是新加部分。  今年出题的方向:  面向对象技术术语什么叫对象关联图面向对象技术中有那些数据类型ODBC的体系结构有那几层及其每层的功能。  我们复习重点要放在前六章。  无论从考试大纲或者是历年考试试题分析我们都能看到。同学们要认真对待。  最后我们分析一个综合应用题:综合题解析  例:  假设仓库管理关系表为StorehouseManage(仓库ID,存储物品ID,管理员ID,数量)且有一个管理员只在一个仓库工作一个仓库可以存储多种物品。这个数据库表中存在如下决定关系:  (仓库ID,存储物品ID)→(管理员ID,数量)  (管理员ID,存储物品ID)→(仓库ID,数量)  所以(仓库ID,存储物品ID)和(管理员ID,存储物品ID)都是StorehouseManage的候选关键字表中的唯一非关键字段为数量它是符合第三范式的。但是由于存在如下决定关系:  (仓库ID)→(管理员ID)  (管理员ID)→(仓库ID)  即存在关键字段决定关键字段的情况所以其不符合BCNF范式。它会出现如下异常情况:  ()删除异常:  当仓库被清空后所有“存储物品ID”和“数量”信息被删除的同时“仓库ID”和“管理员ID”信息也被删除了。  ()插入异常:  当仓库没有存储任何物品时无法给仓库分配管理员。  ()更新异常:  如果仓库换了管理员则表中所有行的管理员ID都要修改。  把仓库管理关系表分解为二个关系表:  仓库管理:StorehouseManage(仓库ID,管理员ID)  仓库:Storehouse(仓库ID,存储物品ID,数量)。  这样的数据库表是符合BCNF范式的消除了删除异常、插入异常和更新异常。谢谢

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/258

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利