数据库设计概念结构设计_数据库设计典型实例

数据库设计概念结构设计_数据库设计典型实例文章目录数据库设计概念设计结构概念结构设计ER模型的基本元素实体/实体集属性区别实体和属性联系二元联系的关系1:11:nm:n一元联系1:11:nm:n三元联系采用ER模型的概念设计设计局部ER模型例题设计全局ER模型全局ER模型的优化数据库设计数据库设计:构造最优的数据模型,建立数据库及其应用系统的过程数据库设计的好坏非常重要概念设计结构概念设计的目标是产生反映用户需求的数据库概念结构,即概念模型概念模型具有硬件独立、软件独立的特点处于一个桥梁作用概念设计的主要步骤


Jetbrains全系列IDE稳定放心使用

数据库设计

数据库设计:构造最优的数据模型,建立数据库及其应用系统的过程

数据库设计的好坏非常重要

数据库设计概念结构设计_数据库设计典型实例

概念设计结构

  • 概念设计的目标是产生反映用户需求的数据库概念结构,即概念模型

  • 概念模型具有硬件独立、软件独立的特点

  • 处于一个桥梁作用

  • 概念设计的主要步骤

数据库设计概念结构设计_数据库设计典型实例

  • 概念设计的方法
    • 实体练习方法(ER方法)

概念结构设计

ER模型的基本元素

实体/实体集

  • 实体

    • 实体是指数据对象,指应用中可以区别的客观存在的事物。
  • 实体集

    • 同一类实体组成的集合
    • 数据库设计概念结构设计_数据库设计典型实例
  • 举例

  • 数据库设计概念结构设计_数据库设计典型实例

属性

  • 实体的某一特征称为属性
  • 在一个实体中,能够唯一标识实体的属性或属性集称为“实体标识符”
  • 一个实体只有一个标识符,没有候选标识符的概念。实体标识符有时也称为实体的主键

数据库设计概念结构设计_数据库设计典型实例

区别实体和属性

  • 实体和属性都是名词,所以要区分

  • 以例子讲解

  • 数据库设计概念结构设计_数据库设计典型实例

  • 找出名词

  • 数据库设计概念结构设计_数据库设计典型实例

  • 我们可以先看出规律,属性从属于实体,而且属性不能再分

  • 具体这题后面会讲

联系

  • 联系表示一个或多个实体之间的关联关系

  • 联系集是指同一类联系构成的集合

  • 将联系、联系集等统称为联系

  • 举例

  • 数据库设计概念结构设计_数据库设计典型实例

  • 数据库设计概念结构设计_数据库设计典型实例

  • 联系的元数

数据库设计概念结构设计_数据库设计典型实例

  • 二元联系

数据库设计概念结构设计_数据库设计典型实例

  • 三元联系

数据库设计概念结构设计_数据库设计典型实例

  • 一元联系(自己跟自己的联系)

数据库设计概念结构设计_数据库设计典型实例

二元联系的关系

1:1

数据库设计概念结构设计_数据库设计典型实例

1:n

数据库设计概念结构设计_数据库设计典型实例

  • 联系也会有属性:用于描述联系的特征

m:n

数据库设计概念结构设计_数据库设计典型实例

一元联系

1:1

数据库设计概念结构设计_数据库设计典型实例

1:n

数据库设计概念结构设计_数据库设计典型实例

m:n

数据库设计概念结构设计_数据库设计典型实例

三元联系

数据库设计概念结构设计_数据库设计典型实例

采用ER模型的概念设计

采用ER模型进行数据库的概念设计的步骤

  1. 首先设计局部ER模型
  2. 然后把各局部ER模型综合成一个全局ER模型
  3. 最后对全局ER模型进行优化,得到最终的ER模型,即概念模式

设计局部ER模型

数据库设计概念结构设计_数据库设计典型实例

  • 要点是区分实体和属性

  • 两条准则

    • 属性不能再具有需要描述的性质
    • 属性不能与其他实体具有联系
  • 举例

    • 因为职称跟其他东西挂钩,所以要作为实体

数据库设计概念结构设计_数据库设计典型实例

