1、数据库及数据库及SQL Server 江苏城市职业学院江苏城市职业学院 朱海霞朱海霞 数据库及SQL Server2上次课回顾上次课回顾&了解了解SQL Server数据库的应用数据库的应用n演示演示“长江家俱长江家俱”系统,熟悉其数据库内容系统,熟悉其数据库内容nQ:此数据库为何是这样的组织形式?此数据库为何是这样的组织形式?&数据库数据库n数据库是长期储存在计算机内、数据库是长期储存在计算机内、有组织有组织的、的、可可共享共享的大量数据的集合的大量数据的集合n整体结构化整体结构化,按一定的按一定的数据模型数据模型组织、描述和组织、描述和存储存储nQ:如何设计合适的数据模型?如何设计合适的数
2、据模型?数据库及SQL Server3第第2章章 设计数据库设计数据库v任务:任务:n设计数据库设计数据库 “长江家俱长江家俱”系统入库功能部分数据系统入库功能部分数据库库u设计概念模型设计概念模型u设计逻辑模型设计逻辑模型数据库及SQL Server4数据库设计的基本步骤数据库设计的基本步骤v数据库设计分数据库设计分6个阶段个阶段n需求分析需求分析n概念结构设计概念结构设计n逻辑结构设计逻辑结构设计n物理结构设计物理结构设计n数据库实施数据库实施n数据库运行和维护数据库运行和维护 v应把应把数据库设计数据库设计和和对数据库中数据处理的设计对数据库中数据处理的设计紧紧密结合起来密结合起来独立于
3、任何数据库管理系统独立于任何数据库管理系统与选用的与选用的DBMSDBMS密切相关密切相关数据库及SQL Server5DBMS支持的数据模型支持的数据模型概念模型概念模型认识认识抽象抽象信息世界信息世界机器世界机器世界现实世界中客观对象的抽象过程现实世界中客观对象的抽象过程现实世现实世界界现实世界现实世界 概念模型概念模型数据库设计人员完成数据库设计人员完成逻辑模型逻辑模型 物理模型物理模型由由DBMS完成完成概念模型概念模型 逻辑模型逻辑模型数据库设计人员完成数据库设计人员完成数据库设计的基本步骤数据库设计的基本步骤数据库及SQL Server6第一步:需求分析第一步:需求分析v需求分析重
4、点:需求分析重点:n信息要求信息要求n处理要求处理要求n安全性与完整性要求安全性与完整性要求v“入库管理入库管理”功能的基本需求功能的基本需求n2.3.1节节 v输出:输出:n数据流图(图数据流图(图2-1)n数据字典(表数据字典(表2-1)数据库及SQL Server7第二步:概念结构设计第二步:概念结构设计v概念结构设计概念结构设计:n将需求分析得到的用户需求抽象为将需求分析得到的用户需求抽象为概念模型概念模型的的过程就是概念结构设计过程就是概念结构设计v描述概念模型的工具描述概念模型的工具nE-R模型模型uE(Entity):实体:实体uR(Relationship):联系:联系数据库及
5、SQL Server8概念模型中的几个概念概念模型中的几个概念【p.35 知识点知识点】1.实体实体(Entity)客观存在并可相互区别的事物称为实体(如客观存在并可相互区别的事物称为实体(如学生学生)2.属性属性(Attribute)实体所具有的某一特性称为属性(如实体所具有的某一特性称为属性(如学生的学号、姓名学生的学号、姓名)3.码码(Key)、主码、候选码)、主码、候选码唯一标识实体的属性唯一标识实体的属性集合集合称为码(如称为码(如学号学号)4.实体集实体集同一类型实体的集合称为实体集(如同一类型实体的集合称为实体集(如全体学生全体学生)5.联系联系(Relationship)n实体
6、内部的联系:组成实体的各属性之间的联系实体内部的联系:组成实体的各属性之间的联系n实体之间的联系:不同实体集之间的联系实体之间的联系:不同实体集之间的联系数据库及SQL Server9概念模型表示方法概念模型表示方法vE-R模型表示方法:模型表示方法:E-R图图n实体实体:用矩形表示:用矩形表示n属性属性:椭圆:椭圆n主码主码:下划线:下划线n联系联系:菱形:菱形v由表由表2-1可得到可得到7个实体及其属性个实体及其属性图图2-2v对于简单问题,可简化产生实体及其联系的过程对于简单问题,可简化产生实体及其联系的过程联系联系实体实体实体实体m mn n属性属性属性属性属性属性数据库及SQL Se
7、rver10例:实体、属性的表示例:实体、属性的表示例例1:设一个企业职工系统的功能需求如下:设一个企业职工系统的功能需求如下:(1)能根据部门号或部门名查询该部门职工信息(职工号,)能根据部门号或部门名查询该部门职工信息(职工号,姓名,年龄,职务,工资);姓名,年龄,职务,工资);(2)能根据职工号或职工姓名查询其所在的部门信息(部)能根据职工号或职工姓名查询其所在的部门信息(部门号,名称,电话);门号,名称,电话);(3)能修改、添加、删除上述所有信息。)能修改、添加、删除上述所有信息。部门部门部门号部门号部门名部门名电话电话职工职工职工号职工号姓名姓名职务职务年龄年龄工资工资数据库及SQ
8、L Server11例:实体、属性的表示例:实体、属性的表示例例2:设一个设一个学生成绩学生成绩系统的功能需求如下:系统的功能需求如下:(1)能查询、增删改学生信息(学号,姓名,性别,出生日)能查询、增删改学生信息(学号,姓名,性别,出生日期期 等);等);(2)能查询、增删改课程信息(课程号,课程名,学分)能查询、增删改课程信息(课程号,课程名,学分););(3)能查询、增删改某学生某门课程的成绩信息。)能查询、增删改某学生某门课程的成绩信息。课程课程课程号课程号课程名课程名学分学分学生学生学号学号姓名姓名性别性别出生日期出生日期成绩成绩学号学号课程号课程号分数分数使用联系使用联系数据库及S
9、QL Server12实体之间的联系实体之间的联系【p.40 知识点知识点】v实体之间的联系有三种:实体之间的联系有三种:1.一对一联系(一对一联系(1:1)u如:班级与班长之间如:班级与班长之间u对于实体集对于实体集A中的每个实体,实体集中的每个实体,实体集B中至多有一中至多有一个实体与之联系,反之亦然,则称实体集个实体与之联系,反之亦然,则称实体集A与实与实体集体集B具有一对一联系,记为具有一对一联系,记为1:1。负责负责班级班级班长班长1 11 1数据库及SQL Server13实体之间的联系实体之间的联系2.一对多联系(一对多联系(1:n)u如:部门与职工之间如:部门与职工之间u对于实
10、体集对于实体集A中的每个实体,实体集中的每个实体,实体集B中有中有n个实个实体与之联系,反之,对于实体集体与之联系,反之,对于实体集B中的每个实体,中的每个实体,实体集实体集A中至多只有中至多只有1个实体与之联系,则称实体个实体与之联系,则称实体集集A与实体集与实体集B有一对多联系,记为有一对多联系,记为1:n。隶属隶属部门部门职工职工1 1n n数据库及SQL Server14例例1 E-R图图职工职工部门部门属于属于n1部门号部门号部门名部门名电话电话职工号职工号姓名姓名职务职务年龄年龄工资工资数据库及SQL Server15实体之间的联系实体之间的联系3.多对多联系(多对多联系(m:n)
11、u如:课程与学生之间如:课程与学生之间u对于实体集对于实体集A中的每个实体,实体集中的每个实体,实体集B中有中有n个实体个实体与之联系,反之,对于实体集与之联系,反之,对于实体集B中的每个实体,实中的每个实体,实体集体集A中有中有m个实体与之联系,则称实体集个实体与之联系,则称实体集A与实与实体集体集B具有多对多联系,记为具有多对多联系,记为m:n。学习学习学生学生课程课程m mn n数据库及SQL Server16例例2 E-R图图学生学生课程课程学习学习mn学号学号姓名姓名性别性别出生日期出生日期课程号课程号课程名课程名学分学分成绩成绩数据库及SQL Server17实体之间的联系实体之间
12、的联系v两个以上两个以上的实体型之间的联系也分为三种的实体型之间的联系也分为三种 一对多联系一对多联系 多对多联系多对多联系n三个实体型之间多对多的联系和三个实体型两两三个实体型之间多对多的联系和三个实体型两两之间的多对多联系的语义是不同的。之间的多对多联系的语义是不同的。讲授讲授课程课程教师教师1 1m m参考书参考书n n供应供应供应商供应商项目项目m mn n零件零件p p数据库及SQL Server18实体之间的联系实体之间的联系v单个单个实体型内的联系也有三种实体型内的联系也有三种 一对多联系一对多联系领导领导职工职工1 1n n数据库及SQL Server19概念结构设计的方法与步
13、骤概念结构设计的方法与步骤v对于较复杂问题:对于较复杂问题:数据库及SQL Server20E-R图设计图设计v“长江家俱长江家俱”系统入库功能部分数据库系统入库功能部分数据库设计设计n分分E-R图图u图图2-3图图2-9n集成为整体集成为整体E-R图图u图图2-10(改)(改)数据库及SQL Server21v逻辑结构设计的任务逻辑结构设计的任务n把概念结构设计阶段设计好的把概念结构设计阶段设计好的E-R图转换为图转换为选用选用DBMS产品所支持的产品所支持的逻辑数据模型逻辑数据模型v逻辑模型的基本概念逻辑模型的基本概念【p.45 知识点知识点】n数据库领域最常用的数据库领域最常用的逻辑数据
14、模型逻辑数据模型有:有:u层次模型层次模型u网状模型网状模型u关系模型关系模型u面向对象模型面向对象模型u对象关系模型对象关系模型第三步:逻辑结构设计第三步:逻辑结构设计数据库及SQL Server22关系模型关系模型v关系模型的数据结构:关系模型的数据结构:关系模型由一组关系模型由一组关系关系组成,每个关系的数据结构是一张规组成,每个关系的数据结构是一张规范化的范化的二维表二维表。2005法律法律女女18张文斌张文斌20050082005商品学商品学男男20黄大鹏黄大鹏20050062005社会学社会学女女19王小明王小明2005004年年 级级系系 名名性性 别别年年 龄龄姓姓 名名学学
15、号号学生登记表学生登记表属性属性元组元组数据库及SQL Server23关系模型的基本概念关系模型的基本概念n关系:对应一张表关系:对应一张表n元组:表中的一行为一个元组元组:表中的一行为一个元组n属性:表中一列为一个属性属性:表中一列为一个属性n分量:元组中的一个属性值分量:元组中的一个属性值n域:属性的取值范围域:属性的取值范围n候选码:可以唯一确定一个元组的属性(组)候选码:可以唯一确定一个元组的属性(组)n主码:指定用来唯一确定一个元组的候选码主码:指定用来唯一确定一个元组的候选码n主属性:候选码中的属性主属性:候选码中的属性n关系模式:对关系的描述,一般表示为关系模式:对关系的描述,
16、一般表示为关系名(属性关系名(属性1,属性,属性2,属性,属性n)数据库及SQL Server24v将将E-R图转换为关系模型:图转换为关系模型:n将实体、实体之间的联系转换为关系模式。将实体、实体之间的联系转换为关系模式。v转换原则转换原则n实体型实体型一个关系模式一个关系模式n实体属性实体属性关系的属性关系的属性n实体的码实体的码关系的码关系的码n实体型间的联系:分不同情况实体型间的联系:分不同情况E-R图向关系模型的转换图向关系模型的转换数据库及SQL Server25实体型间的联系有以下不同情况实体型间的联系有以下不同情况:(1)一个一个1:1联系联系n与某一端实体对应的关系模式合并与
17、某一端实体对应的关系模式合并 在该关系模式的属性中加入另一个关系模在该关系模式的属性中加入另一个关系模式的码和联系本身的属性式的码和联系本身的属性n*转换为一个独立的关系模式转换为一个独立的关系模式 与该联系相连的各实体的码以及联系本身与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码的属性均转换为关系的属性,每个实体的码均为该关系的候选码均为该关系的候选码E-R图向关系模型的转换图向关系模型的转换数据库及SQL Server26(2)一个一个1:n联系联系n与与n端对应的关系模式合并端对应的关系模式合并n例例1:职工(职工(职工号职工号,姓名,年龄,职务,姓名,年龄,
18、职务,工资,工资,部门号部门号)部门(部门(部门号部门号,部门名,电话),部门名,电话)n*转换为一个独立的关系模式转换为一个独立的关系模式关系的码为关系的码为n端实体的码端实体的码E-R图向关系模型的转换图向关系模型的转换职工职工部门部门属于属于n1部门号部门号部门名部门名电话电话职工号职工号姓名姓名职务职务年龄年龄工资工资数据库及SQL Server27(3)一个一个m:n联系联系n转换为一个关系模式转换为一个关系模式各实体的码各实体的码组成组成关系的码关系的码或关系码的一部分或关系码的一部分例例2:学生(学生(学号学号,姓名,性别,出,姓名,性别,出生日期)生日期)课程(课程(课程号课程
19、号,课程名,学分),课程名,学分)学习(学习(学号,课程号学号,课程号,成绩),成绩)E-R图向关系模型的转换图向关系模型的转换学生学生课程课程学习学习mn学号学号姓名姓名性别性别出生日期出生日期课程号课程号课程名课程名学分学分成绩成绩数据库及SQL Server28(4)三个或三个以上实体间的一个三个或三个以上实体间的一个多元联系多元联系n转换为一个关系模式转换为一个关系模式各实体的码各实体的码组成组成关系的码或关系码的一部分关系的码或关系码的一部分例:例:“讲授讲授”联系是一个三元联系,可以将它联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、职工号和转换为如下关系模式,其中课程
20、号、职工号和书号为关系的组合码:书号为关系的组合码:讲授(讲授(课程号,职工号,书号课程号,职工号,书号)E-R图向关系模型的转换图向关系模型的转换数据库及SQL Server29(5)具有具有相同码相同码的关系模式可合并的关系模式可合并n目的:减少系统中的关系个数目的:减少系统中的关系个数n合并方法:将其中一个关系模式的全部属性加合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性(可能同名也可能不同名),并适当调整属性的次序属性的次序E-R图向关系模型的转换图向关系模型的转换数据
21、库及SQL Server30关系模型设计关系模型设计v“长江家俱长江家俱”系统入库功能部分数据库系统入库功能部分数据库设计设计n2.5.1 第一种转换模式第一种转换模式 p.4243 各关系模式各关系模式数据库及SQL Server31作业作业1.设计一个图书管理系统数据库,设计一个图书管理系统数据库,要求画出要求画出E-R图,写出关图,写出关系模型,主码下加下划线系模型,主码下加下划线。涉及如下数据:。涉及如下数据:对每个借阅者都保持读者记录,包括:读者号、姓名、对每个借阅者都保持读者记录,包括:读者号、姓名、地址、性别、年龄、单位;地址、性别、年龄、单位;每本书有书号、书名、作者、出版社;
22、每本书有书号、书名、作者、出版社;还有借书记录:某读者在某天借出了某本书,又在哪天还有借书记录:某读者在某天借出了某本书,又在哪天归还。归还。2.设计一个商店销售商品系统的数据库,要求同上题,涉及设计一个商店销售商品系统的数据库,要求同上题,涉及如下数据:如下数据:每个商店有商店号、商店名、地址;每个商店有商店号、商店名、地址;每种商品有商品号、商品名、单价;每种商品有商品号、商品名、单价;还有销售记录:某商店在某天销售了多少数量的某种商还有销售记录:某商店在某天销售了多少数量的某种商品。品。数据库及SQL Server32 下课了。下课了。追求追求休息一会儿。休息一会儿。数据库及SQL Se
23、rver33上次课回顾上次课回顾&设计数据库设计数据库n需求分析需求分析n概念结构设计概念结构设计n逻辑结构设计逻辑结构设计n物理结构设计物理结构设计n数据库实施数据库实施n数据库运行和维护数据库运行和维护 信息需求信息需求+处理需求处理需求输出:数据流图、数据字典输出:数据流图、数据字典将用户需求抽象为将用户需求抽象为概念模型概念模型输出:输出:E-R图图将将E-R图转换为选用图转换为选用DBMS支持支持的的逻辑数据模型逻辑数据模型(关系模型关系模型)输出:输出:多个关系模式多个关系模式规范化规范化数据库及SQL Server34规范化关系模型规范化关系模型v教材章节:教材章节:第第2.6节
24、节v任务:任务:n在数据库的逻辑结构设计环节,对设计好的在数据库的逻辑结构设计环节,对设计好的初步关系模型进行规范化初步关系模型进行规范化数据库及SQL Server35规范化关系模型规范化关系模型v得到初步关系模型后,还应该适当地修改、调整得到初步关系模型后,还应该适当地修改、调整关系模型的结构,从而消除数据存储的异常现象,关系模型的结构,从而消除数据存储的异常现象,减少数据冗余,保证数据的正确性、一致性,进减少数据冗余,保证数据的正确性、一致性,进一步提高数据库应用系统的性能,这就是一步提高数据库应用系统的性能,这就是关系模关系模型的规范化型的规范化数据库及SQL Server36v规范化
25、关系模型的方法:规范化关系模型的方法:1.确定确定数据依赖数据依赖 写出每个关系模式内部各属性之间的数据依赖写出每个关系模式内部各属性之间的数据依赖2.确定所属确定所属范式范式 对关系模式逐一进行分析,考查是否存在对关系模式逐一进行分析,考查是否存在部分部分函数依赖函数依赖、传递函数依赖传递函数依赖等,确定各关系模式分别等,确定各关系模式分别属于第几范式属于第几范式3.分析对于应用环境这些模式是否合适,确定是否要分析对于应用环境这些模式是否合适,确定是否要合并或合并或分解关系模式分解关系模式。规范化关系模型规范化关系模型数据库及SQL Server37v数据依赖数据依赖n一个关系内部属性与属性
26、之间的约束关系一个关系内部属性与属性之间的约束关系n现实世界属性间相互联系的抽象,语义的体现现实世界属性间相互联系的抽象,语义的体现v数据依赖的类型数据依赖的类型n函数依赖函数依赖 函数函数y=f(x)姓名姓名=f(学号学号),记作记作 学号学号姓名姓名(学号(学号函数确定函数确定姓名姓名,姓名姓名函数依赖于函数依赖于学号学号)n其他其他数据依赖数据依赖数据库及SQL Server38v完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖例例 建立一个描述学校教务的数据库,包括:学生的学号建立一个描述学校教务的数据库,包括:学生的学号(Sno)、所在系()、所在系(Sdept)、系主任姓名()
27、、系主任姓名(Mname)、)、课程号(课程号(Cno)、成绩()、成绩(Grade),),设使用单一的关系模式设使用单一的关系模式:Student(Sno,Sdept,Mname,Cno,Grade)v(Sno,Cno)Grade是(完全)函数依赖,是(完全)函数依赖,(Sno,Cno)Sdept是(部分)函数依赖是(部分)函数依赖 因为因为Sno Sdept成立,且成立,且Sno是(是(Sno,Cno)的真子集)的真子集函数依赖函数依赖数据库及SQL Server39v传递函数依赖传递函数依赖例例 在关系在关系Student(Sno,Sdept,Mname)中,有:中,有:Sno Sdep
28、t,Sdept Mname 所以所以Mname传递函数依赖于传递函数依赖于Sno函数依赖函数依赖数据库及SQL Server40范式范式v关系数据库中的关系必须满足一定的要求,满足关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。不同程度要求的为不同范式。v范式是符合某一种级别的关系模式的集合范式是符合某一种级别的关系模式的集合v各种范式之间存在联系:各种范式之间存在联系:v一个低一级范式的关系模式,通过一个低一级范式的关系模式,通过模式分解模式分解可以可以转换为若干个高一级范式的关系模式的集合,这转换为若干个高一级范式的关系模式的集合,这种过程就叫种过程就叫规范化规范化NF
29、5NF4BCNFNF3NF2NF1数据库及SQL Server41v关系最基本的规范条件:关系最基本的规范条件:关系的每一个属性必须是关系的每一个属性必须是一个不可分的数据项一个不可分的数据项,不允许表中还有表不允许表中还有表 n下图中下图中工资工资和和扣除扣除是可分的数据项是可分的数据项 ,不符合关系模型要求不符合关系模型要求v第一范式是对关系模式的最起码的要求第一范式是对关系模式的最起码的要求职工号职工号姓名姓名职职 称称工工 资资扣扣 除除实实 发发基基 本本津津 贴贴职务职务房房 租租水水 电电86051陈陈 平平讲讲 师师13051200501601122283I I范式(第一范式,
30、范式(第一范式,1NF)数据库及SQL Server42v满足第一范式的关系模式并不一定是一个好的关系满足第一范式的关系模式并不一定是一个好的关系模式模式 如:如:Student(Sno,Sdept,Mname,Cno,Grade)n数据冗余数据冗余n插入、修改、删除异常插入、修改、删除异常v2NF的定义的定义 若若R1NF,且,且每一个每一个非主属性非主属性 完全完全函数依赖于函数依赖于码码,则,则R2NF。IIII范式(第二范式,范式(第二范式,2NF)数据库及SQL Server43例例 关系模式关系模式 S-L-C(Sno,Sdept,Sloc,Cno,Grade)Sloc为学生住处,
31、设每个系的学生住在同一个地方为学生住处,设每个系的学生住在同一个地方v码:码:(Sno,Cno)非主属性:非主属性:Sdept,Sloc,Gradev函数依赖包括:函数依赖包括:(Sno,Cno)F Grade Sno Sdept (Sno,Cno)P Sdept Sno Sloc (Sno,Cno)P Sloc Sdept Sloc2NF结论:结论:S-L-C2NF 数据库及SQL Server44SnoCnoGradeSdeptSlocS-L-C函数依赖图:函数依赖图:2NF数据库及SQL Server45vS-L-C不是一个好的关系模式:不是一个好的关系模式:(1)插入异常插入异常 (2
32、)删除异常删除异常 (3)数据冗余度大数据冗余度大 (4)修改复杂修改复杂v原因原因 Sdept、Sloc部分函数依赖于码。部分函数依赖于码。v解决方法解决方法 S-L-C分解为两个关系模式,以消除这些部分函数依赖分解为两个关系模式,以消除这些部分函数依赖 SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)2NF数据库及SQL Server46函数依赖图:函数依赖图:SnoCnoGradeSCS-LSnoSdeptSlocv关系模式关系模式SC的码为(的码为(Sno,Cno)v关系模式关系模式S-L的码为的码为Snov这样非主属性对码都是完全函数依赖这样非主属性对码都是完
33、全函数依赖 2NF数据库及SQL Server47 IIIIII范式(第三范式,范式(第三范式,3NF)v将一个将一个1NF关系分解为多个关系分解为多个2NF的关系,并不能的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。完全消除关系模式中的各种异常情况和数据冗余。v3NF的定义的定义n若关系若关系R中中每一个每一个非主属性非主属性既不部分依赖于码既不部分依赖于码也不也不传递传递依赖于依赖于码码,则,则R3NF数据库及SQL Server48例例 2NF关系模式关系模式S-L(Sno,Sdept,Sloc)中函数依中函数依赖:赖:SnoSdept,SdeptSloc 可得:可得:Sno
34、 Sloc,即,即S-L中存在非主属性中存在非主属性对码的传递函数依对码的传递函数依 赖,赖,S-L 3NF 函数依赖图:函数依赖图:传递传递3NFS-LSnoSdeptSloc数据库及SQL Server49v解决方法解决方法 采用投影分解法,把采用投影分解法,把S-L分解为两个关系模式,分解为两个关系模式,以消除传递函数依赖:以消除传递函数依赖:S-D(Sno,Sdept)D-L(Sdept,Sloc)3NFSnoSdeptS-DSdeptSlocD-L 3NF 3NF数据库及SQL Server50v 将一个将一个2NF关系分解为多个关系分解为多个3NF的关系后,并不的关系后,并不一定能
35、完全消除关系模式中的各种异常情况和数一定能完全消除关系模式中的各种异常情况和数据冗余。据冗余。v并不是规范化程度越高的关系就越优,一般说来,并不是规范化程度越高的关系就越优,一般说来,第三范式就足够了。第三范式就足够了。对于一个具体应用,需要权衡响应时间和潜对于一个具体应用,需要权衡响应时间和潜在问题两者的利弊决定。在问题两者的利弊决定。3NF数据库及SQL Server51例例 在关系模式在关系模式 学生成绩单学生成绩单(学号学号,英语英语,数学数学,语文语文,平均成绩平均成绩)中存在下列函数依赖:中存在下列函数依赖:学号学号英语英语 学号学号数学数学 学号学号语文语文 学号学号平均成绩平均
36、成绩 (英语英语,数学数学,语文语文)平均成绩平均成绩数据模型的优化数据模型的优化数据库及SQL Server52 显然有:显然有:学号学号(英语英语,数学数学,语文语文)因此该关系模式中存在传递函数信赖,是因此该关系模式中存在传递函数信赖,是2NF关系关系 虽然平均成绩可以由其他属性推算出来,虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,但如果应用中需要经常查询学生的平均成绩,为提高效率,仍然可保留该冗余数据,对关系为提高效率,仍然可保留该冗余数据,对关系模式不再做进一步分解模式不再做进一步分解数据模型的优化数据模型的优化数据库及SQL Server53上次作业
37、讲评上次作业讲评1.设计一个图书管理系设计一个图书管理系统数据库,涉及如下统数据库,涉及如下数据:数据:对每个借阅者都保持对每个借阅者都保持读者记录,包括:读读者记录,包括:读者号、姓名、地址、者号、姓名、地址、性别、年龄、单位;性别、年龄、单位;每本书有书号、书名、每本书有书号、书名、作者、出版社;作者、出版社;还有借书记录:某读还有借书记录:某读者在某天借出了某本者在某天借出了某本书,又在哪天归还。书,又在哪天归还。E-R图为:图为:读者读者图书图书借阅借阅mn读者号读者号姓名姓名地址地址性别性别年龄年龄单位单位借出日期借出日期书号书号书名书名作者作者出版社出版社归还日期归还日期关系模型为
38、:关系模型为:读者(读者(读者号读者号,姓名,地址,性别,姓名,地址,性别,年龄,单位)年龄,单位)图书(图书(书号书号,书名,作者,出版社),书名,作者,出版社)借阅(借阅(读者号,书号读者号,书号,借出日期,归还日期),借出日期,归还日期)数据库及SQL Server54上次作业讲评上次作业讲评2.设计一个商店销售商设计一个商店销售商品系统的数据库,要品系统的数据库,要求同上题,涉及如下求同上题,涉及如下数据:数据:每个商店有商店号、每个商店有商店号、商店名、地址;商店名、地址;每种商品有商品号、每种商品有商品号、商品名、单价;商品名、单价;还有销售记录:某还有销售记录:某商店在某天销售了多商店在某天销售了多少数量的某种商品。少数量的某种商品。E-R图为:图为:商店商店商品商品销售销售mn商店号商店号商店名商店名地址地址日期日期商品号商品号商品名商品名单价单价数量数量关系模型为:关系模型为:商店(商店(商店号商店号,商店名,地址),商店名,地址)商品(商品(商品号商品号,商品名,单价),商品名,单价)销售(销售(商店号,商品号,日期商店号,商品号,日期,数量),数量)