数据库设计(三大范式,设计工具)

这篇具有很好参考价值的文章主要介绍了数据库设计(三大范式,设计工具)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据库设计(三大范式,设计工具)

数据库设计:

1 数据库设计PowerDesigner&三大范式
2 命名风格、主键选择、外键、存储过程
3 数据库事务和数据库锁
4 触发器、游标、视图、自定义函数、
5 字段类型、字段可空、统计字段、逻辑删除

1. 数据库设计的重要性

要谈数据库性能—直接和数据库设计挂钩;

如果不合理-----后续的开发,升级的时候,完全去开不下去;

关系型数据库:存储信息+描述关系;

2. 开发工具

PowerDigner+Microsoft SQL Server Management Studio 18 2012以上;

PowerDesigner工具下载:

链接:https://pan.baidu.com/s/1h2K4iKk0zDWNQUFuUKPbGA

提取码:zx40

3. 设计

  1. 需求分析,明白需要存储什么

  2. 大概设计阶段-----E-R图,解决多方沟通问题

  3. 详细设计----精确到每一个字段

4. 关系

表和表之间的关系

  1. 一对一:一个—身份证,一夫一妻,数据表垂直切分:相同的主外键

  2. 一对多:订单—多个商品; 省----市,国家—公民; 主外键来体现

  3. 多对多:学员----课程,家长—子女 ,用户–菜单 一般情况下:中间表/关系表

5. 数据库三大范式

范式:建议、不是说绝对的要遵循

a. 第一范式:

一范式:每一个列都保持原子性,不可分割;

从表字段的角度来说讲:用户----多个电话:座机、手机号码1、手机号码2

UserInfo-----Detail(JSON格式的字符串----这个用户的所有信息)------查询快—更新慢

从字段的角度来谈单一职责,一个列只存储一个信息—可以来3个字段

优点:更新的时候快,查询也不影响

缺点:部分场景更新成本比较高

b.第二范式:

二范式:在第一范式的基础上,每一列和主键相关; 要求要有主键

Class–班级 一个列存储班级,一个列存储学生

Student —学生,

【不推荐】 都存储一个表,一个字段表示班级,另一个字段表示学员;

推荐使用多个表来存储,学员一个表,班级一个表;主外键的关系来关联;

从每一条记录(对象)的角度来谈单一职责;

c.第三范式:

三范式:每一列的跟主键直接相关,而不是简介相关

公司—用户

CompanyInfo

UserInfo ----UserId,UserName,CompanyInfoId,CompanyName(冗余字段)

冗余字段:查询很便捷(查询到用户就能知道是哪个公司),更新不方便(定时作业,更新时候去维护冗余字段);

在违反这个三大范式的时候回带来方便;主要根据项目的实际情况;

6. 设计工具

1.PowerDesigner

2.Workbench

3.Datablau Data Modeler

PowerDesigner可以直接生成sql语句,也可以从数据库生成一个E-R

7. 设计习惯

a. 命名

尽量做到首字母大写,(帕斯卡命名规范/驼峰规则) 推荐帕斯卡,下划线

坚决抵制:中文,提倡使用英文单词,抵制汉语品拼音

b. 主键

建议大家只是用来做为一个数据的标识,尽量不要让主键具有具体的业务含义;(int/bigint类型)默认带有聚集索引;主键查询效率很高;建议尽量让计算机生成;按照规则生成

自增主键:数据库自动生成,int/bigint,Sqlserver默认聚集索引(最快的),int主键Id一旦生成不能再次修改;

电商系统—订单–订单主键Id—int/bigInt自增Id,用户在查看订单的时候,就可以看到Id,容易泄露一些商业机密;容易让竞争对手获取订单数量;

问题:

  • 迁移,主键Id不好维护

  • 容易泄露信息

优势:查询性能高,存储占用空间少

c. 联合主键:多个字段组合起来确定数据唯一(不推荐)
d. Guid:全球唯一,插入数据库也可以设置成系统自动升,也可以自己生成;