例题

  • 例题1

  • 画出ER图

  • 数据库设计概念结构设计_数据库设计典型实例

  • 数据库设计概念结构设计_数据库设计典型实例

  • 把借阅作为实体有问题吗

  • 数据库设计概念结构设计_数据库设计典型实例

  • 有,借阅信息没有实体标识符(类似主键,唯一区分),在ER图中每个实体都要有实体标识符,而联系没有。所以这里要给借阅信息加上一个实体标识符。

  • 数据库设计概念结构设计_数据库设计典型实例

  • 例题2

  • 数据库设计概念结构设计_数据库设计典型实例

  • 先看上面带序号的,区分出实体和属性

  • 数据库设计概念结构设计_数据库设计典型实例

  • 再根据关系,将各个实体相连

  • 数据库设计概念结构设计_数据库设计典型实例

设计全局ER模型

将局部ER模型综合成单一的全局概念结构的步骤:

  • 确定公共实体类型
    • 根据实体类型名和键来认定公共实体类型
  • 合并局部ER模型
    • 首先进行两两合并,先合并那些现实世界有联系的局部结构
    • 合并从公共类型开始,最后再加入独立的局部结构
  • 消除冲突
    • 属性合并(属性域冲突)
    • 结构冲突
    • 命名冲突

全局ER模型的优化

  • 优化原则

    • 合并实体类型

    • 消除冗余属性

    • 消除冗余联系

  • 例题

  • 学籍管理数据库设计概念结构设计_数据库设计典型实例

  • 课程管理数据库设计概念结构设计_数据库设计典型实例

  • 教师管理数据库设计概念结构设计_数据库设计典型实例

  • 全局ER

  • 数据库设计概念结构设计_数据库设计典型实例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182787.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • srsLTE测试SDR频偏[通俗易懂]

    srsLTE测试SDR频偏[通俗易懂]1、在Android手机上使用网络信号大师确定当前连接基站的EARFCN。2、修改srsue的ue.conf中earfcn参数为手机连接的基站。3、启动srsue尝试接入,如果收不到基站或接入失败,可以调节ue.conf中的频偏(freq_offset)参数,可以从修改-15000到15000(可以5000为步进调节)不停重复尝试接入。4、能成功接入基站后,FoundCell信息中会有CFO参数,此参数即为频偏,然后再根据此值调试频偏值,频偏=频偏+CFO,比如CFO为-5.5k,频偏=频偏-

    2022年9月27日
  • [网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例[通俗易懂]

    [网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例[通俗易懂]最近开始学习网络安全相关知识,接触了好多新术语,感觉自己要学习的东西太多,真是学无止境,也发现了好几个默默无闻写着博客、做着开源的大神。准备好好学习下新知识,并分享些博客与博友们一起进步,加油。非常基础的文章,大神请飘过,谢谢各位看官!

    2022年5月2日
  • vue-router实现路由懒加载( 动态加载路由 )_前端懒加载原理

    vue-router实现路由懒加载( 动态加载路由 )_前端懒加载原理为什么需要懒加载?    像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,时间过长,会出啊先长时间的白屏,即使做了loading也是不利于用户体验,而运用懒加载则可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载用时vue异步组件 es提案的import() webpack…

    2022年10月7日
  • 一、SpringBoot+MybatisPlus+P6spy环境搭建

    一、SpringBoot+MybatisPlus+P6spy环境搭建

    2021年7月12日
  • django中实现逻辑删除[通俗易懂]

    django中实现逻辑删除[通俗易懂]django中实现逻辑删除,主要分三步:1.增加字段:is_delete=models.BooleanField(default=False,verbose_name=’逻辑删除’,help_text=’逻辑删除’)2.重写models中delete方法:defdelete(self,using=None,keep_parents=False):    ""…

    2022年5月15日
  • 在Linux里设置用户环境变量的方法「建议收藏」

    在Linux里设置用户环境变量的方法「建议收藏」在linux里设置环境变量的方法(exportPATH)1.修改当前用户下的.bash_profile文件没有ROOT用户权限无法修改ETC下的系统变量,只能修改当前用户下的环境变量$cd(进入用户登陆目录)如当前用户是weblogic那就进入/home/weblogic目录$ls–al查看目录底下是否存在.bash_profile文件

    2022年9月2日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号