MySQL之规范数据库设计

作者: Ping开源 | 来源:发表于2020-12-06 02:28 被阅读0次

    九、规范数据库设计

    1.为什么需要设计?

    1)糟糕的数据库设计
    ①数据冗余,浪费空间。
    ②数据库插入和删除都会很麻烦、出现异常(屏蔽使用物理外键)。
    ③程序的性能差。
    2)良好的数据库设计
    ①节省内存空间。
    ②保证数据库的完整性。
    ③方便开发系统。
    3)软件开发中,关于数据库的设计
    ①分析需求:分析业务和需要处理的数据库需求。
    ②设计概要:设计关系图E-R图。
    4)设计数据库的步骤以个人博客为例
    ①收集信息,分析需求。
    Ⅰ用户表(用户登录注销、用户的个人信息、写博客、创建分类)
    Ⅱ分类表(文章分类、谁创建的)
    Ⅲ文章表(文章的信息)
    Ⅳ友链表(友链信息)
    Ⅴ自定义表(系统信息、某个关键字或一些主字段)
    ②标识实体(把需求落实到每个字段)。
    ③标识实体之间的关系。
    Ⅰ写博客:user——>blog
    Ⅱ创建分类:user——>category
    Ⅲ关注:user——>user
    Ⅳ友链:links
    Ⅴ评论:user——>user——>blog

    2.三大范式

    为什么需要数据规范?
    不规范可能造成的问题:信息重复、更新异常、插入异常(无法正常显示信息)、删除异常(丢失有效信息)
    1)第一范式(1NF)
    原子性:保证每一列不可再分。
    2)第二范式(2NF)
    前提:满足第一范式。
    每张表只描述一件事情。
    3)第三范式(3NF)
    前提:满足第一范式和第二范式。
    需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
    (规范数据库的设计)
    参考博客园链接:https://www.cnblogs.com/wsg25/p/9615100.html

    上述博客文章

    4)规范性和性能的问题

    阿里规定:关联查询的表不得超过三张表。

    ①考虑商业化的需求和目标(成本、用户体验),数据库的性能更加重要。
    ②在考虑性能的问题的时候,需要适当的考虑一下规范性。
    ③故意给某些表增加一些冗余的字段(从多表查询变为单表查询)。
    ④故意增加一些计算列(从大数据量降低为小数据量的查询:索引)。

    相关文章

      网友评论

        本文标题:MySQL之规范数据库设计

        本文链接:https://www.haomeiwen.com/subject/oqgewktx.html