您好,欢迎访问三七文档
数据库系统概论什么是数据库:数据库管理系统(DBMS—DatabaseManagementSystem)是一个由互相关联的数据的集合和一组用于访问这些数据的程序组成.第一章:1.1:DBMS的目的文件处理系统中存储信息的弊端:1.数据冗余和数据部一致2.数据访问困难3.数据孤立4.完整性问题5.原子性问题6.并发访问异常7.安全性问题1.2:数据视图数据抽象:物理层逻辑层视图层(概念层)实例和模式:数据库中的数据会随时发生变化,特点时刻存储在数据库中的信息的集合称为数据库的一个实例,而数据总体设计称为数据库的模式,数据库的模式不会发生频繁变化.数据库模式:物理模式(内模式)逻辑模式(模式)子模式(外模式)数据独立性:在某个层次上修改模式定义不影响位于其上层模式的能力.物理数据独立性:修改数据库的物理模式而不必重写应用程序的能力.逻辑数据独立性:修改数据库的逻辑模式而不必重写应用程序的能力.1.3:数据模型数据模型:就是描述数据(数据结构),数据之间的联系,数据语义(数据操作),一致性(完整性)约束的概念工具的集合.物理数据模型逻辑数据模型概念数据模型实体联系模型(E-R模型)E-R图:矩形(实体集)椭圆(属性)菱形(实体间的联系集)线段面向对象模型基于记录的数据模型:关系模型网状模型层次模型1.4数据库语言数据定义语言(DDL):定义数据库模式实现细节数据字典:包含元数据的文件,元数据时关于数据的数据.数据操作语言:(DMLDataManipulationLanguage)过程化的DML:要求用户指定需要什么数据以及如何获取这些数据;非过程化的DML:只要求用户指定需要什么数据;1.5--1.9事务:是数据库应用中完成单一逻辑功能的操作集合,是一个既具有原子性又具有一致性的逻辑执行单元.存储管理器:是为存储在数据库库中的底层数据与应用程序及向系统提交的查询之间提供接口的程序模块.数据库管理员(DBADatabaseAdministration)数据库管理系统:查询处理器部件存储管理器部件数据结构:数据文件:存储数据库中的数据;数据字典:存储关于数据库结构的元数据;由于频繁使用数据字典,因此字典良好的设计和高效实现是非常重要的.索引:提供对数据项的快速访问;统计数据:存储关于数据库的统计信息,这些信息被查询处理器用来选择高效的查询方法.第二章:实体–联系模型实体:是现实世界中可区别于其他对象的事件或物体。实体集:是具有相同类型及相同性质(或属性)的实体集合。实体集的属性:是将实体集中的实体映射到域的函数。属性类型:简单属性复合属性单值属性多值属性NULL属性派生属性。一个联系集所涉及的不同实体集的数目称为联系集的元.映射基数:指明实体集中的一个实体通过一个联系集能同另一实体集相联系的实体数目.存在依赖:如果实体X的存在依赖于实体Y的存在,那么就说X存在依赖于Y。在操作上,如果Y被删除,那么X也要被删除,就把实体Y称作支配实体,而把实体X称作从属实体。区分不同实体的属性的集合就称为码。超码是一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一地标识一个实体。它们的任意真子集都不能成为超码。这样的最小超码称为侯选码。主码:来代表被数据库设计者选中的,用来在同一实体集中区分不同实体的侯选码。码的指定实际上也代表了被建模的现实世界中的约束。E-R图:实体集属性中那些作为主码的属性用下划线标明。实体在联系中的作用称为角色.有些实体集的所有属性都不足以形成主码,这样的实体集称为弱实体集。其属性可以形成主码的实体集称为强实体集。强实体集和弱实体集的概念与存在依赖密切相关,强实体集的成员必然是支配实体,而弱实体集的成员是从属实体。实体集所存在依赖的强实体集的主码和该弱实体集的分辨符(部分码)共同构成的属性集合就是它的主码。扩展E-R特性包括特殊化与概括、高层实体集与低层实体集、属性继承以及聚集等等。在实体集内部进行分组的过程称为特殊化。ISA也是一种特殊的联系,我们把这种联系称为父类-子类联系。概括是高层实体集与一个或多个低层实体集间的包含关系。概括是特殊化的逆过程.联系集来表示实体集之间的联系.数据库设计过程:概念设计(E-R模式设计),逻辑设计和物理设计.E-R模式设计的主要任务:1、定义所有的实体集、联系集、属性和映射约束等等。最终用E-R图来描述被建模的对象;2、利用扩展E-R特性,精简所设计的模式,去除冗余,并确保满足所有的数据需求而且不互相冲突;3、针对需求规格说明书(包括数据需求、功能需求和性能需求),检查概念模式,看该模式是不是包含了所有的数据;能不能满足对数据的各种操作(如查询和增删改等),即满足功能需求;而性能需求在这个阶段还不能完全解决。●1、实体-联系(E-R)模型基于对现实世界的这样一种认识:世界由一组基本对象(称作实体)及这些对象间的联系组成。此模型的主要目的是用于数据库的概念结构设计,简单地说就是帮助设计数据库的E-R模式;、每个实体都有描述该实体的一组属性。联系是多个实体间的相互关联。相同类型的所有实体的集合构成实体集,相同类型的所有联系的集合构成联系集;、映射基数是指一个实体集中的实体通过联系集可以和另一实体集中的多少个实体相联系。还有一种约束是存在依赖,表示实体x的存在依赖于实体y的存在;、从数据库的角度讲,不同实体或联系之间的差异必须用属性来表示。为了进行这样的区别,每个实体集或联系集都有一个主码。主码是一个或多个属性的集合,它们可以在实体集中唯一确定一个实体或在联系集中唯一确定一个联系;如果一个实体集的所有属性都不足以形成主码,就称该实体集为弱实体集,相反其属性组合可以构成主码的实体集为强实体集;、特殊化和概括定义了一个高层实体集和多个低层实体集之间的联系。特殊化是利用高层实体集的子集来形成多个低层实体集;概括是用两个或多个低层实体集的共性形成一个高层实体集。高层实体集的属性和联系被低层实体集继承。、E-R模型的一个局限就是它不能表示联系集间的联系或联系集与实体集之间的联系,解决的办法就是利用聚集。聚集是一种高度抽象,它将联系集及其相关的实体集作为一个整体看作是一个实体集;、E-R模型用于数据库的概念设计阶段,产生数据库设计的E-R模式。为了从数据库的E-R设计产生数据库的关系设计,可以用表的集合来表示E-R模式中的E-R图,也就是将E-R模式转换为表。第三章:关系模型3.1:关系数据库结构表:关系数据库是表的集合,每个表有唯一的名字,表中的一行代表的是一系列的联系.数据库模式是数据库的逻辑设计,而数据库实例是给定时刻数据库中数据的一个快照。针对关系模型来说,数据库模式和数据库实例就是关系模式和关系实例。一般关系模式的名字以大写字母开头,而关系的名字由小写字母组成。在关系模式中使用相同的属性正是将不同关系的元组联系起来的一种方法。查询语言分为过程化的和非过程化的。在过程化查询语言中,用户要指导系统去获取所需数据;在非过程化查询语言中,用户只需要描述所需信息,而不用给出获取信息的具体过程。关系代数是过程化的,而元组关系演算和域关系演算是非过程化的。3.2:关系代数关系代数是过程化的查询语言:包括选择,投影,并,集合差,笛卡尔积,和命名;还有附加运算:即集合交,自然连接,除和赋值,附加运算用基本运算定义的.选择,投影和命名运算是一元运算.在关系代数运算中我们规定,凡是涉及到与空值null的比较,其结果都是false。选择运算:给出满足给的谓词的元组投影运算:它返回作为参数的那个关系的部分属性构成的新关系。并运算:并运算只能在相容的关系间进行。两个关系相容除了属性的数目一样之外,最重要的就是对应属性的类型相容集合差运算:用来找出在一个关系中而不在另一个关系中的那些元组。笛卡尔积运算:第四章:SQLSQL:结构化查询语言(StructuredQueryLanguage)有查询数据库,定义数据结构,修改数据和说明安全性约束条件等特性.DDL:DataDefinitionLanguage数据定义语言DML:DataManipulationLanguage数据操作语言SQL语言包括:1.SQLDDL:定义关系模式,删除关系,建立索引以及修改关系模式;2.SQLDML:查询,插入,删除和修改;3.嵌入式DML:嵌入在Pascal,C等宿主语言;4.视图定义:创建视图;5.权限管理:对关系和视图的访问进行授权;6.完整性:定义数据必须满足完整性约束条件;7.事务控制:定义事务的开始,提交和结束等.SQL表达式的基本结构由select子句,from子句和where子句构成,其中where子句可以省略.SQL表达式的结果中允许重复元组.Select子句:1.是否去除结果中的重复元组[all|distinct]选项,默认为all允许重复元组;2.用*代替所有属性3.Select子句可以出现算术表达式Where子句中的逻辑运算符用的是and,or,not;更名运算:old-name[as]new-name;as可以用空格代替;可以出现在select和from子句中.Like操作:⑴用百分号%(有时是星号*)匹配任意子串⑵用下划线_(有时是问号?)匹配任意一个字符;⑶模式中是要区分字母的大小写的;⑷在模式中为了使用特殊字符%和_等,允许用反斜线字符\将特殊字符转义成普通字符。Orderby子句:对查询结果进行排序;[asc|desc];默认是升序集合操作:{union|intersect|except}[all]没有all,将自动去除重复的元组.Groupby子句:根据一个或多个属性的值来对元组进行分组,聚集函数可以作用在不同的分组上.having子句:主要是针对分组进行条件限制。having子句中的谓词只有在形成分组后才起作用,因此可以在having子句中使用聚集函数。通常,having子句只用在有groupby子句的SQL语句中,用来去掉不符合指定条件(即having子句中的谓词)的分组。聚集函数:平均值avg最小值min最大值max总和sum计数count空值:在where子句中,使用isnull和isnotnull来判断属性的值是否为空.嵌套子查询:集合成员资格的确认,集合的比较,集合基数测试集合成员资格的确认:用连接词in和notin判断一个元素是否在某个集合中.集合的比较:⑴至少比一个…的集合比较运算符还有:some、=some、some、=some、=some和some。在这里=some等价于in;⑵比所有都…的集合比较运算符有:all、=all、all、=all、=all和all。在这里all等价于notin。集合基数测试:⑴测试一个子查询的结果是否有元组,即测试其是否为空关系。使用关键词exists和notexists,⑵测试一个子查询的结果是否有重复元组。使用关键词unique和notunique,派生关系:from子句中的子查询视图定义:createviewvas()数据库的修改:删除delete插入insertintovalues()更新update连接的类型-92支持的连接类型和连接条件如下所示:SQLDDL功能:⑴定义关系的模式;⑵指出各属性的值域;⑶定义完整性约束;⑷定义各关系要维护的索引集合;⑸定义各关系的安全性和权限信息;⑹指出各关系在磁盘上的物理存储结构。第五章:完整性约束与模式分解完整性约束:提供一种手段,保证授权用户对数据库进行修改的时候不会破坏数据的一致性.模式分解:得到最优的数据库逻辑设计的关键.域约束:是最基本的完整性约束,每当有新的数据插入到数据库中时,或者修改数据时,系统都要进行域约束检查.参照完整性:一个关系中给定的属性集的取值都来自于另一个关系某个属性集的值.触发器:(trigger)就是一系列SQL语句,当对数据库做修改(包括插入、删除和更新)时,它自动被系统执行。第六章:数据库的物理设计数据库的设计阶段:需求分析:分析用户的需求,包括数据、功能和性能需求;概念结构设计:主要采用E-R模型进行设计,包括画E-R图;逻辑结
本文标题:数据库学习笔记
链接地址:https://www.777doc.com/doc-5888522 .html