数据库知识点--详细

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一、数据库基础信息:客观世界在人脑中的反应,是实物运动状态或者存在方式的表征。数据:信息的载体。是描述事物的符号记录。信息是数据内容。(对信息的表述)数据管理:分类、组织、编码、存储、检索、维护。数据管理技术的发展:1.人工管理:(程序和数据混为一体)A.数据长期保存在计算机中,用完就删除。B.应用程序管理数据,程序和数据一体。C.数据不共享,数据是面向程序的。(一组数据对应一个程序)2.文件系统阶段:(硬件有了磁盘,磁鼓)A.数据以文件形式保存在计算机中。B.程序和数据间有了一定的独立性,一个文件可以被多个应用程序共享。C.数据文件彼此独立,不能反映数据间的联系,存在大量的数据冗余。3.数据库系统阶段A.数据结构化B.数据共享性高,冗余度低,易扩充。C.数据独立性强。D.数据由数据库管理系统统一管理和控制。数据库管理系统(DBMS):(实际上有6个功能)1.数据定义功能DDL(Data-DefinitionLanguage)2.数据操纵功能DML(Data-ManipulationLanguage)3.数据库的运行管理(完整性约束检查、访问控制、并发控制、故障恢复)数据库系统(DBS)数据库+数据库管理系统+开发工具+数据库应用程序+数据库管理员+用户程序集中式,分布式,并行式,C\S式,B\S式数据字典(DD)数据库系统中,存放三级结构定义的数据库称为数据字典。数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。数据模型1.结构数据模型(基本数据模型)---系统的观点---便于DBMS的实现A.层次模型(hierarchicalmodel)1.只能表示1:N联系,M:N联系表示复杂2.层次顺序严格复杂,查询更新复杂,应用程序编写复杂。B.网状模型(networkmodel)1.查询效率高2.数据结构复杂、编程复杂。C.关系模型(relationalmodel)----二维表格表达实体集(实体间的联系)三要素:1.数据结构、2.关系操作、3.关系的完整性1.数据结构基本数据结构:表格(关系模型)(关系模型是由若干关系模式组成的集合)关系模式:行定义,如表student(name,id,age,class)元组:行记录的值(相当于表格中一条记录)(关系是由若干元组组成的集合)关系:关系模型码/关键字:唯一标识元组的属性(集)候选码(关键字):一个表中存在的多个能唯一标识元组的属性(集)(不含非主码)主码:从候选关键字中指定外键:在别人表的是关键字的属性,在本表里不是关键字,称为本表的外键。(记录间的联系通过键来实现)2.关系操作:(两部分)\(其基础是关系代数(与DBMS实现并不完全一致))(操作的对象和结果都是集合或者“关系”)(关系模型中,存取路径对用户是隐蔽的。用户只需指出干什么而不用考虑怎么做)I.查询操作(query)A.选择(select)B.投影(project)C.连接(join)D.除(divide)E.并(union)F.交(intersection)G.差(difference)II.更新操作A.增加(insert)B.删除(delete)C.修改(update)III.关系代数运算:(请去做习题)3.关系的完整性A.实体完整性(entityintegrityrule)---主键不为空B.参照完整性(referenceintegrityrule)----外键引用必须存在C.用户自定义完整性约束(user-definedintegrityrule)根据应用领域来D.面向对象模型(Objectorientedmodel)2.概念数据模型---用户的观点---便于用户理解E-R模型1.E-R图A.实体型B.属性C.联系(菱形表示)(可以有属性)2.E-R模型的三种冲突:A.命名冲突(重复、矛盾)、B.结构冲突(实体在各个局部抽象程度不同,属性个数、次序不同)、C.属性冲突(类型,取值范围)数据库的体系结构三层模式1.外模式(子模式或者用户模式)-----局部A.一个数据库可以有多个外模式。B.每一个外模式都是为了不同的应用而建立的数据视图(用户只能看到和访问外模式中的数据,数据库的其余数据是不可见的,保证了数据库的安全,以及数据的逻辑独立性)2.模式(逻辑模式)------整体A.数据库全体数据的逻辑视图。B.一个数据库对应一个(逻辑)模式。C.模式不涉及存储细节和应用程序3.内模式(存储模式)-----物理A.一个数据库只有一个内模式B.数据的物理结构、存储方式、存取策略C.保证了数据的物理独立性(外模式--视图;模式-基本表;内模式--索引)两级映像1.外模式-模式映像(存在于外模式的描述中)(映像可以有多个)数据库结构(如表结构)发生改变时,DBA只需要对各个外模式-模式映像做相应的调整,使外模式保持不变。(应用程序是基于外模式编写的)2.模式-内模式映像(1:1存在)(全局逻辑结构和物理结构的对应关系)数据库内模式发生改变时(如存储设备的变更),由于模式-内模式映像,数据的(逻辑)模式保持不变,应用程序不变。保证了程序和数据的物理独立性。数据库独立性:数据库有保持数据的独立性,所谓数据独立,是指存储在数据库中的数据独立于处理数据的所有应用程序而存在。也就是说,数据是客观实体的符号化标识,它就是一个客观存在,不会因为某一项应用的需要而改变它的结构,因此是独立于应用而存在着的客观实体。而某一项应用是处理数据获取信息的过程,也就是应用程序只能根据客观存在着的数据来设计所需要的数据处理方法,而不会去改变客观存在着的数据本身。SQL(structuredquerylanguage)根据标准,SQL语句按其功能的不同可以分为以下6大类:数据定义语句(Data-DefinitionLanguage,DDL);数据查询语句(Data-QueryLanguage,DQL);数据操作语句(Data-ManipulationLanguage,DML);数据控制语句(Data-ControlLanguage,DCL);操作管理语句(Transaction-ManagementLanguage,TML);游标控制语句(Cursor-ControlLanguage,CCL)。DDL:(数据库(SQL模式)、表格、视图、索引)CREATEDATABASE-创建新数据库ALTERDATABASE-修改数据库CREATETABLE-创建新表ALTERTABLE-变更(改变)数据库表DROPTABLE-删除表CREATEINDEX-创建索引(搜索键)DROPINDEX-删除索引DQL+DML又称为DML(数据操纵)DQL:select[distinct/all]目标表达式[[AS]别名]清单from关系名[where查询条件表达式]groupby列名清单[having条件表达式];DML:增加元组:insertinto表名[(属性名清单)]values(常量清单);修改数据:update表名set列名=表达式[where条件];删除元组:deletefrom表名[where条件];sno学号Clno班级号Cno课程号DCL:(访问控制&数据控制)包含事务控制语句?访问控制所控制的是权限(创建、撤销、查询、增、删、改的权限)。访问控制主要包括授权和检查权限两部分。授权:GRANT权限ON对象类型对象名TO用户WHEREGRANTOPTIONREVOKE权限ON对象类型对象名FROM用户经常考到:视图的用法、动态SQL视图:一个视图是从一个或多个关系(基本表或已有视图)导出的关系。导出后,数据库中只存有此视图的定义(在数据字典中),但并没有实际生成此关系,视图是虚表。SQL一般不提供修改视图定义的语句;对视图数据更新有限制。动态SQL:关系数据理论(关于“关系数据库的逻辑设计”问题)(消除操作异常、冗余等问题)1.数据依赖(FD)(数据模式设计的核心)A.函数依赖概述B.函数依赖分类a.平凡和非平凡函数依赖b.完全函数依赖和部分函数依赖c.传递函数依赖X--Y,当Y!--X且Y不是X子集时,若有Y--Z,则Z传递函数依赖于Xd.多值依赖关系R(U)的属性集X,Y,Z,存在Y=U-X-Y,R(U)上任意关系r(相当于元组),给定一组值(x,z)对应一组y值,但是y仅仅由x决定(即对于不同的y值x不变),与z无关,那么就有X----Y.(Y多值依赖于X)2.范式(NF)(关系数据库的规范化)(按照属性间的依赖情况来划分关系规范化的程度)A.第一范式(1NF)(满足1NF的关系成为规范化的关系)关系中每一个属性都不可分。例子:关系(模式):学生1(学号,姓名,性别,家庭成员)此时“学生1”不满足1NF,因为“家庭成员”可以再分解决方法:把“家庭成员”单独作为一个关系(模式),而不是当属性B.第二范式(2NF)关系中每一个非主属性完全依赖于关键字。(1NF的基础上)例子:选课1(学号,课程号,系部代码,成绩)此时“选课1”不满足2NF,因为(学号,课程号)--成绩,但是(学号)--系部代码。(存在某些属性部分函数依赖于关键字的子集)解决方法:(分解上述关系为多个关系---投影分解)即:选课1(学号,课程号,成绩);学生(学号,系部代码)C.第三范式(3NF)任意一个非主属性都不传递依赖于候选码(关键字集合)(1NF的基础上)例子:学生2(学号,姓名,性别,系名,入学时间,系宿舍楼)此时“学生2”不满足3NF,因为“系宿舍楼”完全依赖于“学号”,即“学号”--“系宿舍楼”,但同时“学号”--“系名”--“系宿舍楼”亦即,存在非主属性传递依赖于关键字。解决方法:(还是把1个关系分解为俩关系,把“问题属性”拿出去)即学生2(学号,姓名,性别,系名,入学时间)宿舍楼(系名,宿舍楼)D.扩充的第三范式(BCNF)----巴克斯范式(3NF的基础上)消除主属性(任何候选码中都有的属性)对码的部分函数依赖、传递函数依赖。(通俗理解:每一个决定因素中要有码(关键字))例子:教学(学生,教师,课程)(一个关系表述了2件事:学生选教师(先不涉及学生选课),老师任课;可能有问题)每个教师教一门课。每门课由多名教师教。(学生选定一门儿课就选定了教师)此时“教学”不满足BCNF,因为1.从主属性对码的传递性依赖上看:(决定因素确定后,后面的属性就确定了)(学生,教师)--课程,但是(学生,课程)--老师,即:学生--课程---老师;主属性“学生”对(候选)码“教师”存在传递函数依赖即存在关键字决定关键字的情况2.从主属性对码的部分依赖上看(学生,教师)---教师,以及上面得出的学生--教师.即主属性“教师”部分依赖于候选码(学生,教师)3.从每一个决定因素中要有码(关键字)上看(学生,课程)--老师,不含有有关键字(学生,教师)即决定因素“(学生,课程)”中不含有关键字(唯一确定一组元组的)解决方法:(把事儿分开)选教师(学生,教师)任课(教师,课程)E.第四范式(4NF)每一个非平凡多值依赖X----Y(Y!--X且Y不是X的子集),X都含有关键字。例子:授课(课程,教师,参考书)每位教师可以交多门课,每门课可以选多门参考书,每门课可以由多个老师教授。非平凡多值函数依赖:课程----教师课程----参考书而决定因素“课程”不是关键字,这里的关键字(唯一决定元组)是“(课程,教师)”解决方法:任课(课程,教师)教参(课程,参考书)3.(规范化)模式设计方法规范化过程:(把低一级的关系模式分解为若干个高一级的关系模式)通过对关系模式的分解来实现的。单一化:逐步消除数据依赖中不合适的部分,使关系模式达到“一个关系表示一事”规范化过程(单一化过程)消除非主属性的非平凡函数依赖的过程----(A)----1NF------(B)-------2NF-----(C)---

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功