数据库应用基础知识_第1页
数据库应用基础知识_第2页
数据库应用基础知识_第3页
数据库应用基础知识_第4页
数据库应用基础知识_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库基础1.1 数据库基础知识n1.1.1 数据库技术的发展n1.1.2 数据库系统n1.1.3 数据模型1.1.1 数据库技术的发展 n数据管理技术的发展历程,大体上经历了几个阶段:人工管理阶段、文件系统阶段、数据库阶段、分布式数据库阶段。1人工管理阶段n早期的计算机没有系统软件的支持,程序员不但要负责处理数据还要负责组织数据。这使得程序员直接与物理设备打交道,从而使程序与物理设备高度相关,一旦物理存储发生变化,程序必须全部修改,程序没有任何独立性。应用程序A1应用程序A2应用程序An。数据集S1数据集S2数据集Sn2文件系统阶段n操作系统中的文件系统是专门的数据管理软件,它的出现将程序员

2、从直接与物理设备打交道的沉重负担中解脱出来。n文件系统实现了按名存取,程序员只要将需要管理的数据组织成文件并对文件命名,以后就可以按文件名逻辑地存取文件中的数据,不必考虑文件的物理存储,这项工作由文件系统来实现。2文件系统阶段n数据组织成文件后,程序有了较大程度的物理独立性,即当数据的物理存储发生某些变化时,不会引起整个程序的作废。n但是,文件系统管理数据仍有许多缺点,主要是数据冗余度大和数据与程序之间缺乏独立性。应用程序A1应用程序A2应用程序An。数据集S1数据集S2数据集Sn 文件 系统3数据库阶段n针对文件系统的缺点,后来出现了数据库技术。数据库(Database,简称DB)是长期存储

3、在计算机内的、有组织的、可共享的数据集合。与文件系统相比,数据库技术是面向系统的,而文件系统则是面向应用的。 数据库 管理系统。应用程序A1应用程序A2应用程序An 数 据 库数据库系统相对文件系统的特点n数据库系统的数据冗余度小,数据共享度高。n数据库系统的数据和程序之间具有较高的独立性。4分布式数据库阶段n分布式数据库是一个逻辑上的整体,是分布在不同地理位置的数据集合,是计算机网络环境下各个局部数据库的逻辑集合,受分布式数据库管理系统的控制和管理。它具有分布透明性、局部自治与集中控制相结合、高可靠性和可用性、高效率和灵活性等特点。1.1.2 数据库系统n数据库系统是指带有数据库并利用数据库

4、技术进行数据管理的计算机系统。1数据库系统的组成n数据库系统由四部分组成,它们是数据库、硬件、软件和人员。q数据库:数据库系统的数据源。q硬件:支持系统运行的计算机硬件设备。包括CPU、内存、外存及其它外部设备。q软件:包括操作系统、数据库管理系统、应用开发工具和应用系统。q人员:数据库系统中的主要人员有:数据库管理员、系统分析员和数据库设计人员、应用程序开发人员和最终用户。2数据库系统的4个特点n数据结构化q在数据库系统中,数据是面向整体的,所以不但数据内部组织有一定的结构,而且数据之间的联系也按一定结构描述出来,所以数据整体结构化。n数据共享性高,冗余度低,易扩充q数据库系统是面向整体的,

5、因此数据可以被多个用户共享使用,就大大减少了冗余度。而且可以很容易地增加新的功能,适应用户新的要求。2数据库系统的4个特点(续)n数据独立性高q通过数据库系统中的二级映像,使得程序与数据库中的逻辑结构和存储结构之间有高度的独立性。n数据由数据库管理系统统一管理和控制q数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。3数据库管理系统n数据库管理系统(Database Management System,简称DBMS)是提供建立、管理、维护和控制数据库功能的一组计算机软件。数据库管理系统的

6、目标是使用户能够科学地组织和存储数据,能够从数据库中高效地获得需要的数据,方便地处理数据。数据库管理系统的主要功能。n数据定义功能q数据库管理系统提供数据定义语言,用户通过它可方便地对数据库中的数据对象进行定义。n数据操纵功能q数据库管理系统通过提供数据操纵语言实现对数据的增、删、改、查询、统计等数据操纵功能。n数据库的建立和维护功能q包括数据库初始数据输入、转储、恢复、重组以及数据库结构的修改和扩充等功能。n数据库的运行管理q数据库的运行管理功能是数据库管理系统的核心功能,它对数据库的建立、运行和维护进行统一管理,保证数据的安全性、完整性、并发性和故障恢复。1.1.3 数据模型n在数据库的发

