逻辑模型设计.ppt_第1页
逻辑模型设计.ppt_第2页
逻辑模型设计.ppt_第3页
逻辑模型设计.ppt_第4页
逻辑模型设计.ppt_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

1、1,项目3 逻辑模型设计,数据库设计的步骤: 1. 需求分析 2. 概念结构设计 3. 逻辑结构设计 4. 数据库的物理设计 5. 数据库实施 6. 数据库运行与维护,2,数据库三级模式结构,各种人员的数据视图,不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如下图所示,3,项目3 逻辑模型设计,学习目标: 1.了解关系模型的基本概念; 2. 理解关系数据库的概念; 3. 掌握函数依赖、范式的定义; 4. 理解关系模式规范化的意义; 5. 熟练掌握模式分解的方法; 6. 熟练掌握E-R图向关系数据模型转换的规则和方法。,4,项目3 逻辑模型设计,任务1 逻辑模型基础知识 任务2 关系数据

2、库理论 任务3 概念模型向关系模型的转换 任务4 数据库逻辑结构设计 实训4 逻辑模型设计,5,任务1 逻辑模型基础知识,1.1 关系模型概述 1.2 关系数据库的基本概念,6,任务1 逻辑模型基础知识,E-R图表示的概念模型是用户数据要求的形式化。E-R图独立于任何一种数据模型,它也不为任何一个DBMS所支持。逻辑结构设计的任务就是把概念模型结构转换成某个具体的DBMS所支持的数据模型,并将其性能进行优化。,7,任务1 逻辑模型基础知识,不同的数据模型具有不同的数据结构形式。数据库系统中最常使用的数据模型是层次模型、网状模型和关系模型。 非关系模型 层次模型(Hierarchical Mod

3、el) 网状模型(Network Model ),8,任务1 逻辑模型基础知识,关系模型(Relational Model) 数据结构:表 面向对象模型(Object Oriented Model) 数据结构:对象,9,1.1 关系模型,最重要的一种数据模型。也是目前主要采用的数据模型,关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库系统大都是关系数据库系统。 1970年由美国IBM公司San Jose研究室的研究员E.F.Codd提出 本课程的重点,10,一、关系数据模型的数据结构,在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。,学生登记表,属性,元组,1

4、1,(1) 关系模型的基本概念,关系(Relation) 一个关系对应通常说的一张表。 元组(Tuple) 表中的一行即为一个元组。存放的是客观世界的一个实体,如表Student关系中的一行,存放的是一个学生的数据 。 属性(Attribute) 表中的一列即为一个属性,给每一个属性起一个名称即属性名。,12,(1) 关系模型的基本概念,主码(Key) 表中的某个属性组,它可以唯一确定一个元组。 域(Domain) 属性的取值范围。 分量(Element) 元组中的一个属性值。 关系模式(Relation mode) 对关系的描述 关系名(属性1,属性2,属性n) 学生(学号,姓名,年龄,性别

5、,系,年级),13,(1) 关系模型的基本概念,表1.2 术语对比,14,关系的等价术语之间的对应关系,(1) 关系模型的基本概念,15,(2) 关系模型中的数据全部用关系表示,在关系模型中,实体集以及实体间的联系都是用关系来表示。 例如,关系模型中,学生、课程、学生与课程之间的联系表示为: 学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课); 选修(学号,课程号,成绩)。,16,2.关系操作和关系的完整性约束条件,数据操作由查询、插入、删除、更新 数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。 存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明

6、“怎么干”。,17,2.关系操作和关系的完整性约束条件,关系模型的完整性约束 实体完整性 参照完整性 用户定义的完整性,18,3.关系模型的存储结构,关系数据模型的存储结构 表以文件形式存储 有的DBMS一个表对应一个操作系统文件 有的DBMS自己设计文件结构,19,4.关系模型的优缺点,优点 建立在严格的数学概念的基础上; 概念单一;数据结构简单、清晰,用户易懂易用; 实体和各类联系都用关系来表示。 对数据的检索结果也是关系。 关系模型的存取路径对用户透明 具有更高的数据独立性,更好的安全保密性 简化了程序员的工作和数据库开发建立的工作,20,4.关系模型的优缺点,缺点 存取路径对用户透明导

