《数据库系统基础教程教案(南京理工大学).docx》由会员分享,可在线阅读,更多相关《数据库系统基础教程教案(南京理工大学).docx(153页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库系统基础教程教案1 . 3学分上课,1学分上机。2 .教材与参考书教科书:Jeffrey D. Ullman, Jennifer Widom数据库系统基础教程史嘉权等译。清 华大学出版社。1999.9本教材是美国斯坦福大学数据库系列课程的第一门(其它的课程包括:数据 库系统原理,数据库系统实现的工程训练,事务和分布式数据库,数据库理论), 着重于数据库设计和编程,适用于高年级本科生或低年级研究生。参考书:王能斌,数据库系统,电子工业出版社。王珊、萨师短,数据库系统,教育出版社。数据库处理-基础、设计与实现,施伯乐等译校,电子工业出版社。3 .目的:掌握数据库系统的基本概念、原理和方法;学
2、会如何有效地使用数据 库管理系统,包括数据库的设计和对数据库的编程。4 .方法:理论结合实践;实用性原则。1数据库系统的世界(概述)本章主要介绍各种重要的数据库概念。1.1 数据库系统的发展什么是数据库?本质上,数据库是一个信息集合,要持续相当长一段时间,又称数据基。数据库具有以下特点:1 .数据是按一定方式组织和管理的,这涉及到两个相关的概念:数据模 型和数据库模式。2 .大容量且高效的。3 .共享数据:多用户并发访问,且能避免某用户的动作影响其他人;避 免意外损坏数据。4 .由一组软件对数据进行集中统一的管理(DBMS)。数据库可被定义为基于某种数据模型而存贮起来的、为某个特定组 织的多种
3、应用服务的、具有尽可能小的冗余度和尽可能高的数据独立性 的相互关联的数据集合,由数据库管理系统进行集中、统一的控制。数据库的地位及作用现实世界(事物)一信息世界(信息)计算机世界(数据) 信息:现实世界事物存在方式或运动状态的反映。 数据:信息的载体。 数据处理:对各种形式的数据进行收集、存贮、加工和传播的一系列 活动的总和。 数据处理的目的:从大量的原始数据中抽取、推导出有价值的信息, 以进行决策;借助计算机科学地保存和管理大量数据,使人们能方便 而充分地利用资源。 数据库技术:研究如何科学地组织和存储数据,如何高效地获取和处 理数据。应用的实例 个人帐务银行 公司客户及业务飞机订票数据库技
4、术的发展从文件系统演化而来。文件系统特点:数据以文件形式长期保存;数据的物理结构与逻辑结构有了区别;文件形式多样化;数据的存取以记录为单位。缺点:数据冗余:数据面向应用,无法共享;数据与程序缺乏独立性。60年代后期,数据管理规模更为庞大,应用更广泛,数据量剧增,共享要求更强。为了克服文件系统的弊病,对数据进行集中、统一的管理,使数 据存储独立于使用数据的程序,提出了数据库技术。数据库不仅反映数据本身的内容,同时也反映数据之间的关联。在数据 库中是采用数据模型来对现实世界进行抽象的。数据模型是数据库系统中用 于提供信息表示和操作手段的形式架构。早期使用“层次模型”(树型结构)和“网状模型”来描述
5、信息结构。不 支持高级查询语言。1970 年,Ted Codd 在 ACM 发表了“A Relational Model for Large Shared Data Banks,奠定了关系型数据库的理论基础。主要思想是把数据库中的 所有数据组织为“表table”的“关系relation”。可组织复杂数据结构; 对大量查询能快速反应;查询可表示为一种高级语言,以提高编程效率。关系代数提供了关系模型的数学基础。从而,使用简单的结构和方法可 表示和实现复杂结构和复杂计算。随后,SQL (Structural Query Language)出现。一个简单的关系实例教材p3,例LL银行账户信息数据库的研
6、究方向 DBMS研制:扩大功能、提高性能、增强实用性 数据库设计:设计方法、设计工具、标准及规范化 数据库理论:知识库、演绎数据库、模糊数据库、面向对象数据库、 多媒体数据库。1.2数据库管理系统主要指负责数据库存取、管理和维护的软件系统,通常叫做数据库管理系 统(DataBase Menegerment System) o数据库系统的各类用户对数据库的各种操作请求,都是由DBMS响应和处理的。1系统构件划分:供井中值查询(select)模式更新(create/alter/dr。口数据更新(insert/delete/update) 数据存储器:存储数据和元数据。主要以文件方式。元数据meta
7、data:关于数据的结构的信息。数据按元数据规范的格式存 储。索引index: 一种数据结构,以快速查找数据项(item)。索引是数据的一部分,而对索引的说明则是元数据的一部分。Hash表是早期建立索引的主要方法,现一般使用B(Balance)树。 存储管理器:接受上层的数据请求,提取或更新对应的数据。包括文件 管理和缓冲区管理。依赖于特定os。文件file管理:磁盘文件分块block: 1K-一16K缓冲区buffer管理:文件到内存的映像。内存分页page: 1K4K 查询处理器:接受操作请求,把SQL命令转变为对存储数据的操作序列,主要问题是优化。事务管理器:负责系统数据的完整性。保证并
8、发运行的多个SQL命令相 互不冲突;保证系统出现故障时不丢失数据。处理三种SQL命令: 模式更新:通常由管理员和设计员使用,改变当前数据库模式。 查询:对数据的询问。两种接口 :通用的交互式接口 (Interactive SQL) 和 API。 数据更新:改变当前数据库中数据的状态。事务(Transaction)是什么?一组操作作为一个单元,按次序全部执行,称为事务Transaction。事务有那些特性?ACID: Atomicity:原子性,一个事务中的一组操作,要么全部执行,要么 一点也不执行。 Consistency: 一致性,保持数据库的正确状态。 Isolation:隔离性,多个事务
9、并发运行时,作用效果相互分开。有 一1定隔离级别。 Durability:持久性,事务完成后,即使系统发生故障,事务的结果 也不丢失。如何保持事务的特性:加锁 locking提交 commit日志 logging2系统功能划分:数据库管理系统是为数据库的建立,使用和维护而配置的软件。应包括 以下功能: 数据库定义功能 数据存取功能 数据控制功能 数据库维护功能 数据通信功能1.3数据库模式(schema)结构模式是什么?模式(schema)是对某个数据库的逻辑结构的完整描述,通常用一组DDL来描述。子模式、用户模式、视图 与应用相关的局部特征.从模式角度看待一个数据库系统数据库的数据独立性依靠
10、模式分级及模式之间的映像实现。视图view是什么?在关系数据库中的一个子模式或外模式,对相同数据以不同方式/格式进行处理。虚表,在一个或多个关系中的多个属性上定义的“虚关系”。无实际 存储数据,最终通过“实表”导出。关系数据库的一个组成部分。1.4 数据库系统指使用了数据库技术的计算机系统。应包含: 计算机基本系统数据库管理员 数据库管理系统文档及说明 数据库数据库应用体系结构是什么? 客户/服务器(Client/Server, C/S)结构。客户端Client:请求SQL服务的软件进程。服务器Server:提供SQL服务的软件进程。一个服务器可支持多个数据库;一个数据库包含多个关系。1.5
11、本课程内容设计design:如何建立一个有用的数据库。包括需求分析,数据建模, 关系设计。编程progrmming:在数据库设计的基础上,如何进行各种查询和计算操 作。1.5.1 设计一个数据库应用实例如下:某商品销售公司销售业务数据库系统,该系统至少应管理以下内容:1. 公司分为多个下属部门(Department),如“江苏销售部”,“上海销售部“等。每个部门有若干销售员(Salesman),每个销售员有唯一的员工号(如“S0025”)和身份证号,也包含姓名、性别、出生日期、电话等信息。一个 销售员仅属于一个部门,且每个部门有一个销售员担任部门经理。2. 系统应管理一组客户(Customer
12、):名称、省、市、单位名称、电话等。3. 系统应管理所有销售的商品(Product):制造商(如“春兰”、“海尔”等)、种类(如“摩托车”、“空调机”等)、规格(如“MT125”型摩托车、“RE1500” 型空调等)、价格、功能及性能描述。4. 系统用销售订单(Sales order)表示销售业务。每个订单有一个订单号和签订日期,且对应一个客户和一个销售员。一个订单至少销售一种产品,并 可销售多种产品,每种产品应确定其销售数量和单价,以计算销售金额。第2章介绍一种数据库建模的图形表示法:实体/联系(Ent i t y/Re 1 at i onsh ip)模型。目的:对一个应用系统进行需求分析,
13、建立E/R模型。Salesman (empid, idno, name, gender, pfig目的:由一个数据库的E/R模型,产生符合一定规范的关系模型。 Customer (custjd, name, prov, city, phone, unit)Department (deptid, name,derid) oProduct (prodid, factory, type, spec, price,Salesorder (ordernoT个第3章介绍关系数据模型,关系模型是什么,如何设计规范的关系模型。Salesitem (ordgrno, lineno, pro丞 singlecos
14、t, quantity)1.5.2 编程第4章介绍关系模型中的运算,使用关系代数表示抽象的计算。目的:在一个关系模型基础上,根据要求给出关系的计算过程。1计算名为“张三”的销售员的员工号及其电话号码。n empid, phone (。name=张三(Salesman)2计算员工号为“E0056”的销售员所经办的客户的姓名及其电话号码。n name, phone ( o empid= E0056* (Salesorder XI Customer)第5章介绍数据库语言SQL,使用SQL建立数据库并实现关系计算。目的:以查询语句为重点,完成具体关系运算。1计算名为“张三”的销售员的员工号及其电话号码
15、。SELECT empid, phone FROM salesman WHERE name =张三;2计算员工号为“E0056”的销售员所经办的客户的姓名及其电话号码。SELECT name, phoneFROM salesorder NATURAL JOIN customerWHERE empid = E0056;第6章介绍SQL中的约束和触发器目的:实现各种约束条件。约束的品质决定一个数据库系统设计的质量。第7章介绍SQL系统概况目的:用SQL事务保证数据完整性,通过用户授权和访问控制保证数据库的 安全性。2数据库建模当构建一个数据库应用时,如何以简单明确的方式描述所要解决问题的 重要特征
16、?如何说明数据库中需要存贮的信息,以及这些信息之间的关系?在数据库系统中,是以数据模型为工具来抽象、表示和处理现实世界的 信息的。2.1 数据模型1数据模型的类型 信息模型(概念模型):E/R模型,ODL模型等 基本数据模型:层次模型,网状模型,关系模型等2基本数据模型的三要素 数据结构:数据及数据之间的关系 数据操作:对特定数据结构的操作 完整性约束:模型特有的约束及用户定义的约束2.2 实体/联系图实体/联系图是什么?Entity/Relationship图,简称E/R图,一种传统的图形化数据库建模语言。E/R模型。E/R图的主要建模元素是什么? 实体集entity set:与类class
17、相对应,同型实体的集合。描述名称。用矩形表示。 属性attribute:描述实体某一个性质的值。只描述名称,不描述类型。 用椭圆表示。 实体型entity type:实体名及属性名的集合,用以刻画某个实体集。 实体entity:实体集中的某个元素,与对象object类似。 联系relationship:两个或多个实体集之间的连接关系。通常需要描 述名称。用菱形表示。例2.7: p30电影、影星与制片公司2. 2. 1 E/R联系的多重性多重性multiplicity是什么?实体之间存在的一种定量的约束关系。多重性有哪几种?本质上区分两种多重性:1:关联零个或一个实体,“最多一个”多;关联零个到
18、多个实体,“能超过一个”组合起来,考虑实体集A到B的联系 1对1: A的一个实体对应B的零个或一个实体;且B的一个实体对应A的零个或一个实体。例如:系一系主任学生一图书证 1对多:A的一个实体对应B的零个到多个实体;而B的一个实体对应A的零个或一个实体。多对1是1对多的逆联系。例如:学生一系图书一分类人员一设备 多对多:A到B是1对多且B到A也是1对多。例如:学生一课程图书一图书证电影一影星多重性之间的关系是什么? 1对多是多对多的一种特例;多对多包含1对多的情形。 1对1是1对多的一种特例;1对多包含1对1的情形。如何确定多重性?假设从实体集A到B有一个联系,如何确定B方的多重性?方法如下:
19、先确定实体集A的一个实体,再判断所联系的实体集B中关联一个还是 多个实体。例如:学生一系学生一课程E/R模型中如何表示多重性?有箭头所指的实体集为1。无箭头所连接的实体集为多。考虑:银行客户与储蓄帐号之间联系的多重性。多重性有何意义?最基本的定量关系。决定数据库的基本结构。2. 2. 2多兀联系什么是多元联系?一个联系涉及两个以上的实体集,该联系就是多元联系。较常见的是三 元联系。例2.8: P31电影、影星与制片公司之间的签约联系Contracts是一个三元联系,表示一个制片公司和一个影星签约以主演 某一部电影。一个联系可表示为一个三元组:(studio, star, movie)又如:供应
20、商一工程一零件 之间的供应关系。三元联系中的多重性是如何确定的?在实体集A和B中先分别确定一个实体,判断联系的C的实体是一个还 是多个。考虑:图书馆中“读者”、“书籍”和“管理员”之间的联系。考虑:学校教务管理中“学生”、“教师”和“课程”之间的联系。2. 2.3联系中的角色角色role是什么?在一种联系中,一个实体相对于被关联的其它实体的职责。当两个不同实体集之间建立一种联系时,假定双方实体集的名称可表示各自的角色。当一个实体集自身存在某种联系时,就需要确定联系的双方所扮演的不 同角色。例2.9: P31电影之间的首集与续集联系Original考虑:公司雇员之间的管理关系(superiori
21、nferior)。考虑:零部件之间的装配关系。有时候,在一个联系中,一个实体集可能多次出现。同一实体集中的多 个实体在一个联系中表示不同的语义。例2.10: P31制片公司、影星、电影之间的签约联系两个实体集之间是否会有多种联系?考虑:设备一工人之间的维修关系与使用关系。2. 2.4联系中的属性为何联系也有属性?除了实体集可定义属性之外,联系也可定义属性来扩展语义。实例:P33。三元联系Contracts可定义一个salary (片酬)和signdate (签约 时间)的属性。二元联系也可定义属性。如Movies和Stars之间的stars-in可定义时间 等属性。又如:学生与课程之间的选修关
22、系可定义成绩属性。2. 2.5把多元联系转换为二元联系为何要转换?简化模型,方便设计和实现。如何把多元联系转换到二元联系,而不丢失信息?以三元联系为例,把三元联系表示为一个实体集,称为连接实体集;确定连接实体集的属性;分别建立该实体集到三个原实体集的多对1的二元联系。连接实体集是什么?一种特殊的实体集,可等价表示一个联系。通常有属性。实例:P34何时需要转换?多元联系;多对多联系;有属性的联系。考虑:将学生与课程之间的选修联系用连接实体集表示。考虑:以下表示是否等价:练习:P35 2.2.22.3设计原则什么是设计原则?指导我们分析需求,设计解决方案的准则。为何需要设计原则?为了真实全面反应客
23、观需求,以得到良好的设计,且避免常见问题。2.3.1 真实性真实性原则是什么?忠实反映需求规范。实体集、联系和属性应反映客观的实际情况。这是最基本的原则。在设计中应注意保持一致性,不自相矛盾。若违背此原则,将会得到无效甚至有害的设计。例2.14: p36 Star与Movie间联系Stars-in的多重性。2. 3.2避免冗余避免冗余原则是什么?对任何事物的任何性质的描述,都仅描述一次。注意避免:重复的表示,二次数据,冗余的联系实例:Movies和Studios之间的Owns联系,可以表示为Movies的一个属性。但不能共存。可能的问题:空间浪费;维护一致性的代价。考虑:人事档案中每个人有身份
24、证号、性别、出生日期、年龄等属性。有多余属性吗?简单性原则是什么?避免引入多余的元素。例 2.15: p36Holdings表示一部电影的所有权。如果没有属性的话,则是多余的实体集。可能引起的问题:多余实体集必然导致多余的联系,空间浪费;计算复杂;易出错。要点:对1对1的联系要仔细研究是否多余。2. 3.4选择合适的元素类型表示事物的某个性质时,可能面临多种建模元素的选择。“合适”是什么原则?相对的合理;更自然;更简单;更贴近需求。1是选择属性,还是实体集?例 2.16:考虑 Studios。如果设计中只要求Studios的名称,不要求其它属性,如地址、总裁等, 是否可作为Movies的一个属
25、性,而无需一个实体集。建议:若某事物具有除名称之外的更多信息,则应建模为一个实体集;否则 应为属性。属性比实体集或联系实现起来更简单。此外,在E/R模型中,每个实体所具有的属性值应该是单值的,因此,若某个属性是多值的,通常需要将之建模为实体集。考虑:人事档案中每个人除有姓名、身份证号之外,若需多个住址和多个宅电号码,应如何建模?考虑:住址和宅电号码之间是否可能有联系?2是选择一个多元联系,还是一个等价的连接实体集?根据具体需求分析的要求决定。例2.17: p37电影、影星与两个制片公司之间的签约联系。将签约作为连接实体集可表示制片公司数量不定的特殊情形。练习:P38 2.3.2、2.3.32.
26、4 子类子类是面向对象的概念在E/R图中的体现。在E/R模型中虽然有表示方 法,但不能解决普遍的复杂性问题。超类 Studios和Movies的 键属性的总和。Studios2. 6.2对弱实体集的要求若E是一个弱实体集,则为E提供键属性的每个实体集F必然通过一个联系R与E关联,且满足下面条件:1 . R是从E到F的二元多对1联系。2 . F为E提供的键属性必然是F的键3 .若F本身是弱实体集,则F为E提供的键属性可能是通过另一个多对 1联系与F关联的另一个实体集的键。4 .若从E到F存在多个多对1的联系,则每个联系都可能把F的键提供 给E构成其键。2. 6.3弱实体集的表示法1 弱实体集:双
27、边矩形。2 多对1的联系:双边菱形。3 键属性:下划线。练习:P53 2.6.1 2.6.22.7小结数据库建模的目的是什么?如何对一个数据库进行建模?我们学过哪种建模方法?建模时应坚持哪些原则?系统中可能有哪些重要约束?如何对约束建模?弱实体集是什么?如何对弱实体集建模?实例:销售业务管理系统建模3关系数据模型4 .关系数据模型是什么?5 .如何将E/R模型转变为关系数据模型?6 .如何使关系模型满足一定规范形式(范式)?3.1关系模型的基本概念关系模型是以集合论中的关系来表示数据以及数据之间的联系的。关系relation是什么?由若干列和行组成的一个二维表,称为一个关系,即一个表table
28、。表示数据结构和数据集合的一种简单方式。一个关系有一个名称。MoviestitleyearlengthfilmTypeStar WarsWayne s WorldMighty Ducks19771992199112495104color color color3. 1. 1属性属性attribute是什么?一个关系中某一列的名称,描述一列数据的含义。如Movies中的length o一个属性有一个名称。一个关系中的多个属性不能重名。关系模式relational schema是什么?一个关系的名称及其一组属性的集合,称为一个“关系模式表不为:关系名(属性1、属性2、属性n)例如:movies(t
29、itle, year, length, filmtype)一个数据库包含一个或几个关系模式。一个关系数据库中所包含的关系模式的全体,称为一个“关系数据库模式”,或“数据库模式一个关系模式中的各属性排列有次序吗?没有。但为方便起见,一个关系通常设有一个“缺省次序”。3. 1. 3元组一个元组tup Ie是什么?某个关系中除了属性标题之外的一行数据。一个关系中可能没有元组。一个元组(行)在每个属性(列)上有一个交叉,即一个分量(component) o如何表示一个元组?按照关系模式,用逗号分割每个分量。例如:(Star Wars, 1977,124, color)注意:不表示属性名称,按照关系模式
30、的属性次序表示各分量。元组和对象之间有何对应关系?一个关系可粗略对应一个类。一个元组可粗略对应一个对象。一个元组的一个分量对应一个对象在某属性上的一个值。元组和对象之间有何区别?对象具有自身固有的标识(OID);无需人为定义键。一个关系中的元组在关系中不能出现多次;而类中的一组对象的属性值 可以相同。3. 1.4 域域doma i n是什么概念?一个域是一种基本数据类型,如integer, char(n), date, time等。一个关系中每个属性都属于某个域,即某种基本数据类型。关系模型要求每个元组的每个分量必须具有原子性。原子性atomic是什么含义?没有内部结构,不能再分解的基本数据类
31、型。4. 1.5关系的等价表示法一个关系为什么有多种等价表示?改变关系中属性的排列次序,即改变列次序,不改变关系的含义。注意, 各分量对应各列。改变关系中元组的排列次序,即改变行次序,不改变关系的含义。一个关系的模式和元组之间有何关系?关系模式相对静态;而关系中的元组是动态变化的。元组的增、删、改必须按关系模式进行。关系的实例是什么?一个关系的一组元组即为该关系的一个实例。关系的实例随时间变化,“当前实例”指的是在当前时刻,某关系中的 元组。练习:P62 3.1.11.2 从ODL设计到关系设计1.3 从E/R图到关系设计如何把E/R模型转换为关系设计?3. 3.1实体集到关系的转换如何把非弱
32、实体集转换为关系设计?建立相同名称的关系,且具有相同属性集。例 3.10: p73Movies(title, year, length, filmType)Stars(name, address)Studios(name, address)4. 3.2 E/R联系到关系的转换如何把多元联系转换为关系设计?先转换为二元联系,再按下面方法转换。如何把二元联系转换为关系设计?根据多重性分别处理:1. E1到E2的多对多联系R:R表示为一个关系,其属性是E1和E2的键属性,加上自身属性。例如: Mo vies 和 Stars 之间的 Starsln( title, year, starName)例如:
33、学生与课程间的选修关系:选修(学号,课号,成绩)2. E1到E2的多对1联系R:R可表示为一个关系,但不是必须表示为关系。例如:Movies至Studios之间 lOwnedbvftitle, year, studioName)在El关系中增加E2的键属性,E2作为被参照关系。例如:Moviesftitle, year, length, fileType, studioName)例如:系与职工间的从属关系。职工(职工号,姓名,系号)3. E1到E2的1对1联系R:R可表示为一个关系,但通常不表示为关系。而采用两种方法:在E1关系中增加E2关系的键,E2作为被参照关系。在E2关系中增加E1关系的
34、键,E1作为被参照关系。1对1联系可能被合并为一个关系。例如:系与职工间的领导关系。可表示为:系(系号,系名,系主任职工号) 或;职工(职工号,姓名,系号,领导系号)如何把弱实体集转换为关系设计?弱实体集E表示为一个关系,包含自身属性和F关系的键属性。关系R不再表示为一个关系。例如:职工与职工简历职工(职工号,姓名,性别,出生日期,)职工简历(职工号,时间,单位,任职)例3.16: p77签约Contracts(starName, studioName, titlt, year, salary)练习:151销售业务系统3.4子类结构到关系的设计1单独表示子类关系例如:职工与采购员表示为:职工(
35、职工号,姓名,性别,出生日期,)采购员(职工号,采购指标)2使用空值NULL合并子类关系。例如:职工与采购员表示为:职工(职工号,姓名,性别,出生日期,采购指标)例3.18: p79电影、卡通片与谋杀片用形式化方法研究一个关系中各属性之间的语义关系。3. 5.1函数依赖的定义函数依赖是如何定义的?若关系R的任意两个元组在属性Al、A2An上一致(即有相同分量值),则这两个元组在属性B上也一致,则称属性AlA2.An函数决定B, 或称B函数依赖于A1A2An。记为:AlA2.An f B若t和u在A上一致,则在B上一致例如:学号f姓名学号f性别考虑:姓名一性别?关系:学生(学号,姓名,性别)中为
36、何学号f姓名成立?如果两个元组具有相同学号,则两个元组指同一个学生,故具有相同姓 名和性别。在一个关系中,不存在(键值)完全相同的元组。如果不存在两个元组具有相同学号,即每个元组各表示一个学生,则学号一姓名成立。推论1:当且仅当AlA2.An BlAlA2.An B2AlA2.An f BmAlA2.An BlB2.Bm推论2:A -0 A例 3.20 : p82 关系 Movies(title, year, length, filmiype, studioName,starName)中,存在哪些函数依赖?title year -* length filmType studioName考虑:t
37、itle year f starName ?titleyearlengthfilmTypestudioNamestarNajneStar Wars1977124colorFoxCarrie FisherStar Wars1977124colorFoxMark HamillStar Wars1977124colorFoxHarrison FordMighty Ducks1991104colorDisneyEmilio EstevezWayne, s World199295colorParamountDana CarveyWayne s World199295colorParamountMike Meyers例:分析学生(学号,课号,成绩,系号,宿舍区)中的函数依赖如何分析一个具体关系中的函数依赖?根据属性之间的语义关系分析函数依赖。应考虑所有可能的属性组合。尽可能使函数依赖式的左面最小化,而右面最大化。注意:函数依赖是针对关系模式,而不是针对特定实例,故只从关系实 例不能确切断定函数依赖。判断函数依赖的三种情形 如果任意两元组在属性A上一致,在B上也一致,则有A - B成立。 如果任意两元组在属性A上一致,在B上不一致,则A