【数据库上】第五讲 E-R模型扩展知识
第五讲 E-R模型扩展知识
一、E-R模型设计主意问题
1.1 用实体还是实体集
案例:学院对象的表示
应将各个学院看做实体集,还是实体?
方法一:将各个学院看作一个实体集
如果各学院具有不同属性特征,则设计合理
否则面临问题:每增加一个学院增加一个实体,需修改应用代码
方法二:将所有学院看作一个实体集
一般地,一所学校的所有的学院具有相同属性,应看作属于一个实体集的不同实体
1.2 确认属性的位置
案例:学生成绩的表示
学生的课程“成绩”应放在图中何处?
设计方法一:放在学生实体集中
无法区分是哪门课程
设计方法二:放在课程实体集中
难以区分是哪个学生的成绩
设计方法三:放在联系上
合理,因学生和课程之间是多对多的关系
1.3 用属性还是实体集
案例:工资和岗位的表示
职工的每月有工资,且可能不同
职工可能同时在不同部门担任不同的职务
案例:电话信息的表示
一人一个电话时:电话为人的属性
一人多个电话时,还有其他特俗属性时,电话应作为一个实体
多值属性和复合属性
零件的销售价格是一个多值属性(经销、代销、批发、零售)
(1)将原来的多值属性用几个单值属性来代替
(2)将原来的多值属性用一个新的实体集来代替
这个新实体和原来的实体之间是1:N联系;新实体依赖于原实体而存在,称为弱实体,在E-R模型中,弱实体用双线矩阵表示;与弱实体相关的联系,用双线菱形表示。
1.4 用实体集还是联系集
案例:选课信息的表示
描述学生所选课程,应该采用实体集还是联系集?
设计原则:通常地,采用联系来表示发生在两个实体集之间的一个动作,如选课!
如果仅描述学生选课,用选课联系
如果强调学生为上何课程,要求到教务处去办报名注册,则应用一个实体集及两个联系。
案例:家属(爱人)信息的表示
分情况
1.5 用二元联系还是多元联系
案例:父母关系的表示
案例:教师指导学生做项目的表示
二 扩展E-R模型
2.1 特化与概化(特殊化与一般化)
如何理解特化与概化?
一个实体集(父)可能含有一个子实体集!
子实体集具有(继承)父实体集的属性,还可能具有其它一些独特属性,特化与概化专门用于描述这种现象。
特化:自顶向下的设计过程
概化:自底向上的设计过程
由下向上的箭头连线为一种“is a”联系。
案例:学校人员信息
2.2 聚集
聚集:是一种抽象,它将联系集(及其相关实体集)看做是一个更高层的抽象实体集。
【数据库上】第五讲 E-R模型扩展知识的更多相关文章
- 【数据库上】 第四讲 E-R模型基础知识
第四讲 E-R模型基础知识 一.数据库设计过程 数据库设计的关键阶段? 各个阶段设计的主要任务? 基础条件:清楚一个应用系统的功能需求与数据需求(直接与用户交互.数据流程图示例/UML类图等) 核心阶 ...
- Yale数据库上的人脸识别
一.问题分析 1. 问题描述 在Yale数据集上完成以下工作:在给定的人脸库中,通过算法完成人脸识别,算法需要做到能判断出测试的人脸是否属于给定的数据集.如果属于,需要判断出测试的人脸属于数据集中的哪 ...
- IIS 之 Web 服务器上的 ASP.NET 进程模型设置
配置 Microsoft Internet 信息服务 (IIS) Web 服务器上的 ASP.NET 进程模型设置. processModel 节只能在 Machine.config 文件中进行设置, ...
- 数据库系统概论学习2-《关系数据库与 E/R 模型》
-----------------------------一直更新学习内容------------------------------------ 建立一个关系数据库需要几步? 2.关系数据库与 E/ ...
- 扩展 ASP.NET MVC 模型扩展 – ASP.NET MVC 4 系列
大部分人不能将核心运行时(System.Web 中的类)和 ASP.NET Web Forms 应用程序平台(System.Web.UI 中的类)区分开来. ASP.NET ...
- Spark MLlib编程API入门系列之特征选择之R模型公式(RFormula)
不多说,直接上干货! 特征选择里,常见的有:VectorSlicer(向量选择) RFormula(R模型公式) ChiSqSelector(卡方特征选择). RFormula用于将数据中的字段通过R ...
- MS SQL巡检系列——检查数据库上一次DBCC CHECKDB的时间
DBCC CHECKDB检查指定数据库中的所有对象的逻辑和物理完整性,具体请参考MSDN文档.我们必须定期对数据库做完整性检查(DBCC CHECKDB),以便能及时发现一些数据库损坏(Corrupt ...
- 怎样将MySQL数据库上传到服务器
首先,需要将本地的数据库导出来,作为一个数据文件,以备稍后上传到服务器用,在本地登陆phpmyadmin控制面板: 登陆成功后,在左侧选择需要操作的数据库: 选择后,页面会自动刷新,然后再在右边点击[ ...
- 使用Navicat for MySQL把本地数据库上传到服务器
服务器系统基本都是基于linux的,这个数据库上传的方式适用于linux的各种版本,比如Ubuntu和Centos(尽管这两个版本各种大坑小坑,但至少在数据库传输上保持了一致性) 当然本地数据库上传到 ...
随机推荐
- DDD随谈
前言 最近再次拜读了Eric的奠基之作[Domain-Driven Design –Tackling Complexity in the Heart of Software],还有Vernon的[In ...
- 1549页Android最新面试题含答案
在今年年初的疫情中,成了失业人员之一,于是各种准备面试,发现面试题网上很多,但是都是很凌乱的,而且一个地方一点,没有一个系统的面试题库,有题库有的没有答案或者是答案很简洁,没有达到面试的要求.所以一直 ...
- vim的代码缩进
例如下面一段代码: 现在要统一缩进6个tab,在UltraEdit里首先要选中文本,然后按6次tab,VIM中的操作是:首先按V(shift+v)进入行visual模式,然后按7次j选中这段文本(或者 ...
- Java 在PPT中插入OLE对象
PPT幻灯片中支持将文档作为OLE对象插入到PPT幻灯片指定位置,在幻灯片中可直接点击该对象,打开或编辑等.下面以插入Excel工作簿文档为例,介绍如何来插入到幻灯片. 程序运行环境 编译环境:I ...
- SpringBoot开发三
需求介绍-SpringMVC 服务层的三层架构:表现层,业务层,数据层,浏览器访问服务器先访问表现层,期待表现层返回一些数据,表现层呢就访问业务层处理业务,而业务层在处理业务的时候会调用数据层请求数据 ...
- 神经网络:numpy实现神经网络框架
欢迎访问个人博客网站获取更多文章: https://beityluo.space 本文用numpy从零搭建了一个类似于pytorch的深度学习框架 可以用于前面文章提到的MINST数据集的手写数字识别 ...
- 六种方式,教你在SpringBoot初始化时搞点事情!
前言 在实际工作中总是需要在项目启动时做一些初始化的操作,比如初始化线程池.提前加载好加密证书....... 那么经典问题来了,这也是面试官经常会问到的一个问题:有哪些手段在Spring Boot 项 ...
- SQL 练习7
查询所有同学的学生编号.学生姓名.选课总数.所有课程的总成绩(没成绩的显示为 null ) SELECT Student.SId,sname,t.选课总数,t.总成绩 from Student LEF ...
- C#10在List, Queue 以及Stack中使用EnsureCapacity方法来提升性能
简介 在今天的文章中,我们将介绍 C# 10 中引入的一项新功能.这是已添加到 List.Queue 和 Stack 集合中的 EnsureCapacity 方法.我们将讨论为什么我们应该使用这个方法 ...
- .Net Core 踩坑记录--无法逐步调试类库文件
前提 新建类库 在新项目中引用该类库 将类库对应的.PDB文件 拷贝至新项目的bin文件夹下 结果 无法进行跟踪调试 狗带 分析与解决 1: 打开 工具-->选项-->调试 2: 常规-- ...