7、致查询效率往往不如非 关系数据模型 为提高性能,必须对用户的查询请求进行优化 增加了开发数据库管理系统的难度,21,5. 典型的关系数据库系统,ORACLE SYBASE INFORMIX DB/2 COBASE PBASE EasyBase DM/2 OpenBase,22,信息的三种世界术语的对应关系表,23,1.2 关系数据库的基本概念,1.关系数据结构 2.关系操作概述 3.关系的完整性,24,1.关系数据结构,在关系模型中,无论是实体集,还是实体集之间的联系均由单一的关系表示。由于关系模型是建立在集合代数基础上的,因而一般从集合论角度对关系数据结构进行定义。,25,(1)域(Doma

8、in),域是一组具有相同数据类型的值的集合。 例 整数 实数 介于某个取值范围的整数 长度指定长度的字符串集合 男,女 介于某个取值范围的日期,26,(2) 笛卡尔积(Cartesian Product),1) 笛卡尔积 给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为: D1D2Dn(d1,d2,dn)diDi,i1,2,n 所有域的所有取值的一个组合 不能重复,27,(2) 笛卡尔积(Cartesian Product),例2-1 给出三个域: D1=SUPERVISOR = 张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业 D3=POSTGRA

9、DUATE=李勇,刘晨,王敏 则D1,D2,D3的笛卡尔积为: D1D2D3 (张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) ,28,(2) 笛卡尔积(Cartesian Product),2) 元组(Tuple) 笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组。

10、例 3) 分量(Component) 笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量。,29,(2) 笛卡尔积(Cartesian Product),4) 基数(Cardinal number) 若Di(i1,2,n)为有限集,其基数为mi(i1,2,n),则D1D2Dn的基数M为: 在上例中,基数:22312,即D1D2D3共有22312个元组,30,(2) 笛卡尔积(Cartesian Product),5)笛卡尔积的表示方法 笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。 在上例中,12个元组可列成一张二维表,31,32,(3) 关系(Relat

11、ion),1) 关系 D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为 R(D1,D2,Dn) R:关系名 n:关系的目或度(Degree),33,(3) 关系(Relation),注意 关系是笛卡尔积的有限子集。无限关系在数据库系统中是无意义的。 由于笛卡尔积不满足交换律,即 (d1,d2,dn )(d2,d1,dn ) 但关系满足交换律,即 (d1,d2 ,di ,dj ,dn)=(d1,d2 ,dj,di ,dn) (i,j = 1,2,n) 解决方法:为关系的每个列附加一个属性名以取消关系元组的有序性,34,(3) 关系(Relation),例如在表2.1 的笛卡尔积中取出有

12、实际意义的元组 来构造关系 关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE) 关系名,属性名 假设:导师与专业:1:1(即一个导师只能对一个专业),导师与研究生:1:n(一个研究生只能遵从一个导师) 于是:SAP关系可以包含三个元组 (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (刘逸,信息专业,王敏) ,35,(3) 关系(Relation),2) 元组 关系中的每个元素是关系中的元组, 通常用t表示。 3) 单元关系与二元关系 当n=1时,称该关系为单元关系(Unary relation)。 当n=2时,称该关系为二元关系(Binary r

13、elation)。,36,(3) 关系(Relation),4) 关系的表示 关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。,37,(3) 关系(Relation),5) 属性 关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 n目关系必有n个属性。,38,(3) 关系(Relation),6) 码 候选码(Candidate key) 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码,在有多个后选码时可以选一个作为主码。 在最简单的情况下,候选码只包含一个属性。 在最极端的情况下,关系模式的所有属性组 是这个

