版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大学计算机教程(第6版)第5章数据库技术应用 清华大学出版社教育部“十一五”国家级规划教材2013北京市教学成果二等奖主讲教材2013北京市精品教材本章主要内容数据库系统组成与系统功能数据库技术应用与发展信息实体数据模型和实体联系模型的构建数据实体关系关系运算与转换关系数据库设计理论关系模式的规范化结构化查询语言SQL5.1 数据库技术概述5.1.1数据库技术特点1.数据库中的数据是结构化的 数据库不仅反映出数据项之间联系,还能表示记录型之间联系,通过存储路径来实现 ,如图5.1所示。2.数据库中的数据是面向系统的 数据库中数据而是面向系统的,尽可能减少数据的冗余,实现最大共享,如图5.2所示
2、。3.数据库数据有较高的数据独立性 数据库数据最小存取单位是数据项,若干数据项组成记录,而文件系统最小存取单位则是记录。可以用DBMS查询语言和交互式命令操纵数据库,如图5.3所示。5.1.2数据库系统的组成 数据库系统由几部分组成。1.数据库 数据库一部分是存储数据的物理数据库部分;另一部分是描述部分,描述数据库的各级结构,由数据字典管理。2.硬件系统 数据库的运行需要硬件系统,除中央处理机、主存储器、外存储器等不可缺少,还需要足够大的内存来存放支持数据库运行的操作系统3.软件系统 数据库系统软件主要包括支持DBMS运行的操作系统、DBMS本身及开发工具。4.数据库管理员 数据库管理员(DB
3、A)、系统分析员、应用程序员和用户是管理、开发和使用数据库主要人员。5.用户 用户分为应用程序和最终用户两类,他们通过数据库系统提供的接口和开发工具软件使用数据库。6.数据库系统结构 数据库系统采用三级模式和二级映射结构,如图5.4所示。 数据库系统在三级模式中提供两种映射: 外模式和模式之间的映射 模式和内模式之间的映射 数据库系统正是由于这二级映射功能,使得数据库系统中数据,具有较高的逻辑独立性和物理独立性。5.1.3数据库系统功能1.数据的完整性 保证数据库存储数据的正确性;2.数据的安全性 并非每个应用都应该存取数据库中的全部数据;3.并发控制 当多个用户同时存取修改数据库数据时,可能
4、会发生相互干扰,使导致数据的不一致性。数据库的并发控制防止了这种现象的发生;4.数据库的恢复 数据库系统具有恢复能力,能把数据库恢复到最近某个时刻的正确状态。5.1.4数据库技术应用发展1. 分布式数据库 分布式数据库是分布在计算机网络上的不同节点上的数据集合;2.面向对象数据库 面向对象的方法使软件系统将建立在面向对象的概念上。3. 知识库系统的特点 知识库是把有关知识的数据信息从应用程序中分离出来,加到数据库中。5.2 数据模型5.2.1 什么是数据模型 数据模型是对现实世界进行抽象的工具1.数据模型的类型 数据模型是数据库技术的核心,一种类型是概念模型,也称信息模型。另一种类型是数据模型
5、,是面向数据逻辑结构的,如关系模型、层次模型、网状模型和面向对象的数据模型等等;2.数据模型的构成 数据模型包括三个部分:数据结构、数据操纵和数据的完整性约束。5.2.2 构建信息实体数据模型1.信息实体的数据转换 信息是客观世界中存在的事物在人们头脑中的反映,信息转换如图5.5所示。2.信息实体的数据联系 实体间的联系是错综复杂的,但就两个实体的联系来说,有以下三种情况:(1)一对一的联系 如果A中的任意一个体,至多对应于B中的一个个体,反之B中的任意一个个体,至多对应于A中的一个个体,如图5.6所示。(2)一对多的联系 如果A中至少有一个个体对应于B中的一个以上个体,反之B中任一个体应于A
6、中至多一个个体,如图5.7所示。(3)多对多的联系 如果A中至少有一个个体对应于B中的一个以上个体,反之B中至少有一个个体应于A中一个以上个体,如图5.8所示。5.2.3 构建实体联系模型 实体联系模型,一般简称为“ER模型”,是面向问题的概念模型,即用简单的图形方式描述现实世界中的数据。1.层次结构模型 有且仅有一个结点无双亲,这个结点称为根结点; 其它结点有且仅有一个双亲结点。2.网状结构模型 层次模型中一个结点只能有一个双亲结点,且结点间的联系只能是1M的关系3.关系结构模型 关系模型中实体及实体间的联系是通过表数据本身来实现的。关系的性质一个n元关系应具有以下性质: 每个元组都有n个属
7、性。 每个元组中同一区域中的属性具有相同的数据类型。 不可能存在内容完全一样的元组。 元组的顺序无关紧要。 每个属性都有唯一的名称。 每个属性的次序无关紧要。关系数据库特点主要有: 使用简便,处理数据效率高; 数据独立性高,有较好的一致性和保密性; 数据库的存取不必依赖索引,可以优化; 可以动态的导出和维护视图; 数据结构简单明了,便于用户了解和维护; 可以配备多种高级接口。5.3关系运算基础5.3.1 关系数据定义1.笛卡尔积(Cartesian Product) 设D1,D2,Dn为n个集合,称D1D2Dn=(d1,d2, dn)Di,(i=1,2, n)为集合D1,D2,Dn的笛卡尔积。
8、 其中,Di(i=1,2,n)可能有相同的,称它们为域,域是值的集合。 笛卡尔积可表示为一个二维表。如果给出三个域: D1=王欣,刘伟平 D2=张德君,李波 D3=网络技术应用,数据库原理 则D1,D2,D3的笛卡尔积为D1D2D3=(王欣,张德君,网络技术应用),(王欣,张德君,数据库原理),(王欣,李波,网络技术应用),(王欣,李波,数据库原理),(刘伟平,张德君,网络技术应用),(刘伟平,张德君,数据库原理),(刘伟平,李波,网络技术应用),(刘伟平,李波,数据库原理) 结果集有8个元组,可排成笛卡尔乘积空间,如表5-3所示。2.关系算法 笛卡尔积D1D2Dn的子集记作: R(D1,D2
9、,Dn) 其中R表示关系的名称,n表示关系的度或目。 也可用笛卡尔积的子集构造关系。例如,笛卡尔积的子集R1 和R2:R1=(王欣,张德君,网络技术应用),(刘伟平,李波,数据库原理)R2=(王欣,张德君,网络技术应用),(王欣,李波,数据库原理), (刘伟平,张德君,网络技术应用),(刘伟平,李波,数据库原理) 形成两个名为R1和R2的二维表关系,如表5-4和表5-5所示。5.3.2 关系模型1.数据结构 关系模型中由于实体与实体之间的联系可用关系表示,因此数据结构单一;2.关系操作 关系操作的方式是集合操作,即操作的对象与结果都是集合 关系运算分为关系代数和关系演算两类运算方法。 关系代数
10、把关系当作集合进行运算。 关系演算用谓词来表示查询的要求和条件。5.4二元实体关系转换 每种实体类型可由一个关系模式表示,实体属性称为关系属性,实体的主键作为关系的主键。 例如实体类型“学生”由下面的关系模式表示为一个关系。学生(学号,姓名,班级,院,系,) 例如实体“经理”和实体“职工”之间的联系是1N,这种联系用“管理”表示,即一个经理管理许多职工,如图5.11所示。 如果规定每个职工必须有一个管理者,则“职工”中的成员类(职工中实体)在联系“管理”中是强制性的; 如果允许存在不用管理者管理的职工,则职工中成员类在联系“管理”中是非强制性的。 5.4.1.强制性成员类 如果实体类型E2在实
11、体类型E1的N1联系中,是强制性的成员,则E2的关系模式中要包含E1的主属性。 例如,规定每一项工程必须由一个部门管理,则实体类型PROJECT是联系“RUNS”的强制性成员,因而在PROJECT的关系模式中包含部门DEPARTMENT的主属性。即:PROJECT(P#,DNAME,TITLE,START-DATE,END-DATE,) 其中P#是项目编号,DNAME是部门的名称,既是关系DEPARTMENT的主属性,又是关系PROJECT的外来键,表示每个项目与一个部门相关。5.4.2.非强制性成员类 如果实体类型E2在与实体类型E1的N1联系中是一个非强制性的成员,则由一个分离的关系模式表
12、示联系及其属性,分离的关系模式包含E1和E2主属性。 例如,在一个图书管理数据库中,有一实体类型借书者(BORROWER)和借书(BOOK)之间的联系如图5.12所示。 5.4.3.多对多的二元关系 例如,学生与课程之间的联系为NM,即一个学生可以学习多门课程,一门课程可以由多个学生学习。其概念模型如图5.13所示。 S(学号,姓名,班级,系,年龄,) C(课程号,课程名,学分,教师,) SC(学号,课程号,成绩) 其中,D表示学生实体类型,C表示课程实体类型,SC表示S与C之间的NM联系及联系的属性。5.5 关系运算 把关系看成一个集合,集合运算如并、交、差、笛卡尔积等运算,均可用到关系运算
13、中。 设有三个关系实例R、S和T,如表5.6所示。5.5.1 传统集合运算 关系R和S的并是由属于R或S或同时属于R和S的元组组成的集合,记为RS,如表5.7所示。2. 差运算(Difference) 关系R和S的差是由属于R而不属于S的所有元组组成的集合,记为R-S,如表5.8所示。3. 交运算(Intersection) 关系R和S交是由同时属于R和S的元组组成的集合,记为RS,如表5.9所示。4. 笛卡尔积 关系R和S的笛卡尔积RS的结果如表5.10所示。5.5.2 专门的关系运算1.选择运算(Selection 简记为SL) 选择条件用F表示,在关系R中挑选满足条件F的所有元组,组成一
14、个新的关系,这个关系是关系R的一个子集,记为: F(R) 或SLF(R) A=a(R)其结果如表5.11所示2投影运算(Projection 简记为PJ) 设R是一个n目关系,Ai1,Ai2,Aim是R的第i1,i2,im(mn)个属性,则关系R在Ai1,Ai2,Aim上的投影定义为: 也有用PJ Attr(R)表示关系R在Ai1,Ai2,Aim上的投影。属性也可用其序号表示。3连接运算(Join简记为JN) 连接是从关系R与S的笛卡尔积中,选取R的第i个属性值和S的第j个属性值之间满足一定条件表达式,构成关系子集。 关系R与T作连接。如表5.13和表5.14所示。5.6关系数据库设计理论5.
15、6.1 数据库设计理论的应用 数据库数据相关性称为数据依赖。数据依赖主要分为内在关系的函数依赖(简记FD)和多值依赖(简记MVD)。 存在函数依赖关系数据有如下问题: 1.数据存储形成冗余 2.数据易产生不一致性 3.数据插入易产生异常5.6.2 数据关系的函数依赖1.关系函数的类型 关系函数能用来模拟“真实世界”。实体属性之间存在着3种联系,相应关系函数的类型也有三种,用以描述数据相互之间的关联: (1)一对一的关系函数(11) (2)一对多的关系函数(1M) (3)多对多的关系(NM)2.函数依赖 定义1 设有关系模式R(U),x和y均为属性集U的子集,R的任一具体关系r,s和v是r中的任
16、意两个元组,如果只要有sx=vx,就有sy=vy,则x函数决定了y,或y函数依赖于x,记为xy。 例如S#SNAME,S#AGE等,即S#是关系S的键,当两个元组的键值相等时,这两个元组必须相等,它们所有属性值也必须相等。3.函数依赖的逻辑蕴涵 定义2,设F是关系模式R上的一个函数依赖集合,X、Y是R的属性子集,如果从F的函数依赖推导出XY,则称F逻辑地蕴涵XY,或称XY可以从F中导出,或XY逻辑蕴涵于F。 5.6.3 数据关系的关键字 把关键字(key),简称键的概念与函数依赖联系起来,可以用函数依赖给关键字定义。 定义4,设R(A1,A2,An)为一个关系模式,F是它的函数依赖集,X是 A
17、1,A2,An的一个子集。如果XA1,A2,AnF+,并且不存在Y包含于X,使得YA1,A2,AnF+, 则称X为R的一个候选键。5.7 关系模式的规范化 关系模式的规范化问题是E.F.Codd提出的,他还提出了范式(NF,Normal Form)的概念,各个范式之间的关系,如图5.14所示的包含关系。5.7.1 关系规范第一范式(1NF) 定义8,如果一个关系模式R的每一个属性的域都只包含单一的值,则称R满足第一范式。 例如,在“客户商品”关系CP中,客户编号C#,客户名CNMAE,客户地址AREA,主管MA,商品编号P#,商品价格PRICE。有关系 CP=C#,CNAME,AREA,MA,
18、P#,PRICE 函数依赖,如图所示5.7.2 关系规范第二范式(2NF) 定义9,如果关系模式R满足第一范式,而且它的所有非主属性完全函数依赖于候选键,则R满足第二范式。例中,把第一范式关系CP=C#,CNAME,AREA,MA,P#,PRICE 分解为两个子关系模式: CP1(C#,CNAME,AREA,MA ) SUP ( C#,P#,PRICE) 则满足第二范式5.7.3 关系规范第三范式(3NF) 定义10,如果关系模式R满足2NF,并且它的任何一个非主属性都不传递依赖于任何候选键,则R满足3NF。上例中, SUP ( C#,AREA,MA)可分解为 C(C#,AREA) A_M(A
19、REA,MA) 则R满足3NF。5.7.4 关系规范BCNF范式 BCNF也被认为是修正的第三范式。 例如,假设一所院校每门课程有几位教师讲课,但每位教师只教一门课程,而每个学生可以选修几门课程。有 ENROLS(S#,CNAME,TNAME) 其中S#号,CNAME课程名,TMANE教师姓名 如果某学生毕业,删除该学生信息时,连同教师与课程的信息也删除了。存在异常原因是存在部分依赖。 因此,把关系模式ENROLS分解为如下的两个关系模式: CLASS(S #,TNAME) TEACH(TNAME,CNAME)5.7.5 关系规范的多值函数依赖 除了函数依赖,还有多值依赖,例如,一个销售关系
20、SELLS(COMPANY,PRODUCT,COUNTRY) 数据如表5.16所示。把SELLS无损分解如表5.17所示。5.7.6 关系规范第四范式(4NF) 定义13,设R是一关系模式,D是R上的依赖集。如果对于任何一个多值依赖XY,且X包含R的一个键,则称R为第四范式,记为4NF。 逐步规范化设计如表5.19所示。5.8结构化查询语言SQL5.8.1 SQL语言的基本功能 SQL语言能够完成定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构和数据库安全性控制等一系列操作。 如表5.20所示。例如,建一个学生关系基表Student,使用 CREATE TABLE Studen
21、t(ID_Card CHAR(18) NOT NULL, Sname CHAR(8), Sage SMALLINT, Sschool_number CHAR(6);5.8.2 SQL语言的数据检索功能 SQL语言的数据操纵功能主要包括1.基本查询 例如,查询全体学生的详细信息。 SELECT * FROM Student; 结果是查出全体学生 例如,查询所属学校代号是B_19的学生姓名和年龄。 SELECT Sname, Sage FROM Student WHERE Sschool_number=B_19; 结果是查出“许静”和“李贽”的姓名的年龄。2. 连接查询 查询涉及两个或两个以上的基
22、本表时,称之为连接查询。 例如,查询贷款号为L_33的学生信息。 SELECT S.* FROM Student AS S,Borrower AS B WHERE S.ID_Card=B.ID_Card AND B.Loan_number=L_33;3. 嵌套查询 嵌套查询也称为子查询, SQL语言允许多层嵌套。 例如, 查询年龄大于23岁学生贷款单号和贷款金额。 SELECT * FROM Loan WHERE Loan_number IN (SELECT Loan_number FROM Borrower WHERE Borrower.ID_Card IN (SELECT ID_Card
23、FROM Student WHERE Sage23);5.8.3 SQL语言的数据更新功能1.修改语句 例如,把身份证号为11010519840506001的学生的贷款金额修改为20 000元。 UPDATE Loan SET amount=20000 WHERE Loan_number= (SELECT Loan_number FROM Borrower WHERE ID_Card=11010519840506001); 这里如果确定子查询的结果惟一,可以使用“=”,否则应使用“IN”。2.插入语句 例如,在学生表中插入一个新元组 (11015019921228003,孙晓明,20,男,C_
24、20) 有 INSERT INTO Student VALUES(11015019921228003,孙晓明,20,男,C_20);3. 删除语句 例如, 删除年龄为25的学生记录。 DELETE FROM Student WHERE Sage=25; 用SQL语言进行更新、插入或删除时,都是对单个表进行的。5.8.4 SQL语言对视图的操纵 视图(View) 是从一个或几个基表(或视图)导出的表。1.建立视图例如,建立学校代号为B_19的学生信息视图 CREATE VIEW Stu_B_19 AS SELECT * FROM Student WHERE Sschool_number=B_19;2. 删除视图 例如, 删除视图Stu_B_19 DROP VIEW Stu_B_19;3. 视图的查询 例如,在视图Stu_B_19中查询年龄大于23岁的学生信息,并按年龄排序 SELECT * FROM Stu_B_19 WHERE Sage23 ORDER BY Sage; 4. 视图的更新 例如,在视图Sch_AVGOf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 年公路水运试验题目及答案
- 2026 年严守耕地红线守护粮食安全课件
- 2026 年秋分节气劳动教育实践与传统文化融合课件
- 2026 年教师廉洁从教守住育人初心课件
- 2026 年艾滋病科学认知消除社会歧视课件
- 医疗废物分类知识及医院感染控制知识培训考试题及答案
- 特种经济动物繁育员岗前理论知识考核试卷含答案
- 催化重整装置操作工班组协作知识考核试卷含答案
- 修锯工改进水平考核试卷含答案
- 2025年石林县石林中心学校数学四下期中教学质量检测模拟试题(含答案)
- 电子产品营销与技术服务
- 武术协议书范本
- 2025年中国泵行业市场白皮书
- 小学语文命题能力培训
- 《小小科学家》教学设计 -2023-2024学年一年级上册科学苏教版
- 2024-2025学年统编版道德与法治一年级上册教学设计(附目录)
- 输变电工程施工质量验收统一表式附件1:线路工程填写示例
- 《幼儿教育心理学(第2版)》课后答案 胡玉平石远鹏
- 国能埇桥永镇大营风电场项目环境影响报告
- 中国古典文献学(全套)
- 细胞生物学实验-细胞骨架观察
评论
0/150
提交评论