数据库设计


为什么我们创建数据库需要提前进行设计?

纸飞机

飞机图纸

战斗机

凭借人经验和记忆我们能够完成一些简单的制作,但是目标达到一定的难度的时候,光是一个人凭经验或直觉是很难去准确的完成的,所以我需要提前进行设计。

数据模型也是一样的,当你想给自己或别人开发一套企业网站,这种比较简单的网站我们往往可以凭借个人经验设计数据模型,但是如果让你去开发一套电子商务网站(京东、当当等...)或者大型的ERP系统、OA系统由于业务过于庞大,实际需求并不确定,所以我们需要设计。

模型设计参考步骤:

收集信息,与该系统有关人员进行交流、座谈,充分了解用户需求,理解数据库需要完成的任务,标识实体 ,标识数据库要管理的关键对象或实体,实体一般是名词,标识每个实体的属性,标识实体之间的关系。

表(实体):矩形表示,一般是名词。

字段(属):用椭圆形表示,一般是名词。

关系(外键):用形表示,一般是动词。

数据库的映射关系有四:

一对一关系:举例,在线超市管理系统中,客户(用户)信息和会员信息的关系。或者学校管理系统中学生和学籍的关系。

一对多关系:举例,学校管理系统中,班级和学生的关系。超市管理系统中商品类型和商品的关系。

多对一关系:举例,一对多把角色调换就是多对一。

多对多关系:举例,超市管理系统中客户和产品的关系通常中间是通过订单来进行关联。

所以客户和产品的关系是多对多关系,那么在数据库中的具体实现是就添加了中间表 - 订单信息表完成。

数据库三大范式:

除了解关系的对于,另外为了数据的规范我们还需要了解设计范式,为什么要学习数据库三大范式?通常不合规范的表设计缺陷:信息重复、更新异常、插入异常、无法正确表示信息、删除异常、丢失有效信息。

第一范式的目标是确保每的原子性

如果每列都是不可再分的最小数据单元(也称为最小的原子单元)。

举例:中国湖北省武汉市,思考拆分,国家 省份 城市分割,否则数据冗余就会出现,且数据筛选变的不灵活。

第二范式要求每个表只描述一件事情

举例:酒店管理系统的客户表不能出现例如,房间信息甚至房间状态,如果需要表示信息应该通过引用完整性来关联。

第三范式是在满足第二范式的前提下,并且除了主键以外的其他列都不传递依赖于主键列。

举例:酒店管理系统,房间表内出现了房间价格。试想一下,每个人去酒店预订房间,房间的价格是由具体的房间决定?还是有房间类型?很显然我们会告诉对方标准间多少钱,或者总统套房多少钱。那么由此可见价格对于房间类型是直接相关,而对于房间信息是间接相关。

【结语】

相信大家对据库模型设计的概念不难明白,但是真的需要灵活运用还是需要大家如尝试和论证。希望本篇文章能够与大家共勉。如果小伙伴儿们关注,后续再继续和大家有更多的交流!欢迎关注公众号,欢迎讨论,欢迎转发,愿天下有需求的人都能看到!

有疑问可以点击下方的“了解更多”,进入在线视频链接进行学习。好了感谢大家的观看再见!

数据库设计_SQL数据库设计(数据建模)相关推荐

  1. mysql 关闭数据库语句_sql数据库 关闭语句

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  2. mysql数据库原理及设计_MySQL数据库原理、设计与应用

    内容简介 本书是面向MySQL数据库初学者推出的一本入门教材,以通俗易懂的语言.丰富实用的案例,详细讲解了MySQL的开发和管理技术. 全书共12章.第1章讲解了数据库基本概念和MySQL的安装步骤: ...

  3. UML建模之数据建模

    一.数据库模简介 二.数据建模元素 1.表(Table) 2.表索引(Table Index) 3.表触发器(Table Trigger) 4.表约束(Table Constraint) 5.视图(V ...

  4. 2020年十个强大的数据建模工具

    数据科学可以使企业处理大量信息,并获得曾经花费大量时间才计算出来的宝贵数据.如果企业处理大量数据,那么可以采用数据建模工具为其业务或开发新数据库的任务创建整体IT策略. 数据科学可以使企业处理大量信息 ...

  5. 2019年技术盘点云数据库篇(二):阿里云携手MongoDB率先上线4.2数据库 云上数据库已是大势所趋...

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 刘丹 出品 | CSDN云计算(ID:CSDNcloud) 随着技术的飞速发展,云数据库在云计算的大背景下,作为一种新兴的共享基础架 ...

  6. 数据建模和数据库设计

    数据建模和数据库设计       一.    实体-关系图         实体-关系图(Entity Relationship Diagram),也称为E-R图,提供了表示实体.属性和关系的方法,用 ...

  7. 系统数据据结库设计理论mysql_基于JavaEE的报刊征订管理系统_JSP网站设计_MySQL数据库设计...

    目  录 摘  要I ABSTRACTII 第一章 绪论1 1.1课题背景1 1.2目的和意义1 1.3开发工具及技术1 1.3.1开发工具1 1.3.2 JSP技术2 1.3.3 JavaScrip ...

  8. 很多字段的数据要插入另一张表_一文看懂数据库设计之逻辑设计,值得收藏

    概述 数据库逻辑设计是从事数据库应用设计.开发.运行维护等各方面工作的一个重要的基础性工作.根据不同业务和应用需求,确定并遵循数据库逻辑设计原则,例如按照第三范式开展逻辑设计,不仅能满足减少数据冗余. ...

  9. 智能家居数据库设计_设计更智能的数据表

    智能家居数据库设计 重点 (Top highlight) Data tables are hard. There are many different ways to think about them ...

最新文章

  1. html div最多50个字符,javascript-计算多少个字符(来自一个字符串)将适合一个div而没有使其换行?...
  2. 【原创】大数据基础之Hive(2)Hive SQL执行过程之SQL解析过程
  3. boost::mpl模块实现is_sequence相关的测试程序
  4. HTML5 header元素
  5. java integer_Java之Integer类
  6. 运动模糊(Montion blur)
  7. Java 社区平台 - Sym 1.7.0 发布
  8. 美国交通模型发展前沿一览——Caliper年度通讯
  9. MODBUS RTU 协议读卡器
  10. 树莓派4B简单使用内容(以移植QT应用为例)
  11. 【讲座】02 写作英文学术论文
  12. 基于MATLAB手写体数字识别程序设计
  13. w10用计算机卸载,win10电脑怎么卸载软件
  14. sql server 2005快捷键
  15. kuka机器人offset指令_KUKA机器人MADA详解.doc
  16. windows双网卡,双网关同时使用内网,外网设置
  17. dede判断手机访问电脑端网站跳转代码
  18. ESP8266上传DHT11数据给私人javaweb服务器实现网页查询数据的电路方案
  19. vlookup函数应用实例(两张表关联)
  20. linux(centos7 版本下安装mongdb数据库)

热门文章

  1. php应用处理数据 504,PHP与504服务器错误
  2. 读技术书籍一定要读最经典的
  3. vue项目中遇到的问题总结
  4. python 在windows下的 虚拟环境
  5. 姆巴佩独造三球一战成名 阿里云打破世界杯流量纪录
  6. Shiro【授权过滤器、与ehcache整合、验证码、记住我】
  7. qml WebEngineView zoomFactor 性质设置问题
  8. HDOJ 2074 叠筐
  9. 法拉利等12家车厂 将与苹果手机联网(图)
  10. 2008,人力资源软件是否还依然