14、关系模式的候选码,称为全码(All-key),39,(3) 关系(Relation),码(续) 主码 若一个关系有多个候选码,则选定其中一个 为主码(Primary key) 主码的诸属性称为主属性(Prime attribute)。 不包含在任何侯选码中的属性称为非主属性 (Non-key attribute),40,(3) 关系(Relation),7) 三类关系(或称三类表) 基本关系(基本表或基表) 实际存在的表,是实际存储数据的逻辑表示 查询表 查询结果对应的表 视图表 由基本表或其他视图表导出的表,是虚表,不对 应实际存储的数据,41,(4)数据库中基本关系的性质, 列是同质的(H

15、omogeneous) 每一列中的分量是同一类型的数据,来自同 一个域 不同的列可出自同一个域 其中的每一列称为一个属性 不同的属性要给予不同的属性名,42,(4)数据库中基本关系的性质, 列的顺序无所谓 列的次序可以任意交换 遵循这一性质的数据库产品(如ORACLE), 增加新属性时,永远是插至最后一列 但也有许多关系数据库产品没有遵循这一 性质,例如FoxPro仍然区分了属性顺序,43,(4)数据库中基本关系的性质, 任意两个元组不能完全相同 由笛卡尔积的性质决定 但许多关系数据库产品没有遵循这一性质。 例如: Oracle,FoxPro等都允许关系表中存在两个完全相同 的元组,除非用户特

16、别定义了相应的约束条件。,44,(4)数据库中基本关系的性质, 行的顺序无所谓 行的次序可以任意交换 遵循这一性质的数据库产品(如ORACLE), 插入一个元组时永远插至最后一行 但也有许多关系数据库产品没有遵循这一性 质,例如FoxPro仍然区分了元组的顺序,45,(4)数据库中基本关系的性质, 分量必须取原子值 每一个分量都必须是不可分的数据项。 这是规范条件中最基本的一条,46,(5)关系模式(Relation Schema)的定义,关系的描述称为关系模式。关系模式可以形式化地表示为: R(U,D,Dom,F) 其中:R为关系名,它是关系的形式化表示;U为组成该关系的属性集合;D为属性组

17、U中属性所来自的域;Dom为属性向域的映像的集合;F为属性间数据的依赖关系集合。 关系模式是关系的形式化描述。,47,(5)关系模式(Relation Schema)的定义,关系模式通常可以简单记为: R(U)或 R(A1,A2,An). 其中:R为关系名,A1,A2,An为属性名,域名及属性向域的映像常常直接说明为属性的类型、长度。,48,(5)关系模式(Relation Schema)的定义,关系模式是关系的框架或结构。关系是按关系模式组织的表格,关系既包括结构也包括其数据(关系的数据是元组,也称为关系的内容)。一般讲,关系模式是静态的,关系数据库一旦定义后其结构不能随意改动;而关系的数据

18、是动态的,关系内容的更新属于正常的数据操作,随时间的变化,关系数据库中的数据需要不断增加、修改或删除。,49,(5)关系模式(Relation Schema)的定义,关系模式即是一个表的表头描述。 表头也称为关系的结构、关系的型等。 除表头一行以外的所有行的集合(即表内容), 称为关系的值。 一个关系(表),由表头和表内容两部分组成,表头是相对不变的,而表内容是经常改变的。如Student表中,当有新学生入学时,就增加若干行,当学生毕业时,就要删除若干行,所以表是动态的。,50,(6)关系数据库(Relation database),关系数据库是相互关联的表或者说关系的集合。 因为一个表存放的

19、是某一应用领域的一个实体或实体间的联系,如Student表存放的是学生这个实体(集),Course表存放的是课程这个实体(集),SC表存放的学生实体与课程实体之间的联系,这里为选课联系。因此关系数据库中存放的是某一应用领域中的所有实体和实体之间的联系。 一个关系用一个关系模式表示,所有关系模式集合构成数据库的模式,它是数据库整体逻辑结构的描述。,51,2.关系操作概述,关系模型与其他数据模型相比,最具有特色的是关系数据操作语言。关系操作语言灵活方便,表达能力和功能都非常强大。,52,(1)关系操作的基本内容,关系操作包括数据查询、数据维护和数据控制三大功能。数据查询指数据检索、统计、排序、分组

20、以及用户对信息的需求等功能;数据维护指数据增加、删除、修改等数据自身更新的功能;数据控制是为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。,53,(1)关系操作的基本内容,关系操作的数据查询和数据维护功能使用关系代数中的选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)和广义笛卡儿积(Extended Cartesian Product)8种操作表示,其中前4种为专门的关系运算,而后4种为传统的集合运算。,54,(2)关系操作的特点,关系操作具有以下3个明显的特点。

