数据库系统概论王珊第五版学习笔记_第1页
数据库系统概论王珊第五版学习笔记_第2页
数据库系统概论王珊第五版学习笔记_第3页
数据库系统概论王珊第五版学习笔记_第4页
数据库系统概论王珊第五版学习笔记_第5页
免费预览已结束,剩余19页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章1 .数据库的四个基本概念:数据、数据库、数据库管理系统、数据库系统。数据:是数据库中存储的基本对象。描述事物的符号称为数据。数据库:是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库数 据具有永久存储、有组织和可共享三个基本特点。数据库管理系统:是计算机的基础软件。数据库系统:是由数据库、数据库管理系统、应用程序和人组成的存储、管理、处 理和维护数据的系统。2 .数据处理和数据管理。数据处理:指对各种数据进行手机、存储、加工和传播的一系列活动的总和。数据管理:指对数据进行分类、组织、编码、存储、检索和维护。3 .数据独立性。物理独立性:指用户的应用程序与数据库中数据的物理存

2、储是相互独立的。逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。4 .数据模型-是对现实世界数据特征的抽象(现实世界的模拟)。数据模型是数据库系统的核心和基础。概念模型:信息模型,按照用户的观点来对数据和信息建模, 主要用于数据库设计逻辑模型:按照计算机系统的观点对数据建模。物理模型:描述数据在计算机内部的表示方式和存取方法。数据模型组成要素:数据结构、数据操作、数据的完整性约束条件。5 .信息世界中的基本概念。实体:客观存在并可相互区别的事物。属性:实体所具有的某一特征。码:唯一标识实体的属性集。联系:失误内部以及事物之间是有联系的。实体内部的联系通常是指组成实体的个 属性之间的

3、联系,实体之间的联系通常是指不同实体集之间的联系。实体之间的联系有 一对一、一对多和多对多等各种类型。6 .数据完整性约束条件。实体完整性:检查主码值是否唯一,检查主码的各个属性是否为空。实体完整性在 创建表时用primary key主键来定义。参照完整性:检查增删改时检查外码约束。在创建表时用外码foreign key短语定义。用户定义完整性:创建表中定义属性的同时,可以根据应用要求定义属性上的约束 条件,即属性值限制。列值非空(not null)、列值唯一(unique)、检查列值是否满足一个条件表达式(check短语)7 .数据库系统的模式。型:是指对某一类数据的结构和属性的说明,对结构

