大型数据库的设计原则与开发技巧

大型数据库的设计原则与开发技巧,第1张

随着计算机技术越来越广泛地应用于国民经济的各个领域 在计算机硬件不断微型化的同时 应用系统向着复杂化 大型化的方向发展 数据库是整个系统的核心 它的设计直接关系系统执行的效率和系统的稳定性 因此在软件系统开发中 数据库设计应遵循必要的数据库范式理论 以减少冗余 保证数据的完整性与正确性 只有在合适的数据库产品上设计出合理的数据库模型 才能降低整个系统的编程和维护难度 提高系统的实际运行效率 虽然对于小项目或中等规模的项目开发人员可以很容易地利用范式理论设计出一套符合要求的数据库 但对于一个包含大型数据库的软件项目 就必须有一套完整的设计原则与技巧

一 成立数据小组

大型数据库数据元素多 在设计上有必要成立专门的数据小组 由于数据库设计者不一定是使用者 对系统设计中的数据元素不可能考虑周全 数据库设计出来后 往往难以找到所需的库表 因此数据小组最好由熟悉业务的项目骨干组成

数据小组的职能并非是设计数据库 而是通过需求分析 在参考其他相似系统的基础上 提取系统的基本数据元素 担负对数据库的审核 审核内容包括审核新的数据库元素是否完全 能否实现全部业务需求 对旧数据库(如果存在旧系统)的分析及数据转换 数据库设计的审核 控制及必要调整

二 设计原则

规范命名 所有的库名 表名 域名必须遵循统一的命名规则 并进行必要说明 以方便设计 维护 查询

控制字段的引用 在设计时 可以选择适当的数据库设计管理工具 以方便开发人员的分布式设计和数据小组的集中审核管理 采用统一的命名规则 如果设计的字段已经存在 可直接引用 否则 应重新设计

库表重复控制 在设计过程中 如果发现大部分字段都已存在 开发人员应怀疑所设计的库表是否已存在 通过对字段所在库表及相应设计人员的查询 可以确认库表是否确实重复

并发控制 设计中应进行并发控制 即对于同一个库表 在同一时间只有一个人有控制权 其他人只能进行查询

必要的讨论 数据库设计完成后 数据小组应与相关人员进行讨论 通过讨论来熟悉数据库 从而对设计中存在的问题进行控制或从中获取数据库设计的必要信息

数据小组的审核 库表的定版 修改最终都要通过数据小组的审核 以保证符合必要的要求

头文件处理 每次数据修改后 数据小组要对相应的头文件进行修改(可由管理软件自动完成) 并通知相关的开发人员 以便进行相应的程序修改

三 设计技巧

分类拆分数据量大的表 对于经常使用的表(如某些参数表或代码对照表) 由于其使用频率很高 要尽量减少表中的记录数量 例如 银行的户主账表原来设计成一张表 虽然可以方便程序的设计与维护 但经过分析发现 由于数据量太大 会影响数据的迅速定位 如果将户主账表分别设计为活期户主账 定期户主账及对公户主账等 则可以大大提高查询效率

索引设计 对于大的数据库表 合理的索引能够提高整个数据库的 *** 作效率 在索引设计中 索引字段应挑选重复值较少的字段 在对建有复合索引的字段进行检索时 应注意按照复合索引字段建立的顺序进行 例如 如果对一个 万多条记录的流水表以日期和流水号为序建立复合索引 由于在该表中日期的重复值接近整个表的记录数 用流水号进行查询所用的时间接近 秒 而如果以流水号为索引字段建立索引进行相同的查询 所用时间不到 秒 因此在大型数据库设计中 只有进行合理的索引字段选择 才能有效提高整个数据库的 *** 作效率

数据 *** 作的优化 在大型数据库中 如何提高数据 *** 作效率值得关注 例如 每在数据库流水表中增加一笔业务 就必须从流水控制表中取出流水号 并将其流水号的数值加一 正常情况下 单笔 *** 作的反应速度尚属正常 但当用它进行批量业务处理时 速度会明显减慢 经过分析发现 每次对流水控制表中的流水号数值加一时都要锁定该表 而该表却是整个系统 *** 作的核心 有可能在 *** 作时被其他进程锁定 因而使整个事务 *** 作速度变慢 对这一问题的解决的办法是 根据批量业务的总笔数批量申请流水号 并对流水控制表进行一次更新 即可提高批量业务处理的速度 另一个例子是对插表的优化 对于大批量的业务处理 如果在插入数据库表时用普通的Insert语句 速度会很慢 其原因在于 每次插表都要进行一次I/O *** 作 花费较长的时间 改进后 可以用Put语句等缓冲区形式等满页后再进行I/O *** 作 从而提高效率 对大的数据库表进行删除时 一般会直接用Delete语句 这个语句虽然可以进行小表 *** 作 但对大表却会因带来大事务而导致删除速度很慢甚至失败 解决的方法是去掉事务 但更有效的办法是先进行Drop *** 作再进行重建