21、1) 关系操作语言操作一体化 关系语言具有数据定义、查询、更新和控制一体化的特点。 2) 关系操作的方式是一次一集合方式 其他系统的操作是一次一记录(record-at-a-time)方式,而关系操作的方式则是一次一集合(set-at-a-time)方式,即关系操作的初始数据、中间数据和结果数据都是集合。 3) 关系操作语言是高度非过程化的语言 关系操作语言具有强大的表达能力。,55,(3)关系操作的种类,关系操作语言可以分为以下3类。 1) 关系代数语言 关系代数语言是用对关系的运算来表达查询要求的语言。ISBL(Information System Base Language)为关系代数语

22、言的代表。 2) 关系演算语言 关系演算语言是用查询得到的元组应满足的谓词条件来表达查询要求的语言。 3) 基于映像的语言 基于映像的语言是具有关系代数和关系演算双重特点的语言。SQL(Structure Query Language)是基于映像的语言。SQL包括数据定义、数据操作和数据控制三种功能,具有语言简洁,易学易用的特点,它是关系数据库的标准语言和主流语言。,56,3. 关系的完整性,关系模型的完整性规则是对关系的某种约束条件。关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。,5

23、7,(1) 实体完整性 (Entity Integrity),关系的实体完整性规则为:若属性A是基本关系R的主属性,则属性A的值不能为空值。 实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码不能取空值。,58,(1) 实体完整性(Entity Integrity),对于实体完整性规则,说明如下: 1) 实体完整性能够保证实体的惟一性 2) 实体完整性能够保证实体的可区分性,59,(2)参照完整性(Reference Integrity),参照完整性又称为引用完整性,是保证参照表与被参照表中数据的一致性。 实体完整性是一个关系内的约束,而参照完整性则是在不同关系之间或同一关系的不

24、同元组之间的约束。,60,1) 关系间的引用,在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。 例 学生实体、专业实体以及专业与学生 间的一对多联系 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名),61,学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名),62,1)关系间的引用(续),例2 学生、课程、学生与课程之间的多对多联系 学生(学号,姓名,性别,专业号,年龄 课程(课程号,课程名,学分) 选修(学号,课程号,成绩),63,学生,学生选课,课程,64,1)关系间的引用(续),例3 学生实体及其内部的领导联系(一对多) 学生(学

25、号,姓名,性别,专业号,年龄,班长),65,2)外码(Foreign Key),设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码 基本关系R称为参照关系(Referencing Relation) 基本关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation)。,66,2)外码(Foreign Key),说明 关系R和S不一定是不同的关系。 目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上。 外码并不一定要与相应的主码同名; 当外码与相应的主码属于不同关系时,往

26、往取相同的名字,以便于识别。,67,3) 参照完整性规则,若属性(或属性组)F是基本关系R的外码 它与基本关系S的主码Ks相对应(基本关 系R和S不一定是不同的关系),则对 于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值。,68,3) 参照完整性规则,学生关系中每个元组的“专业号”属性只 取下面两类值: (1)空值,表示尚未给该学生分配专业 (2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中,69,3) 参照完整性规则,选修(学号,课程号,成绩) “学号”和“课程号”是选修关系中的主属性

27、按照实体完整性和参照完整性规则,它们 只能取相应被参照关系中已经存在的主码 值,70,3) 参照完整性规则,学生(学号,姓名,性别,专业号,年龄,班长) “班长”属性值可以取两类值: (1)空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长; (2)非空值,这时该值必须是本关系中某个元组的学号值,71,3. 用户定义的完整性(User-Defined Integrity),任何关系数据库系统都应当具备实体完整性和参照完整性。另外,由于不同的关系数据库系统有着不同的应用环境,所以它们要有不同的约束条件 。 用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必

