数据库系统基础教程三:高级数据库模型的表示

高级数据库系统(Advanced Database System)之:前半阶段知识点总结 文章目录disk access time & effective disk buffer access timedisk access timeeffective buffer access time数据库系统的类型simple filerelational DB systemOO DB systemNoSQL systemNOSQL 数据的种类- Key-value- Document-based- Column-based- Graph-based存储系统(lecture3N4)存储区域网络(S 阅读详情

        数据建模与实现的过程大致可以这样描述:思考 -> 高级设计 -> 关系数据库模式 -> 关系DBMS。如果用PowerDesigner工具,这个过程可以描述为创建CDM->转换为PDM->生成DBMS实现。本节着重介绍高级设计的表示及向关系数据库模式转换的方法。

        PowerDesigner工具的使用参见这里:http://www.cnblogs.com/yxonline/category/89658.html

        业务建模的一篇介绍参见这里:http://www.cnblogs.com/DBFocus/archive/2011/10/12/2208580.html

        最早的方法是ER图,最近的均势是使用UML,不论哪种方式都必须在确定之后方可向模式转化。

        4.1 E/R模型

        4.1.1 基本概念

        E/R图是一种描述数据库模式的符号。

        实体:某种抽象的对象,相似实体的集合形成实体集。对于学生表,每个学生是一个实体,学生集合为实体集。

        属性:实体拥有的属性,如学生的姓名、性别等。

        联系:两个或多个实体集的连接。如学生与教室的占有关系。

        实体联系图:用来描述实体集、属性和联系的图示。用矩形表示实体集、椭圆形表示属性、菱形表示联系。

        以下图为例介绍E/R图的核心概念

        

        4.1.2  联系的多样性

         1:N 关系  如果实体集E中任一实体与实体集F中多个实体存在关系,则称E与F之间存在1对多关系,一个制片厂可以生产多部电影

         1:1关系   如果E和F即是1:N,也是N:1关系,则称E和F之间存在1对1关系

         M:N关系  实体集E中实体与F中实体可以进行任意多个关联,如一个明星可以出演多个电影,一个电影由多个明星来出演。

         以E/R图中用→表示关系的多样性,如果E与F是多到1的关系,则将箭头指向F。如图中一个电影是由一个制片厂生产,无联合制作的情况。对于1:1关系,则在关系的两端均指向对应的实体。值得注意的是箭头表示最多一个,不代表一定存在。

         在同一关系中,一个实体可能多次出现。这时需要画两条线,但对每次出现在每条线上标示其角色以示区别。

         4.1.3 多重联系

         除了二元关联,还有更复杂的多元关联,仍可以由菱形来表示多元关系。而且联系可以有自己的属性,以表示属于此次关联的一些信息。

        

        有一些数据模型要求联系必须是二元的,如UML。E/R不限制联系的重数,但有必要了解如何来做这种转换。定义连接实体集为多路联系元组的实体集。针对原来多路联系的每个实体集,从连接实体引入多对一联系。因为连接实体集扮演了多个角色,每个角色就是一个联系。

        

        4.1.4 E/R模型中的子类

        类似面向对象, 一些实体集可能含有公共实体,但其各自又有一些不同的实体,可以把公共实体抽出来作为公共实体集。这里也可以使用isa关系。在图中我们使用三角形来表示。三角形的一边与子类相连,此边相对的角与父类相连。

        

        4.1.5 键的表示

        实体集的键与关系的键具有相同的概念,不在经重复。在E/R图中,键的属性用下划线标出。当实体有多个键时,只在主键下划出,没有办法表示多个键。

        4.1.6 引用完整性的表示

        用圆箭头批向F表示F实体必须存在。

        4.1.7 弱实体集

        如果实体集E的键是由另一个实体集的部分或全部属性构成。实体集的来源有两种。

        第一,E的实体是集合F中实体的一部分,如果只考虑E实体的名字装饰不具有唯一性,需要再考虑其所属的实体的名字才能确定。例如对于电视剧剧集信息E,每部电视剧可能都从第1集到第N集这样的编号,但其他电视剧也有这样的名字。为了唯一命名一个居住信息,就需要同时考虑剧集所属的电视剧的名字及其自己的名字。

        第二,上面介绍的连接实体集--作为消除多路联系的方法。这些实体集通常没自己的属性。它们的键由它们所连接的实体的键构成。

        用双矩形表示弱实体集,有双菱形表示一个多对一的联系,它有助于提供弱实体集的键。在那些为弱实体集提供键的属性上加下划线。

        

       弱实体集E的键组成为:若干个其自己的属性,从E到其他实体集的多对G 联系连接的键属性。这些多对一联系称为E的支持联系,从E到达的实体集称为支持实体集。

        4.2 从E/R图到关系设计       

        4.2.1 设计原则

        忠实性:设计应当忠实于现实中应用的具体要求。例如对于课程和导师两个实体,二者的传授关系可能是N:1或是N:M的形式,这取决于现实中是否允许教这门课的多个导师来进行记录。        

        避免冗余:每件事只表达一次,冗余会导致异常。

        简单性:除非有必要,不要在设计中添加更多的成分。添加的成分理论上虽然正确,但在现实应用中成为多余就会导致复杂性且容易出错。

        选择正确的关系:实体集可以用不同的方式联系起来,但必须考虑采用最合适的方式来表达实体间的关系。针对上面图中的制片合同的关系,电影和影星之间是否需要一个额外的联系需要视具体情况而定。如果部分影星没有在合同中但确实需要表示电影中影星的信息,则需要额外的关系:明星出演电影。

        选择属性还是实体集/联系:在上面的电影制片厂关系中,我们是否可以把这个关系去掉,而是把制片厂的名称和地址直接作为电影的属性呢?这个问题的答案是否定的,这样做会导致更新和删除异常。然而如果没有地址,把名字写入电影却是合适的。针对这个问题,实体集E在以下的条件下,可以不通过关系关联,而将E的所有属性放入另一个实体中作为属性:

        1). 所有与E有关的关系都必须有箭头指向E,即E必须是多对一联系中的一。

        2). 如果E有多个属性,则所有属性构成E的唯一键。

        3). 没有联系包含E多次。       

        4.2.2 E.R到关系的转化

        对任意的非弱实体集,可创建一个同名且具有相同属性集的关系。

        联系转换为同名的关系,添加这个联系的属性,对于R涉及的每一个实体集,将它们的键属性作为关系的一部分加入。

        1). 处理 关系组合

        对于实体集E和F,为多对一的关系,如果直接转换,则生成两个实体关系,外加一个联系的关系。由于是多对一关系, 在一的关系F上,其键可以确定属性的唯一值,因此三个关系可以合并为两个关系。其中一个关系为F实体转换而成的,另一个关系则包含如下模式:E的所有属性,F的键属性,联系R的任何属性。

        例如,对于上面电影和制片厂,电影和关系可以组合为Movie( title , year, length, gnera, studionName),制片厂转换为Studio(studionName, address)

        即使是有多条从E到其他实体集的多对一联系时也是如此。这样做可以提高查询的效率。

        2) 处理弱实体集

        若W是弱实体集,则W转化为关系后的模式组成为:W的所有属性,与W相连的支持联系的所有属性,对每个连接W的支持联系,即从W到E的多对一联系,要包含E的所有键属性。

        不需要为与W相连的支持联系构造关系。

        例如,对于上面剧集描述与电视剧,转换的关系为SerialDesc( serialNo,serialName desc), Serial(serialName,director)。

        3) 处理子类结构

        有三种策略可以把一个isa层次实体集转化为关系。

        第一,遵照E/R观点。为任一个在层次中的实体集创建一个关系,它包含了的根的键属性和自身的属性。例如针对电影的继承关系可以有如下转换:Movie(title,year,length,genre), Cartoons(title,year,desc)。isa联系不能创建为关系。

        第二,把实体看作属于单个类的对象。对于每个子实体,创建一个包含了子树中所有实体集的所有属性的关系。例如针对上面的继承需要转换为两个关系,每个关系均包含各自的所有属性,Movie(title,year,length,genre),MovieCartoons(title,year,length,genre,desc)

        第三,使用空值。创建一个包含层次中所有实体集的属性的关系。每个实体由一个元组表示,对于实体没有属性,则设置此元组的相应分量为空。此次我们只需要一个表:Movie(title,year,length,genre,desc),它包含了所有属性。

        上面三种方法各自均有优缺点,下面列出主要的几点。

        第一,由于涉及多个关系的查询代价昂贵,所以人们更愿意在一个关系中寻找查寻需要的所有属性。空值法在这一点上有很好的性能。

        第二,有时候为了避免重复。面向对象方法,每个关系只包含针对自己的属性,占用了尽可能少的空间。在空值法中,大量的空白字段就会浪费较多的空间。

        4.3 UML

        在UML中将实体和联系都可以表示类之间的关系。在理解了E/R之后,理解UML是比较容易的事情。

        键的表示:在类图中为表示键的属性后加PK,表示为主键。

        联系的表示:两个类之间的直线即可表示关联,关联的名字写在线的下方。通过在线的两端增加m..n来进行度的声明以及引用关系的声明。如果联系拥有自己的属性,则通过关联类来表示。如果联系有多对一的关系,则可以使用连接上的聚集和组合的属性,则通过在线的端点加菱形来表示。

        自关联:如果关联两端连接同一个类,称为自关联。为区分自关联中表现的角色,分别给关联的两端写一个名字。

        E/R子类在UML中采用标准的OO表示方法。        

        4.4 UML图到关系设计

        关键点同E/R到关系的转换,不在此重复。