优势:数据迁移方便;没有聚集索引(查询效率会比较低)

劣势:(查询效率会比较低),存储空间占据也会大一些

e. 外键:描述数据关系+约束

严格约定数据的关系,级联删除,级联更新,导入数据的时候也很麻烦;

建议:如果系统要求严格数据,可以使用外键;

也可以通过程序来约束;虚拟外键;不是通过数据库来完成数据的约束

合理使用,建议大家不要使用;大型系统架构,数据本来就是性能的第一瓶颈,尽量少让数据库做事儿;文章来源地址https://www.toymoban.com/news/detail-617550.html

到了这里,关于数据库设计(三大范式,设计工具)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库的三大范式

    文章是看尚硅谷的MySQL所写的笔记 设计数据表的时候,要考虑很多的问题: 用户需要哪些数据,我们在数据表中要保存哪一些数据 怎么保证数据表中的数据的正确性 如何降低数据表的冗余度 开发人员怎么才能更方便的使用数据库 如果数据库设计得不合理的话,可能导致下面

    2024年02月02日
    浏览(33)
  • 【数据库基础】数据库介绍和三大范式

           数据库 (DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。        数据库管理系统 (DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库

    2024年02月07日
    浏览(46)
  • 【Mysql】数据库三大范式

    :数据库三范式是指关系型数据库设计中的三种规范化设计原则,旨在减少数据冗余、提高数据一致性和可维护性。 为什么要这样实现呢? :举个栗子,大家可能都用过淘宝,京东,在填写收件地址的时候,是不是都要逐一填写 :省、市、区、详细地址。以上其实就是数据

    2024年02月08日
    浏览(31)
  • 数据库三大范式是什么,又为什么要反范式?

    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于PHP专栏:MySQL的100个知识点。 🎉欢迎 👍点赞✍评论⭐收

    2024年02月11日
    浏览(30)
  • [MySQL]数据库原理1,三大范式,E-R图,DataBase,数据库管理系统(DBMS),Relationship,实体、属性、联系 映射基数,关系型数据库,联系的度数等——喵喵期末不挂科

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 认识数据库 常见的数据库管理系统应用案例。       1.数据(Data)       2.数据库(DataBase ,简

    2024年02月04日
    浏览(36)
  • 数据库设计-范式

    范式就是数据库的构建规则,目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),

    2024年02月03日
    浏览(26)
  • 数据库期末复习(SQL,范式,数据库设计例题)

    创表 视图 例题:建立一个视图V1,显示老师与学生的授课关系,包括年份,学期,课程名称,老师ID,老师姓名,学生ID,学生姓名 向表中添加或删除约束 添加信息 例题:给“Aufr”同学选上2010年秋季学期的所有课程 删除信息 例题:删除“Comp. Sci.”学院“Ploski”同学,所有

    2024年02月02日
    浏览(48)
  • 数据库的设计规范:第一范式、第二范式、第三范式、巴斯范式

    目前关系型数据库有六种常见范式,按照范式级别,从低到高分别是: 第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式) 。 数据库的 范式设计越高阶,冗余度就越低 ,同时高阶的范式 一定符合

    2024年02月05日
    浏览(80)
  • 数据库—设计规范(依赖、范式、分解)

    如果在一个二维表中:Students(Sno , name, age),Sno 是这个表中的主键,所以对于其他属性来说,Sno决定name,Sno决定age,反过来则叫做name函数依赖于Sno… 定义:主码决定其他属性,其他属性函数依赖于主码 非平凡函数依赖 SC(Sno,Cno,Grade)这么一个表中解释,首先主码是Sno和Cno联合

    2024年02月12日
    浏览(35)
  • SQL笔记 -- 范式(第一范式、第二范式、第三范式、巴斯范式、反范式)及数据库设计原则

    1.1 范式简介 在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的级别 。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 目前关系型数据库有六种常见范式,按照范式级别,从低到

    2024年01月18日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包