




已阅读5页,还剩89页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目3逻辑模型设计 数据库设计的步骤 1 需求分析2 概念结构设计3 逻辑结构设计4 数据库的物理设计5 数据库实施6 数据库运行与维护 数据库三级模式结构 各种人员的数据视图 不同的人员涉及不同的数据抽象级别 具有不同的数据视图 如下图所示 项目3逻辑模型设计 学习目标 1 了解关系模型的基本概念 2 理解关系数据库的概念 3 掌握函数依赖 范式的定义 4 理解关系模式规范化的意义 5 熟练掌握模式分解的方法 6 熟练掌握E R图向关系数据模型转换的规则和方法 项目3逻辑模型设计 任务1逻辑模型基础知识任务2关系数据库理论任务3概念模型向关系模型的转换任务4数据库逻辑结构设计实训4逻辑模型设计 任务1逻辑模型基础知识 1 1关系模型概述1 2关系数据库的基本概念 任务1逻辑模型基础知识 E R图表示的概念模型是用户数据要求的形式化 E R图独立于任何一种数据模型 它也不为任何一个DBMS所支持 逻辑结构设计的任务就是把概念模型结构转换成某个具体的DBMS所支持的数据模型 并将其性能进行优化 任务1逻辑模型基础知识 不同的数据模型具有不同的数据结构形式 数据库系统中最常使用的数据模型是层次模型 网状模型和关系模型 非关系模型层次模型 HierarchicalModel 网状模型 NetworkModel 任务1逻辑模型基础知识 关系模型 RelationalModel 数据结构 表面向对象模型 ObjectOrientedModel 数据结构 对象 1 1关系模型 最重要的一种数据模型 也是目前主要采用的数据模型 关系数据库系统采用关系模型作为数据的组织方式 现在流行的数据库系统大都是关系数据库系统 1970年由美国IBM公司SanJose研究室的研究员E F Codd提出本课程的重点 一 关系数据模型的数据结构 在用户观点下 关系模型中数据的逻辑结构是一张二维表 它由行和列组成 学生登记表 属性 元组 1 关系模型的基本概念 关系 Relation 一个关系对应通常说的一张表 元组 Tuple 表中的一行即为一个元组 存放的是客观世界的一个实体 如表Student关系中的一行 存放的是一个学生的数据 属性 Attribute 表中的一列即为一个属性 给每一个属性起一个名称即属性名 1 关系模型的基本概念 主码 Key 表中的某个属性组 它可以唯一确定一个元组 域 Domain 属性的取值范围 分量 Element 元组中的一个属性值 关系模式 Relationmode 对关系的描述关系名 属性1 属性2 属性n 学生 学号 姓名 年龄 性别 系 年级 1 关系模型的基本概念 表1 2术语对比 关系的等价术语之间的对应关系 1 关系模型的基本概念 2 关系模型中的数据全部用关系表示 在关系模型中 实体集以及实体间的联系都是用关系来表示 例如 关系模型中 学生 课程 学生与课程之间的联系表示为 学生 学号 姓名 性别 年龄 所在系 课程 课程号 课程名 先行课 选修 学号 课程号 成绩 2 关系操作和关系的完整性约束条件 数据操作由查询 插入 删除 更新数据操作是集合操作 操作对象和操作结果都是关系 即若干元组的集合 存取路径对用户隐蔽 用户只要指出 干什么 不必详细说明 怎么干 2 关系操作和关系的完整性约束条件 关系模型的完整性约束实体完整性参照完整性用户定义的完整性 3 关系模型的存储结构 关系数据模型的存储结构表以文件形式存储有的DBMS一个表对应一个操作系统文件有的DBMS自己设计文件结构 4 关系模型的优缺点 优点建立在严格的数学概念的基础上 概念单一 数据结构简单 清晰 用户易懂易用 实体和各类联系都用关系来表示 对数据的检索结果也是关系 关系模型的存取路径对用户透明具有更高的数据独立性 更好的安全保密性简化了程序员的工作和数据库开发建立的工作 4 关系模型的优缺点 缺点存取路径对用户透明导致查询效率往往不如非关系数据模型为提高性能 必须对用户的查询请求进行优化增加了开发数据库管理系统的难度 5 典型的关系数据库系统 ORACLESYBASEINFORMIXDB 2COBASEPBASEEasyBaseDM 2OpenBase 信息的三种世界术语的对应关系表 1 2关系数据库的基本概念 1 关系数据结构2 关系操作概述3 关系的完整性 1 关系数据结构 在关系模型中 无论是实体集 还是实体集之间的联系均由单一的关系表示 由于关系模型是建立在集合代数基础上的 因而一般从集合论角度对关系数据结构进行定义 1 域 Domain 域是一组具有相同数据类型的值的集合 例整数实数介于某个取值范围的整数长度指定长度的字符串集合 男 女 介于某个取值范围的日期 2 笛卡尔积 CartesianProduct 1 笛卡尔积给定一组域D1 D2 Dn 这些域中可以有相同的 D1 D2 Dn的笛卡尔积为 D1 D2 Dn d1 d2 dn di Di i 1 2 n 所有域的所有取值的一个组合不能重复 2 笛卡尔积 CartesianProduct 例2 1给出三个域 D1 SUPERVISOR 张清玫 刘逸 D2 SPECIALITY 计算机专业 信息专业 D3 POSTGRADUATE 李勇 刘晨 王敏 则D1 D2 D3的笛卡尔积为 D1 D2 D3 张清玫 计算机专业 李勇 张清玫 计算机专业 刘晨 张清玫 计算机专业 王敏 张清玫 信息专业 李勇 张清玫 信息专业 刘晨 张清玫 信息专业 王敏 刘逸 计算机专业 李勇 刘逸 计算机专业 刘晨 刘逸 计算机专业 王敏 刘逸 信息专业 李勇 刘逸 信息专业 刘晨 刘逸 信息专业 王敏 2 笛卡尔积 CartesianProduct 2 元组 Tuple 笛卡尔积中每一个元素 d1 d2 dn 叫作一个n元组 n tuple 或简称元组 例3 分量 Component 笛卡尔积元素 d1 d2 dn 中的每一个值di叫作一个分量 2 笛卡尔积 CartesianProduct 4 基数 Cardinalnumber 若Di i 1 2 n 为有限集 其基数为mi i 1 2 n 则D1 D2 Dn的基数M为 在上例中 基数 2 2 3 12 即D1 D2 D3共有2 2 3 12个元组 2 笛卡尔积 CartesianProduct 5 笛卡尔积的表示方法笛卡尔积可表示为一个二维表 表中的每行对应一个元组 表中的每列对应一个域 在上例中 12个元组可列成一张二维表 3 关系 Relation 1 关系D1 D2 Dn的子集叫作在域D1 D2 Dn上的关系 表示为R D1 D2 Dn R 关系名n 关系的目或度 Degree 3 关系 Relation 注意关系是笛卡尔积的有限子集 无限关系在数据库系统中是无意义的 由于笛卡尔积不满足交换律 即 d1 d2 dn d2 d1 dn 但关系满足交换律 即 d1 d2 di dj dn d1 d2 dj di dn i j 1 2 n 解决方法 为关系的每个列附加一个属性名以取消关系元组的有序性 3 关系 Relation 例如在表2 1的笛卡尔积中取出有实际意义的元组来构造关系关系 SAP SUPERVISOR SPECIALITY POSTGRADUATE 关系名 属性名假设 导师与专业 1 1 即一个导师只能对一个专业 导师与研究生 1 n 一个研究生只能遵从一个导师 于是 SAP关系可以包含三个元组 张清玫 信息专业 李勇 张清玫 信息专业 刘晨 刘逸 信息专业 王敏 3 关系 Relation 2 元组关系中的每个元素是关系中的元组 通常用t表示 3 单元关系与二元关系当n 1时 称该关系为单元关系 Unaryrelation 当n 2时 称该关系为二元关系 Binaryrelation 3 关系 Relation 4 关系的表示关系也是一个二维表 表的每行对应一个元组 表的每列对应一个域 3 关系 Relation 5 属性关系中不同列可以对应相同的域 为了加以区分 必须对每列起一个名字 称为属性 Attribute n目关系必有n个属性 3 关系 Relation 6 码候选码 Candidatekey 若关系中的某一属性组的值能唯一地标识一个元组 则称该属性组为候选码 在有多个后选码时可以选一个作为主码 在最简单的情况下 候选码只包含一个属性 在最极端的情况下 关系模式的所有属性组是这个关系模式的候选码 称为全码 All key 3 关系 Relation 码 续 主码若一个关系有多个候选码 则选定其中一个为主码 Primarykey 主码的诸属性称为主属性 Primeattribute 不包含在任何侯选码中的属性称为非主属性 Non keyattribute 3 关系 Relation 7 三类关系 或称三类表 基本关系 基本表或基表 实际存在的表 是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表 是虚表 不对应实际存储的数据 4 数据库中基本关系的性质 列是同质的 Homogeneous 每一列中的分量是同一类型的数据 来自同一个域 不同的列可出自同一个域其中的每一列称为一个属性不同的属性要给予不同的属性名 4 数据库中基本关系的性质 列的顺序无所谓列的次序可以任意交换遵循这一性质的数据库产品 如ORACLE 增加新属性时 永远是插至最后一列但也有许多关系数据库产品没有遵循这一性质 例如FoxPro仍然区分了属性顺序 4 数据库中基本关系的性质 任意两个元组不能完全相同由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质 例如 Oracle FoxPro等都允许关系表中存在两个完全相同的元组 除非用户特别定义了相应的约束条件 4 数据库中基本关系的性质 行的顺序无所谓行的次序可以任意交换遵循这一性质的数据库产品 如ORACLE 插入一个元组时永远插至最后一行但也有许多关系数据库产品没有遵循这一性质 例如FoxPro仍然区分了元组的顺序 4 数据库中基本关系的性质 分量必须取原子值每一个分量都必须是不可分的数据项 这是规范条件中最基本的一条 5 关系模式 RelationSchema 的定义 关系的描述称为关系模式 关系模式可以形式化地表示为 R U D Dom F 其中 R为关系名 它是关系的形式化表示 U为组成该关系的属性集合 D为属性组U中属性所来自的域 Dom为属性向域的映像的集合 F为属性间数据的依赖关系集合 关系模式是关系的形式化描述 5 关系模式 RelationSchema 的定义 关系模式通常可以简单记为 R U 或R A1 A2 An 其中 R为关系名 A1 A2 An为属性名 域名及属性向域的映像常常直接说明为属性的类型 长度 5 关系模式 RelationSchema 的定义 关系模式是关系的框架或结构 关系是按关系模式组织的表格 关系既包括结构也包括其数据 关系的数据是元组 也称为关系的内容 一般讲 关系模式是静态的 关系数据库一旦定义后其结构不能随意改动 而关系的数据是动态的 关系内容的更新属于正常的数据操作 随时间的变化 关系数据库中的数据需要不断增加 修改或删除 5 关系模式 RelationSchema 的定义 关系模式即是一个表的表头描述 表头也称为关系的结构 关系的型等 除表头一行以外的所有行的集合 即表内容 称为关系的值 一个关系 表 由表头和表内容两部分组成 表头是相对不变的 而表内容是经常改变的 如Student表中 当有新学生入学时 就增加若干行 当学生毕业时 就要删除若干行 所以表是动态的 6 关系数据库 Relationdatabase 关系数据库是相互关联的表或者说关系的集合 因为一个表存放的是某一应用领域的一个实体或实体间的联系 如Student表存放的是学生这个实体 集 Course表存放的是课程这个实体 集 SC表存放的学生实体与课程实体之间的联系 这里为选课联系 因此关系数据库中存放的是某一应用领域中的所有实体和实体之间的联系 一个关系用一个关系模式表示 所有关系模式集合构成数据库的模式 它是数据库整体逻辑结构的描述 2 关系操作概述 关系模型与其他数据模型相比 最具有特色的是关系数据操作语言 关系操作语言灵活方便 表达能力和功能都非常强大 1 关系操作的基本内容 关系操作包括数据查询 数据维护和数据控制三大功能 数据查询指数据检索 统计 排序 分组以及用户对信息的需求等功能 数据维护指数据增加 删除 修改等数据自身更新的功能 数据控制是为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能 1 关系操作的基本内容 关系操作的数据查询和数据维护功能使用关系代数中的选择 Select 投影 Project 连接 Join 除 Divide 并 Union 交 Intersection 差 Difference 和广义笛卡儿积 ExtendedCartesianProduct 8种操作表示 其中前4种为专门的关系运算 而后4种为传统的集合运算 2 关系操作的特点 关系操作具有以下3个明显的特点 1 关系操作语言操作一体化关系语言具有数据定义 查询 更新和控制一体化的特点 2 关系操作的方式是一次一集合方式其他系统的操作是一次一记录 record at a time 方式 而关系操作的方式则是一次一集合 set at a time 方式 即关系操作的初始数据 中间数据和结果数据都是集合 3 关系操作语言是高度非过程化的语言关系操作语言具有强大的表达能力 3 关系操作的种类 关系操作语言可以分为以下3类 1 关系代数语言关系代数语言是用对关系的运算来表达查询要求的语言 ISBL InformationSystemBaseLanguage 为关系代数语言的代表 2 关系演算语言关系演算语言是用查询得到的元组应满足的谓词条件来表达查询要求的语言 3 基于映像的语言基于映像的语言是具有关系代数和关系演算双重特点的语言 SQL StructureQueryLanguage 是基于映像的语言 SQL包括数据定义 数据操作和数据控制三种功能 具有语言简洁 易学易用的特点 它是关系数据库的标准语言和主流语言 3 关系的完整性 关系模型的完整性规则是对关系的某种约束条件 关系模型中有三类完整性约束 实体完整性 参照完整性和用户定义的完整性 其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件 应该由关系系统自动支持 1 实体完整性 EntityIntegrity 关系的实体完整性规则为 若属性A是基本关系R的主属性 则属性A的值不能为空值 实体完整性规则规定基本关系的所有主属性都不能取空值 而不仅是主码不能取空值 1 实体完整性 EntityIntegrity 对于实体完整性规则 说明如下 1 实体完整性能够保证实体的惟一性2 实体完整性能够保证实体的可区分性 2 参照完整性 ReferenceIntegrity 参照完整性又称为引用完整性 是保证参照表与被参照表中数据的一致性 实体完整性是一个关系内的约束 而参照完整性则是在不同关系之间或同一关系的不同元组之间的约束 1 关系间的引用 在关系模型中实体及实体间的联系都是用关系来描述的 因此可能存在着关系与关系间的引用 例学生实体 专业实体以及专业与学生间的一对多联系学生 学号 姓名 性别 专业号 年龄 专业 专业号 专业名 学生 学号 姓名 性别 专业号 年龄 专业 专业号 专业名 1 关系间的引用 续 例2学生 课程 学生与课程之间的多对多联系学生 学号 姓名 性别 专业号 年龄课程 课程号 课程名 学分 选修 学号 课程号 成绩 学生 学生选课 课程 1 关系间的引用 续 例3学生实体及其内部的领导联系 一对多 学生 学号 姓名 性别 专业号 年龄 班长 2 外码 ForeignKey 设F是基本关系R的一个或一组属性 但不是关系R的码 如果F与基本关系S的主码Ks相对应 则称F是基本关系R的外码基本关系R称为参照关系 ReferencingRelation 基本关系S称为被参照关系 ReferencedRelation 或目标关系 TargetRelation 2 外码 ForeignKey 说明关系R和S不一定是不同的关系 目标关系S的主码Ks和参照关系的外码F必须定义在同一个 或一组 域上 外码并不一定要与相应的主码同名 当外码与相应的主码属于不同关系时 往往取相同的名字 以便于识别 3 参照完整性规则 若属性 或属性组 F是基本关系R的外码它与基本关系S的主码Ks相对应 基本关系R和S不一定是不同的关系 则对于R中每个元组在F上的值必须为 或者取空值 F的每个属性值均为空值 或者等于S中某个元组的主码值 3 参照完整性规则 学生关系中每个元组的 专业号 属性只取下面两类值 1 空值 表示尚未给该学生分配专业 2 非空值 这时该值必须是专业关系中某个元组的 专业号 值 表示该学生不可能分配到一个不存在的专业中 3 参照完整性规则 选修 学号 课程号 成绩 学号 和 课程号 是选修关系中的主属性按照实体完整性和参照完整性规则 它们只能取相应被参照关系中已经存在的主码值 3 参照完整性规则 学生 学号 姓名 性别 专业号 年龄 班长 班长 属性值可以取两类值 1 空值 表示该学生所在班级尚未选出班长 或该学生本人即是班长 2 非空值 这时该值必须是本关系中某个元组的学号值 3 用户定义的完整性 User DefinedIntegrity 任何关系数据库系统都应当具备实体完整性和参照完整性 另外 由于不同的关系数据库系统有着不同的应用环境 所以它们要有不同的约束条件 用户定义的完整性是针对某一具体关系数据库的约束条件 反映某一具体应用所涉及的数据必须满足的语义要求 3 用户定义的完整性 User DefinedIntegrity 关系模型应提供定义和检验这类完整性的机制 以便用统一的系统的方法处理它们 而不要由应用程序承担这一功能 例如 学生考试的成绩必须在0 100之间 在职职工的年龄不能大于60岁等 都是针对具体关系提出的完整性条件 3 用户定义的完整性 续 例 课程 课程号 课程名 学分 课程名 属性必须取唯一值非主属性 课程名 也不能取空值 学分 属性只能取值 1 2 3 4 1 数据库管理员 DBA 决定数据库中的信息内容和结构决定数据库的存储结构和存取策略定义数据的安全性要求和完整性约束条件 数据库管理员 续 监控数据库的使用和运行周期性转储数据库数据文件日志文件系统故障恢复介质故障恢复监视审计文件 数据库管理员 续 数据库的改进和重组性能监控和调优数据重组数据库重构 2 系统分析员 负责应用系统的需求分析和规范说明与用户及DBA协商 确定系统的硬软件配置参与数据库系统的概要设计 3 数据库设计人员 参加用户需求调查和系统分析确定数据库中的数据设计数据库各级模式 4 应用程序员 设计和编写应用系统的程序模块进行调试和安装 5 用户 偶然用户企业或组织机构的高中级管理人员简单用户银行的职员 机票预定人员 旅馆总台服务员 用户 续 复杂用户工程师 科学家 经济学家 科技工作者等直接使用数据库语言访问数据库 甚至能够基于数据库管理系统的API编制自己的应用程序 习题课 概念模型的应用 例题一设物资管理数据库中有两个实体集 一是 仓库 实体 具有仓库号 地址 电话等属性 另一个是 零件 实体集 具有零件号 零件名称 规格 单价等属性 如果规定 一个零件可以存放在多个仓库中 一个仓库中可以存放多种零件 存放在仓库中的零件具有属性日期和库存量 要求 画出E R图 习题课 概念模型的应用 例题二设某商业集团数据库中有三个实体集 一是 商店 实体 具有编号 商店名 地址 电话等属性 二个是 商品 实体集 具有商品号 商品名 规格 单价等 三是 职工 实体集 属性有职工编号 姓名 性别 业绩等 商店与商品之间存在 销售 联系 每个商店可以销售多种商品 每种商品可以在多个商店销售 每个商店销售一种商品有月销售量 商店与职工之间存在 聘用 联系 每个商店可以有多名职工 每个职工只能在一个商店工作 商店聘用职工有聘期和月薪 要求 画出E R图 习题课 概念模型的应用 例题三设有一个图书管理数据库 此数据库中对每个借阅者保存记录 包括 读者号 姓名 性别 地址 年龄 单位 对每本书存有 书号 书名 出版社 对每本被借出的书存有借出日期和应还日期 要求 画出E R图 习题课 概念模型的应用 例题四设有一家百货商店 已知信息有 1 每个职工的数据 职工号 姓名 地址和它所在的商品部 2 每一个商品部的信息有 编号 店名 经理和它经销的商品 3 每种经销的商品有 商品名 生产厂家 价格 型号和内部商品代号 4 关于每个生产厂家的数据有 厂名 地址 向商店提供的商品价格和数量 请设计百货商店的概念模型 注意某些信息可用属性表示 其他信息可用联系表示 习题课 概念模型的应用 例题五学校中有若干个系 每个系有若干个班级和教研室 每个教研室有若干教师 其中一些教授和副教授每人各带若干研究生 每个班级有若干学生 每个学生选修若干课程 每门课程有若干学生选修 要求 用E R图画出此学校的概念模型 习题课 概念模型的应用 例题六假如要为某基层单位建立一个 基层单位 数据库 通过调查得出 用户要求数据库中存储下列基本信息 部门 部门号 名称 领导人编号 职工 职工号 姓名 性别 工资 职称 照片 简历 工程 工程号 工程名 参加人数 预算 负责人 办公室 地点 编号 电话 这些信息的关联的语义为 每个部门有多个职工 每个职工只能在一个部门工作 每个部门只有一个领导人 领导人不能兼职 每个部门可以同时承担若干工程项目 数据库中应记录每个职工参加项目的日期 一个部门可有多个办公室 每个办公室只有一部电话 数据库中还应存放每个职工在所参加的工程项目中承担的具体职务 要求 设计基层单位数据库的概念模型 习题课 概念模型的应用 基层单位数据库的概念模型 习题课 概念模型的应用 例题七 用E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 难忘那次活动记事作文(12篇)
- 2025年信托行业转型策略与创新业务模式行业影响力研究报告
- 2025年火锅餐饮市场格局深度分析及创新策略研究报告
- 潮玩产业收藏价值与文化品牌影响力分析报告2025
- 2025年老年教育需求增长与个性化辅导模式创新研究报告
- 新型电动车销售合同
- 公司组织福利院策划方案
- 公司日本旅游活动方案
- 公司新年福利拆箱活动方案
- 土地资源利用与生态环境改善合同
- 《建党伟业》观后感课件
- 2025年安全生产月主题宣贯课件
- 2025-2030中国毛衣市场调研及重点企业投资评估规划分析研究报告
- 凉山州属国有企业专业技术人员及管理人员招聘笔试真题2024
- 数学建模思想在中小学数学课堂教学中的应用研究
- 2025年五级应急救援员资格理论考试题库(含答案)
- 国家开放大学汉语言文学本科《古代小说戏曲专题》期末纸质考试第一大题选择题库2025春期版
- GB/T 45236-2025化工园区危险品运输车辆停车场建设规范
- 深圳市劳动合同样本大全
- GB/T 45144-2024道路车辆车轮和轮辋使用、维护和安全的一般要求及报废条件
- 050011市政管理学(江苏开放大学专科期末试卷)
评论
0/150
提交评论