数据库设计分为哪几个步骤

数据库设计分为哪几个步骤,第1张

(1)存储记录结构设计综合分析数据存储要求和应用需求,设计存储记录格式

(2)存储空间分配存储空间分配有两个原则:①存取频度高的数据尽量安排在快速、随机设备上,存取频度低的数据则安排在速度较慢的设备上

②相互依赖性强的数据尽量存储在同一台设备上,且尽量安排在邻近的存储空间上

从提高系统性能方面考虑,应将设计好的存储记录作为一个整体合理地分配物理存储区域

尽可能充分利用物理顺序特点,把不同类型的存储记录指派到不同的物理群中

(3)访问方法的设计一个访问方法包括存储结构和检索机构两部分

存储结构限定了访问存储记录时可以使用的访问路径;检索机构定义了每个应用实际使用的访问路径

(4)物理设计的性能评价①查询响应时间从查询开始到有结果显示之间所经历的时间称为查询响应时间

查询响应时间可进一步细分为服务时间、等待时间和延迟时间

在物理设计过程中,要对系统的性能进行评价

性能评价包括时间、空间、效率、开销等各个方面

⊙CPU服务时间和I/O服务时间的长短取决于应用程序设计

⊙CPU队列等待时间和I/O队列等待时间的长短受计算机系统作业的影响

⊙设计者可以有限度地控制分布式数据库系统的通信延迟时间

②存储空间存储空间存放程序和数据

程序包括运行的应用程序、DBMS子程序、OS子程序等

数据包括用户工作区、DBMS工作区、OS工作区、索引缓冲区、数据缓冲区等

存储空间分为主存空间和辅存空间

设计者只能有限度地控制主存空间,例如可指定缓冲区的分配等

但设计者能够有效地控制辅存空间

③开销与效率设计中还要考虑以下各种开销,开销增大,系统效率将下降

⊙事务开销指从事务开始到事务结束所耗用的时间

更新事务要修改索引、重写物理块、进行写校验等 *** 作,增加了额外的开销

更新频度应列为设计的考虑因素

⊙报告生成开销指从数据输入到有结果输出这段时间

报告生成占用CPU及I/O的服务时间较长

设计中要进行筛选,除去不必要的报告生成

⊙对数据库的重组也是一项大的开销

设计中应考虑数据量和处理频度这两个因数,做到避免或尽量减少重组数据库

在物理设计阶段,设计、评价、修改这个过程可能要反复多次,最终得到较为完善的物理数据库结构说明书

建立数据库时,DBA依据物理数据库结构说明书,使用DBMS提供的工具可以进行数据库配置

在数据库运行时,DBA监察数据库的各项性能,根据依据物理数据库结构说明书的准则,及时进行修正和优化 *** 作,保证数据库系统能够保持高效率地运行

6

程序编制及调试在逻辑数据库结构确定以后,应用程序设计的编制就可以和物理设计并行地展开程序模块代码通常先在模拟的环境下通过初步调试,然后再进行联合调试

联合调试的工作主要有以下几点:(1)建立数据库结构根据逻辑设计和物理设计的结果,用DBMS提供的数据语言(DDL)编写出数据库的源模式,经编译得到目标模式,执行目标模式即可建立实际的数据库结构

(2)调试运行数据库结构建立后,装入试验数据,使数据库进入调试运行阶段

运行应用程序,测试(3)装入实际的初始数据在数据库正式投入运行之前,还要做好以下几项工作:(1)制定数据库重新组织的可行方案

(2)制定故障恢复规范(3)制定系统的安全规范7

运行和维护数据库正式投入运行后,运行维护阶段的主要工作是:(1)维护数据库的安全性与完整性

按照制定的安全规范和故障恢复规范,在系统的安全出现问题时,及时调整授权和更改密码

及时发现系统运行时出现的错误,迅速修改,确保系统正常运行

把数据库的备份和转储作为日常的工作,一旦发生故障,立即使用数据库的最新备份予以恢复

(2)监察系统的性能

运用DBMS提供的性能监察与分析工具,不断地监控着系统的运行情况

当数据库的存储空间或响应时间等性能下降时,立即进行分析研究找出原因,并及时采取措施改进

例如,可通修改某些参数、整理碎片、调整存储结构或重新组织数据库等方法,使数据库系统保持高效率地正常运作

(3)扩充系统的功能在维持原有系统功能和性能的基础上,适应环境和需求的变化,采纳用户的合理意见,对原有系统进行扩充,增加新的功能

文中使用公司部门结构树作为栗子,要在mysql中存储这个公司部门结构树

邻接表想必大家都不陌生吧,用邻接表的关键是,在每个节点存储他的父节点的id。

在每一个部门信息中都存储了他的父节点id,parent_id字段

导入数据的过程就不说了,直接来看下数据吧:

这里使用常用的几种查询方式来看下这种方案的查询

可以通过parent_id做查询条件,可以快速查询到一个部门的直属下级部门

通过部门信息中的parent_id去查相应的父节点信息就可以快速实现

这种数据存储结构下,更新数据是比较方便快捷的,添加数据时直接找准父节点的id,组织部门变更时,也直接变更父id就好了,删除时候,看自己业务是否需要删除子节点这几种情况,

路径标的要点,就是每个节点存储根节点到该节点的路径,其实我觉得和别的几种方案可以共用

在每一个部门信息中都存储了他完整的路径,path字段

