ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:622.26KB ,
资源ID:12272685      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12272685.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库期末总结.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库期末总结.docx

1、数据库期末总结一 基本概念(Basic Concepts)1、数据库系统开发生命周期(database system development lifecycle)1.Database planning2.System definition3.Requirements collection and analysis4.Database design5.DBMS selection (optional)6.Application design7.Prototyping (optional)8.Implementation9.Data conversion and loading10.Testing

2、11.Operational maintenance.2、数据库设计的三个主要步骤(three major steps of the database design)1、概念设计是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型2、逻辑设计将概念结构转化为某个DBMS所支持的数据模型,对其进行优化3、物理设计为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)3、C/S和B/Sc/s客户端/服务器 b/s浏览器/服务器 c/s般适合于软件开发对客户端计算机配置要求比较高 客户端也需要安装软件典型事例:qq b/s般适合于网站开发

3、客户端只要安装浏览器完成操作 客户端基本上需要加载对于服务器端配置要求比较高 典型事例:网站erp系统Two-Tier Client/Server Architecture(两层客户机/服务器体系结构):客户机/服务器结构将应用一分为二,由服务器提供应用(数据)服务,多台客户机进行连接。1)“Fat”客户端,需要大量的资源在客户端进行高效运行 2)重要的客户端管理开销。Three-Tier Client/Server Architecture:在三层客户机/服务器结构中,由于数据访问是通过功能层进行的,因此客户端不再与数据库直接建立数据连接。也就是说,建立在数据库服务器上的连接数量将大大减少。

4、不需要昂贵的硬件,集中维护,修改不影响其他人,将业务逻辑与数据库函数使其容易实现负载平衡。很自然地映射到Web环境。4、标识数据项(Identify the Data Items)二 SQL1、查询(Query)2、安全(Security)3、索引(Index)4、视图(View)三 高级ER(Advanced ER)1、(1)关系理论(Relational Theory)关系模型是最简单也是最直观的数据模型,模型基于表的行和列,表被称作关系,因此使用属于关系模型。等价项(Equivalent Terms):Table=RelationColumn=Field=AttributeRow=Rec

5、ord=Tuple实体关系:一对多,多对多主键:一个主键唯一地标识表中的每条记录。唯一,最小限度,非空,不能更新。外键:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。根据存储模型划分,数据库类型主要可分为:1、树状数据库(Hierarchical Database)、2、网状数据库(Network Database)、3、关系数据库(Relational Database)、4、面向对象数据库(Object-oriented Database)等。关系数据库的优点:1、依赖于逻辑,而不是物理的、相关记录之间的联系2、使用第四代语言3、允许高度的数据独立性(2)

6、概念设计(Conceptual Design)构建ERD的5个步骤:1、实体表示为表2、确定关系3、列表字段4、确定键(主键)5、确定数据类型(3)规范化(Normalization)非规范化设计导致问题:例:MEMBERVISIT(userID,password,fistName,LastName, phone,dateTimeIn,dateTimeOut)1、更新:当某用户有多条租借记录时,个人基本信息(如password)会被重复插入,当更新该用户的password时,不是所有的password都会被更新。2、插入:当某用户没有租借记录时,他的信息就不能插入到数据表中。3、删除:若某用户

7、只有一次租借记录,删除该记录时,用户基本信息也会被删除。第一范式:无重复的列。数据库表的每一列都是不可分割的原子数据项。实体中的某个属性有多个值时,必须拆分为不同的属性。第二范式:属性完全依赖于主键。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。第三范式:属性不依赖于其它非主属性。一个表中没有非主键字段决定其他非主键字段。若有则分成两个表。BCNF:若关系模式R是第一范式,且每个属性都不传递依赖于R的候选键。规范化处理:2、弱实体(Weak Entity)弱实体:在现实世界中,有时某

8、些实体对于另一些实体有很强的依赖关系,即一个实体的存在必须以另一实体的存在为前提。前者就称为“弱实体”,后者称为“强实体”。比如在人事管理系统中,职工子女的信息就是以职工的存在为前提的,子女实体是弱实体,子女与职工的联系是一种依赖联系。关联表:关联表是多对多关系中两个父表的一个子表。3、派生属性(Derived attribute)属性分为:简单或复合,单值或多值,派生属性。派生属性:从一个或一系列相关属性派生出的值,在相同的实体中不是必要的。例如:total_salary as (salary+bonus)4、递归关系(recursive relationship)递归联系是实体集内部实例之

