热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

【自考】数据库系统原理(二)详解(数据库设计和ER模型)-mysql教程

万事万物都有一个生存周期,当然数据库系统也不例外!数据库设计和ER模型这一章主要是依据数据库系统生存周期,对其中的设计阶段展开来进行讲解的。我们先来看看数据库系统的生存周期:如图所示,数据库系统生存周期划分为五个阶段:规划,需求分析,设

万事万物都有一个生存周期,当然数据库系统也不例外! 数据库设计和ER模型这一章主要是依据数据库系统生存周期,对其中的设计阶段展开来进行讲解的。 我们先来看看数据库系统的生存周期: 如图所示,数据库系统生存周期划分为五个阶段: 规划,需求分析,设

万事万物都有一个生存周期,当然数据库系统也不例外!

数据库设计和ER模型这一章主要是依据数据库系统生存周期,对其中的设计阶段展开来进行讲解的。

我们先来看看数据库系统的生存周期:

\

如图所示,数据库系统生存周期划分为五个阶段:规划,需求分析,设计,实现,运行维护。其中设计阶段包括,概念,逻辑,物理三个方面的设计。

后面两节的内容主要是针对设计阶段的概念设计逻辑设计以及从概念设计到逻辑设计的转换来展开的。

\

\

一、概念设计(ER模型)

第一章里讲过了数据抽象的四个模型:概念数据模型,逻辑数据模型,外部数据模型和内部数据模型,所以在这一章,我们又提到了概念和逻辑这两个词,肯定不陌生了。

第一章说到概念模型是从用户需求的观点出发,对数据建模。而我们的ER模型就被广泛采用的概念模型设计方法。它既然是一种设计方法,接下来我们就要探索怎么使用它。

1、ER模型所包含的元素

在上边导图中我们看到,ER模型的元素包括两个:实体和联系。但是,我们不要忘记它还有实体和联系这两者都包含的属性元素。
(1)实体:实体:对象;实体集:类;实体类型:对象的定义。
(2)联系:联系:实体之间的关系;联系集:同一类联系的集合;联系类型:联系的定义。 (3)属性分类: 简单属性和复合属性:按照父属性是否可以分解成子属性来划分的,分解出来的子属性之间具有依赖性。可以分解的为复合属性,不可分解的为简单属性。 单值属性和多值属性:按照取值的多少来划分的,可以取多值的属性为多值属性,取单值的为单值属性。 存储属性和派生属性:按照是否有必要存储划分。没有必要存储的为派生属性,有必要存储的为存储属性。 允许为空值的属性:当数据库中出现空值时,会有多种情况,处理起来比较困难,要把所有情况都分析对。

2、ER模型操作与设计

  (1)ER模型操作:包括合并,分裂,增删等操作。 (2)ER模型的设计遵循一条原则:先局部,后全局,再优化。 二、逻辑设计(关系模型) 逻辑模型是从数据库实现的观点出发,对数据建模。而关系模型就是用关键码来表示实体之间联系的数据模型。
1、术语:属性,关系模式,元组,关系,属性值。其中,整个二维表格为关系模式,属性为二维表中的字段,属性值为字段值,而元组代表一条记录,关系表示多条记录的集合。

2、遵循的完整性规则 (1)实体:主键属性不能为空值。 (2)参照:不允许引用不存在的实体。 (3)用户定义:针对具体约束设置完整性规则。 三、概念设计——>逻辑设计 1、算法 分别对实体类型和联系类型转换为关系模式进行了介绍。其实都一样,属性还是属性,标识符等变成了键。 2、设计步骤 (1)导出初始关系集:全局ER模型——>关系模式 (2)规范化处理:减少关系模式中的异常 (3)模式评价:对功能和性能进行检查是否符合用户要求 (4)模式修正:根据评价结果进行修改 (5)设计子模式:设计局部逻辑结构 四、总结 看着自己的这张导图,按照导图将内容回忆了起来,觉得这本书其实很简单。虽然网织的不怎么的,在努力让这些知识成为自己的。在学习的过程中意识到了自己很多的不足,比如说,织网不牢固,学习效率低等。现在正在一件一件的去做这些事,自从用了番茄模板之后,效率算是提高了很多,学习起来没有以前那么漫无目的了。在此,感谢师姐!坚持使用番茄模板,让自己的效率越来越高!Come On!
推荐阅读
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 计算机网络复习:第五章 网络层控制平面
    本文探讨了网络层的控制平面,包括转发和路由选择的基本原理。转发在数据平面上实现,通过配置路由器中的转发表完成;而路由选择则在控制平面上进行,涉及路由器中路由表的配置与更新。此外,文章还介绍了ICMP协议、两种控制平面的实现方法、路由选择算法及其分类等内容。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文探讨如何设计一个安全的加密和验证算法,确保生成的密码具有高随机性和低重复率,并提供相应的验证机制。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • 在给定的数组中,除了一个数字外,其他所有数字都是相同的。任务是找到这个唯一的不同数字。例如,findUniq([1, 1, 1, 2, 1, 1]) 返回 2,findUniq([0, 0, 0.55, 0, 0]) 返回 0.55。 ... [详细]
  • 本文探讨了卷积神经网络(CNN)中感受野的概念及其与锚框(anchor box)的关系。感受野定义了特征图上每个像素点对应的输入图像区域大小,而锚框则是在每个像素中心生成的多个不同尺寸和宽高比的边界框。两者在目标检测任务中起到关键作用。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
author-avatar
手机用户2502859707
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有