第三章.数据库系统 目录第三章.数据库系统第一节.三级模型——两级映射第二节.数据库设计过程第三节.E-R模型 第三章.数据库系统 该章内容在上午的综合题、下午的案例分析和论文都可能涉及到数据库系统相关知识。 重点:规范化理论(必考)、关系代数(必考) 第一节.三级模型——两级映射 层次性的架构设计,为我们应用的时候提供了很多方面的便利。让整个体系的可维护性、应变能力变得更好一些了。 三级模式——两级映射 掌握哪三级关系,哪两级映射,他们分别对应着什么,我们需要了解, 从示意图上可以看到,物理数据库在系统和计算机上的表现形 阅读详情

相关推荐

高级软件架构师复习笔记-第3章 数据库系统

更新:不考数据库系统,考点:三级模式,两级映像,数据库设计,er模型,关系代数 ,函数依赖。- 1:N:课程-讲授-(教师、参考书):一个课程可以有多个参考书,但一个参考书只能对应一个课程。- 真题:学生和课程是多对多联系,家长是依赖于学生,因此术语弱实体对强实体的依赖关系。联系的两端要填写联系类型(1对1,1对多,多对多,3个类型)。- 反规范技术的益处:降低连接操作的需求,降低外码和索引的数据,减少表的数量,提高查询效率。数据库系统:DBS,是一个系统,包含数据库,还包括数据库,硬件,硬件和软件。