7、展史上,主要有三种模型:层次模型、网状模型和关系模型。关系模型是三种模型中最重要的一种数据模型,关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库管理系统大都是基于关系模型的。层次模型R1R2R3R4R5网状模型R3R1R2R4R5关系模型关系学生登记表关系名关键字属性(列)属性名元组学号姓名性别系别年龄籍贯95001950029500395004 95700李勇刘成王明张力杨晓东男女女男男计科信息数学计科物理2019181921江苏山东北京北京 山西关系型数据库n1970年E.F.Codd在美国计算机学会会刊上发表了题为“A Relational Model of Data fo

8、r Shared Data Banks”的论文,开创了数据库系统的新纪元。以后,他连续发表了多篇论文,奠定了关系数据库的理论基础。n关系模型由关系数据结构、关系操作和关系完整性约束三部分组成。1关系模型的基本术语n关系:关系模型中一个关系就是一个二维表,每个关系有一个关系名。在关系模型中,实体及实体间的联系均用关系来表示。n元组:表中的一行即为一个元组。n属性:表中的一列即为一个属性,给每个属性起一个名字即为属性名。n域:属性的取值范围,如性别域是(男,女),百分制成绩域是1100。1关系模型的基本术语(续)n关键字:属性或属性的集合,其值能唯一地标识一个元组。n外关键字:若一个关系R中的属性

9、(或属性组)F不是其关键字,却与另一个关系S的主关键字Ks相对应,则F称为是R关系的外关键字。关系学生登记表关系名关键字属性(列)属性名元组学号姓名性别系别年龄籍贯95001950029500395004 95700李勇刘成王明张力杨晓东男女女男男计科信息数学计科物理2019181921江苏山东北京北京 山西图2.23 设置“性别”字段的“查阅”属性主键外键2基本关系的性质:n每一列中的分量是同一类型的数据,来自同一个域。n不同的列可以来源于同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。n列的顺序无所谓,即列的次序可以任意交换。n任意两个元组不能完全相同。n行的顺序无所谓,

10、即行的次序可以任意交换。n分量必须取原子值,即每一个分量都必须是不可分的数据项。关系运算n关系数据库进行查询时,需要找到用户感兴趣的数据,这就需要对关系进行一定的关系运算。n关系的基本运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、连接),有些查询需要几个基本运算的组合。传统的集合运算n进行选择、并、差、交集合运算的两个关系必须具有相同的关系模式,即元组有相同结构。选择n从关系中找出满足给定条件的元组的操作称为选择。选择的条件以逻辑表达式给出,使逻辑表达式的值为真的元组将被选取。n例如:从“图书信息表”中找出“高等教育出版社”出版的图书,所进行的查询操作就

11、属于选择运算。并n两个相同结构关系的并是由属于这两个关系的元组组成的集合。n例如:有两个结构相同的学生关系R1和R2分别存放两个班的学生,将两个班学生信息合并就需要使用关系的并运算。 R S R S A B C A B C A B C a1 b1 c1 a1 b2 c2 a1 b1 c1 a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a2 b2 c1 a1 b3 c2 差n设有两个相同的结构关系R和S,R与S的差是由属于R但不属于S的元组组成的集合,即差运算的结果是从R中去掉S中也有的元组。n例如:设有选修Access数据库应用课程的学生关系R,选修

12、计算机基础课程的学生关系S,求选修了Access数据库应用课程但没有选修计算机基础课程的学生,就应当使用差运算。 R A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 R-S A B C a1 b1 c1 - 交n两个具有相同结构的关系R和S,他们的交是由即属于R又属于S的元组组成的集合。交运算的结果是R和S的共同元组。n例如:设有选修Access数据库应用课程的学生关系R,选修计算机基础课程的学生关系S,求同时选修了Access数据库应用和计算机基础两门课程的学生就应该使用交运算。 R A B C a1 b

13、1 c1 a1 b2 c2 a2 b2 c1 S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 RS A B C a1 b2 c2 a2 b2 c1 投影n从关系模式中指定若干属性组成新的关系称为投影。投影是从列的角度进行的运算,相当于对关系进行垂直分解。经过投影运算可以得到一个新的关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同。n例如从“图书信息表”中查询图书的“名称”和“作者”,所进行的查询操作就属于投影操作。连接n连接是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含满足连接条件的元组。连接过程是通过连接条件来