4、的描述和说明。值:是型的一个具体赋值。模式:是数据库中全体数据的逻辑结构和特征的描述,对结构进行描述,仅仅涉及 型。模式的一个具体值称为模式的一个实例。模式反应的事数据的结构及其联系,而实例反应的是数据库某一时刻的状态。8 .数据库的三级模式结构。模式(逻辑模式):是数据库中全体数据的逻辑结构和特征的描述,需要定义数据想的名字,类型,取值范围和数据之间的联系,安全性完整性要求等。外模式(子模式):数据库中数据的局部逻辑结构。内模式(存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的 组织方式。第二章1 .关系模型-关系数据结构、关系操作集合、关系完整性约束三部分组成。2 .关系。

5、域:一组具有相同数据类型的值的集合。关系:笛卡尔积的有限子集。候选码:关系中某一属性组的值能唯一地标识一个元组。候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性3 .表。基本表(基本关系、基表):实际存在的表,是实际存储数据的逻辑表示查询表:是查询结果对应的表。视图表:是由基本表或其他视图表导出的表,虚表,不对应实际存储的数据。4 .关系代数:用对关系的运算来表达查询。关系代数运算的 三个要素:1.运算对象:关系;2.运算结果:关系;3:运算符:四类专门的美运算符选择理影连接逻辑运算符运算符含义运算符含义选择运算是从行的角度进行的运算查询信息系(is系)全体学生(T Sdept

6、 = 'IS' (Student)投影操作主要是从列的角度进行运算。投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)查询学生的姓名和所在系,即求Student关系上学生姓名和所在系两个属性上的投影n Sname Sdept(Student)连接也称e连接:连接运算从 R和S的广义笛卡尔积 RX S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组等值连接 发冈 S在关系R中,A可以取四个值aL a2, a3, a4 修的象集为(3心),(%,的),(为,g) %的象集为1% s),('5) 名的象集为(M,q) 义的象集

7、为(晶,S在。上的投影为(bb c2), (b2, cl)t (b2f c3)只有药的象集包含了解(房。属性组上的投影所以 gS二交; RCS= R -连接:/?xS= o A0B(RXS) ab除,RS=爪 S(R)-式冗式R)义 H y(S)-R)例10查询选修了全部课程的学生号码和姓名心屋2 皿(SC) n8 (Course)MSnoi Smne(Student)第四章什么是数据库的安全性k数据库的安全性是指保护数据库,防止因用户非法使用 数据库造成数据泄露、更改或破坏.k数据库系统的安全保护措施是否有效是数据库系统主要 的性能指标之一.数据库安全控制层次层层设防一 巴/用户标炽DBMS

8、 秋悔与芈划将率蜂和E版1 .数据库安全性控制。用户身份鉴别:静态口令鉴别,动态口令鉴别、生物特征鉴别、智能卡鉴别。存取控制:定义用户权限。合法权限检查。自主存取控制:授予不同对象不同权限。强制存取控制:数据库中的内容带有密级标记,只有具有相应标记的用户才能够访问。 强制存取控制规则尸当某一用户(或某一主体)以标记1日bel注册人系统时,系统要求他对任何客 体的存取必须遵循下面两条规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的 客体;(2)便当主体的许可证级别等于客体的密级时,该主体才能写相应的客体. 修正规则主体的许可证级别客体的密级 今 主体能写客体 规则的共

9、同点方禁止了拥有高许可证级别的主体更新低密级的数据对象2 .授权。授权:-对属性列授权必须指出相应的属性列名。grant select,insert,delete,updateon table Student,Scto用户1,用户2收回权限:revoke selecton table Student,Scfrom用户1,用户23 .角色。数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。创建角色、对角色进行授权、将角色授权给其他的角色或者用户、角色权限 的收回。创建角色:create role 角色1,角色2给角色授权:grant select,inserton table S

10、tudentto角色1,角色2将角色授权给其他用户:grant角色1to用户1,用户2收回角色权限:Revoke selectOn table StudentFrom角色14 .视图。创建视图:Create view 视图 1AsSelect *From StudentWhere Sdept = CS第五章1 .数据库完整性。数据库的完整性是指数据的正确性和相容性。数据的正确性是指额数据是符合现实世界语义、反应当前实际状况的。 数据的相容性是指数据库同一对象在不同的关系表中的数据 是符合逻辑的。2 .保障数据库的完整性。提供定义完整性约束条件的机制。提供完整性检查的方法。进行违约处理。数据完整

11、性约束条件前文中已经讲述,此处不再赘述。第六章1 .函数依赖。若对于R(U)的任意一个可能的关系 r, r中不可能存在两个元组在 X上的属性值相等, 而在Y上的属性值不等,则称“X函数确定 Y 或 "Y函数依赖于X”,记作X- Y可以从不同角度分类: 平凡函数依赖与非平凡函数依赖 完全函数依赖与部分函数依赖 直接的教依赖与传诵函融依趣如果卜丫,(BYcX,剧称X-Y是平凡的函数使若果户Y,但Y 6K则称X-Y是辛平凡的函数依籁如果X-Y,并且对于X的任何一个真子集X,,都有X»Y, 则称Y完全函数依赖于X,记作X,Y口若XfY,但Y不完全函数依赖于X.则称Y部分函数依赖于X

12、.记作X J Yo如果XfY, YfZ,且Y0X,Y、X,则称Z传递函数依赖于九如果X-f Y,则Z直接依新于X。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的 集合,这种过程叫做规范化。1NF (第一范式)如果一个关系模式 R的所有属性都是 不可分的基本数据项,则RC1NF第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数 据库。2NF:如果RC 1NF,且每一个非主属性完全依赖于码,则RC 2NF采用投影分解法 将一个1NF的关系分解为多个 2NF的关系3NF:如果R是2NF,且每个非主属性都不传递依赖于R的候选码,则 R属于3NF。

13、2NF消除非主属性的部分依赖,3NF消除非主属性的传递依赖2NF和3NF都是对非上属性的要求,2NF要求每一个非主属 性完全函数依赖于码:3NI耍求每一个非主属性既不部分 依赖于码也不传递依赖于码.R F1NF,若X-Y且YX时X必含有码,则,BCNF 的定义:RGBCNFoBCNF不仅对非主属性有要求,而且也对主属性有要求BCNF如果一个关系模式只有两个属性构成,则该关系模式一定属于例:关系模式SJP61p)中.s电学生学号,j是课程号.p 表示名次(没有并列名次),每一个学生西修每门课程的成绩 有一定的名次,由语义可得到函数依赖集F如下R- CS, J) f, (_L P) 一 S)思考二