qq_30565881的博客 1038

uml图六种箭头的含义

在看一些技术博客的时候,经常会见到博客里画上很多uml图。因为经常会被这几种表达关系的箭头搞混,这里我就把常见的6种箭头表达的含义理一下。 泛化 概念:泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在java中用来表示继承的关系。 表示方法:用实线空心三角箭头表示。 实现 概念:实现是一

wglla的博客 8万+

jane street market prediction 冠军方案 奇巧淫技与topline链接整理(3/3)

目录前言将income 作为loss(优化目标)读取数据,定义优化目标模型训练与微调提交结果多目标学习Topline整理AE+MLP (rank10)Current 17th solution: Ensembles of deep (49 layer) MLPsmixup augmentation: a way to learn from trades with weight=0 (rank4)My (perhaps) over-complicated LSTM solutionCurrent 62nd .

weixin_51484067的博客 2639

数据库设计 ER图

ER图概述

qq_35630121的博客 6356

R语言分段回归

1.利用虚拟变量进行线性回归 (MEdata.csv的数据来源:https://github.com/ChenQihome9/优快云-Data-Library/blob/master/MEdata.csv) 问题13:针对TAX~GDP,使用分段回归方法,找到其回归方程。编程,并根据程序结果叙述如下几方面问题:(1)分几段最佳?(不超过5段内)(2)分段位置定在哪儿最佳?(3)写出最佳方...

ChenQihome9的博客 1万+

知识检索中的四大评估指标:准确率、精确率、召回率与F1分数详解

摘要:NLP算法面试中,评估知识检索系统的核心指标包括准确率、精确率、召回率和F1分数。准确率衡量整体预测正确性,但在样本不均衡时可能失真;精确率关注预测正类中的真实比例(查准能力),召回率衡量真实正类被预测的比例(查全能力)。F1分数是两者的调和平均,提供综合评估。这些指标通过混淆矩阵计算,并存在制约关系:提高召回率往往降低精确率,反之亦然。应用场景包括文档检索(评估结果质量和覆盖度)和文本分类(如垃圾邮件过滤)。面试需掌握指标区别、适用场景及平衡方法(如调整阈值)。F1分数在样本不平衡时比准确率更具参考

Ven%的博客 1762

SQL主要语法

什么是SQL?                  SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。 SQL语法组成 1.DML( Data Manipulation Language数据操作语言) ——查询、插入、删除和修改...

qq_40180411的博客 763

Linux-ftrace-双nop机制的实现

linux-ftrace内核追踪-双nop机制的实现原理

qq_43707773的博客 1071

【从删库到跑路】MySQL数据库 — E-R图 | 关系模型

E-R图(Entity-Relationship Diagram)是一种图形化工具,常用于数据库设计和概念建模。它以图形的形式展示了实体、属性和它们之间的关系,帮助开发人员和数据库设计师理解和沟通实体之间的联系。

小吉妙妙屋 6348

搭建Dzzoffice 教程

通过以上步骤,您已经成功配置了WEB环境,安装了DzzOffice,并完成了系统设置和应用安装。1.安装包的设置默认是系统盘之外的第二个盘,没有其他盘符的时候则安装在C盘,当主机盘符只有C盘可用的时候,安装时不要使用U盘,否则可能误装到U盘当中。4.如果之前已经安装,再次安装时请确保上次安装已经卸载或者所有文件可读,否则请备份文件,卸载之后再安装。在其他安装环境中,我没有相关的使用经验。3. 保证安装路径是纯净的,安装路径下不能有已安装的V8版本,若重新安装,请选择其它路径。

小胡的博客 4950

深度强化学习研究笔记(1)——入门(马尔科夫决策过程,贝尔曼方程,价值迭代和策略迭代)

1. 强化学习(Reinforcement learning)概述 强化学习(Reinforcement learning)的基本内涵是将问题用代理和环境进行建模。其中代理能够对环境执行一些特定的动作a∈Aa \in Aa∈A,从而到达某个状态s∈Ss \in Ss∈S,然后我们就可以根据该状态为代理赋予特定的奖励rrr。强化学习的基本思想如下图所示: 代理的目标是最大化未来的奖励总和,它通过将...

越野者的博客 5280

从大学E-R图分析ER图中单线、双线、带箭头线表达的意思

我们将从下面这张图开始讲起 1. 双线-带箭头线 观察上图满足双线-带箭头线的有 course和department course和course_dept之间有一条双线,表示course在course_dept中全部参与,即每个课程必须和一个系相关联。 department和course_dept之间有一个箭头,表示每个课程至多有一个相关联的系 instructor和department instructor和inst_dept之间有一条双线,表示每名教师必须和一个系相关联 存在一个从i

yunfeng 4万+

化工过程设计软件:Aspen Plus二次开发_(2).二次开发概述

假设我们需要创建一个自定义的换热器模型,该模型能够计算两个物流之间的热交换量,并根据传热系数和换热面积进行调整。ACM 模型代码示例!自定义换热器模型!参数:传热系数 U (W/m^2·K)!换热面积 A (m^2)!热物流 T_hot_in (K), T_hot_out (K), F_hot (kmol/h)!冷物流 T_cold_in (K), T_cold_out (K), F_cold (kmol/h)!模型输入!U - 传热系数!A - 换热面积!

kkchenjj的博客 367

数据库系统基础教程(原书第三版)课后答案汇总

数据库系统基础教程(原书第三版)课后答案 下面的链接均来自百度文库,仅作汇总.答案虽然都是英文,但是不影响阅读. 第2章 关系数据模型 第3章 关系数据库设计理论 第4章 高级数据库模型 第5章 代数和逻辑查询语言 第6章 数据库语言SQL 第7章 约束与触发器 配套练习题 ...

扬扬说 7万+

自动分割和测量混凝土钢筋的思路与原理

该文提出了一种基于PCL库的点云处理系统,用于自动测量混凝土结构中钢筋的几何参数。系统采用多阶段处理流程:首先通过RANSAC算法提取地面并旋转对齐;接着使用区域生长算法分割混凝土结构;然后采用RANSAC线检测识别钢筋,按方向分类;最后通过圆柱拟合和坐标差计算获得钢筋间距、直径和高度差等参数。文章详细介绍了各模块的核心算法,包括地面检测、坐标变换、钢筋识别和几何计算等关键步骤,并分析了主要参数的敏感性。系统通过分层处理和坐标变换确保测量精度,为混凝土结构的无损检测提供了自动化解决方案。

weixin_45196569的博客 679

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

数据库系统原理选择题

数据库系统原理选择题 1、要保证数据库的逻辑数据独立性,需要修改的是||A||。 A: 模式与外模式之间的映射 B: 模式与内模式之间的映射 C: 模式 D: 三级模式 2、数据库系统的数据独立性体现在||B||。 A: 不会因为数据的变化而影响到应用程序 B: 不会因为数据存储结构与数据逻辑结构的变化而影响应用程序 C: 不会因为存储策略的变化而影响存储结构 D: 不会因为某些存储结构的变化而影...

luoru的博客 7414

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数据库期末总结笔记(《数据库系统概论》第五版(王珊、萨师煊编著))

参考教材:数据库系统概论 第五版(王珊萨师煊版本) 文章目录1. 绪论1.1. 数据库系统概述1.2. 什么是数据管理1.3. 数据库系统与人工管理、文件系统比1.4. 数据库系统特点1.5. 数据模型1.6. 数据库系统模式的概念1.7. 数据库系统的组成2. 关系代数2.1. 关系模式与关系的区别3. 标准语言SQL3.1. SQL的数据定义功能3.2. SQL特点3.3. 视图的作用4....

程序分析爱好者 9745

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

数据库系统概论总结

第一章 数据库概论 1.1 数据库系统概念 1.1.1 数据库的四个概论 数据、数据库、数据库管理系统、数据库系统 1.1.2 数据库系统的特点 1.2 数据库数据模型 1.2.1 数据模型的概 1.2.2 数据模型要求 1.2.3 数据模型分类:概念模型(通常E_R图表示)、逻辑模型(现主流关系型)、物理模型 1.2.4 概念模型的概述:E_R图、实体、属性、码、域、实体集、联系(一对一、一对多、多对多) 1.2.5 数据模型的组成:数据结构、数据操作、数据完整性约束 1.2.6 常见逻辑模型:层次模型、

weixin_48589156的博客 3719

学习笔记——数据库系统概论知识点总结

一、诸论 1.数据库系统概论 数据——描述事务的符号记录 数据库——数据库是长期存储在计算机内、有组织、可共享的大量数据的集合 数据库管理系统——位于用户与操作系统之间的一层数据管理软件 数据库系统——由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理和维护数据的系统 2.数据模型 1.数据模型的组成要素: 数据结构 数据操作 数据的完整性约束条件 2.常用数据模型 层次模型 网状模型 关系模型 3. 数据库系统的结构 模式——也称逻辑模式,是数据库全体数据的逻辑结构和特

cjj 6027

数据库系统的结构/三级模式结构

说三级模式之前,先了解数据库系统模式的概念 模式,是对数据库逻辑结构的描述,是对型的描述,不涉及具体值。(如学生表,这张表的结构由Sno,sname等等属性构成)如下: 例子:“学生选课数据库”的模式: 在这里介绍一下实例: 是数据库某一时刻的状态——模式的一个具体值。(一个模式在不同的时刻可以有不同的实例) 同一个模式可以有多个实例。(学生选课数据库,有两个实例。分别是13年和14...

obcy 2万+

1.4 高级数据库系统

高级数据库系统 常用的高级数据库系统主要有分布式数据库系统、面向对象数据库系统、并行数据库系统和多媒体数据库系统。 1.分布式数据库系统 1.1 分布式数据库系统的概念 分布式数据库由一组数据组成,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力(称为场地自治),可以执行局部应用。同时,每个结点也能通过网络通信子系统执行全局应用(指涉及两个或两个以上场地中数据库的应用)。区分一个系统是分散式还是分布式,就是判断系统是否支持全局应用。 分布式数据库系统包括两个重要的组成部分,即分布式

fairydeer的博客 2789

【数据库原理及应用】数据库系统的基本原理

数据库原理与应用第一章笔记

Pqf18064375973的博客 2075

数据库系统概论

数据库 DataBase

Edward2022的博客 4530

DB数据库

文章目录基本概念数据库技术应用现状DB的三级模式结构优势数据库系统体系结构关系模型数据模型三大要素三层数据库模型关系模型和RDB基本概念优势&劣势关系代数和SQL关系代数SQL关系数据库设计概念模型设计E-R模型关系模式 基本概念 Database:有组织、冗余小、可共享、数据独立 、易扩展 的数据集合 DBMS:用户和操作系统之间的数据管理软件,用于组织、存取和维护数据。 DBS:加载数...

Alvin_hcf的Blog 2927

数据库系统基础

目录 一、数据库系统基础 1.1概念 1.1.1 基础芝士 1.1.2 SQL语言分类 1.1.3数据独立性(物理独立性,逻辑独立性) 1.2概念模型 1.2.1实体,属性,码(键),实体类型,实体集,联系 1.2.2 ER图和关系模型 1.3数据库系统的结构 二、关系数据库 1.基础芝士 1.1概念: ...

weixin_52640021的博客 3442

数据库系统基础教程复习

第1章 数据库系统世界 第2章 关系数据模型 第3章 关系数据库设计理论 第4章 高级数据库模型 第5章 代数和逻辑查询语言 第6章 数据库语言SQL 第7章 约束与触发器 第8章 视图与索引 第9章 服务器环境下的SQL 第10章 关系数据库的新课题 第11章 半结构化数据模型 第12章 XML程序设计语言 ...

Eimhin 677
上一篇: 数据库系统基础教程二:关系数据库设计理论
下一篇: Linux下date命令使用
zzulp
博客等级 码龄19年 464粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值