数据库系统概论王珊第五版学习笔记_第1页
数据库系统概论王珊第五版学习笔记_第2页
数据库系统概论王珊第五版学习笔记_第3页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

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:运算符:四类运算符含义运算符含义专门的关0选择逻辑运算斗F系JT 投影符A与运算符X连接V或-选择运算是从行的角度进行的运算查询信息系(IS系)全体学生d Sdept = IS (S

6、tudent)投影之后不仅取消了原关系中的某些列,而投影操作主要是从列的角度进行运算。且还可能取消某些元组(避免重复行)查询学生的姓名和所在系,即求Student关系上学生姓名和所在系两个属性上的投影n Sname Sdept(Student)连接也称B连接:连接运算从 R和S的广义笛卡尔积 RX S中选取(R关系)在A 属性组上的值与(S关系)在B属性组上值满足比较关系的元组等值连接斤 X SRS=SSAac6-*I3r2ab、叫%巧-卜rtrfd在关系R中.A可以取四个値乩,a2, a3f a4 丙的象集为(久(鸟,G) 电的象集为(為,叼),(鸟,q) 禺的象集为(bv G) 和的象集为

7、(爲Q廉(尽。上的投影为(bb c2)t (b2f cl)r (b2r c3) 只有遇的象集包含了雄0属性组上的投影所以 RS=a 交: RCS工R -(圧S)连接:R X S = A0H(RXS)ABB除:RS= II X(R)- T1 x( JI x(R)X H y(S)-R)第四章什么是数据库的安仝杵数据库的安全性是措保护数据库,阴止因用户非法使用 数据库造成数据泄露、更改或破坏”尸数搦库系统的安全保护扌昔施是否有效是数踮库系统主変 的性能指标之一。数据库安全控制层次瞬作洁求用户标识DBMS 存邛展鲍J审计1数据库安全性控制用户身份鉴别:静态口令鉴别,动态口令鉴别、生物特征鉴别、智能卡鉴

8、别 存取控制:定义用户权限。合法权限检查。自主存取控制:授予不同对象不同权限。强制存取控制:数据库中的内容带有密级标记,只有具有相应标记的用户才能够访问。强制存取控制规则尸当某一用户(或某一主休)以标记均注册入系统时,系统要求他对任何客 体时存取必须遵循下面两条规则:1)仅当主体的许可证级别大于或等于客休的密级时扌该主休才能读取相应的 客体;(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。修正规则严主休的许可证级别 -*s)有两个* (S,J(J.P主属杵:S. J. P5没冇非主属性SJP 合并规则:由*齐有腹伪传递规则m由沪Z有册ZI分解规则:由4必 有尸只x-z.判断

9、一个函数依赖在R上是否成立K(A, B, G D), F=A B, BC 1); 问:AC是否在K_t成立?第一种解决力法=计算看看是否在其中口该去眩计 算量大,不可齐。弟二种解决方法:如果M 成立,则-定属于仇卢,因氐 更先计算(AQf* ,如果DU(ACV ”则成立,否则,不成由于(AC)f+所以ACD在R上成立.己知关系模式RQh F九其中1A, B=(select COUNT*)from course)for read onlyopen curAllCourse/ 打开游标/声明变量declare sno char ( 10), sname char ( 10)set sno=0fet

10、chnext from curAIICourse into sno, sname / 从游标中取数据while FETCH_STATUS= 0begi nif sname is nullset sno = sno + 1select sno 学号,sname 姓名fetch n ext from curAllCoursein tosno, sn ameendCLOSE curAllCourseDEALLOCATE curAllCourse/关闭游标/释放游标2存储过程。视图、存储过程和自定义函数视图存储过程自定义函数语旬只能是SELECT语句可以包含程序流、逻 辑以及SELECT语句可以包含程

11、序流、 逻辑以及SELECT语句输入不能接受参数尙以有输入输出参数有输入参数返网值只能返回结果集返回值只能是整数可以返回标量值“恚典型应 用嗥个表格的连接查 询完或某个特定的较复 杂的任务可以完成比较复衆 的任务,可以出现 在sulwct语句中类似与C语言中的函数。编写一个存储过程,在sc表统计每个学生的平均分create proc avergrade/创建存储过程asbegi nselectsno , avg ( grade ) 平均分endfromgroupscby snoexec avergrade/执行存储过程drop procedure avergrade/删除存储过程对练习1的存储

12、过程进行改进,添加一个输入参数一一学号,使存储过程能根据输入的学号 计算该学生的平均分create proc avergradesno char (10)asbegi nselect sno , avg ( grade ) 平均分from scwhere sno = snogroup by snoendexec avergrade 04drop procedure avergrade在练习2的基础上添加一个输出参数一一平均分,计算指定学号的平均分,然后将平均分输 出。createprocavergradesno char ( 10),sav ingintoutasbeginselectsavi

13、ng= avg (grade )from scwhere sno = snogroup by snoenddeclare avg intset avg = 0exec avergrade 02, avg outselect avg 平均分drop procedure avergrade3函数。函数必须返回指定类型,可以返回表,有输入参数。创建成绩转换函数,实现百分制成绩与优、良、中、及格、不及格五个等级的换算CREATE FUNCTION grade_tra ns(grade FLOAT)RETURNS CHAR(16)ASBEGINDECLARE class CHAR(16)SELECT c

14、lass = CASEWHEN grade IS NULL THE还没参加考试WHEN grade = 60 and grade = 70 and grade = 80 and grade 90 THE 良好ELSE 优秀!ENDRETURN(class)ENDselect dbo.grade_tra ns(88)查询某个院系所有学生所选的每门课的平均成绩。createfun cti onaver(p char ( 10)returnstableasreturn(selecteno 课程号,avg (grade)平均成绩fromstude nt ,scwherestude nt.sno =sc

15、 . snoand sdept=pgroupby cno)select* fromdbo . aver(cs)dropfun cti onaver求某个院系选修了某门课的学生人数。createfunctionpeople (p0 char (10), p1 char (4) returns intasbegindeclareren shu intselectren shu=(select COUNT(*)选课人数fromstudent, scwherestudent. sno = sc . sno and eno = p1 and sdept = p0)returnren shuendsele

16、ctdbo . people ( cs ,2 )drop fun cti onpeople4.触发器。Create trigger XXXOn tablefor /after /instead of lnsert,delete,updateAs触发器实际需要触发内容For:用法同afterAfter:执行完sql语句之后进行检查,检查不符合条件的话回滚roll back。after触发器只能在表上指定。In stead of :指定触发器时代替SQL语句执行的,其优先级高于触发语句的操作。 例:为student表建立触发器T1,当插入或更新表中的数据时,保证所操作的记录的sage大于0。cre

17、ate trigger T1on studentafterinsert, updateasbegindeclare sage intselect sage = inserted . sage from insertedif ( sage 0 )beginprint 年龄错误rollback tran sacti onendendupdatestude ntset sage = 38 where sno = 01sname , ssex , sage , sdept )男,55, ma)insertintostudent(snovalues (2007011, 张三为student 表建立触发器

18、T2,禁止删除编号为“ 0001 ”的学生 insertinto student ( sno , sname , ssex , sage , sdept )values ( 0001,傻大个,男,19 , is)createtrigger T2on studentafter delete as begindeclare sno char (10 )select sno = deleted . sno from deletedif ( sno = 0001)beginprint禁止删除学号0001信息rollbacktran sacti onendenddeletestude ntwhere s

19、no = 0001 drop trigger T2第十章1 事务。是一系列的数据库操作,是数据库应用程序的基本逻辑单元。是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单元。2 .事务的四个特性。原子性:事务是数据库的逻辑工作单位,事务总包括的诸操作要么全做,要么全不做。一致性:数据库只包含成功事务提交的结果,就说数据库处于一致性状态。隔离性:一个事务的执行不能被其他事务干扰。即一个事务的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。持续性:指一个事务一旦提交,他对数据库中数据的改变就应该是永久性的。事务是恢复和并发控制的基本

20、单位。3 数据库恢复。把数据库从错误状态恢复到某一已知的正确状态的功能。1. 运行事务非正常中断。2. 数据丢失。4 .故障种类。运行事务非正常中断 恢复-事务撤销。系统故障、介质故障、计算机病毒。5 .恢复实现技术。数据恢复的基本原理:冗余。建立冗余数据最常用的技术是数据转储和登记日志文件。6. 数据转储。静态转储:是在系统中无运行事务时进行的转储操作。动态转储:是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。海量转储:每次转储全部数据库。增量转储:指每次只转储上一次转储后更新过的数据。7. 日志文件。是用来记录事务对数据库的更新操作的文件。在事务故障恢复和系统故障恢复

21、必须用日志文件。在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。在静态转储中也建立日志文件 &登记日志文件(对数据库的操作记录)。登记的次序严格按并发事务执行的时间次序。必须先写日志文件,后写数据库。9 事务故障的恢复。恢复子系统应利用日志文件撤销此事务已对数据库进行的修改,系统自动进行。10 系统故障恢复。导致故障原因可能有两个:1. 未完成事务对数据库的更新可能已写入数据库。2. 已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。恢复策略是撤销故障发生时未完成的事物,重做已完成的事物。11 介质故障的恢复。数据库副本。第十一章1 并发操作带来的数

22、据不一致性。并发操作破坏了事务的隔离性。丢失修改:两个事务同时读入同一数据并修改,T2提交的结构破坏了 T1提交的结果, 导致T1的修改被丢失。果。11读取数据后,事务 2执行更新操作,使 T1无法再现前一次读取结 修改某一数据并将其写回磁盘,事务2读取同一数据后,T1由于某种原因被撤销,这时被T1修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为脏数据,即不正确的数据。2并发控制的主要技术。封锁、时间戳、乐观控制法、多版本并发控制等。3.封锁。封锁就是事务T对某个数据对象操作之前, 先向系统发出请求,对该数据对象进行加锁。 加锁后事务T就对该数据对象有了一定的

23、控制, 在事务T释放它的锁之前,其他事务不能更 新此数据对象。4封锁类型。排他锁(写锁):若事务T对数据对象A加上X锁,则只允许 T读取和修改A,其他任 何事务都不能再对 A加任何类型的锁,直到 T释放A上的锁为止。保证了其他事务在 T释 放A上的锁之前不能再读取和修改 A。共享锁(读锁):若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A, 其他事务只能再对 A加S锁,而不能加 X锁,直到T释放A上的S锁为止。保证了其他事 务可以读A,但在T释放S锁之前不能对 A做任何修改。5封锁协议。一级封锁协议:事务T在修改数据R之前必须先对其加 X锁,直到事务结束才释放。 可防止丢失修改,保证事务 T是可恢复的。二级封锁协议: 在一级封锁协议基础上增加事务T在读取数据 R之前必须先对其加 S锁,读完后即可释放 S锁。二级封锁协议可以防止丢失修改和读“脏”数据三级封锁协议:在一级封锁协议的基础上增加事务 T在读取数据R之前必须先对其加 S 锁,直到事务结束才释放。 三级圭寸锁协议可防止丢失修改、 读脏数据和不可重复读, 容易造 成比较多的死锁。6活锁和死锁活锁:有一个事

温馨提示

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

评论

0/150

提交评论