9、间的一种联系,通常形象地称为自反联系。例如:在“职工”实体集中存在很多的职工,这些职工之间必须存在一种领导与被领导的关系。5、复杂关系(complex relationship)符合度(Multiplicity)是在一个n元实体关系中其他n-1个值固定时,实体可能的值或范围。聚集:聚集是一种抽象,通过它联系被作为高层实体集实体集A与B以及它们的联系可被看成实体集,并与另一实体集C发生联系6、ER图中的问题(problems in an ER model)连接陷阱:误认为不存在联系的两个实体间存在联系,从而通过这种“联系”获得错误的信息。包括扇形陷阱(fan traps)和深坑陷阱(chasm

10、traps)。扇形陷阱(fan traps):当用模型来表示实体间的联系时,某些特殊实体的实例出现间的通路(pathway)是不明确的。当一个实体与其他实体间存在俩个或更多的一对多联系时,可能存在扇形陷阱。深坑陷阱(chasm traps):一个模型显示实体间存在关系,但是在实体间通路并不存在。7、超类型/子类型层次结构(Supertype/Subtype Hierarchies)超类实体(Supertype Entity):一般实体的共同领域。子类实体(Subtype Entites):专业实体的特殊领域。局部特殊化(Partial Specialization): 超类型的实例不属于一个子

11、类型。全体特殊化(Total Specialization)超类型的实例必须属于一个子类型。不相交的规则(Disjoint rule): 超类可能属于最多一个子类。重叠规则(Overlap rule): 超类可能属于多个子类。四 文件组织(File Organization)1、列举计算机上通常使用的物理存储媒介(List the physical storage media available on the computers you use routinely.)易失性存储(volatile storage):电源关闭时丢失内容。持久性存储(non-volatile storage):关闭

12、电源内容不丢失,包括二级存储和三级存储,物理媒介:1、缓存:最快和最昂贵的形式存储;易失性存储;被计算机系统的硬件管理2、主存:快速存取;通常太小(或过于昂贵)来存储整个数据库;易失性存储,如果出现电源故障或系统崩溃主存储器的内容会丢失。3、闪存:停电数据不丢失;数据只可以在一个位置写一次,但位置可以抹去重新写入;读取速度大致和主存的一样快;但是写入慢,消除慢;广泛应用于嵌入式设备,如数码相机、手机和USB密钥。4、磁盘:数据存储在磁盘;主要是用于数据的长期存储媒介,通常存储整个数据库;数据必须从磁盘移到主存储器访问,在写回到存储;直接访问,可以在磁盘上按任何顺序读取数据,不像磁带;能达到1.

13、5TB存储;断点和系统崩溃不丢失数据。5、光存储器:非易失性、从一个旋转的磁盘使用激光读取数据;CD-ROM (640 MB)和DVD (4.7 to 17 GB)最广泛格式;蓝光光碟 27 GB 到 54 GB;WORM (Write-one, read-many)光碟用于档案存储;读和写是慢于磁盘;自动点唱机(Tape juke-boxes)系统中,有大量的可移动磁盘,几个驱动器,和自动加载/卸载机制可用的磁盘存储大量的数据。6、磁带:非易失性,主要用于备份(从磁盘故障恢复),和归档数据;顺序访问,比磁盘慢得多,非常高的性能(40 300 GB磁带可用);磁带可以从驱动删除,比磁盘存储成本

