第四讲 E-R模型基础知识

一、数据库设计过程

数据库设计的关键阶段?
各个阶段设计的主要任务?

基础条件:清楚一个应用系统的功能需求与数据需求(直接与用户交互、数据流程图示例/UML类图等)

核心阶段:

  1. 数据库建模阶段(概念设计)
  2. 数据库逻辑结构设计阶段(逻辑设计)
  3. 数据库物理设计阶段(物理设计)

数据库设计的后期工作(数据库实现)

​ 根据设计的逻辑模型和物理模型->实际的数据库结构

二、实体-联系模型(E-R模型)

E-R模型与E-R图有何区别?
E-R模型-是一种描述方法
E-R图-采用E-R模型方法,对一具体应用的描述(结果)
E-R模型有哪些基本要素?
E-R模型的三个最基本的要素:
实体集&属性(矩形)-描述数据对象及特征(内部结构);
联系集(菱形&连线)-描述数据对像间联系(外部结构)。
实体集也有超码,候选码,主码吗?
有,定义与作用都与关系模式类似!

实体集&联系集
分别指什么?
联系集上也可以有属性,表示何意?
可以带属性!表示联系的特征(与联系相关)
实体集和联系集的示例
*实体集与实体间的关系?
实体集:相关类型实体(对象)的集合
*联系集与联系间的关系?
联系集:相关类型联系(连线)的集合
联系集的类型与弱实体集
联系集采用双线表示何义?
弱实体集特点
1)没有键;
2)存在依赖于
主实体集;
3)键由主实体
集键和它的
分辨符合并
构成。 如何解释实体集自身的联系?
实体集到联系集采用双线表示何义?
联系集有哪几种常见类型(映射基数)?

四、复合属性与多元联系集

1、复合属性
E-R模型如何描述具有复杂结构的数据对象?
理论上讲:
E-R模型可描述任何复杂客观对象,实体集可以是任何一种复杂数据结构
因为:E-R模型重点是面向客观世界,建立易于用户理解的抽象数据模型
(它不关心数据如何才能够被实际存储)

2、多元联系与角色
什么是多元联系集和角色?
多元联系集描述可否转换为二元联系集描述? 多元联系的二元分解
(实体集间的关系):
对多元联系集R中的每个
实体(ai,bi,ci):
1. 创建实体集E中的一个
新实体ei=(ai , bi , ci)
2. 添加(ei,ai)到二元联系集RA
3. 添加(ei,bi)到二元联系集RB
4. 添加(ei,ci)到二元联系集RC

练习

设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电话,“顾客”有属性:顾客编号、姓名、地址、年龄、性别。

假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。

图书借阅管理系统具有以下功能:
​ 可随时查询书库中现有书籍的数量与存放位置。
​ 所有各类书籍均可由书号唯一标识。
​ 可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
​ 任何人可借多种书,任何一种书可为多个人所借;
​ 借书证号具有唯一性。
​ 可通过数据库中保存的出版社的Email、电话、邮编及地址等信息向相应出版社增购有关书籍。
​ 一个出版社可出版多种书籍,同一本书仅为一个出版社出版;
​ 出版社名具有唯一性。
请为该系统作概念模型设计,画出ER图.

人事管理系统
公司有多个部门,每个部门都有部长,副部长,职员
每一个职员都会有一个工作岗位

