数据库系统概论学习笔记Day02

wanQQ
• 阅读 982

数据库系统概论学习笔记Day02

E-R 模型的数据库设计

设计阶段

数据库设计者必须与应用的用户进行交互以理解应用的需求,把它们以用户能够理解的高层的形式表示出来,然后再将需求转换为更低层次的设计。

  • 需求分析:此阶段是完整的描述未来数据库用户的需求。

    数据库设计者需要和应用领域的专家和用户进行深入♂沟通。这一阶段产出的是用户需求规格说明

  • 概念设计:设计者选用一种数据模型,并将所选数据模型的概念将这些需求转化为数据库的概念模式。 概念模式明确规定了数据库中表示的实体、实体的属性、实体之间的联系以及实体和联系上的约束。通常此阶段会构建 实体 - 联系图

  • 完善的概念模式会指明企业的功能需求。在功能需求规格说明中,用户描述将在数据库上执行的各类操作。在概念设计这一阶段,设计者可以检查模式以确保其满足所有需求。

  • 逻辑设计阶段:设计者将高层概念模式映射到将被使用的数据库系统具体实现的数据模型。

    数据模型的实现通常是关系数据模型。

  • 物理设计阶段

设计选择

在一个数据库模式的设计中,我们必须确保避免两个主要的缺陷

  • 冗余:一种不好的设计会重复信息。

    冗余信息的最大问题是:如果对一条信息进行了更新但没有仔细将这条信息的所有拷贝都更新,那么这条信息将变得不一致。

  • 不完整

实体-联系模型(E-R数据模型)

E-R数据模型被开发来方便数据库的设计,它是通过允许定义代表数据库全局逻辑结构的企业模式来做到的

E-R数据模型采用了三个基本概念:

  • 实体集

    一个实体是现实世界中可区别于所有其他对象的一个“事务”或“对象”。实体可以是实际存在的,也可以是抽象的。实体集是共享相同性质属性的、具有相同类型的实体的集合。我们用外延这个术语来表示属于某个实体集的实体的实际集合

    实体集在E-R图中以(分割的)矩形表示,如

    数据库系统概论学习笔记Day02

实体通过一组属性来表示。

  • 联系集

    联系是多个实体间的相互关联,也可以被成为描述性属性的属性。联系集是相同类型联系的集合。E-R模式中的一个联系实例表示在所建模的现实企业中被命名的实体之间的一种关联。

    联系集在E-R图中以菱形表示,菱形通过线条联系到多个不同的实体集

    联系集的属性在E-R图中以(未分割的)矩形来表示

  • 属性

    对于每个属性都有一个可取值得集合,成为该属性的值集

    • 简单复合属性。复合属性可以被划分为子部分
    • 单值多值属性。一个属性只对应一个值被称为单值属性,一个属性对应多个值被称为多值属性(数组)。
    • 派生属性。这类属性的值可以从其他相关的属性派生出来,派生属性的值并不存储,而是在需要时根据基属性计算出来

映射基数

映射基数或基数比率表示一个实体能通过联系集关联的另一些实体的数量。

  • 一对一one-to-one:A 中的一个实体 至多 与 B 中的一个实体相关联,且 B 中的一个实体 至多 与 A 中的一个实体相关联

    在E-R图中,我们从联系集到两个实体集各画一条有向线段。

    数据库系统概论学习笔记Day02

  • 一对多one-to-many:A 中的一个实体可以与 B 中的任意个实体相关联,而 B 中的一个实体 至多 与 A 中的一个实体相关联 在E-R图中,我们从联系集向“one”侧画一条有向线段。

    数据库系统概论学习笔记Day02

  • 多对一many-to-one:A 中的一个实体 至多 与 B 中的一个实体相关联,而 B 中的一个实体可以与 A 中的任意个实体相关联

    在E-R图中,我们从联系集向“one”侧画一条有向线段。

    数据库系统概论学习笔记Day02

  • 多对多many-to-many:A 中的一个实体可以与 B 中的任意个实体相关联,且 B 中的一个实体也可以与 A 中的任意个实体相关联

    在E-R图中,我们从联系集到两个实体集各画一条无向线段。

    数据库系统概论学习笔记Day02

在这些关系中:

  • 如果某一侧是“one”的关系,则从联系集向“one”侧画一条有向线段
  • 如果某一侧是“many”的关系,则从联系集向“many”侧画一条无向线段

