zoukankan      html  css  js  c++  java
  • 数据库设计的必要性

    为什么要对数据库进行设计?

    当我们要存储的数据比较少的是后当然不需要对数据库进行设计,但是当我们对数据的需求量越来越大时对数据库的设计就很有必要性了!如果数据库的设计不当会造成数据冗余、修改复杂、操作数据异常等问题而好的数据库设计则可以减少不必要的数据冗余,通过合理的数据规划提高系统的性能!

    什么是数据库设计?

    数据库设计就是将实体与实体之间的关系进行规划和结构化的过程

    设计数据库的步骤

    1.现实世界业务需求-------》绘制E-R图---------》绘制数据库模型图-----------》搭建数据库

    2无论数据库的大小和复杂程度如何,在进行数据库的系统分析时,都可以参考下列基本步骤

    (1)收集信息

    (2)表示实体

    (3)标示每个实体需要 存储的详细信息

    (4)标示实体之间的关系

    映射基数

    映射基数表示通过联系与该实体关联的其他实体的个数。对于实体集X和Y之间的二元关系

    映射基数必须为下列基数之一:

    一对一:X中的一个实体最多与Y中的一个实体关联并且Y中的一个实体最多与X中的一个实体关联

    一对多:X中的一个实体可以与Y中的任意数量的实体关联,而Y中的一个实体最多与X中的一个实体关联

    多对多:X中的一个实体可以与Y中的任意数量的实体关联,反之依然。

    实体关系图(E-R图)

    E-R图一图形的方式将数据库的整个逻辑结构标示出来,方便和客户及小组内成员沟通。E-R图的组成包括以下几部分。

    矩形标示实体集

    椭圆形标示属性

    菱形表示联系集

    直线用来连接属性和实体集,也用来连接实体集和联系集

    数据规范化

    在分析需求是每个人都从不同的的角度去标示实体,10个人个能设计出10个E-R图那我们怎么去选出最优的设计方案呢?我们下一步的工作就是规范化E-R图!接下来给打家介绍一下非常著名的三大范式

    第一范式:确保没一列的最小原子性(也就是每列都能在拆分)

    第二范式:在第一范式的基础上确保每一列都和主键相关

    第三范式:在第二范式的基础上确保每一列都和主键直接相关,而不是间接相关

  • 相关阅读:
    postgres column reference "id" is ambiguous
    网络 内网穿透frp
    odoo12 支付宝在线支付
    odoo 账号登录不上,重置密码也不管用
    odoo 取消保存提示
    聊聊redis分布式锁的8大坑 转载
    用 Keepalived+HAProxy 实现高可用负载均衡的配置方法 转载
    Nginx+keepalived 实现高可用,常用防盗链及动静分离配置 转载
    Git 实用技巧记录 转载:https://mp.weixin.qq.com/s/o6FvGfiG9b57xTeXlBzzQQ
    5 个冷门但非常实用的 Kubectl 使用技巧,99% 的人都不知道 https://mp.weixin.qq.com/s/h4_KRmsVSnlqCmIJh0altA
  • 原文地址:https://www.cnblogs.com/wangzheand/p/5104920.html
Copyright © 2011-2022 走看看