数据库参数的调整 数据库参数的调整是一个经验不断积累的过程 应由有经验的系统管理员完成 以Informix数据库为例 记录锁的数目太少会造成锁表的失败 逻辑日志的文件数目太少会造成插入大表失败等 这些问题都应根据实际情况进行必要的调整

必要的工具 在整个数据库的开发与设计过程中 可以先开发一些小的应用工具 如自动生成库表的头文件 插入数据的初始化 数据插入的函数封装 错误跟踪或自动显示等 以此提高数据库的设计与开发效率

避免长事务 对单个大表的删除或插入 *** 作会带来大事务 解决的办法是对参数进行调整 也可以在插入时对文件进行分割 对于一个由一系列小事务顺序 *** 作共同构成的长事务(如银行交易系统的日终交易) 可以由一系列 *** 作完成整个事务 但其缺点是有可能因整个事务太大而使不能完成 或者 由于偶然的意外而使事务重做所需的时间太长 较好的解决方法是 把整个事务分解成几个较小的事务 再由应用程序控制整个系统的流程 这样 如果其中某个事务不成功 则只需重做该事务 因而既可节约时间 又可避免长事务

适当超前 计算机技术发展日新月异 数据库的设计必须具有一定前瞻性 不但要满足当前的应用要求 还要考虑未来的业务发展 同时必须有利于扩展或增加应用系统的处理功能

lishixinzhi/Article/program/SQL/201311/16498

所谓云端数据库,从用户的角度来看,就是你的数据库不在本地,而在“云库”供应商那里。而云库供应商具体如何实现云端数据库,方法不太一定,有好多种方式。

目前通用的方式,是使用大量较为廉价的PC Server,虚拟出一台台服务器,然后将服务器分配给用户,用户就可以在此虚拟出的服务器上建自己的数据库。数据的类型可以选择SQLServer、Oracle等等。这里面涉及分布式、虚拟化、资源控制与隔离,等诸多问题。其实目前各云库供应商还都在探索中。

云库的性能,足以满足中、小企业的需求。

云库的最大优势是减少成本。这里所说的成本,包括企业自建数据库的硬件投入、与运维成本。云库的基础设施由厂商统一提供,因此厂商的规模很容易达到很高的量级。只要前期架构合理,规模化是可以大幅度减少成本的。这比各个企业自建数据库成本更低。除了基础设施带来的成本优势,云库供应商会提供一些自动化运维的工具或功能,这会降低企业的运维成本。但这一点所带来的效果,目前看还不一定。云库供应商的自动运维,可以让小企业不再雇佣专职的DBA,但绝大多数小企业,本身就没有专职的DBA。因此运维成本这块,还要看以后的发展。

云库目前最大的缺点是,安全性因素目前还不好说,这是云库的软肋。

大数据与云计算应该怎么学?

学习大数据必须掌握的技术

Hadoop

高效、可靠、可伸缩的Hadoop——能够为你的数据存储项目提供所需的YARN、HDFS和基础架构,并且运行主要的大数据服务和应用程序。hadoop擅长日志分析,facebook就用Hive来进行日志分析。

Hive

Hive是建立在Hadoop上的数据仓库基础构架。hive的工作模式是:提交一个任务,等到任务结束时被通知,而不是实时查询。相对应的是,类似于Oracle这样的系统当运行于小数据集的时候,响应非常快。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL)——这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。

难易程度分析:

Spark

Spark使用简单,而且可以支持所有重要的大数据语言,如Scala、Python、Java、R等。同时,它还拥有强大的生态系统,且成长迅速,对microbatching/batching/SQL的支持也很简单。最重要的是,Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。

Python

Python的特点是面向对象的解释性的脚本语言,支持多态、继承等高级概念,在Python里使用OOP十分容易 没有C++、Java那样复杂。Python的使用是完全免费的,同时对用户的提问提出快速的支持。

大数据的基础知识,科普类的,自己去买本书就行了,大数据时代这样的书很多介绍的大数据的。

另外大数据的技术,如数据采集,数据存取,基础架构,数据处理,统计分析,数据挖掘,模型预测,结果呈现。

当然一些大数据的一些基础知识,比如java和hadoop等等,这个基本得自学。大学里面最接近这些的也就是计算机类专业。

云计算的话,需要学习的知识应该包括但不限于:1、网络通信知识,包括互联网基础建设相关的所有知识;2、虚拟化知识,应该了解硬件运行原理以及虚拟化实现技术;3、数据库技术;4、网络存储技术;5、网络信息安全技术,最起码得明白什么是iso 17799;6、电子商务;7、容灾及备份技术;8、JAVA编程技术;9、分布式软件系统架构。。。

