数据库建模

1)定义:在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。2)作用:1.模型能准确表达设计意图,更易于进行技术交流。2.模型可以用来高效地生产代码、脚本、技术文档,可以做到“一处改动,多处同步”的效果。3.模型驱动的开发能使开发过程保持一致性,提高开发人员的效率,而且能保持我们的设计模型能被准确的实现而不产生歪曲。

大家好,又见面了,我是你们的朋友全栈君。

1)定义:在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。

2)作用:

1. 模型能准确表达设计意图,更易于进行技术交流。

2. 模型可以用来高效地生产代码、脚本、技术文档,可以做到“一处改动,多处同步”的效果。

3.模型驱动的开发能使开发过程保持一致性,提高开发人员的效率,而且能保持我们的设计模型能被准确的实现而不产生歪曲。

4.模型驱动的开发更能快速地应对需求的变动。

3)数据库建模步骤:

1.需求分析阶段

2.概念结构设计阶段:CMD

       概念结构设计是整个数据库设计的关键。通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
       概念结构设计是对现实生活的模拟,不用考虑外键等,只是站在应用架构师的角度,抽象实体Entity和实体之间的关系Relation。

3.逻辑数据模型:LDM

       需要考虑数据的存储结构,是关系的还是面向对象的。对数据进行符合数据库设计范式的规范,但不关心物理数据库。

4.物理数据模型

        需要考虑实际具体数据库对应的功能以及在必要时,需要规范化的设计(针对对应的数据库)如创建视图 索引等。

       概念模型是把现实世界中实体和关系抽象到计算机世界,逻辑模型就是一种跟具体数据库无关的数据库模型,而物理模型是对某一款确定的数据库进行设计的数据库模型。

所以在数据库开发当中,先进行概念建模,然后进行逻辑建模,再而才进行物理模型的建模。

3)设计范式:design paradigm (逻辑模型)

1.1NF(第一范式 )

      是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,强调的是列的原子性,即列不能够再分成其他几列。

2. 2NF(第二范式) 

     首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。

3. 3NF(第三范式) 

       必须先满足第二范式(2NF)。在满足2NF情况下,消除表中的传递依赖。第三范式是为了消除数据库中字段之间的依赖关系。

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

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

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


相关推荐

  • 电脑pin码忘了登录不进系统_做好这些优化,电脑5秒开机不是梦[通俗易懂]

    电脑pin码忘了登录不进系统_做好这些优化,电脑5秒开机不是梦[通俗易懂]为保证及时获取最新消息建议置顶公众号编辑:王富国审核:瓦彦文昨天公众号没有发文章,一是因为没有动力,毕竟写了文章没有回报,看不到任何的反馈,还有什么意思?二是因为我帮我一个朋友处理了一下她的电脑,也耗费了不少时间,也从中又得到了一些对电脑优化的经验,现在也给大家分享一下。本文较长,请耐心看完!昨天我这位朋友的电脑是全新的,对,刚买的,她自己看的,也是让我比较后,她自己选择购买的,配置大…

    2022年8月12日
    3
  • 机器学习—决策树原理(python代码实现)

    机器学习—决策树原理(python代码实现)首先,决策树(DecisionTree)是一种基本的分类与回归方法,在这里主要讨论用于分类的决策树。决策树的学习通常包含三个步骤:特征选择,决策树的生成,决策树的剪枝。优点:计算复杂度不高,输出结果易于理解,对中间值的缺失值不敏感,可以处理不相关特征数据。 缺点:可能会产生过度匹配的问题。 使用数据类型:数值型和标称型。那么具体的来通过一个例子说明一下决策树。下面这个例子是通过贷款…

    2022年9月7日
    1
  • 获取实体类@注解信息_jquery获取class名称

    获取实体类@注解信息_jquery获取class名称通过包名和注解获取类Classimportjava.io.File;importjava.io.IOException;importjava.lang.annotation.Annotation;importjava.net.JarURLConnection;importjava.net.URL;importjava.net.URLDecoder;importjava.util.Enumeration;importjava.util.HashSet;importjav

    2025年6月19日
    1
  • A记录、CNAME和URL转发区别[通俗易懂]

    A记录、CNAME和URL转发区别[通俗易懂]我们在做域名解析时,尤其是很多虚拟主机,大都会使用到CNAME解析,独立主机、VPS则用A记录较多,而URL转发则会在更换域名时用到,从设置效果来看,都是“解析”到一个“其它”URL地址,而实际上它们之间还是有些区别的,尤其是URL转发和其它两个之间区别很大的,首先A记录和CNAME属于标准的DNS记录,而URL转发则实际上只是个简单的重定向。另外,我们还常遇到别名ALIAS这个词,ALIAS对解

    2022年10月9日
    2
  • android学习笔记之ImageView的scaleType属性

    android学习笔记之ImageView的scaleType属性我们知道,ImageView有一个属性叫做scaleType,它的取值一共有八种,分别是:matrix,fitXY,fitStart,fitCenter,fitEnd,center,centerCrop,centerInside。那我们下面一起来看看这八种取值分别代表什么意思。我用两张图片来做demo,这两张图片的分辨率一大一小,图片分别叫做big和small。原图如下:big:small:OK,

    2022年6月15日
    25
  • IM通讯 即时通讯 交友源码 聊天源码

    IM通讯 即时通讯 交友源码 聊天源码IM通讯即时通讯交友源码聊天源码web端+wap端+H5端+安卓端+IOS端+全开源编号:16150665877560702可可网络

    2022年5月14日
    40

发表回复

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

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