28、须满足的语义要求。,72,3. 用户定义的完整性(User-Defined Integrity),关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。 例如,学生考试的成绩必须在0100之间,在职职工的年龄不能大于60岁等,都是针对具体关系提出的完整性条件。,73,3. 用户定义的完整性(续),例: 课程(课程号,课程名,学分) “课程名”属性必须取唯一值 非主属性“课程名”也不能取空值 “学分”属性只能取值1,2,3,4,74,1. 数据库管理员(DBA),决定数据库中的信息内容和结构 决定数据库的存储结构和存取策略 定义数据的安全性要求和

29、完整性约束条件,75,数据库管理员(续),监控数据库的使用和运行 周期性转储数据库 数据文件 日志文件 系统故障恢复 介质故障恢复 监视审计文件,76,数据库管理员(续),数据库的改进和重组 性能监控和调优 数据重组 数据库重构,77,2. 系统分析员,负责应用系统的需求分析和规范说明 与用户及DBA协商,确定系统的硬软件配置 参与数据库系统的概要设计,78,3. 数据库设计人员,参加用户需求调查和系统分析 确定数据库中的数据 设计数据库各级模式,79,4. 应用程序员,设计和编写应用系统的程序模块 进行调试和安装,80,5. 用户,偶然用户 企业或组织机构的高中级管理人员 简单用户 银行的职

30、员、机票预定人员、旅馆总台服务员,81,用户(续),复杂用户 工程师、科学家、经济学家、科技工作者等 直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API编制自己的应用程序,82,习题课: 概念模型的应用,例题一 设物资管理数据库中有两个实体集。一是“仓库”实体,具有仓库号、地址、电话等属性;另一个是“零件”实体集,具有零件号、零件名称、规格、单价等属性。 如果规定:一个零件可以存放在多个仓库中,一个仓库中可以存放多种零件。存放在仓库中的零件具有属性日期和库存量。 要求:画出E/R图。,83,习题课: 概念模型的应用,例题二 设某商业集团数据库中有三个实体集。一是“商店”实体,具有

31、编号、商店名、地址、电话等属性;二个是“商品”实体集,具有商品号、商品名、规格、单价等,三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。 商店与商品之间存在“销售”联系,每个商店可以销售多种商品,每种商品可以在多个商店销售,每个商店销售一种商品有月销售量;商店与职工之间存在“聘用”联系,每个商店可以有多名职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。 要求:画出E/R图。,84,习题课: 概念模型的应用,例题三 设有一个图书管理数据库,此数据库中对每个借阅者保存记录,包括:读者号,姓名,性别,地址,年龄,单位。对每本书存有:书号,书名,出版社。对每本被借出的书存有借出日期

32、和应还日期。 要求:画出E/R图。,85,习题课: 概念模型的应用,例题四 设有一家百货商店,已知信息有: (1)每个职工的数据:职工号,姓名,地址和它所在的商品部; (2)每一个商品部的信息有:编号,店名,经理和它经销的商品; (3)每种经销的商品有:商品名,生产厂家,价格,型号和内部商品代号; (4)关于每个生产厂家的数据有:厂名,地址,向商店提供的商品价格和数量。 请设计百货商店的概念模型。注意某些信息可用属性表示,其他信息可用联系表示,86,习题课: 概念模型的应用,例题五 学校中有若干个系,每个系有若干个班级和教研室,每个教研室有若干教师,其中一些教授和副教授每人各带若干研究生。每个

33、班级有若干学生,每个学生选修若干课程,每门课程有若干学生选修。 要求:用E/R图画出此学校的概念模型。,87,习题课: 概念模型的应用,例题六 假如要为某基层单位建立一个“基层单位”数据库。通过调查得出,用户要求数据库中存储下列基本信息。 部门:部门号,名称,领导人编号; 职工:职工号,姓名,性别,工资,职称,照片,简历; 工程:工程号,工程名,参加人数,预算,负责人; 办公室:地点,编号,电话。 这些信息的关联的语义为: 每个部门有多个职工,每个职工只能在一个部门工作; 每个部门只有一个领导人,领导人不能兼职; 每个部门可以同时承担若干工程项目,数据库中应记录每个职工参加项目的日期; 一个部门可有多个办公室; 每个办公室只有一部电话; 数据库中还应存放每个职工在所参加的工程项目中承担的

温馨提示

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

评论

0/150

提交评论