云计算大数据培训怎么学?

云计算大数据培训这一块的话,只有两种方式可以去学习,其中一种是自学,那么自学的话,自己要给自己编一个大纲和一个进程,也就意味着自己要学什么学什么内容,以及未来的就业方向,要比较明白和清楚。第二种就是通过相关的培训机构去学习相关的云计算和大数据之间的关联,那么他们是有一个老师,也就是导师,在前面引导着你去学习哪些内容?最终可能会推荐你去就业,或者是满足你想要学习的内容。

云计算,大数据怎么区分?

云计算是基于it基础设施的交付和使用模式,大数据就是利用大数据应用与分析,大数据是在云计算的基础上运用

如何结合大数据与云计算

由云计算提供的d性和按需配置,为让企业组织能够试验和尝试解决大数据的新方法提供了核心力量。

企业可以根据供应的基础设施,用不同的迭代方式尝试和 *** 纵他们的数据。基础设施不再限制用什么来处理数据。这些相同的灵活性使企业即使有高可变负载的情况下也不会超支。

云计算与大数据的关系

云计算的关键词在于“整合”,无论你是通过现在已经很成熟的传统的虚拟机切分型技术,还是通过google后来所使用的海量节点聚合型技术,他都是通过将海量的服务器资源通过网络进行整合,调度分配给用户,从而解决用户因为存储计算资源不足所带来的问题。

大数据正是因为数据的爆发式增长带来的一个新的课题内容,如何存储如今互联网时代所产生的海量数据,如何有效的利用分析这些数据等等。

他俩之间的关系你可以这样来理解,云计算技术就是一个容器,大数据正是存放在这个容器中的水,大数据是要依靠云计算技术来进行存储和计算的。

首先,云计算的崛起牵动了大数据的发展,资源整合,高效利用,推动社会发展是他们的价值,早在2006年谷歌就提出了大数据的概念。

云计算与大数据谁是胜者

都有发展之道,都有潜力,要说谁是胜者还是拭目以待!

云计算 物联网 大数据

1、云计算

一般来讲云计算,云端即是网络资源,从云端来按需获取所需要的服务内容就是云计算。云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。广义的云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务。

2、物联网

简单理解:物物相连的互联网,即物联网。物联网在国际上又称为传感网,这是继计算机、互联网与移动通信网之后的又一次信息产业浪潮。世界上的万事万物,小到手表、钥匙,大到汽车、楼房,只要嵌入一个微型感应芯片,把它变得智能化,这个物体就可以“自动开口说话”。再借助无线网络技术,人们就可以和物体“对话”,物体和物体之间也能“交流”,这就是物联网。随着信息技术的发展,物联网行业应用版图不断增长。如:智能交通、环境保护、 工作、公共安全、平安家居、智能消防、工业监测、老人护理、个人健康、花卉栽培、水系监测、食品溯源等。大的理想就是智慧地球,目前实际生活中存在并在建设的智慧城市都是物联网炒的概念。

3、大数据

大数据(big data),就是指种类多、流量大、容量大、价值高、处理和分析速度快的真实数据汇聚的产物。大数据或称巨量资料或海量数据资源,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。

大数据的4V特点:Volume、Velocity、Variety、Veracity。

即:数量Volume、多样性Variety、速度Velocity、和真实性Veracity。

4、大数据,云计算,物联网和移动互联网的关系

物联网对应了互联网的感觉和运动神经系统。云计算是互联网的核心硬件层和核心软件层的集合,也是互联网中枢神经系统萌芽。大数据代表了互联网的信息层(数据海洋),是互联网智慧和意识产生的基础。包括物联网,传统互联网,移动互联网在源源不断的向互联网大数据层汇聚数据和接受数据。云计算与物联网推动大数据发展。

无所谓谁赢谁输,因为两者不是竞争者,而是相辅相成,现在云计算和大数据都很火,很成功。

python 云计算与大数据 工作强度大么

一般吧,这个主要还是看公司,有的公司进度排的比较紧那就强度大点儿。

数据库其实只是一个软件,比如mysql,Oracle DB之类的很多

你只需要安装到某台电脑上,就可以使用了。

然后根据数据库种类以及访问频度不同,需要的硬件配置也不一样。10几个人用,普通PC就可以,几千个人频繁访问的话,就买个服务器吧。

然后关于配置(CPU,内存之类的),你百度 数据库名字+最低配置 就能看到了

以上就是关于大型数据库的设计原则与开发技巧全部的内容,包括:大型数据库的设计原则与开发技巧、什么叫云端数据库、大数据与云计算应该怎么学等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/sjk/10167225.html

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

发表评论

登录后才能评论

评论列表(0条)

保存