14、指出该关系模式的候选码 指£B主属性.非主属11 凄关系模式是否是3NH? 该关系模式是否是BCNF?有两个:(S,J) ,(J,P)主属性:s. J. pf没方非主属性SJP 三 3NFSJP 曰 BCNF例:关系模式STU(S,T, J)中,S是学生学号,T表小教师编号,厚课程号.每个教师只教一门课,每门课有若干 教师讲赛,某一学生选定某门课,就对应一个固定的教师。由语义可得到函数依赖集晒下:F= (S, J) fJ思考.,指由该关系模式的候选码 指出主属性、并主属性 该关系模式是否是3NF? 该关系模式是否是 状?有两个:(S,J) , (&T)主属性;S. J、P;没

15、有*主属性SJP £3NFSJP CNF1NF消除非主属性对码的部分函数依赖 2NFI消除非主属性对码的传递函数依赖3NFI消除主属性对码的部分和传递函数依赖 BCNF合并规则:由户匕AZ有户区伪传递规则;由广匕叱Z有加分入分解规则:由户必有户K XZ.U“A, B, C, D; F-A 一 B, BC D;计算(AC"(AQF* TaB,c,D)判断一个函数依赖在R上是否成立R(A, B, C, D), F=A - B, BC - D;问;AC f D是否在R_t成立?第一种解决方法;计算户,看看aC-D是否在其中。诬方法计 算量大,不可行口第二种解决方法工如果ACD成立

16、,则D一定属于(AC)J ,因此, 日先计算(ac)l ,如果dw(ac)l ,则成立,需则,不成由于(AC*"=A,B,C,D,所以ACD在R上成立,己知关系模式R<U, F>r其中U=A, B, C, D,E);F-AB-*C, BfD, CfE, EC-*B, AC-B _求关系的候选码并判断该关系模式是几范式?过程:首先.找出所有没有在任何一个函数依赖右侧出现的属性. 把他们组成一个属性组K,候选码一定含有K;计算耳如果%=15,则K为候选码,而且只有这一个; 否则,基于K扩充属性,形成新的属性组(含有K但不含 候选码的所有可能的属性组合),计算新属性组的闭包,

17、判斯其是否为候选妈口候选码A3,A,C1范式第七章1.数据库设计,数据库设计分6个阶段。需求分析。概念结构设计。逻辑结构设计。物理结构设计。数据库实施。数据库运行和维护。2.数据项是不可再分的数据单位数据结构反映了数据之间的组合关系。数据流是数据结构在系统内传输的路径。数据存储是数据结构停留或保存的地方,也就是流的来源和去向之一。具体处理逻辑一般用判定表或判定树来描述。数据字典是关于数据库中数据的描述,是元数据,而不是数据本身。数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加自顶向下的进行需求分析,

18、自低向上的设计概念结构。定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。物理设计的第一任务就是要确定选择那些存取方法,即建立哪些存取路径。什么是数据库的物理设计数据库在物理设备上的存储结构与存取方法称 为数据库的物理结构,它依赖于给定的计算机 系统。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理 设计。3. E R 图实体型:用矩形表示,矩形框内写明实体名属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来, 在无向边旁标上联系的类型(1:1、1:n或m:n)同时则这学

19、生(成绩)票程(课程褊号(课樱电称)EQ (性别(出生h期)属于学院名称工作1教职丁GiD联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性, 些属性也要用无向边与该联系连接起来&口工乍哺蒲)在关系总数尽量少的情况下,该E-R图转换后关系模式包括:学生(学号,姓名,性别,专业,出生日期,学院编号)课程(课程编号,课程名称,课程类别,学分)学院(学院编号,学院名称,办公室电话, 院长教职工编号)教职工(教职工编号,姓名,参加工作时间,职称,学院编号)选课(学号,课程号,成绩)第八章1 .游标。使用:声明游标、打开游标、从一个游标中提取信息、关闭释放游标。声明游标:De

20、clare XXX cursorFor select *打开游标:open XXX关闭游标:close XXX释放游标:deallocate XXX声明一个名为curAllCourse的游标,完成统计有多少学生选修了全部课程,输出学生学号和姓名。declare curAllCourse cursor/ 声明游标for SELECT SNO, snamefrom studentwhere sno in (select snofrom scgroup by snohavingCOUNT;*)>=(select COUNT*) from course) )for read onlyopen c

21、urAllCourse/ 打开游标/声明变量declare sno char ( 10), sname char (10) set sno=0fetch next from curAllCourse into sno, sname / 从游标中取数据 while FETCH_STATUS= 0 beginif sname is nullset sno = sno + 1select sno 学号,sname 姓名fetch next from curAllCourse into sno, sname endCLOSE curAllCourse/ 关闭游标DEALLOCATE curAllCou

22、rse/ 释放游标2 .存储过程。视图、存储过程和自定义函数视图存储过程自定义函数语句只能是SELECT语句可以包含程序流,逻 辑以及SELECT语句可以包含程序流、 逻辑以及SELECT 谙句输入不能接受冬数可以有输入输出参数有输入参数返回值只能返回结果集返回值只能是整数可以返回标量值、 表典型成 ffl第个表格的连接查 询完成某个特定的较复 杂的任务可以完成比校复杂 的任务,可以出现 在5曰Cl语句中类似与C语言中的函数。编写一个存储过程,在sc表统计每个学生的平均分.create proc avergrade/创建存储过程as beginselect sno , avg ( grade

23、) 平均分from sc group by snoendexec avergrade/执行存储过程drop procedure avergrade/ 删除存储过程对练习1的存储过程进行改进,添加一个输入参数一一学号,使存储过程能根据输入的学号 计算该学生的平均分 create proc avergrade sno char (10) as beginselect sno , avg ( grade ) 平均分from scwhere sno = sno group by snoendexec avergrade '04'drop procedure avergrade在练习2的

24、基础上添加一个输出参数一一平均分,计算指定学号的平均分,然后将平均分输 出。create proc avergrade sno char (10), saving int outasbeginselect saving = avg (grade )from scwhere sno = snogroup by snoenddeclare avg intset avg = 0exec avergrade '02' , avg outselect avg 平均分drop procedure avergrade3 .函数。函数必须返回指定类型,可以返回表,有输入参数。创建成绩转换函数,

25、实现百分制成绩与优、良、中、及格、不及格五个等级的换算CREATE FUNCTION grade_trans(grade FLOAT)RETURNS CHAR(16)ASBEGINDECLARE class CHAR(16)SELECT class = CASEWHEN grade IS NULL THEN 没参力口考试'WHEN grade < 60 THE邮及格'WHEN grade >= 60 and grade < 70 THEN格WHEN grade >= 70 and grade < 80 THE N 等'WHEN grade

26、>= 80 and grade < 90 THE N好' ELSE '优秀!'ENDRETURN(class)ENDselect dbo.grade_trans(88)查询某个院系所有学生所选的每门课的平均成绩。create function aver (p char (10) returns table asreturn (select cno 课程号,avg (grade ) 平均成绩from student , scwhere student . sno =sc. sno and sdept =p group by cnoselect)* from d

27、bo . aver ('cs' ) drop function aver求某个院系选修了某门课的学生人数。create function people (p0 char (10), p1 char (4) returns int asbegindeclare renshu intselect renshu =(select COUNT(*)选课人数from student , scselectwhere student . sno = sc . sno and cno = p1 and sdept = p0 ) return renshu enddbo . people ( &

28、#39;cs' , '2')drop functionpeople4 .触发器。 Create trigger XXX On table for /after /instead of Insert,delete,update As触发器实际需要触发内容For:用法同afterAfter:执行完sql语句之后进行检查,检查不符合条件的话回滚roll back。after触发器只能在表上指定。Instead of :指定触发器时代替SQL语句执行的,其优先级高于触发语句的操作。 例:为student表建立触发器T1,当插入或更新表中的数据时,保证所操作的记录的sage直大于

29、0。create trigger T1 on student after insert , update as begin declare sage int select sage = inserted . sage from inserted if ( sage < 0 ) begin print '年龄错误' rollback transaction end end update studentset sage = 38 where sno = '01'insert into student (sno , sname , ssex , sage , s

30、dept ) values ('2007011','张三','男',55, 'ma')为student 表建立触发器T2 ,禁止删除编号为“0001 ”的学生insertinto student (sno , sname , ssex , sage , sdept )values ( '0001','傻大个','男',19 , 'is')createtrigger T2on student after delete as begindeclare sno char (

31、10 )select sno = deleted . sno from deleted if (sno = '0001') beginprint '禁止删除学号0001信息 rollback transactionend enddelete studentwhere sno = '0001'drop triggerT2第十章1 .事务。是一系列的数据库操作,是数据库应用程序的基本逻辑单元。是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单元。2 .事务的四个特性。原子性:事务是数据库的逻辑工作单位,事务总包括的诸操作要么

32、全做,要么全不做。一致性:数据库只包含成功事务提交的结果,就说数据库处于一致性状态。隔离性:一个事务的执行不能被其他事务干扰。即一个事务的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。持续性:指一个事务一旦提交,他对数据库中数据的改变就应该是永久性的。事务是恢复和并发控制的基本单位。3 .数据库恢复。把数据库从错误状态恢复到某一已知的正确状态的功能。1 .运行事务非正常中断。2 .数据丢失。4 .故障种类。运行事务非正常中断 恢复-事务撤销。系统故障、介质故障、计算机病毒。5 .恢复实现技术。数据恢复的基本原理: 冗余。建立冗余数据最常用的技术是数据转储和登记

33、日志文件。6 .数据转储。静态转储:是在系统中无运行事务时进行的转储操作。动态转储:是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。海量转储:每次转储全部数据库。增量转储:指每次只转储上一次转储后更新过的数据。7 .日志文件。是用来记录事务对数据库的更新操作的文件。在事务故障恢复和系统故障恢复必须用日志文件。在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。在静态转储中也建立日志文件 8 .登记日志文件(对数据库的操作记录)。登记的次序严格按并发事务执行的时间次序。必须先写日志文件,后写数据库。9 .事务故障的恢复。恢复子系统应利用日志文件

34、撤销此事务已对数据库进行的修改,系统自动进行。10 .系统故障恢复。导致故障原因可能有两个:1 .未完成事务对数据库的更新可能已写入数据库。2 .已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。恢复策略是撤销故障发生时未完成的事物,重做已完成的事物。11 .介质故障的恢复。数据库副本。第十一章1 .并发操作带来的数据不一致性。并发操作破坏了事务的隔离性。丢失修改:两个事务同时读入同一数据并修改,T2提交的结构破坏了 T1提交的结果,导致T1的修改被丢失。不可重复读:事务1读取数据后,事务 2执行更新操作,使 T1无法再现前一次读取结 果。读脏数据:事务1修改某一数据并将其写回磁盘,

35、事务 2读取同一数据后,T1由于某 种原因被撤销,这时被 T1修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为脏数据,即不正确的数据。2 .并发控制的主要技术。封锁、时间戳、乐观控制法、多版本并发控制等。3 .封锁。封锁就是事务T对某个数据对象操作之前, 先向系统发出请求,对该数据对象进行加锁。 加锁后事务T就对该数据对象有了一定的控制, 在事务T释放它的锁之前,其他事务不能更 新此数据对象。4 .封锁类型。排他锁(写锁):若事务T对数据对象A加上X锁,则只允许 T读取和修改A,其他任 何事务都不能再对 A加任何类型的锁,直到 T释放A上的锁为止。保证了其他事务在 T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论