14、更便宜,但驱动器是昂贵的;磁带自动点唱机(Tape juke-boxes)能存储大量数据。存储层次:主存(primary storage):最快的媒介但是不稳定,缓存、主存(cache, main memory)。二级存储(secondary storage):下一个水平层次结构,非易失性,适度快速访问时间,也叫联机存储(on-line storage),闪存、磁盘(flash memory, magnetic disks)。三级存储(tertiary storage):最低水平层次结构,非易失性,慢速时间,也叫脱机存储(off-line storage)。磁带,光存储(magnetic ta

15、pe, optical storage)。2、磁盘的总容量记录盘面数*每记录盘面的磁道数*每磁道的扇区数*每扇区的字节数扇区:扇区是磁盘寻址的最小单位,其大小通常是512字节3、磁盘的性能指标:磁盘的容量,存取时间,数据传输速度,可靠性存取时间(Access time):从发出读或写请求到数据传输开始。1、寻道时间(Seek time):将磁头移到柱面的时间:约230ms。2、旋转等待时间(Rotational latency):扇区到磁头下方的时间,约1020ms。总时间:1040ms数据传输速度(Data-transfer rate):从磁盘得到或存储数据的速度。可靠性:平均失效时间(Me

16、an time to failure (MTTF)):磁盘运行平稳没有失败的平均时间。一般3到5年。随着磁盘使用年限的增加,MTTF会减少。4、定长记录和变长记录(Fixed-Length Records vs variable -Length Records)定长记录:存储记录i首地址:n*(i-1),n是每条记录的大小记录访问简单但是记录可能会穿过块。修正:不允许记录穿过块的边界。删除记录:所有记录上移一个;最后一个记录移到删除记录位置;不删除记录,将空闲记录加到空闲列表。变长记录:槽的标头包括:记录实体的数量;空闲空间的结尾;每条记录的位置和大小。记录在文件中的组织方式:1、堆存储(He

17、ap):记录可以被存储在文件的任何空闲的位置。2、连续存储(Sequentia):存储记录是顺序的,基于每条记录查找关键字的值。3、哈希存储(Hashing):用哈希函数计算每条记录的一些属性,结果指定文件记录应该被存放在哪。4、每个关系的记录可能存储在一个单独的文件中。五 查询处理和查询最优化(Query Processing and Query Optimization)查询处理的基本步骤:1、解析和翻译(Parsing and translation)将查询转化为其内部形式,然后翻译成关系代数;解析器检查语法,验证关系。2、优化分析(Optimization)3、评估(Evaluatio

18、n)查询执行引擎获取查询评估方案,执行方案,返回结果到查询。RDBMS(关系型数据库干礼系统)查询处理阶段:1. 查询分析2. 查询检查3. 查询优化 4. 查询执行例子:Select B,D From R,S Where R.A = “c” S.E = 2 R.C=S.C1、SQL怎样执行查询:做笛卡尔积;选择元祖;投影2、代数表达式(algebraic expressions)关系代数表达式可能会有很多等价的表达每个关系代数操作可以使用几种不同的算法进行评估带注释的表达式指定的详细的评价策略被称为评估方案(evaluation-plan)3、代数表达式树(algebraic express

19、ion tree)评估整个表达式树的选择:Materialization (物化执行): 产生一个表达式的结果,他的输入是关系式或已经经过计算的,物化(存储)到磁盘上,重复。Pipelining(流水线): 传递元祖到父操作即使一个操作已经被执行了。4、选择操作(Selection Operation) 1、简单的全表扫描方法对查询的基本表顺序扫描,逐一检查每个元组是否满足选择条件,把满足条件的元组作为结果输出 适合小表,不适合大表2、索引(或散列)扫描方法适合选择条件中的属性上有索引(例如B+树索引或Hash索引) 通过索引先找到满足条件的元组主码或元组指针,再通过元组指针直接在查询的基本表

20、中找到元组排序:原因:SQL查询可以指定对输出进行排序关系运算的某些操作,如连接运算,排序后实现高效对于可放进内存的关系,使用如快排序之类的技术。对不能放进内存的关系,使用外排序第一阶段,建立多个排序的归并段文件第二阶段,对归并段文件进行归并5、连接操作(Join Operation) 几种不同的算法来实现连接(选择基于成本估计):(1) 嵌套循环方法(nested loop)(2)块嵌套循环连接(3)索引嵌套循环连接(4)排序-合并方法(sort-merge join 或merge join)(5)Hash Join方法 各种连接策略比较:1、如果一个连接输入很小(比如不到 10 行),而另

21、一个连接输入很大而且已在其连接列上创建索引,则索引嵌套循环是最快的连接操作2、如果两个连接输入很大,并已在二者连接列上排序(连接列上有索引),则合并连接是最快的连接操作3、哈希连接可以处理很大的、未排序的非索引输入4、如果两个连接输入都很大,而且这两个输入的大小差不多,则预先排序的合并连接提供的性能与哈希连接相似。然而,如果两个输入的大小相差很大,则哈希连接操作通常快得多5、合并连接和哈希连接只能用于等值连接,对于非等值连接,只能用嵌套循环连接多表连接:N个表可能的连接种类有N!个SQL Server对少于或等于4个的表连接采用验证全部组合的方法,对于超过4个的表连接,以4个表为一组进行验证6

22、、措施的查询成本(Measures of Query Cost)查询优化(Query Optimization):在所有的等价的评估方案中选择成本最低的。成本(Cost)使用数据库信息的统计信息进行评价。成本通常是测量作为应答查询的总运行时间。磁盘访问,CPU,甚至网络通信会影响成本。通常磁盘访问是主要的成本,估计也相对容易。方法:查询(平均查询成本)、读取块(平均读取块成本)、写入块的数量(平均写入块成本)。写入块的成本大于读取块的成本,数据在写入后会被回读保证写入是成功的。tT 传输一个块的时间tS 一次查询的时间b个块的传输和S次的查询: b * tT + S * tS(忽略cpu成本,

23、真正的系统考虑CPU成本)一些算法通过使用额外的缓冲区空间可以减少磁盘IO ,实际可用内存缓冲量取决于其他并发查询和操作系统进程,只知道在执行时才能知道。所需的数据可能已被缓存,避免磁盘I / O,但很难考虑成本估算。7、最优方案(optimum plan)关系查询优化是影响RDBMS性能的关键因素。查询优化的总目标:选择有效的策略求得给定关系表达式的值使得查询代价最小(实际上是较小)实际系统的查询优化步骤:1. 将查询转换成某种内部表示,通常是语法树2. 根据一定的等价变换规则把语法树转换成标准(优化)形式3. 选择低层的操作算法对于语法树中的每一个操作计算各种执行算法的执行代价选择代价小的