【数据库上】 第四讲 E-R模型基础知识的更多相关文章

  1. OSI七层模型基础知识及各层常见应用

       OSI Open Source Initiative(简称OSI,有译作开放源代码促进会.开放原始码组织)是一个旨在推动开源软件发展的非盈利组织.OSI参考模型(OSI/RM)的全称是开放系统互 ...

  2. PHP基础入门(四)---PHP数组实用基础知识

    PHP数组 数组是特殊的变量,它可以同时保存一个以上的值. ***关键词:数组基础.数组遍历.超全局数组.数组功能.数组函数. 下面来和大家分享一下有关PHP的数组基础知识,希望对你PHP的学习有所帮 ...

  3. Go语言核心36讲(Go语言基础知识四)--学习笔记

    04 | 程序实体的那些事儿(上) 还记得吗?Go 语言中的程序实体包括变量.常量.函数.结构体和接口. Go 语言是静态类型的编程语言,所以我们在声明变量或常量的时候,都需要指定它们的类型,或者给予 ...

  4. Go语言核心36讲(Go语言基础知识五)--学习笔记

    05 | 程序实体的那些事儿(中) 在前文中,我解释过代码块的含义.Go 语言的代码块是一层套一层的,就像大圆套小圆. 一个代码块可以有若干个子代码块:但对于每个代码块,最多只会有一个直接包含它的代码 ...

  5. JMM模型基础知识笔记

    概述 内存模型可以理解为在特定的操作协议下,对特定的内存或者高速缓存进行读写访问的过程抽象,不同架构下的物理机拥有不一样的内存模型,Java虚拟机也有自己的内存模型,即Java内存模型(JavaMem ...

  6. 分布式数据库对比评测(Es,mongodb,redis)基础知识篇

    前言 我建议大家看下这个,否则后面你不知道我在说什么. 1.ES数据库相关概念 啥是Es,说白了就是支持文档搜索的分布式数据库,专门方便搜索的,GITHUB京东现在都在用. 1.ES的数据库存放在哪里 ...

  7. 计算机网络(四)--全世界最好的TCP基础知识讲解

    TCP传输的数据单元是报文段,报文段分为首部.数据两部分 TCP首部 首部的前20字节是固定长度,后面的4n字节根据需要增加的选项 字段解释:图中标示单位为bit,不是byte 1.源端口.目的端口: ...

  8. Go语言核心36讲(Go语言基础知识二)--学习笔记

    02 | 命令源码文件 我们已经知道,环境变量 GOPATH 指向的是一个或多个工作区,每个工作区中都会有以代码包为基本组织形式的源码文件. 这里的源码文件又分为三种,即:命令源码文件.库源码文件和测 ...

  9. Go语言核心36讲(Go语言基础知识三)--学习笔记

    03 | 库源码文件 在我的定义中,库源码文件是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(只要遵从 Go 语言规范的话). 这里的"其他代码" ...

随机推荐

  1. ;~ 并发运行的AutoHotkey脚本真机实际测试模板参考20191010.ahk

    ;~ 并发运行的AutoHotkey脚本真机实际测试模板参考20191010.ahk;~ 2019年10月10日;~ 徐晓亮(aahk6188);~ 操作系统测试环境: Windows 7 专业版 3 ...

  2. 洛谷P1880题解

    题目 第一类区间DP模板题. 所谓第一类区间DP,是指合并型区间DP,状态转移方程一般形如 \(f_{i,j}=\max{f_{i,k}+f_{k+1,j}+cost_{i,j}}\) ,时间复杂度一 ...

  3. OpenFaaS实战之九:终篇,自制模板(springboot+maven+jdk8)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. Vue+SpringBoot前后端分离中的跨域问题

    在前后端分离开发中,需要前端调用后端api并进行内容显示,如果前后端开发都在一台主机上,则会由于浏览器的同源策略限制,出现跨域问题(协议.域名.端口号不同等),导致不能正常调用api接口,给开发带来不 ...

  5. .Net Core+分布式配置中心(AgileConfig)

    GitHub上AgileConfig非常详细,以下只是本人学习过程的整理 一.介绍 1.参考地址 https://github.com/dotnetcore/AgileConfig https://w ...

  6. vulnhub-DC:8靶机渗透记录

    准备工作 在vulnhub官网下载DC:8靶机DC: 8 ~ VulnHub 导入到vmware,设置成NAT模式 打开kali准备进行渗透(ip:192.168.200.6) 信息收集 利用nmap ...

  7. 将MNIST手写数据集转换成图片保存到本地

    # 加载图片 data = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = data.load_data() plt.im ...

  8. Python正则表达式re库的初次使用入门

    正则表达式常用操作符: 操作符 说明 实例 . 表示任何单个字符,不包括换行符 [] 字符集,对单个字符给出取值范围 [abc]表示a.b.c,[a-z]表示a到z单个字符 [^ ] 非字符集 [^a ...

  9. Linux从头学07:中断那么重要,它的本质到底是什么?

    作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...

  10. SpringMVC学习02(我的第一个SpringMVC程序)

    2.Hello,SpringMVC 2.1 配置版 1.新建一个Moudle , springmvc-02-hello , 添加web的支持! 2.确定导入了SpringMVC 的依赖! 3.配置we ...