14、控制的,连接条件中将出现两个表中的公共属性名,或者具有相同的语义、可比的属性。连接结果是满足条件的所有记录。学号姓名性别981102徐逸华男981103郭茜茜女981202高 涵男学号分数981102100981103989811018898120290学号=学号学号姓名性别分数981102徐逸华男100981103郭茜茜女98981202高 涵男90自然连接n在连接运算中,按照字段值对应相等为条件进行的连接操作称为等值连接。自然连接是去掉重复属性的等值连接。自然连接是最常用的连接运算。n选择和投影运算的操作对象只是一个表,相当于对一个二维表进行切割。连接运算需要两个表作为操作对象。如果需要连

15、接两个以上的表,应当两两进行连接。n总之,在对关系数据库的查询中,利用关系的选择、投影、连接运算可以方便的分解或构造新的关系。5关系的完整性n关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为是关系的两个不变性,应该由关系系统自动支持。实体完整性n实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。n实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主关键字整体不能取空值。n例如学生选课关系“选修(学号,课程号,成绩)”中,“学号、课程

16、号”为主关键字,则“学号”和“课程号”都不能取空值,而不是整体不为空。参照完整性n参照完整性规则就是定义外关键字与主关键字之间的引用规则。参照完整性规则n若属性(或属性组)F是基本关系R的外关键字,它与基本关系S的主关键字Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值); 或者等于S中某个元组的主关键字值。图2.23 设置“性别”字段的“查阅”属性用户定义的完整性n不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。n例如,学生的成绩的取值必须在0

17、100之间。数据库体系结构模式与映像数据库范式 n关系型数据库设计时是要遵循一定的规则的,尤其是数据库的设计范式。现简单介绍一下1NF(第一范式)、2NF(第二范式)、3NF(第三范式),另有第四范式和第五范式(第四范式和第五范式属于范式中的较高要求的范式)。 1NF(第一范式)(第一范式)2NF(第二范式)(第二范式)3NF(第三范式)(第三范式)4NF(第四范式)(第四范式)5NF(第五范式)(第五范式)5NF4NFBCNF3NF2NF1NF各范式关系图各范式关系图第一范式(1NF) n在关系模式R中的每一个具体关系,如果每个属性值都是由不可分割的最小数据单位组成或者说每个属性的值必须是唯

18、一的,则称R属于第一范式,换一句话说是指:在关系每个元组的所有属性上的值都必须是原子值,相反的凡具有集合属性或嵌套子关系的关系都不是第一范式;n例如:由“职工号”、“姓名”、“电话号码”组成的表(一个人可能有一个办公室电话和一个家庭电话号码),这时将其规范成为1NF有三种方法:n重复存储“职工号”和“姓名”。此时,关键字只能是“电话号码”。n“职工号”为关键字,“电话号码”分为“单位电话”和“住宅电话”两个属性。n“职工号”为关键字,但强制每条记录只能有一个电话号码。以上三个方法,第一种方法最不可取,按实际情况选取后面两种情况。以上三个方法,第一种方法最不可取,按实际情况选取后面两种情况。 非

19、第一范式表姓名系书本书名编号价格张三计算机数据结构0000345物理0000134“书本书本”属性不是一个不可再分的原子属性,即他是由属性不是一个不可再分的原子属性,即他是由3个部分组成个部分组成第二范式(2NF) n如果关系模式R为第一范式,并且R中每一个非主键属性完全依赖于R的某个候选关键字(通常为主键),即所有非主键列的值都完全信赖于主键列,则称关系R属于第二范式。n例如:在选课关系表SCI(SNO,CNO,GRADE,CREDIT)中,SNO为学号,CNO为课程号,GRADE为成绩,CREDIT为学分。由以上条件可知,关键字为组合关键字(SNO,CNO)。n在应用中使用以上关系模式有以

20、下问题:n(1)数据冗余即数据重复,假设同一门课有40个学生选修,学分就重复40次。n(2)更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,否则会出现同一门课程学分不同的情况。n(3)插入异常,如计划开新课,由于没人选修,因此就没有学号关键字,只有学生选修后才能把课程和学分存入。n(4)删除异常,若学生已结业,从当前数据库删除选修记录。若某些课程新生尚未选修,则此门课程及学分记录将无法保存。n 原因:非关键字属性原因:非关键字属性CREDIT仅依赖于仅依赖于CNO,也就是说,也就是说CREDIT部分依赖组合关键字(部分依赖组合关键字(SNO,CNO)而不是完全依赖。)而不是完