如果实体集中的每个实体都必须参与到联系集中的至少一个联系中,那么该实体集在该联系集中就被称为是全部的,否则该实体集在该联系集中就被称为是部分

我们用双线表示一个实体集在联系中的全部参与

数据库系统概论学习笔记Day02

E-R 图还提供了一种方式描述更复杂的约束,这种约束限制了每个实体参与联系集中联系的次数,线段上可以有一个关联的最小和最大基数,使用 l(英文 L )...h的形式表示,其中 l(英文 L ) 表示最小基数 h 表示最大基数

数据库系统概论学习笔记Day02

弱实体集

弱实体集的存在依赖于另一个实体集,称其为标识性实体集。我们使用标识性实体集的主码分辨率属性的额外属性来唯一的标识弱实体集。与之相对的,非弱实体集被称为强实体集

点赞
收藏
评论区
推荐文章
艾木酱 艾木酱
1年前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
kenx kenx
2年前
个人博客开发之数据库设计
前言分享完需求,我们就按照需求去设计数据库就可以了,这里我数据库选用Mysql原因呢Mysql相对于其他数据库如ORACLE等轻巧,方便,开源,免费,好用,而且效率也够用数据库设计这里数据库设计我推荐大家一款数据库设计工具,我一直在使用觉得还不错叫PDMan多平台版本,MacWindows,Linux系统都有。总之功能非常强大,分表设计用户表
wanQQ wanQQ
2年前
数据库系统概念 学习笔记 Day01
数据库系统概念学习笔记Day01本笔记记录粗略学习数据库系统概论的笔记数据库管理系统概念数据库管理系统DataBaseManagementsystem,DBMS是由一个互相关联的数据的集合和一组用于访问这些数据的程序数据库应该具有的功能信息存储结构的定义信息操作机制的提供提供所存储信息的安全性保证即使系统崩溃或有人企图越权访问时也可以
Easter79 Easter79
2年前
springboot2.X 集成redis+消息发布订阅
需求场景:分布式项目中,每个子项目有各自的 user 数据库, 在综合管理系统中存放这所有用户信息, 为了保持综合管理系统用户的完整性,    子系统添加用户后将用户信息以json格式保存至redis,然后发布到消息到消息通道,综合管理系统监控到子系统发布的消息前往redis     获取出用户信息保存到自己的数据库1)redis配置
Wesley13 Wesley13
2年前
Java核心技术 卷1 基础知识—Swing用户组件及JAR
《第12章Swing用户组件》Swing设计者采用了模型视图控制器(modelviewcontroller,MVC)模式来设计用户组件它限制了一个对象拥有的功能数量,在设计组件时一般实现三个独立的类:模型(model):存储内容,必须实现改变内容或者查找内容的方法,模型是完全不可见的视图(view):显示内容,即
新支点小玉 新支点小玉
3个月前
软件测试的需求有哪些
在软件开发过程中,有多种类型的需求,其中:(1)用户需求用于描述用户使用产品必须要完成的任务,是软件开发活动中最基本的需求。(2)系统需求用于描述软件设计和编程人员必须完成的任务,系统分析员通过分析用户需求,才能将用户需求转变成开发设计人员看得懂的系统需求
燕青 燕青
5个月前
Macos数据库开发工具:Navicat Premium 15 for Mac中文激活版 支持M1
是一款强大的数据库管理和开发工具,可以帮助用户轻松地管理、设计和维护各种数据库系统。以下是NavicatPremiumMac的一些主要特点和功能:跨平台支持:NavicatPremiumMac支持多种数据库系统,包括MySQL、MariaDB、Oracle
绣鸾 绣鸾
5个月前
CorelDRAW 2023 for Mac(矢量图形设计工具)
是一款专业的矢量图形设计软件,由Corel公司开发。它提供了广泛的创意工具和功能,旨在满足设计师、艺术家和创意专业人士的需求。CorelDRAW2023具有直观的用户界面和工作流程,使用户能够轻松创建各种类型的图形设计,包括标志、海报、插图、包装设计、平面
弹性云主机支持多种规格
随着云计算技术的快速发展,弹性云主机已经成为了一种广泛使用的云计算服务。弹性云主机是一种可动态调整的计算资源,可以根据用户的需求进行灵活配置。其中,支持多种规格是弹性云主机的一项重要特性,它可以让用户根据实际需求选择合适的规格,以满足不同的应用场景。
新支点小玉 新支点小玉
4个月前
软件功能测试的流程
软件功能测试根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好。功能测试是为了确保程序以期