第四讲 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. 基于arduino UNO R3+ESP8266控制LED灯的开关(无USB转TTL工具实现)

    最近由于项目要求,需要开发物联网云平台,而本人对硬件和通信技术一窍不通,故而选择arduino这一简单单片机来实现学习掌握基础的硬件和通信技术. 下面就是本人通过查阅大佬资料做的一个整合版本的通过手机 ...

  2. nuxt服务部署到云上全程记录

    首先,在使用脚手架nuxt-app中创建项目时,箭头选用不起作用,这是因为git bash在windows中交互问题,临时的解决办法是换用cmd 登录云服务器后,首先安装nodejs yum inst ...

  3. 01_安装电脑软件的步骤批处理脚本.bat

    REM 01_安装电脑软件的步骤批处理脚本.bat MD 01_安装电脑软件的步骤 REM ZIP解压密码空格MD 02_制作杏雨梨云USB维护系统2019中秋版之国庆更新固态U盘MD 03_复制安装 ...

  4. 02.反射Reflection

    1. 基本了解 1.1 反射概述 文字说明 审查元数据并收集关于它的类型信息的能力称为反射,其中元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个 ...

  5. k8s强制删除资源

    一般强制删除 kubernetes 的资源: kubectl delete <resource> <resourename> --grace-period=0 --force ...

  6. 网络编程之TCP客户端开发和TCP服务端开发

    开发 TCP 客户端程序开发步骤 创建客户端套接字对象 和服务端套接字建立连接 发送数据 接收数据 关闭客户端套接字 import socket if __name__ == '__main__': ...

  7. 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?

    想在金九银十找工作的现在可以开始准备了,这边给大家分享一下面试会遇到的问题. 找工作还是需要大家不要担心,由于我们干这一行的接触人本来就不多,难免看到面试官会紧张,主要是因为怕面试官问的答不上来,答不 ...

  8. 【Java】jeesite使用学习

    初始配置环境及软件: 名称 版本 作用 Tomcat 7.0 微小型服务器,版本无所谓,装个Tomcat 9估计也没事 IntelliJ IDEA 2021.1.3 x64 2021.1.3 编译器, ...

  9. 使用Java8改造出来的模板方法真的是yyds

    GitHub 21.3k Star 的Java工程师成神之路,不来了解一下吗! GitHub 21.3k Star 的Java工程师成神之路,真的不来了解一下吗! 我们在日常开发中,经常会遇到类似的场 ...

  10. Nikitosh 和异或

    题面 设 \(l_{i}\) 为以 \(i\) 为结尾的区间中最大的一段异或值,\(r_{i}\) 为以 \(i\) 为开头的区间中最大的一段异或值. 则有 \[l_{i}=\max\left(l[i ...