21、全依赖。解决方法:分成两个关系模式解决方法:分成两个关系模式SC1(SNO,CNO,GRADE),),C2(CNO,CREDIT)。新关系包括两个关系模式,)。新关系包括两个关系模式,它们之间通过它们之间通过SC1中的外关键字中的外关键字CNO相联系,在需要时再进行联相联系,在需要时再进行联接。接。 解决方法:姓名编号读者类型书本编号编号书名 书本类型 日期张三0111教师0011物理TP2008张三0111教师4536英语YY2007李四0223学生9713企业管理CP2009如上表,存在非主属性对关键字的部分依赖。那如何解决呢?如下:如上表,存在非主属性对关键字的部分依赖。那如何解决呢?如

22、下:1.完全依赖于主关键字的非主属性:完全依赖于主关键字的非主属性: 日期。日期。2.不完全依赖的非主属性:姓名、读者类型不完全依赖的非主属性:姓名、读者类型 依赖于编号;书名、书本类型依赖于编号;书名、书本类型 依赖依赖 书本编号;书本编号;根据这个分类,将上表关系拆分成以下三个表:根据这个分类,将上表关系拆分成以下三个表:姓名、读者类型、编号(表一)姓名、读者类型、编号(表一)编号、书本编号、日期(表二)编号、书本编号、日期(表二)书本编号、书名、书本类型(表三)书本编号、书名、书本类型(表三)第三范式(3NF) 属于第二范式,且表中的任何一个非主属性都不传递函数依赖于任何关键字,则为第3

23、范式;如果关系模式R中的所有非主属性对于任何候选关键字都不存在传递依赖,则称关系R属于第三范式。即如果一个表中的任意三列A、B、C,存在着A决定B,且B决定C的情况,那么这个表就不属于第三范式,因为A可以通过传递依赖决定C,这时应该将传递依赖分解到两个表中。 同时上表中的3个表都属于第3范式; 所谓传递函数依赖,指的是如果存在“AB C”的决定关系,则C传递函数依赖于A。 因此,满足第三范式的数据库表应该不存在如下依赖关系: 关键字段非主键字段x非主键字段y 假如学生关系表为Student(学号,姓名,年龄,所在学院,学院地点,学院电话),关键字为单一关键字“学号”,因为存在如下决定关系:(学

24、号)(姓名,年龄,所在学院,学院地点,学院电话) 这个数据库表是符合2NF,但是不符合3NF,因为存在如下决定关系:(学号)(所在学院) (学院地点,学院电话)即存在非关键字段学院地点,学院电话对关键字段学号的传递函数依赖它会存在数据冗余,更新异常,插入异常,删除异常。将学生关系表分为如下两个表:学生:(学号,姓名,年龄,所在学院)学院:(学院,学院地点,学院电话)这样的数据库表是符合3NF,消除了数据冗余,更新异常,插入异常,删除异常。设有以下关系模式设有以下关系模式SNC(SNO,SN,CNO,SCORE),其中),其中SNO:学生学号:学生学号SN:学生姓名(无重名):学生姓名(无重名)

25、SCORE:成绩:成绩我们可以判定该表有两个候选键(我们可以判定该表有两个候选键(SNO,CNO)和()和(SN,CNO)则其函数依赖如下:则其函数依赖如下:SNOSN (SNO,CNO)SCORE (SN,CNO)SCORE唯一的非主属性唯一的非主属性SCORE对键不存在部分依赖,也不存在传递依赖,所以对键不存在部分依赖,也不存在传递依赖,所以SNC属于第属于第3范式;从另一个角度来说存在主属性对键的部分函数依赖,范式;从另一个角度来说存在主属性对键的部分函数依赖,这样将造成关系这样将造成关系SNC中存在较大的数据冗余,学生姓名的存储次数等于该中存在较大的数据冗余,学生姓名的存储次数等于该生

26、所选的课程数,从而引起修改异常。生所选的课程数,从而引起修改异常。BCNFn若关系模式R是第一范式,且每个属性都不传递依赖于R的候选键。这种关系模式就是BCNF模式。即在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合鲍依斯-科得范式。n假设仓库管理关系表为StorehouseManage(仓库ID, 存储物品ID, 管理员ID, 数量),且有一个管理员只在一个仓库工作;一个仓库可以存储多种物品。这个数据库表中存在如下决定关系:n(仓库ID, 存储物品ID) (管理员ID, 数量)n(管理员ID, 存储物品ID) (仓库ID, 数量)n所以,(仓库ID, 存储物品ID)和(管理员ID, 存储物品ID)都是StorehouseManage的候选关键字,表中的唯一

温馨提示

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

评论

0/150

提交评论