24、执行算法4. 生成查询计划(查询执行方案)查询计划是由一系列内部操作组成的。代数优化策略:通过对关系代数表达式的等价变换来提高查询效率 关系代数表达式的等价:指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的两个关系表达式E1和E2是等价的,可记为E1E2 代数优化改变查询语句中操作的次序和组合,不涉及底层的存取路径物理优化就是要选择高效合理的操作算法或存取路径,求得优化的查询计划。选择的方法: 基于规则的启发式优化基于代价估算的优化两者结合的优化方法8、典型的启发式规则典型的启发式规则:1. 选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条2. 把投影运算和选择运算同时进

25、行如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系3. 把投影同其前或其后的双目运算结合起来4. 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算5. 找出公共子表达式如果这种重复出现的子表达式的结果不是很大的关系并且从外存中读入这个关系比计算该子表达式的时间少得多,则先计算一次公共子表达式并把结果写入中间文件是合算的当查询的是视图时,定义视图的表达式就是公共子表达式的情况6. 在执行连接操作前对关系适当进行预处理按连接属性排序在连接属性上建立索引六 索引(Indexing)1、主索引,聚类索引,非聚类索引,次索引(p

26、rimary index; clustering index; non-clustering index; secondary index)索引机制加速访问所需数据。主索引/聚类索引:在一个连续的有序文件中,搜索键指定文件的索引。主索引的搜索键通常但不一定是主键。该索引中键值的逻辑顺序决定了表中相应行的物理顺序。聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。次索引/非聚类索引:搜索键指定的顺序不同与文件的顺序的索引。一种索引,

27、该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。汉语字典的正文本身就是一个聚集索引。索引序列文件(Index-sequential file):具有主索引的顺序文件。2、稠密索引和稀疏索引(Dense index vs Sparse Index)稠密索引:索引记录每条搜索键在文件中的值。稀疏索引:索引记录部分搜索键的值。和稠密索引相比,插入和删除占用更少的空间和维护开销,定位记录一般比稠密索引慢权衡(Sparse vs. Dense Tradeoff):稀疏索引: 每条记录更少的索引空间 可以保存更多的索引在内存上稠密索引: 不需要访问文件就能知道任何记录是否存在稀疏索引适用于插入,稠密索

28、引需要次索引。3、B+树索引,插入删除查询(B+-Tree Index (insert; delete; query))B+-Tree Insertion:B+-Tree before and after insertion of “Lamport”B+-Tree Deletion:Before and after deleting “Srinivasan”Deleting “Srinivasan” causes merging of under-full leaves4、哈希(Hashing)哈希索引组织搜索键,与它们相关的记录指针,到一个散列文件结构。严格地说,哈希索引总是次索引。七 事务

29、并发和恢复(TransactionConcurrency and Recovery)1、事务的ACID属性(ACID properties of a Transaction)事务(Transaction)是DBMS的单个逻辑工作单元,一个事务内的所有语句被作为一个整体执行。在事务的执行过程中,如果遇到错误,则可以回退事务,取消该事务所作的全部改变,从而保证数据库数据的一致性和可恢复性。即一个事务要么其中的语句全部正确执行,要么全部语句不起作用。原子性(Atomicity):一个事务中的所有操作要么全部成功,要么全部失败。原子性由恢复机制实现。一致性(Consistency):事务完成后,所有数

30、据处于应有的状态,所有内部结构正确,能够准确反映事务所作的工作。基于隔离性实现。隔离性(Isolation):一个事务不会干扰另一个事务的进程,事务交叉调度执行的结果与串行调度执行的结果是一致的。隔离性由并发控制机制实现。持久性(Durability):事务提交后,对数据库的影响是持久的,即不会因为系统故障影响事务的持久性。持久性由恢复机制实现。2、隔离级别(Isolation Levelserializable, repeatable read, read committed, read uncommitted)serializable:一个调度的执行必须等价于一个串行调度的结果repeat

31、able read:只允许读取已提交的记录,并要求一个事务对同一记录的两次读取之间,其它事务不能对该记录进行更新read committed:只允许读取已提交的记录,但不要求可重复读(SQL Server 默认级别)。 read uncommitted:允许读取未提交的记录也称为读未提交(Read Uncommitted):允许脏读取,但不允许更新丢失。如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。该隔离级别可以通过“排他写锁”实现。也称为读提交(Read Committed):允许不可重复读取,但不允许脏读取。这可以通过“瞬间共享读锁”和“排他写锁”实现。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1