zoukankan      html  css  js  c++  java
  • mysql笔记8_数据库设计步骤

    step1:

      收集信息,与谈系统有关的人员进行交流、座谈,充分了解数据库需要完成的任务。

      示例:blog系统

      基本功能:发表和编辑文章,多用户支持,全文检索,RSS支持,图片收藏,管理站内短消息。

    step2:

      标识对象(实体Entity)

      标识数据库要管理的关键对象或实体。

      实体一般是名词:

      博主账号:发表和管理文章、图片管理。

      文章类别

      文章

      文章回复

      图片分类

      图片

      连接分类

      连接

      短消息

    step3:

      标识每个实体的属性

          E-R图(Entity-Relationship)

      |     符号     |      含义                      |

      |   矩形     |   实体,一般是名词        |

      |   椭圆     |   属性,一般是名词        |

      |     菱形     |   关系,一般是动词        |

    step4:

      将E-R图转换为对应的表

      step1.将各实体转换成各对应的表。

      step2.将各属性转换成表对应的列。

      step3.标识每个表的主键列。

          需要注意:没有主键的表要添加ID编号列作为主键。它没有实际含义。

      step4.在表之间建立主外键,体现实体间的映射关系。

          一对多关系用主外键关联。

            多对多关系增加一个中间表处理关联关系。

    数据库设计的3范式:

      第一范式(1NF):在关系模式中每一个具体关系中,必须要有主键,并且每个属性值都是不可再分的最小数据单位。则称为第一范式关系。

      第二范式(2NF):如果关系模式中的所有非主属性都完全依赖于主关键字,则称为第二范式。

      第三范式(3NF):关系模式中的非主关键字不能依赖其他非主关键字,即非主关键字之间不能有函数(传递)依赖关系,则称为第三范式。

    隐患:

      数据冗余

      更新异常

      插入异常

      删除异常

  • 相关阅读:
    java初学者之java语言主要知识点三
    C++类的对象和类的指针的区别
    win32多线程: 线程创建与结束等待
    多线程学习:win32多线程编程基本概念(转)
    C++常用数据类型和Windows常见数据类型
    VC++2017关于项目出现"const char *" 类型的实参与 "char *" 类型的形参不兼容错误的解决方法
    Linux环境下vi/vim编辑器常用命令
    c++学习笔记之类模板
    c++学习笔记之函数重载和模板理解
    c++学习笔记之多态和虚函数
  • 原文地址:https://www.cnblogs.com/benjia/p/3812444.html
Copyright © 2011-2022 走看看