数据库系统概论----设计ER图
设计ER图
需要避免的两个主要的缺陷
冗余
体现为信息的重复出现,比如一个学生表中,含有班别,班主任,那么同一个班的学生都含有含有班别、班主任的信息,造成了信息的冗余,这是因为只要知道班别,就确定了班主任,反之亦然
信息的冗余可能会造成的问题是,当班别发生更新,而班主任没随之更新发生的错误
不完整
实体集
实体是一个特定事物,例如,每一片树叶都是一个实体。实体具有一组性质,而性质中某些特定的值特定地标识一个实体,例如大学的学号。
实体集是共享相同属性的集合,大学中的所有教师的集合可以定义为instructor集。
联系集
是多个实体间的相互关联的集合。
例如教师有指导学生的关系,两个实体之间就可以画一个名为指导的菱形作为联系集
单个实体集也可以与自身构成联系,例如课程实体集,有拓扑排序那种先修和后修的关系,可以构成先修联系
联系集还可以具有描述符属性,学生和课程的实体集,课程本身可以具有成绩属性,但是没有学生选课程时,成绩往往为空,所以我们希望在学生与课程的联系集中加入成绩属性,表示学生选课之后会产生成绩,这个成绩是有选课联系才产生的。
大多数联系集是二元的,少数联系集是三元的,三元的联系集中的实体有时也可转换成联系。
属性
简单属性
集合中的常见属性,不能再被划分
复杂属性
可以再被划分的属性,例如地址划分为街道,城市,区域等
多值属性
含有多个值的属性,例如一个人可能有多个手机号
派生属性
不存储的属性,需要时可以计算出来,如老师指导了多少名学生
弱实体集
考虑有一个课程段实体,属性有课程编号、学年、学期、课程段编号属性,与课程实体创建一个联系集
由于课程实体也有课程编号属性,所以课程段实体出现了冗余
消除冗余的一个方式时去除这种联系,然而此时课程段实体出现了课程实体的主码,这不是我们想要的
另一个方式是去除课程编号属性,此时课程段的信息就变成不完整的,虽然是每个实体都是可区分的,但是不能再表明具体课程开设时间的信息
当一个实体的存在依赖于另一个实体,就像本例中的课程段实体中有课程编号,这个实体就是弱实体集,弱实体集依赖的另一个实体集称为标识性实体集,标识性实体集的主码和分辨符属性唯一地标识弱实体,弱实体集和标识性实体集的联系称为标识性联系
数据库系统概论----设计ER图相关推荐
- 如何设计ER图(弱实体集)
相关系列: ER图转为关系模式 无损分解和保持依赖 3NF分解与BCNF分解 正则覆盖与候选码 如何设计ER图(弱实体集) 如何设计ER图(映射基数) 弱实体集的定义:没有足够的属性形成主码的实体集. ...
- php电商网站开发流程图,php网上购物平台设计+ER图+流程图.doc
php网上购物平台设计ER图流程图 php网上购物平台设计+ER图+流程图 摘要:广义来说,电子商务是指电子工具在商务活动中的应用.狭义来说,电子商务是在技术.经济高度发达的现代社会里,掌握信息技术和 ...
- 微信小程序开发之路(十三)正式开工--设计ER图与数据库的创建
微信小程序开发之路(十三)正式开工–设计ER图数据库的创建 先制作班费公是示功能 我们在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为: DATABASES = ...
- Microsoft Visio 2013 设计E-R图和数据库模型图
一.设计E-R图 1.新建"空白绘图" 注:不一定非得是"空白绘图",任意选择一个类型的模型图即可,我们进去再具体选择. 2.选择左侧"更多形状&qu ...
- 怎样用EA设计ER图
我们开发系统从文档開始,而EA就是替我们开发文档的好工具.结束了我们从概念设计到逻辑设计中的非常多问题.完好我们的文档. 如今就给大家说说如何在EA中设计概念模型ER图: 首先打开EA-"新 ...
- 设计E-R图,E-R图转换成关系模式结构
数据库E-R图联系 第四章第二讲 1.某医院病房计算机管理中心需要如下信息: 科室:科名.科地址.科电话.医生姓名 病房:病房号.床位号.所属科室名 医生:姓名.职称.所属科室名.年龄.工作证号 病人 ...
- er图转换成关系模型的例题_有关数据库系统的练习题 E-R图的关系画图转换,,急需 谢谢了...
展开全部 你看62616964757a686964616fe58685e5aeb931333332643239下下边的例子,你的问题就可以解决了. 设某商业集团数据库中有三个实体集.一是"商 ...
- 数据库系统概念 | 第七章:使用E-R模型的数据库设计 | ER图设计| ER图转化为关系模型 | 强实体和弱实体
文章目录
- 数据库设计之从0到1 教你如何设计E-R图
上一年写过一篇数据库如何设计,当时也只是停留在概念的理解方面,今天有一次加深了对数据库设计的理解 关于如何设计数据库, 可以戳这个链接数据库设计的六个步骤 接下来从实例来理解数据库的设计 一,首先了解 ...
最新文章
- html5中text-align,text-align
- 微软亚洲研究院刘铁岩博士:迎接深度学习的“大”挑战(一)
- python怎么写测试脚本语言_手把手带你,用Python写一个Monkey自动化测试脚本!!!...
- lintcode:排颜色 II
- 精简JRE第一步 — 精简bin目录
- JAVA基础加强笔记
- linux 下串口转usb不能发送数据包,红帽redhat下 串口转USB问题 linux
- 查看Mysql实时执行的Sql语句
- 组合数学—容斥原理与鸽巢原理
- 计算机专业的英语文献,计算机专业英语论文参考文献集 计算机专业英语英语参考文献哪里找...
- 教你如何理解Vue中的nextTick
- win10 安装pytorch gpu 及 解决报错“OSError: [WinError 126] 找不到指定的模块
- 浏览器播放RTSP视频流几种解决方案
- python打开xls文件报错_python处理excel文件(xls和xlsx)
- Python seaborn 条形图
- 计算机的资源管理器是电脑上的哪个图标,Win10资源管理器中“此电脑”光驱图标不见了怎么办?解决方法...
- CentOS8搭建实现私有CA和证书申请
- 美国大学的交流访问学者怎样申请?
- Java 的可移植性
- 提交给移动三个wap游戏,终于通过了一个