数据库的设计
发布日期:2022-02-06 00:27:00
浏览次数:48
分类:技术文章
本文共 1679 字,大约阅读时间需要 5 分钟。
为什么需要规范的数据库设计
在实际的项目开发中,如果系统的数据存储量较大,设计的表比较多,表和表之间的关系比较复杂,就需要首先考虑规范的数据库设计,然后进行具体的创建库,表的工作。
什么是数据库设计
数据库设计就是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程。
糟糕的数据库设计表现在以下方面
1.数据冗余,存储空间浪费
2.内存空间浪费 3.数据更新和插入的异常良好的数据库设计表现在以下方面
1.节省数据的存储空间 2.能够保证数据的完整性 3.方便进行数据库应用系统的开发设计数据库的步骤
项目开发需要经过需求分析,概要设计,详细设计,代码编写,运行测试和部署上线几个阶段。
进行数据库的系统分析时的步骤
1.收集信息:创建数据库之间,必须充分理解数据库需要完成的任务和功能。简单来说,就是需要了解数据库需要存储哪些信息(数据),实现哪些功能。 2.标识实体:在收集需求信息后,必须标识数据库要管理的关键对象或实体。 实体一般是名词,一个实体只描述一件事情,不能重复出现含义相同的实体。 数据库中的每个不同的实体都拥有一个与其相对应的表。 **3.标识每个实体需要存储的详细信息:**将数据库中的主要实体标识为表的候选实体以后,就要标识每个实体存储的详细信息,也称为该实体的属性,这些属性将组成表中的列。简单地说,就是需要细分出每个实体中包含的子成员信息。 **4.标识实体之间的关系:**关系型数据库有一项非常强大的功能,即它能够关联中各个项目的相关信息。不同类型的信息可以单独存储,但是如果需要,数据库引擎还可以根据需要将数据组合起来。在设计过程中,要标识实体之间的关系,首先需要分析数据库表,确定这些表在逻辑上是如何相关的,然后添加关系列建立起表之间的连接概要设计——绘制E-R图
和机械行业需要械制图,建筑行业需要施工图一样,数据库设计也需要图形化的表达方式—E-R图,也可以称为实体—关系图。它包括一些具体特定含义的图形符号。实体—关系模型
1.实体 所谓实体就是指现实世界中具有区分其他事物的特征或属性并与其他事物有联系的事物。 实体一般是名词,对应表中的一行数据。 2.属性 属性可以理解为实体的特性。属性对应表中的列。 3.联系 联系是两个或多个实体之间的关联关系 4.映射基数 映射基数表示通过联系与该实体关联的其他实体的个数。 5.实体关系图 E-R图以图形的方式将数据库的整个逻辑结构表现出来。E-R图的组成包含以下几部分。 –>矩形表示实体集 –>椭圆形表示属性 –>菱形表示联系集 –>直线用来连接属性和实体集,也用来连接实体集和联系集关系数据库模式
用二维表的形式表示实体和实体间联系的数据模型称为关系模型。关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述。一个关系通常对应一张表。关系模式表示为如下形式: R(U)或者R(A,B)
建立实体间练习的转换
实体间的转换分成一对一,一对多,多对多三种,当两个实体各自转化为关系模式后,实体间联系的转换如下: 1.一对一的转换:把任意实体的主键放到另一个实体的关系模式中。 2.一对多的转换:把联系数量为1的实体的主键放到联系数量为N的实体关系模式中。 3.多对多的转换:把两个实体中的主键和联系的属性放到另一个关系模式中,注意多生成一个关系模式。数据规范化
数据规范化会出现的设计问题:
1.信息重复 2.更新异常 3.插入异常(无法显示某些异常)4.删除异常(丢失有用的信息)规范设计
1.第一范式的目标是确保每列的原子性。 2.第二范式在第一范式的基础上更进一步,其目标是确保表中的每列都和主键相关,如果一个关系满足第一范式,并且除了主键以外的其他列都全部依赖于该主键,则满足第二范式。 3.第三范式在第二范式的基础上更进一层,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关。如果一个关系满足第二范式,并且除了主键以外的其他列都只能依赖于主键列,列和列之间不存在相互依赖关系,则满足第三范式。总结
转载地址:https://blog.csdn.net/weixin_46175284/article/details/106082150 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月25日 10时36分28秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Lua(十六)——文件
2019-04-27
Lua(十七)——面向对象
2019-04-27
Lua(十八)——错误处理,垃圾回收
2019-04-27
xLua(一)——介绍
2019-04-27
xLua(二)——下载
2019-04-27
xLua(三)——在C#中访问Lua代码
2019-04-27
xLua(四)——C#访问Lua的基本类型
2019-04-27
xLua(五)——C#访问Lua的table
2019-04-27
xLua(六)——C#访问Lua的function
2019-04-27
基础知识——常用单位介绍
2019-04-27
xLua(七)——Lua访问C#(一)
2019-04-27
xLua(八)——Lua访问C#(二)
2019-04-27
Unity中实现解析Json文件
2019-04-27
Unity自带Json解析库——JsonUtility
2019-04-27
Unity中使用ViedoPlayer操作视频文件
2019-04-27
C#中的的输入与输出
2019-04-27
C#中@符号的作用
2019-04-27
C#中$符号的作用
2019-04-27
Mac装windows系统后如何更换触控板设置
2019-04-27
Windows系统下如何设置软件的快捷键
2019-04-27