重庆大学在职研究生数据库系统_第1页
重庆大学在职研究生数据库系统_第2页
重庆大学在职研究生数据库系统_第3页
重庆大学在职研究生数据库系统_第4页
重庆大学在职研究生数据库系统_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

#/7主要内容口第1章绪论口第2章关系模型口第3章结构化査询语言-SQL口第4章并发控制口第5章数据库设计第1章绪论口基本概念■数据库(Database,DB):长期储存在计算机内、有组织的、可共享的数据集合。■数据库管理系统(DatabaseManagementSystem,DBMS):是位于用户与操作系统之间的一层数据管理软件。常用的大型数据库管理系统包括DB2、SQLSERVER、Oracle、Sybase、Informix等。应用ASERVER、Oracle、Sybase、Informix等。应用A应用D|外摸式1數据库系统的楼式结构应问£井蟆式制外锁式£離式/内棲式映能数据阳口外模式(ExternalSchema)也称子模式或用户模式,是把现实世界中的信息按照不同用户的观点抽象为多个逻辑数据结构,每个逻辑结构称为一个视图,描述了每个用户关心的数据,即数据库用户看见和使用的局部数据的逻辑结构和特征的描述。数据库外模式是面向用户的数据库模式。口数据库三级模式体系结构的划分,有利于保持数据库的数据独立性。口数据的逻辑独立性口数据的物理独立性口数据模型:是现实世界数据特征的抽象。口概念数据模型:按用户的观点对数据和信息建模。如:实体联系模型口逻辑数据模型:按计算机系统的观点对数据建模。如:层次模型,网状模型,关系模型口数据仓库口数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,用以支持企业或组织的决策分析处理。口分布式数据库系统是逻辑上属于同一系统,物理上分布在用计算机网络连接的多个场地(或叫结点)上的数据集合,且每个场地具有独立处理和自治能力,至少能参加一个全局应用,并由分布式数据库管理系统统一管理。口分布式数据库系统的特点:口数据独立性;口中和自治相结合的控制机制口可控冗余口事务管理的分布性口存取效率第2章关系模型口关系模型:用二维表的形式表示实体和实体间联系的数据模型口关系数据模型由关系数据结构、关系操作和完整性约束三部分组成。口数据完整性:是指保护数据库中数据的正确性、有效性和相容性,防止不合语义的数据进入数据库。口关系模型符合1NF。口第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项。口2NF:不存在非主属性部分依赖于侯选键的关系模式口3NF:不存在非主属性传递依赖于侯选键的关系模式口超键(Superkey):在一个关系中,能唯一标识元组的属性集。口键Key(候选键candidatekey):—个属性集能惟一标识元组,又不含有多余属性。口主键(primarykey):关系模式中用户正在使用的候选键称主键。用作主键的列不可以为NULL,在行记录中不可以重复,可以将几个列合并起来用作主键。口外键(ForeignKey):是指关系R中的一组属性A不是关系R的主键,但A是另一个关系S的主键,则属性组A就是关系R的外键。口例:有一个读者关系,其主键为借书证号。另有一个借阅关系,其属性有借书证号、总编号、借书日期等,主键为总编号,则借书证号为借阅关系的。口关系代数:用关系的运算来表达查询要求的方式。口并、差、交口广义笛卡尔积口投影:是从关系R中选择出若干属性列组成新的关系。口选择:在关系R中选择满足给定条件的元组。口连接:从两个关系的笛卡儿积中选取属性间满足一定条件的元组。口除法第3章结构化查询语言一SQL口SQL(StructuredQueryLanguage)是结构化查询语言,包括查询、定义、操纵和控制四个部分,是一种功能齐全的数据库语言。目前已成为关系数据库的标准语言。SQL功能关键动词数据查询DQL(DataQueryLanguage)SELECT数据定义DDL(DataDefinitionLanguage)CREATE,DROP,ALTER数据操纵DML(DataManipulationLanguage)INSERT,UPDATE,DELETE数据控制DCL(DataControlLanguage)GRANT,REVOKE口1.定义基本表口CREATETABLE<表名>(<列名><数据类型>[列级完整性约束条件][,<列名><数据类型>[列级完整性约束条件]...)[,<表级完整性约束条件>];口设有一个关系数据库,有三个基本表,表结构如下:口STUDENT(学号姓名年龄性别学院号)、口SC(学号课程号成绩)、口COURSE(课程号课程名学时数课程类型)口创建COURSE表的SQL语句口CreateTableCOURSE(课程号char(6)notnullprimarykey,课程名char(30),学时数smallint,课程类型char(10))口查询口SELECT[ALL|DISTINCT]v目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]...[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];口GROUP:将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录。口如果GROUP子句带HAVING短语,则只有满足指定条件的组才予输出。口如果有ORDER子句,则结果表还要按<列名2>的值的升序或降序排序。口使用聚合函数口COUNT([DISTINCT|ALL]*)统计元组个数口COUNT([DISTINCT|ALL]<列名>)统计一列中值的个数口SUM([DISTINCT|ALL]<列名>)计算一列值的总和口AVG([DISTINCT|ALL]<列名>)计算一列值的平均值口MAX([DISTINCT|ALL]<列名>)求一列值中的最大值口MIN([DISTINCT|ALL]<列名>)求一列值中的最小值口客户表CUSTOMERS(cid,cname,city,discnt)口产品表PRODUCTS(pid,pname,city,quantity,price)口代理商表AGENTS(aid,aname,city,percent)口订单表ORDERS(ordno,month,cid,aid,pid,qty,dollars)口1)查询居住在纽约的客户的cid值和名字。口Selectcid,cnamefromCUSTOMERSwherecity='NewYork';口2)查询没有通过代理商a01订购过商品的顾客的cid值。口Selectcidfromcustomerscwherenotexists(select*fromordersowherec.cid=o.cidandaid='a01')口客户表CUSTOMERS(cid,cname,city,discnt)口产品表PRODUCTS(pid,pname,city,quantity,price)口代理商表AGENTS(aid,aname,city,percent)口订单表ORDERS(ordno,month,cid,aid,pid,qty,dollars)口3)查询满足条件为某个代理商所订购的某种产品的总量超过500的产品ID、代理商ID和总量。口Selectpid,aid,sum(qty)asTOTALfromordersgroupbypid,aidhavingsum(qty)>500;口更新数据口格式为:口UPDATE<表名>口SET<列名1>=<表达式1>[,<列名2>=<表达式2>][,...n]口[WHERE<条件>];口客户表CUSTOMERS(cid,cname,city,discnt)口产品表PRODUCTS(pid,pname,city,quantity,price)口代理商表AGENTS(aid,aname,city,percent)口订单表ORDERS(ordno,month,cid,aid,pid,qty,dollars)口例:修改表PRODUCTS的数据,把存放在城市Duluth或Dallas的所有产品的价格提高20%。口Updateproductssetprice=1.2*pricewherecityin('duluth','dallas')口数据库的安全性控制是指保护数据以防止未经授权或不合法的使用造成的数据泄露更改或破坏。口保证数据库系统的安全性措施:口1)用户标识和身份鉴定;口2)存取控制;口3)定义视图;口4)审计;口5)数据加密。口一、授权口grant表级权限on{表名|视图名}to佣户[,用户]…|public}[withgrantoption]withgrantoption表示获得权限的用户可以把权限再授予其它用户口回收权限口revoke表级权限on俵名|视图名}from{用户[,用户]…|public}口例:授予用户SQLTest对数据库Sales的CUSTOMERS表的列cid、cname的查询权限。口grantselectoncustomers(cid,cname)tosqltest口视图是从一个或几个基本表(或视图)导出的表,它是一个虚表,只存放视图的定义,而不存放视图对应的数据。口优点:口1)简化用户的操作;口2)使用户能从多种角度看待同一数据;口3)对重构数据库提供了一定程度的逻辑独立性;口4)能够对机密数据提供安全保护。口索引(INDEX)是对数据库表中一列或多列的值进行排序的一种结构。建立索引是加快查询速度的有效手段,用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。口游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果,用户可以用SQL语句逐一从游标中获取记录,并赋值给主变量,交由主语言进一步处理。口一个SQL语句原则上可产生或处理一组记录,而程序语言一次只能处理一个记录,为此必须协调两种处理方式,这是通过使用游标机制来解决的。口存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数来执行它。存储过程有以下的优点:口重复使用。口提高性能。存储过程在创建的时候就进行了编译,将来使用的时候不用再重新编译。口减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。口安全性。参数化的存储过程可以防止SQL注入式的攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。口函数是由一个或多个Transact-SQL语句组成的子程序,可用于封装代码以便重新使用。口存储过程和函数的区别:口存储过程可以返回参数,而函数只能返回值或者表对象。口存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。口函数在系统启动时就进行编译并加载,存储过程在调用时才加载。口触发器是一种特殊的存储过程,它可以在对一个表上进行INSERT、UPDATE和DELETE操作中的任一种或几种操作时被自动调用执行。第4章并发控制口日志文件是用来记录事务对数据库的更新操作的文件,在数据库恢复中其着非常重要的作用,可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质恢复。口并发控制口为了充分利用数据库资源,发挥数据库共享资源的特点,应该允许多个用户并行地存取数据库,但会产生多个用户并发存取同一数据的情况,需要对并发操作进行控制,以防止数据库的不一致性。口并发控制机制的好坏是衡量数据库管理系统性能的重要标志之一。并发控制是以事务为单位进行的。口封锁技术(Locking)是并发控制的主要技术,所谓封锁就是当一个事务在对某个数据对象(可以是数据项、记录、数据集以至整个数据库)进行操作之前,先请求系统对其加锁,成功加锁之后该事务就对该数据对象有了控制权,只有该事务对其进行解锁之后,其他的事务才能更新它。口DBMS普遍采用封锁方法保证调度的正确性。口死锁:在数据库并发控制中,两个或多个事务处于等待状态。口事务是数据库的逻辑工作单位,是用户定义的一组操作序列。在关系数据库中,一个事务可以是一组SQL语句或整个程序。事务通常是以BEGINTRANSACTION开始,以COMMIT或ROLLBACK结束。事务应具有原子性、一致性、隔离性和持续性。口原子性:事务必须是原子工作单元,对于其数据操作,要么全都执行,要么全都不执行。口一致性:事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状态。口隔离性:一个事务的执行不能被其它事务干扰。口持续性(持久性):一旦事务成功提交,其对数据库的更新操作将永久有效,即使数据库发生故障。口并发操作带来的数据不一致性包括三类:丢失更新问题、不可重复读问题和读“脏”数据问题。口(1)丢失修改口两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失。口(2)不可重复读口不可重复读是指事物T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。口(3)读“脏”数据口读“脏”数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。口避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。口数据库运行中可能产生三种故障:口事务故障:违反完整性约束引起事务夭折;口系统故障:软硬件错误断电引起事务夭折;口介质故障:磁盘损坏部分或全部数据丢失。口事务故障和系统故障影响事务的正常执行,介质故障破坏数据库数据。口数据库系统故障常用的恢复方法。口答:DBMS—般都使用数据转储和登录日志文件实现数据库系统的恢复功能。针对不同的故障,使用不同的恢复策略和方法。例如,对于事务故障的恢复是由DBMS自动完成的,对用户是透明的。口对于系统故障,也是由DBMS完成恢复操作,包括撤销(UNDO)故障发生时未完成的事务,重做(REDO)已完成的事务。DBA的任务是重新启动系统,系统启动后恢复操作就由DBMS来完成了。口对于介质故障,则恢复方法是由DBA重装最新的数据库后备副本和转储结束时刻的日志文件副本,然后DBA启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务。口日志文件是用来记录事

温馨提示

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

评论

0/150

提交评论