导入数据的过程就不说了,直接来看下数据吧:

使用路径表,通过path这个字段查询起来是比较困难的,一般都需要使用like,CONCAT函数、REPLACE函数等做字符串的处理逻辑,查询起来比较复杂,这里不做展示了,线上服务不建议使用这种方式,查询效率低会影响到服务性能,一般建议和邻接表方式统一使用,同时添加parent_id和path字段,parent_id用来查询,path用来查看节点完整的路径

这种数据存储结构下,更新数据是比较方便快捷的,添加数据时直接找准路径就好,组织部门变更时,也直接找准路径就好,删除时候,看自己业务是否需要删除子节点这几种情况,

Closure Table,百度直译过来叫闭合表,大多数人叫做闭包表,这种方案的要点是存储公司部门信息主表中,不存储节点关系的数据,使用另一张关系表来存储节点之间的关系,其中包含了任何两个有关系(上下级)节点的关联信息

公司部门信息主表,只需要存储部门的本身信息

主要包括三个字段

要点就是关系表的一条记录是一个上级节点、下级节点、与他们之间的路径距离。拿部门结构图来举例子

总公司-企划部的关系数据是:

总公司-大区A的关系数据是:

关系表中存储所有的节点路径信息,还用distance表示路径的距离,需要把树形结构中每两个节点之间的路径信息都维护进来。

数据存储的过程就拿导入总公司-门店A的过程做个示例。主表的数据存储就不说,说下关系中,存储部门结构的路径信息,总公司-门店A总共包含以下几条路径:

看到了么,是存储了所有总公司-门店A之间的路径信息

这里使用常用的几种查询方式来看下这种方案的查询

这种数据存储结构下,更新数据比较麻烦,因为他存储了两节点直接所有路径信息(包括中间节点的)

问题一:请教如何将文件存储到数据库中? 将文件保存到数据库中,实际上是将文件转换成二进制流后,将二进制流保存到数据库相应的字段中。在SQL Server中该字段的数据类型是Image,在Access中该字段的数据类型是OLE对象。保存文件到SQL Server数据库中FileInfo fi=new FileInfo(fileName);FileStream fs=fiOpenRead();byte[] bytes=new byte[fsLength];fsRead(bytes,0,ConvertToInt32(fsLength));Sqlmand cm=new Sqlmand();cmConnection=;cmmandType=mandTypeText;if(State==0) Open();cmmandText=insert into +tableName+(+fieldName+) values(@file);SqlParameter spFile=new SqlParameter(@file,SqlDbTypeImage);spFileValue=bytes;cmParametersAdd(spFile);cmExecuteNonQuery()保存文件到Access数据库中FileInfo fi=new FileInfo(fileName);FileStream fs=fiOpenRead();byte[] bytes=new byte[fsLength];fsRead(bytes,0,ConvertToInt32(fsLength));OleDbmand cm=new OleDbmand();

问题二:如何保存sql数据库 右键数据库,属性,查看数据库路径,如图

停止服务管理器,然后拷出来就行了

问题三:数据库文件怎样保存到压缩包里 数据库设计二进制字段就可以了,读取文件,写入数据库就行了

问题四:数据库文件的默认存放位置? 很长,一时间想不起来

不过你可以先创建一个默认的数据库

然后点击数据库属性,里面有路径

把它复制到文件夹地址就行了

希望对你能有所帮助

问题五:数据库怎么存储文件 以二进制的方式处理。

如果使用 SQLServer 数据库,创建 varbinary(max) 类型的字段。

如果使用 Oracle 数据库,创建 blog 类型的字段。

问题六:sql数据库如何导出? 使用Discuz! X15自带的导出功能

问题七:如何像数据库中保存? 一般图像是不保存在数据库的而是先将放在工程下的某个文件夹中,将所在的工程文件路径存在数据库中,当程序加载的时候,从数据库中读取的路径,然后根据路径在工程的文件夹中读取文件

问题八:如何用SQL数据库存放视频 用iamge类型,写入的时间用流写入,读出的时间同样需要流转换

问题九:sql 存储过程怎样保存 greate 应该是CREATE

use tbuser

go

Create procedure search_login

@username varchar(50),@userpass varchar(50)

as

BEGIN

select from tbuser where [email protected] and [email protected]

END

只要点执行就存在服务器里了

保存本地,直接点保存就行了。

问题十:如何将数据库导出成sql文件 您好,很高兴为您解答。

1、打开SQL Server Management Studio 2008 ,连接到数据库服务器,展开对象资源管理器到数据库节点

2、选择需要将数据导出到脚本的数据库,将包含所有的存储过程,表,视图,表里的数据等等。

3、右击选中的数据,按照以下路径选择生成脚本向导 :AdventureWorks -〉任务 -〉生成脚本

4、当点击生成脚本,d出一个向导--生成数据库对象脚本。

5、下一步到达设置脚本编写选项,进入高级设置对话框,关键是要编写脚本的数据类型这里,默认是仅限架构,选择架构和数据或者是数据都可以吧数据导成脚本

执行完就可以看到结果了

如若满意,请点击右侧采纳答案,如若还有问题,请点击追问

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

以上就是关于数据库设计分为哪几个步骤全部的内容,包括:数据库设计分为哪几个步骤、如何在关系型数据库中存储树形结构、数据库怎么保存文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10180140.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存