数据库原理与技术第六章new
《数据库原理与技术(第二版)》第6章
本 章 要 点
SQL SERVER管理工具 Transact-SQL 语言 SQL SERVER中的存储过程
SQL SERVER中的触发器 SQL Server中的数据导入和导出
退 出
SQL SERVER管理工具
服务管理器 建立数据库、表、索引的操作 建立视图的操作 数据完整性保护 备份与恢复 数据库安全性管理 查询分析器
CREATE TABLE publishers (pub_id char(4) NOT NULL CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED CHECK (pub_id IN ('0389', '0736', '0877', '1622', '1756') OR pub_id LIKE '20[0-9][0-9]'),pub_name varchar(40) NULL, author varchar(20) NULL, unitprice int NULL, unit varchar(30) NULL DEFAULT('USA') )
建立索引
语句格式: CREATE [UNIQUE] [CLUSTERRED | NONCLUSTERRED] INDEX <索引名称> ON {<表名> | <视图名>} ({<列名>[ASC | DESC]}) [{WITH <索引选项>} ] [ON <文 件组>]
【 例 】 求 关 于 表 publishers 建 立 关 于 pub_id的聚集索引。 语句如下: CREATE UNIQUE CLUSTERRED INDEX pub_pub_id (pub_id ASC ) WITH IGNORE_DUP_KEY
数据库原理第六章习题答案
数据库原理第六章习题答案数据库原理第六章习题答案在数据库原理的学习中,习题是检验自己对知识掌握程度的重要方式。
第六章的习题主要涉及数据库设计和规范化的内容,下面将逐一给出习题的答案。
1. 什么是数据库设计?数据库设计是指根据用户的需求和系统的要求,设计出能够满足这些需求和要求的数据库结构和组织方式的过程。
它包括确定数据库的结构、定义数据的存储方式、确定数据之间的关系等。
2. 数据库设计的步骤有哪些?数据库设计的步骤主要包括需求分析、概念设计、逻辑设计和物理设计。
需求分析阶段主要是了解用户的需求和系统的要求;概念设计阶段主要是根据需求分析结果,设计出概念模型;逻辑设计阶段主要是将概念模型转化为逻辑模型,包括实体关系模型和关系模式;物理设计阶段主要是将逻辑模型转化为物理模型,包括数据库的存储结构和索引结构的设计。
3. 什么是规范化?规范化是指通过一系列的规则和算法,将非规范化的数据库设计转化为规范化的数据库设计的过程。
它的目的是消除冗余数据、提高数据的一致性和完整性,并减少数据的存储空间。
4. 数据库设计的规范化级别有哪些?数据库设计的规范化级别主要包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BC范式(BCNF)。
其中,第一范式要求数据表中的每个字段都是原子的;第二范式要求数据表中的非主键字段完全依赖于主键;第三范式要求数据表中的非主键字段不传递依赖于主键;BC范式要求数据表中的每个非主键字段都不能依赖于其他非主键字段。
5. 什么是函数依赖?函数依赖是指在关系模型中,一个属性或属性集合的值决定另一个属性或属性集合的值的关系。
如果一个属性或属性集合的值决定另一个属性的值,则称为单值函数依赖;如果一个属性或属性集合的值决定另一个属性集合的值,则称为多值函数依赖。
6. 什么是主属性和非主属性?在关系模型中,主属性是指能够唯一标识一个实体的属性,它是关系模型中的主键;非主属性是指不能唯一标识一个实体的属性,它依赖于主属性。
〉数据库原理及应用教程简答题等答案第六章设计题和简答题答案
第六章三、设计题1.一个图书管理系统中有如下信息。
图书:书号、书名、数量、位置借书人:借书证号、姓名、单位出版社:出版社名、邮编、地址、电话、E-mail其中约定:任何人可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社名具有唯一性。
根据以上情况,完成如下设计。
(1)设计该系统的E-R图。
(2)将E-R图转换为关系模式。
(3)指出转换后的每个关系模式的主码。
关系模式及主码图书(书号,书名,数量,位置,出版社名)借书人(借书证号,姓名,单位)出版社(出版社名,邮编,地址,电话,E-mail)2.图6-26(a)、(b)和(c)给出某企业管理系统三个不同的局部E-R图,将其合成一个全局E-R图,并设置各个实体以及联系的属性(允许增加必要的属性,也可将实体的属性改为联系的属性)。
(a ) (b ) (c ) 图6-26 局部E-R 图各实体的属性如下。
部门:部门号、部门名、电话、地址职员:职员号、职员名、职务、年龄、性别设备:设备号、名称、规格、价格零件:零件号、名称、规格、价格3.经过需求分析可知,某医院病房计算机管理系统中需要管理以下信息。
科室:科室名、科室地址、科室电话、医生姓名病房:病房号、床位号、所属科室医生:工作证号、姓名、性别、出生日期、联系电话、职称、所属科室名病人:病历号、姓名、性别、出生日期、诊断记录、主管医生、病房号其中,一个科室有多个病房、多名医生,一个病房只属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
根据以上需求分析的情况,完成以下有关的设计。
(1)画出该计算机管理系统中有关信息的E-R 图。
(2)将该E-R 图转换为对应的关系模式。
(3)指出转换以后的各关系模式的范式等级和对应的候选码。
科室(科室名,科室地址,科室电话)病房(病房号,床位号,科室名)医生(工作证号,姓名,性别,出生日期,联系电话,职称,科室名)病人(病历号,姓名,性别,出生日期,诊断记录,主管医生,病房号)4. 排课是教学环节中的重要过程,该过程包括以下实体。
《数据库原理及技术》教材习题参考答案
《数据库原理及技术》教材习题参考答案第1章习题一、选择题:1A、2A、3A、4A、5B、6C、7C、8A、9A、10C二、填空题:1、有组织的、可共享2、文件系统、数据库3、数据结构、数据操作、完整性约束4、共享性高5、关系6、数据逻辑7、数据库8、数据模型9、用户10、DBMS、DBMS第2章习题一、选择题:1A、2C、3B、4C、5A、6B、7B、8B、9C、10C二、填空题:1、实体2、查询3、ALPHA4、二维表、行、列5、定义数据库6、R(U,D,dom,F)7、集合8、关系数据库的型或模式、关系数据库的值9、外键10、连接第3章习题一、选择题:1C、2B、3D、4C、5A、6A、7D、8C、9C、10D二、填空题:1、定义2、SQL3、结构化查询语言4、基本表或视图5、更新6、insert、update、delete7、零个或多个字符8、零个或单个字符9、select 10、order by第4章习题一、选择题:1C、2A、3C、4C、5A、6B、7A、8B、9D、10B二、填空题:1、部分函数、完全函数2、数据冗余大、插入异常、删除异常3、x真子集x’都有x’y4、Y X、Y X5、K U6、全码、非主属性7、有效、完备8、函数、多值、连接9、INF 10、低范式、高范式第5章习题一、选择题:1A、2A、3B、4D、5B、6A、7A、8C、9A、10B二、填空题:1、安全性、完整性、并发性控制、数据库恢复2、安全3、用户标识与鉴定、存取控制、定义视图、数据加密、审计4、设置用户标识(用户名与口令)、鉴定用户标识5、完整性6、commit、rollback7、粒度8、撤消代价小的事务、撤消用户等级低的事务9、撤消代价小的事务10、DB后备副本、存储的日志文件第6章习题一、选择题:1C、2A、3D、4C、5B、6A、7D、8A、9B、10D二、填空题:1、属性冲突、命名冲突、结构冲突2、数据项3、属性4、学号、课程编号5、记录存储结构、存储路径、记录集簇6、聚簇7、结构、行为、数据模型8、概念结构设计、逻辑结构设计9、DBMS 10、数据模型。
精品文档-数据库原理及应用(唐友)-第6章
第 6 章 Transact-SQL
6.4 函 数 SQL Server 2000提供了一些内置函数,用户可以使用这 些函数方便地实现一些功能。以下举例说明一些常用的函数。
23
第 6 章 Transact-SQL
1.转换函数 (1) cast():将一种数据类型的表达式转换为另一种数 据类型的表达式。 语法: cast ( expression as data_type [ (length ) ])
26
第 6 章 Transact-SQL
2.字符串函数 (1) len(character_expression):返回字符表达式中的 字符数。如果字符串中包含前导空格和尾随空格,则函数会将 它们包含在计数内。len对相同的单字节和双字节字符串返回 相同的值。 【例15】select max(len(姓名)) from 学生表 (2) datalength ( expression ):返回用于表示任何表 达式的字节数。 【例16】declare @a nvarchar(10) set @a=‘abc’ select datalength(@a) /*显示6*/
End
19
格式2:
第 6 章 Transact-SQL
Case When Boolean_expression Then result_expression
[ ...n ] [ Else else_result_expression ]
End
20
第 6 章 Transact-SQL
【例11】从成绩表查询学号为2013001号的成绩,并将成 绩转换为等级。
第 6 章 Transact-SQL
(5) substring( value_expression ,start_expression , length_expression ):返回字符表达式、二进制表达式、文 本表达式或图像表达式的一部分。
数据库原理第六章关系数据理论
6.2 规范化
规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依 赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
6.2.1 函数依赖
一、函数依赖 二、平凡函数依赖与非平凡函数依赖 三、完全函数依赖与部分函数依赖 四、传递函数依赖
一、函数依赖
定义6.1 设R(U)是一个属性集U上的关系模式,X和Y
• 主属性与非主属性 • ALL KEY
外部码
定义6.5 关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式 的码,则称 X 是R 的外部码(Foreign key)也称外码
• 主码又和外部码一起提供了表示关系间联系 的手段。
6.2.3 范式
• 范式是符合某一种级别的关系模式的集合。 • 关系数据库中的关系必须满足一定的要求。满足
什么是数据依赖(续)
3. 数据依赖的类型
• 函数依赖(Functional Dependency,简记为FD) • 多值依赖(Multivalued Dependency,简记为MVD) • 其他
四、关系模式的简化表示
● 关系模式R(U, D, DOM, F) 简化为一个三元组:
R(U, F)
r r R ● 当且仅当U上的一个关系
注: 如果Y→X, 即X←→Y,则Z直接依赖于X。
例: 在关系Std(Sno, Sdept, Mname)中,有: Sno → Sdept,Sdept → Mname Mname传递函数依赖于Sno
6.2.2 码
定义6.4 设K为关系模式R<U,F>中的属性或属 性组合。若K f U,则K称为R的一个侯选 码(Candidate Key)。若关系模式R有多个 候选码,则选定其中的一个做为主码(Prim ary key)。
数据库原理与应用(第二版)Chapter6
4. 动态列级约束
动态列级约束是修改列定义或列值时应满足的约束条件, 包括下面的几方面。 (1) 修改列定义时的约束 (2) 修改列值时的约束
5. 动态元组约束
动态元组约束是指修改某个元组的值时需要参 考其旧值,并且在新旧值之间需要满足某种 约束条件。 例如:工资调整时的规则是在原工资基础上增 加原工资的10%。 6. 动态状态约束
1. 多粒度封锁 多粒度树的根结点是整个数据库,表示最大的 数据粒度。叶结点表示最小的数据粒度。 多粒度封锁协议允许多粒度树中的每个结点被 独立地加锁。对一个结点意味着这个结点的所 有后裔结点也被加以同样类型的锁。 在多粒度封锁中一个数据对象可能以两种方式 封锁:显式封锁和隐式封锁。
2. 意向锁 如果对一个结点加意向锁,则说明该结点的下 层结点正在被加锁;对任一结点加锁时,必 须先对它的上层结点加意向锁。 有三种常用 的意向锁:
根据对检查是否违背控制机制时机可以将约束
分为两类: (1) 立即执行约束:这类约束是指在招待用户事 务时,对事务中的某一更新语句招待完毕后, 马上对此数据进行完整性检查。 (2) 延迟执行约束:这类约束是指在整个事务执 行完毕后才进行完整性检查。
6.3 并发控制
数据库是一个共享资源,可以供多个用户使用。 允许多个用户同时使用的数据库系统称为多 用户数据库系统。 在多用户共享系统中,如果多个事务同时对同 一数据进行操作称为并发操作。 若对并发操作不加控制就可能会存取和存储不 正确的数据,破坏数据库的一致性。所以数 据库管理系统必须提供并发控制机制。
④ 持久性(Durability) :持久性是指一旦完成了事务 处理,事务处理的结果就应该得到维持。
3. 并发操作带来的数据的不一致性问题
例如,考虑飞机订票系统中的一个活动序列: ① 甲售票点(甲事务)读出某航班的机票余额A,设 A=16; ② 乙售票点(乙事务)读出同一航班的机票余额A, 也为16; ③ 甲售票点卖出一张机票,修改余额AA-1,所以A 为15,把A写回数据库; ④ 乙售票点也卖出一张机票,修改余额AA-1,所以 A为15,把A写回数据库; 简单分析结果可知,订票系统分明卖出了两张机票, 数据库中的机票余额只减少1。
数据库原理与应用教材
数据库原理与应用教材数据库原理与应用教材内容丰富、系统全面,涵盖了数据库的基本原理、数据库管理系统的设计与实现,以及数据库应用的开发与实践等内容。
通过学习本教材,可以全面了解数据库的基本概念、数据模型和数据组织方式,掌握SQL语言的使用方法,以及数据库设计和优化的基本方法。
本教材共分为六章,每一章包含多个小节,具体内容如下:第一章:数据库概述1.1 数据库的基本概念1.2 数据库系统的组成1.3 数据库应用的发展历程第二章:关系数据库模型2.1 实体-关系模型2.2 关系代数与关系演算2.3 关系数据库的完整性约束2.4 数据库设计原则第三章:关系数据库管理系统3.1 数据库管理系统的体系结构3.2 数据库的物理结构和存储系统3.3 数据库的查询处理和优化3.4 数据库的事务管理和并发控制第四章:SQL语言4.1 SQL语言的基本概念4.2 数据定义语言(DDL)4.3 数据查询语言(DQL)4.4 数据操作语言(DML)第五章:数据库设计与优化5.1 数据库设计的基本原则5.2 实体关系模型的转换5.3 数据库的逻辑设计5.4 数据库的物理设计与优化第六章:数据库应用开发与实践6.1 关系数据库应用的开发工具6.2 数据库应用的系统需求分析6.3 数据库应用的系统设计与实施6.4 数据库应用的维护与管理此外,本教材还提供了大量的案例和实例,以帮助读者更好地理解和应用所学知识。
每个小节都包含了重点内容的总结和练习题,供读者巩固所学知识。
通过学习本教材,读者将能够系统地掌握数据库原理与应用的基本知识,为今后的数据库设计与应用开发提供坚实的基础。
数据库原理与技术
数据库原理与技术数据库是指按照数据结构来组织、存储和管理数据的仓库,它是一个长期存储在计算机内的、有组织的、统一管理的、可共享的数据集合。
数据库原理与技术是指数据库的基本概念、基本理论和基本技术。
数据库技术是信息系统技术的核心部分,对于信息系统的设计、开发、维护和管理都起着至关重要的作用。
首先,数据库原理是数据库领域的基础理论和基本概念,包括数据模型、数据结构、数据操作、数据完整性、数据安全等方面的知识。
数据模型是数据库的逻辑结构,常见的数据模型有关系模型、面向对象模型、网络模型和层次模型等。
数据结构是数据库内部数据的组织方式,包括表、索引、视图、触发器等。
数据操作是指对数据库中数据的增、删、改、查等操作。
数据完整性是指数据库中数据的一致性、准确性和有效性。
数据安全是指保护数据库中数据不受损坏、泄露和未经授权的访问。
其次,数据库技术是数据库应用的具体技术手段,包括数据库管理系统(DBMS)、数据库设计、数据库开发、数据库应用和数据库维护等方面的知识。
数据库管理系统是指用来管理数据库的软件系统,常见的数据库管理系统有Oracle、SQL Server、MySQL、PostgreSQL等。
数据库设计是指按照特定的数据模型和数据结构来设计数据库的过程,包括概念设计、逻辑设计和物理设计。
数据库开发是指利用数据库管理系统来开发数据库应用程序,包括数据库编程、存储过程、触发器等。
数据库应用是指将数据库技术应用到实际的信息系统中,包括企业资源规划(ERP)、客户关系管理(CRM)、在线交易处理(OLTP)等。
数据库维护是指对数据库进行日常管理和维护,包括备份、恢复、性能优化、安全管理等。
总之,数据库原理与技术是信息系统领域中的重要基础知识,掌握数据库原理与技术对于从事信息系统相关工作的人员来说至关重要。
通过学习数据库原理与技术,可以更好地理解数据库的工作原理和技术特点,提高数据库设计、开发和管理的能力,为企业的信息化建设提供有力支持。
数据库原理与应用教程(第三版)第六章课后习题答案
6.学生选课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)(1)候选码(学号,课程号)(2)该关系模式是第一范式(3)因为存在部分函数依赖关系((学号,课程号)—P—>姓名),所以要进行关系模式的规范化R1(学号,姓名,所在系,性别)主码:学号R2(课程号,课程名,学分)主码:课程号R3(学号,课程号,成绩)主码:(学号,课程号)学号是引用了R1关系模式的外码,课程号是引用了R2的外码因为每个关系模式此时已经是不含有依赖函数关系了,所以也是第三范式了7.学生(学号,姓名,所在系,班号,班主任,系主任)(1)候选码(学号,班号)(2)第一范式(3)因为存在部分函数依赖关系((学号,班号)—P—>姓名),所以要进行关系模式的规范化R1(学号,姓名,所在系,系主任)R2(班号,班主任)R3(学号,班号)(删去)因为每个关系模式此时是含有依赖函数关系了学号—f—>所在系,所在系—f—>系主任所以:R1(学号,姓名,所在系)主码:学号所在系是引用了R3中“所在系”的外码R2(班号,班主任)主码:班号R3(所在系,系主任)主码:所在系8.教师授课(课程号,课程名,学分,授课教师号,教师名,授课时数)(1)候选码(课程号,授课教师号)(2)第一范式(3)因为存在部分函数依赖关系((课程号,授课教师号)—P—>姓名),所以要进行关系模式的规范化(4)R1(课程号,课程名,学分)主码:课程号R2(授课教师号,教师名)主码:教师名R3(课程号,授课教师号,授课时数)主码:(课程号,授课教师号)课程号是引用了R1中的“课程号”的外码,授课教师号引用了R2的“授课教师号”的外码因为每个关系模式此时已经是不含有依赖函数关系了,所以也是第三范式了。
Chapter6-大数据技术原理与应用-第六章-云数据库-pdf
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SELECT SNAME FROM SS SSELECT SNO FROM WHERE SNO=‘S01’ WHERE SNAME = ‘李婉’ SELECT SNAME FROM S WHERE SNO=‘S02’
函数依赖
定义 函数依赖:设R(U)是属性集U上的关系模式, X , Y 是U的子集。若对于R(U)的任意一个可能 的关系r,r中不可能存在两个元组在X上的属性 值相等,而在Y上的属性值不等,则称X函数决 定Y,或Y函数依赖于X,记作XY。
函数依赖
SNO SNAME S01 S02 S01 S03 S04 S02 S05 杨明 李婉 杨明 李婉 安然 李婉 乐天 DEPT D01 D01 D01 D02 D02 D01 D03 HEAD CNO 李一 李一 李一 王二 王二 李一 赵三 C01 C01 C02 C01 C02 C03 C01 G 90 87 92 95 78 81 82
关系中每一分量必须是原子的,不可再分。即不能 以集合、序列等作为属性值。
SNO
S1
CNO
{C1,C2,C3}
SNO S1
S1 S1
CNO C1
C2 C3
不满足1NF的关系模式
满足1NF的关系模式
2NF(Ⅰ)
定义 若R1NF,且每个非主属性完全依赖于码, 则称R2NF 将1NF的关系模式规范化为2NF的关系模式, 其方法是消除1NF的关系模式中非主属性对 码的部分依赖。 思考:如果关系R的全体属性都是R的主属 性,或者R的所有候选码都只含一个属性, 那么,R是否属于第二范式?
• 所有非主属性都完全函数依赖于每个候选码。 • 所有主属性都完全函数依赖于每个不包含它的候选码。
• 没有任何属性完全函数依赖于非码的任何一组属性。
BCNF(IV)
原因:
存在主属性对码的不良依赖,STJ BCNF,
因为T J,而T不含有码。 改造
将S分解为(S,T),(T,J)。
• 如:SNO和CNO
函数依赖
平凡函数依赖:如果X Y,但YX,则称其为非 平凡的函数依赖,否则称为平凡的函数依赖。如 (SNO,SNAME) SNAME是平凡的函数依赖 完全函数依赖:在R(U)中,如果XY,且对于X的 任何真子集X' ,都有X'Y ,则称Y对X完全函数依 f Y ,否则称为Y对X部分函数依赖, 赖,记作X p 记作X Y。 (SNO,CNO) G,
2NF(II)
关系模式S(SNO, SNAME , DEPT , HEAD , CNO , G)
不良特性
插入异常:如果学生没有选课,关于他的个人信息及 所在系的信息就无法插入。 删除异常:如果删除学生的选课信息,则有关他的个 人信息及所在系的信息也随之删除了。 数据冗余:如果一个学生选修了k门课,则有关他的 所在系的信息重复 更新异常:如果学生转系,若他选修了k门课,则需 要修改k次。
范式
定义
范式是对关系的不同数据依赖程度的要求。如果一 个关系满足某个范式所指定的约束集,则称它属于 某个特定的范式。
1NF 2NF 3NF BCNF 4NF 5NF
规范化
一个低一级范式的关系模式,通过模式分解可以 转换为若干个高级范式的关系模式的集合,这一 过程称作规范化。
1NF
定义
关系数据库设计中存在的问题(Ⅲ)
原因:把多个实体型用一个关系模式表示 解决之道:分解 DEPT HEAD
SNO CNO S01 C01 S02 C01 S01 S03 S04 S02 S05 C02 C01 C02 C03 C01 G 90 87 92 95 78 81 82
SNO
S01 D01 D02 李一 王二
示例
STJ(S, T, J),S表示学生,T表示教师,J表 示课程。每位老师只教授一门课,每门课由 若干教师教,某一学生选定某门课就确定了 一个固定的教师,因此具有以下函数依赖:
TJ,(S,J)T
(S,T),(S,J)为候选码。
ቤተ መጻሕፍቲ ባይዱ
BCNF(Ⅱ)
不良特性
插入异常:如果没有学生选修某位老师的任课,则 该老师担任课程的信息就无法插入。
2NF(III)
原因:S2NF,因为 f G (SNO,CNO) p SNAME SNOSNAME,(SNO,CNO) p SNO DEPT,(SNO,CNO) DEPT p HEAD SNOHEAD, (SNO,CNO)
规范化 将S分解为: S_SD(SNO, SNAME, DEPT, HEAD) 2NF SC( SNO , CNO , G)2NF
G→SNO? G→SNAME? SNO→SNAME?
函数依赖
函数依赖于属性间的联系类型有关。 当X、Y之间是“1对1”联系时,则存在函数 依赖XY和Y X。
• 如:学号和身份证号
当X、Y之间是“多对1”联系时,则存在函数 依赖XY。
• 如:SNO和DEPT
当X、Y之间是“多对多”联系时,则不存 在函数依赖。
3NF(II)
定义
关系模式R< U , F >中,若不存在这样的码X,属性 组Y及非主属性Z(Z Y),使得下式成立, XY , YZ , YX 则称R3NF。 将2NF的关系模式规范化为3NF的关系模式,其方 法是消除2NF的关系模式中非主属性对码的传递依 赖。
3NF(III)
函数依赖
函数依赖极为普遍地存在于现实生活中。考察关 系模式S(SNO , SNAME , DEPT , HEAD , CNO , G),由于一个SNO只对应一个学生,而 一个学生只能在一个系中学习。因而当SNO的值 确定后,SNAME和DEPT也被唯一地确定了。 就像自变量x确定后,相应的f(x)也被确定了一 样。我们说SNO函数决定(SNAME,DEPT), 而(SNAME,DEPT)函数依赖于SNO。
3NF(I)
S_SD(SNO, SNAME, DEPT, HEAD)
不良特性
插入异常:如果系中没有学生,则有关系的信息就无法 插入。 删除异常:如果学生全部毕业了,则在删除学生信息的 同时有关系的信息也随之删除了。 更新异常:如果学生转系,不但要修改DEPT,还要修 改HEAD,如果换系主任,则该系每个学生元组都要做 相应修改。 数据冗余:每个学生都存储了所在系的系主任的信息。
如SNO SNAME, (SNO,CNO) G SELECT SNO, COUNT(DISTINCT SNAME)
FROM S
GROUP BY SNO
函数依赖
函数依赖是不随时间而变的。若关系模式R具 有函数依赖XY,那么虽然关系模式R的关系 实例r在X,Y上的取值各不相同,并且随时间 而变化, 但X,Y在任一特定时刻都保持函数 依赖XY 。 函数依赖不是指关系模式R的某个或某些关系 满足的约束条件,而是指R的一切关系均要满 足的约束条件。 函数依赖是语义范畴的概念,它反映了一种语 义完整性约束,我们只能根据语义来确定一个 函数依赖。
D03 SNAME
杨明
赵三 DEPT
D01
S02
S03
李婉
李婉
D01
D02
S04
S05
安然
乐天
D02
D03
函数依赖
一个实体型的诸属性之间具有内在的联系,通过 对这些联系的分析,我们可以做到一个关系模式 只表示一个实体型的信息,从而消除上述问题。 在关系模型中,我们利用数据依赖来描述这些属 性间的联系。 数据依赖是通过关系中属性间值的相等与否体现 出来的数据间的相互关系,它是现实世界属性间 相互联系的抽象,是数据内在的性质,是语义的 体现。其中最重要的是函数依赖。
主键?
关系数据库设计中存在的问题(Ⅱ)
问题
插入异常:如果一个系刚成立没有学生,或者有了学生 但尚未安排课程,那么就无法将这个系及其负责人的信 息插入数据库。 删除异常:如果某个系的全部学生都毕业了,则删除该 系学生及其选修课程的同时,把这个系及其负责人的信 息也丢掉了。 数据冗余和更新异常:学生及其所选课程很多,而系主 任只有一个,但其却要和学生及其所选课程出现的次数 一样多。此外,如果某个系要更换系主任,就必须修改 这个系学生所选课程的每个元组,修改其中的系主任信 息。若有疏忽,就会造成数据的不一致,从而造成更新 异常。
检验:A→C?C→A?AB→D?
码
定义 候选码:设K为R< U , F >的属性或属性组 f 合, 若K U ,则称K为R的一个候选码。 若候选码多于一个,则选定其中一个作为主 码。 超码:设K为R< U , F >的属性或属性组, 若K U,则称K为R的超码。
码
主属性:包含在任何一个候选码中的属性,称 作主属性。 非主属性:不包含在任何一个候选码中的属性, 称作非主属性。 全码:关系模式的码由整个属性组构成。 如(P,W,A)
关系数据库设计中存在的问题(I)
SNO SNAME S01 杨明 S02 李婉 S01 杨明 S03 李婉 S04 S02 S05 安然 李婉 乐天 DEPT D01 D01 D01 D02 D02 D01 D03 HEAD CNO C01 李一 李一 李一 王二 王二 李一 赵三 C01 C02 C01 C02 C03 C01 G 90 87 92 95 78 81 82
p (SNO,CNO) SNAME
f
函数依赖
传递函数依赖:在R(U)中,如果XY, ( YX )Y Z,且Y X, ZY则称Z对 X传递函数依赖。 SNO DEPT,DEPT HEAD
函数依赖
A a1 a1 a2 a2 a3 B b1 b2 b2 b3 b3 C c1 c1 c2 c2 c2 D d1 d2 d2 d3 d4