第五讲 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模型扩展知识的更多相关文章

  1. Yale数据库上的人脸识别

    一.问题分析 1. 问题描述 在Yale数据集上完成以下工作:在给定的人脸库中,通过算法完成人脸识别,算法需要做到能判断出测试的人脸是否属于给定的数据集.如果属于,需要判断出测试的人脸属于数据集中的哪 ...

  2. IIS 之 Web 服务器上的 ASP.NET 进程模型设置

    配置 Microsoft Internet 信息服务 (IIS) Web 服务器上的 ASP.NET 进程模型设置. processModel 节只能在 Machine.config 文件中进行设置, ...

  3. 数据库系统概论学习2-《关系数据库与 E/R 模型》

    -----------------------------一直更新学习内容------------------------------------ 建立一个关系数据库需要几步? 2.关系数据库与 E/ ...

  4. 扩展 ASP.NET MVC 模型扩展 – ASP.NET MVC 4 系列

           大部分人不能将核心运行时(System.Web 中的类)和 ASP.NET Web Forms 应用程序平台(System.Web.UI 中的类)区分开来.        ASP.NET ...

  5. Spark MLlib编程API入门系列之特征选择之R模型公式(RFormula)

    不多说,直接上干货! 特征选择里,常见的有:VectorSlicer(向量选择) RFormula(R模型公式) ChiSqSelector(卡方特征选择). RFormula用于将数据中的字段通过R ...

  6. MS SQL巡检系列——检查数据库上一次DBCC CHECKDB的时间

    DBCC CHECKDB检查指定数据库中的所有对象的逻辑和物理完整性,具体请参考MSDN文档.我们必须定期对数据库做完整性检查(DBCC CHECKDB),以便能及时发现一些数据库损坏(Corrupt ...

  7. 怎样将MySQL数据库上传到服务器

    首先,需要将本地的数据库导出来,作为一个数据文件,以备稍后上传到服务器用,在本地登陆phpmyadmin控制面板: 登陆成功后,在左侧选择需要操作的数据库: 选择后,页面会自动刷新,然后再在右边点击[ ...

  8. 使用Navicat for MySQL把本地数据库上传到服务器

    服务器系统基本都是基于linux的,这个数据库上传的方式适用于linux的各种版本,比如Ubuntu和Centos(尽管这两个版本各种大坑小坑,但至少在数据库传输上保持了一致性) 当然本地数据库上传到 ...

  9. hackbar增强版 & 在Firefox上安装未通过验证的扩展

    hackbar是Firefox的经典插件之一.介绍如下(懒得翻译了) This toolbar will help you in testing sql injections, XSS holes a ...

  10. R语言扩展包dplyr——数据清洗和整理

    R语言扩展包dplyr——数据清洗和整理 标签: 数据R语言数据清洗数据整理 2015-01-22 18:04 7357人阅读 评论(0) 收藏 举报  分类: R Programming(11)  ...

随机推荐

  1. VS2015+win10+opencv3.0整个安装过程

    LZ最近换了台新台式电脑,开始下载新VS软件,话说软件平台越新越好用,一看网上已经有VS2015版本,果断就去官网下载. 1.安装VS操作 官方网的链接如下:https://www.visualstu ...

  2. Docker 入门教程

    几个月以前,红帽(Red Hat)宣布了在 Docker 技术上和 dotCloud 建立合作关系.在那时候,我并没有时间去学习关于 Docker 的知识,所以在今天,趁着这个 30 天的挑战,我决定 ...

  3. docker image export or import

    docker save <image-name> docker load <  <bak>.tar

  4. excel设置单元格不可编辑

    把允许编辑的单元格选定,右键-设置单元格格式-保护,把锁定前的对钩去掉.再点工具-保护工作表.这样就可以只让你刚才设定的单元格允许编辑,其他不允许.

  5. 如何处理JS与smarty标签的冲突

    smarty的默认标记符是大括号:{}, 假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号, smary引擎就会把这些大括号当作smarty语法来解释, 很明显,这些C ...

  6. php处理表单中的复选框问题以及js实现全选

    做的一个项目中遇到了全选和取消全选的问题,这是一个很普遍的功能,,虽然我们经常用到,但是真正做起来却发现行不通,在网上找了些,大部分都是ie,但是谷歌内核浏览器不能正常实现,所以经过小小的调整,今天就 ...

  7. MyEclipse中查看struts_spring_hibernate源码

    1.spring查看源码 首先下载对应的源码包 如:spring-framework-2.5.6-with-dependencies.zip   打开spring-framework-2.5.6\di ...

  8. select2 下拉搜索控件

    1.添加相应的script链接 jquery: <script type="text/javascript" src="http://cdn.bootcss.com ...

  9. idea配置servlet记录,tmocat当服务器,学习

    没整理图片,将就看吧, Mac10.11.6 idea2018.1.3 servlet+tmocat9 遇到问题: 端口错误 java.rmi.server.ExportException: Port ...

  10. 谈谈 JavaScript 的正则表达式

    一.背景 最近在做 CMS 系统中不同身份登录用户的权限管理,涉及到对 api 路径的识别去判断是否放行.以前对正则表达式都是敬而远之,要用到的话都是直接复制粘贴现成网上的表达式,看也看不太懂,借这次 ...