SQL Server数据库设计有什么重要性,怎样做
Admin 2022-08-06 群英技术资讯 312 次浏览
在实际的软件项目中,如果系统中需要存储的数据量比较大,需要设计的表比较多,表与表之间的关系比较复杂,那我们就需要进行规范的数据库设置。如果不经过数据库的设计,我们构建的数据库不合理、不恰当,那么数据库的维护、运行效率会有很大的问题。这将直接影响到项目的运行性和可靠性。
数据库设计实际上就是规划和结构化数据库中的数据对象以及这些数据对象之间的关系过程。
不经过设计的数据库或是设计糟糕的数据库很可能导致
1、 数据库运行效率地下
2、 更新、删除、添加数据出现问题
良好设计的数据库
1、 执行效率高
2、 使应用程序更便于开发
3、 扩展性好
4、 维护性好
数据模型就像是数据间联系的一个轮廓图,整个模型就像一个框架。
如果按照记录间联系的表示方式,对数据模型进行分类,可以分为:层次模型、网状模型、关系模型。前两种又称为格式化数据模型。数据模型的好坏直接影响到数据库的性能,所以数据模型的选择是数据库设计的首要任务。
E-R数据模型(Entity-Relationship data model),即实体-关系数据模型。E-R数据模型不同于传统的关系数据模型,它不是面向实现,而是面向现实物体的。
数据是用来描述现实中的物体的,而描述的对象都是形形色色的,有具体的、也有抽象的;有物理上存在的、也有概念性的。凡是可以互相区别而且可以被人们认识的事、物、概念等统统抽象为实体。多个相同的类型的实体可以称为实体集(Entity set)。因此,在E-R数据模型中,也有型与值之分;实体可以作为型来定义,每个实体可以是它的实例和值。
实体一般具体若干特征,这些特征称为实体的属性。而每个属性都有自己的取值范围,在E-R数据模型中称为值集(value set)。在同一实体集中,每个实体的属性及其值集都是相同的,但可能取不同的值。属性对应数据库表的列。
实体之间会有各种关系,这些关系抽象为联系。不但实体可以有属性,关系也可以有属性。
1、 需求分析阶段:分析客户的业务需求,特别是数据方面的需求
2、 概要设计阶段:绘制数据库的E-R图,并确认需求文档的正确性和完整性,E-R图是项目的设计人员、开发人员、测试人员,以及和客户进行沟通的重要凭据
3、 详细设计阶段:将概要设计阶段的E-R图转换为数据库表,进行逻辑设计,确定各个表之间的主外键关系,运用数据库的三范式进行审核,并进行技术评审。最后决定选哪种数据库(Oracle
、SQLServer
、MySQL
)来建库、建表。
秀气分析阶段的重点是调查、收集、分析客户的业务数据需求以及数据的安全性、完整性需求等。
需求分析步骤:
1、 确认业务需求
2、 标识关系实体
3、 标识每个实体的具有的属性
4、 确认实体之间的关系
作为数据库设计者,你需要和项目组内其他成员分享你的设计思路,共同研讨数据库设计的合理性、安全性、完整性,并确认是否符合客户的业务需求。那么使用E-R图,这种图形化的表示方式最为直观。
上面的简单E-R图可以看出用户和收支之间的关系。在上图中可以看出:用矩形表示实体,实体是一般名词;椭圆表示属性,一般也是名词;菱形表示关系,一般是动词。
映射基数表示可以通过关系与该实体的个数。对于实体集A和B之间的二元关系,可能的映射基数有:
1、 一对一:也就是A实体中最多只有一个B实体的关联,而B实体的最多只有一个A实体的关联。用E-R图表示:
2、 一对多:A实体可以与B实体任意数量的进行关联,B中的实体最多与A中的一个实体关联。E-R图表示:
3、 多对一:A实体最多与一个B实体进行关联,而B实体可以和任意多个A实体进行关联。E-R图表示:
4、 多对多:A实体可以有多个B实体,而B实体也可以有任意多个A实体。E-R图表示:
E-R图可以以图形化的方式将数据库的整个逻辑结构表示出来,组成部分有:
1、 矩形表示实体集
2、 椭圆表示属性
3、 菱形表示关系、
4、 直线用来连接实体集与属性、实体集和关系
5、 直线箭头表示实体集之间映射基数
步骤如下:
1、 将各个实体转换为对应的表,将各属性转换为对应的列
2、 标识每张表的主键
3、 将实体之间的关系转换为表与表之间的主外键关系
1、 数据冗余大
2、 插入数据异常
3、 删除异常
4、 更新异常
一个较好的关系数据库模型,它的每个关系中的属性一定要满足某种内在的语义条件,即要按一定的规范设计关系模型,这就是设计的规范化。
在数据库设计时,有一些专门的规则,称为数据库的设计范式,遵循这些规则,就可以创建出良好的数据库
1、 第一范式(1NF)
第一范式是满足关系数据库模型所要遵循的最基本的条件范式,几关系中的每个属性必须是不可再分的简单项,不能是属性组合,即属性的取值是不可拆分的原子值。
2、 第二范式(2NF)
第二范式是在第一范式的基础上,确保表中的每列都和主键相关。其定义是如果一个关系满足1NF,并且除了主键关系外的其他列都依赖于该主键,则满足第二范式。
3、 第三范式(3NF)
第三范式是在第二范式的基础上进行的,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关的。其定义是:如果一个关系满足2NF,并且除主键外的其他列都不传递依赖于该主键。
为了满足三大范式,数据库的性能可能会有一定程度的降低。所以,在实际数据库设计中,我们既要尽量满足三大范式,从而避免数据冗余和各种数据库的操作异常,同时也要考虑数据的访问性能。有时候,为了提高数据库的访问效率,适当的允许少量数据冗余咧存在,才是最适合的数据库设计方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
前言上一篇我们研究了如何利用索引在数据库里面调优,简要的介绍了索引的原理,更重要的分析了如何选择索引以及索引的利弊项,有兴趣的可以点击查看。本篇延续上一篇的...
一些刚接触SQL server的新手,对于怎么解决session阻塞不是很清楚,当然方法很多,下文是个人经验,感兴趣的朋友可以参考,希望本文对大家理解和解决session阻塞有帮助。
使用sparkSQL是为了解决一般用sql不能解决的复杂逻辑,使用编程语言的优势来解决问题,今天通过本文给大家分享Spark SQL的整体实现逻辑,需要的朋友参考下吧
这篇文章介绍了sql server查询语句阻塞优化性能的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
SQL 别名(Aliases)是什么?通过使用 SQL,可以为表名称或列名称指定别名(Alias)。SQL 别名用于为表或表中的列提供临时名称,数据库中的实际表名不会更改。SQL 别名通常用于使列名更具可读性。SQL 一个别名只存在于查询期间。表别名的使用是在特定SQL语句中重命名表。列别名用于为特定SQL查询重命名表的列。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008