当前位置:网站首页>数据库建模
数据库建模
2022-07-23 15:47:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
1)定义:在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。
2)作用:
1. 模型能准确表达设计意图,更易于进行技术交流。
2. 模型可以用来高效地生产代码、脚本、技术文档,可以做到“一处改动,多处同步”的效果。
3.模型驱动的开发能使开发过程保持一致性,提高开发人员的效率,而且能保持我们的设计模型能被准确的实现而不产生歪曲。
4.模型驱动的开发更能快速地应对需求的变动。
3)数据库建模步骤:
1.需求分析阶段
2.概念结构设计阶段:CMD
概念结构设计是整个数据库设计的关键。通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。 概念结构设计是对现实生活的模拟,不用考虑外键等,只是站在应用架构师的角度,抽象实体Entity和实体之间的关系Relation。
3.逻辑数据模型:LDM
需要考虑数据的存储结构,是关系的还是面向对象的。对数据进行符合数据库设计范式的规范,但不关心物理数据库。
4.物理数据模型
需要考虑实际具体数据库对应的功能以及在必要时,需要规范化的设计(针对对应的数据库)如创建视图 索引等。
概念模型是把现实世界中实体和关系抽象到计算机世界,逻辑模型就是一种跟具体数据库无关的数据库模型,而物理模型是对某一款确定的数据库进行设计的数据库模型。
所以在数据库开发当中,先进行概念建模,然后进行逻辑建模,再而才进行物理模型的建模。
3)设计范式:design paradigm (逻辑模型)
1.1NF(第一范式 )
是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,强调的是列的原子性,即列不能够再分成其他几列。
2. 2NF(第二范式)
首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。
3. 3NF(第三范式)
必须先满足第二范式(2NF)。在满足2NF情况下,消除表中的传递依赖。第三范式是为了消除数据库中字段之间的依赖关系。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126586.html原文链接:https://javaforall.cn
边栏推荐
- Role definition in USB type-C PD CC logic chip
- ContextLoaderListener vs DispatcherServlet
- go中高并发下的锁是如何工作的(结合源码)
- Detailed explanation of curl command [easy to understand]
- 为什么香港服务器可以免备案
- MySQL 7 kinds of join (Figure)
- Open source needs specialization
- MySQL 66 questions, 20000 words + 50 pictures, including (answer analysis)
- Web page basic template
- Seata
猜你喜欢

rust求数组中最大值

go语言中的内存对齐是如何优化程序效率的?

C language -- implementation of address book and screentogif

分析一个 .NET 写的 某 RFID标签系统 CPU暴涨

Trust guessing numbers game

“如今,99.9% 以上的代码都是垃圾!”

Three barriers in the workplace: annual salary of 300000, 500000 and 1million

An online frequent fullgc troubleshooting

微服务雪崩问题及解决方案

Une erreur s'est produite lors de la configuration du login du moteur Gom: aucun correctif requis n'a été trouvé!
随机推荐
Use moment to get the date of the current day and the next day
Open source needs specialization
没有发现必备补丁文件‘NewopUI.pak’?
Qt多线程实例与connect第五个参数[通俗易懂]
(十一)STM32——IO引脚复用与映射
MySQL执行Alter table xx add column报Duplicate entry错误
There is an error prompt when configuring the GOM engine login: the necessary patch file is not found!
多线程编程
Did not find the necessary patch file 'newopui.pak'?
MySQL 7 kinds of join (Figure)
Rust中的函数function与方法method的区别
JS: image URL to Base64 encoding
MYSQL基础及性能优化
PDO操作
El input usage
机器学习(9)——特征工程(3)(补充)
MinGW-w64的安装及配置教程
rust求两数之和
微服务雪崩问题及解决方案
LeetCode_动态规划_中等_120.三角形最小路径和