导航:首页 > 数据处理 > 软件开发如何选数据库

软件开发如何选数据库

发布时间:2024-11-20 00:52:51

1. 如何选择数据库

如何选择数据库

完整的存储进去,完整的取出来,不需要额外的操作。

NoSQL 比 RDB 有更强的扩展性,可以充分利用分布式系统来提升读写性能和可靠性。

这不是谁设计好坏的问题,而是跟他们要解决的问题有关:RDB 诞生于互联网萌芽的时代,那时数据的准确、可靠是最重要的,而 NoSQL 诞生于互联网快速发展普及的时代,大数据、分布式、扩展性成了数据库的另一个重要特性。

总结一下:

  • RDB 首先得是准确、可靠,然后才向更高的“可拓展性”发展;

  • 而 NoSQL 生而分布式,可拓展性强,然后才向更高的“准确性”发展。

  • NoSQL ,not only SQL,其实就是对那种打破了 RDB 严格事务和关系模型约束的那些数据库的泛指,而随着要解决的问题的不同,又诞生了各种各样的 NoSQL。

    首先是“列式数据库”(Column-oriented DBMS),数据量上去了,我们想分析网站用户的年龄分布,简单说,就是你需要对同一个特征进行大数据量的分析统计,于是把原来 RDB 的“按行存储”的范式打破,变成了“按列存储”,比如 HBase;

    然后你发现有些数据变动不是很大,但是经常需要被查询, 查询时还要关联很多张表,于是你把这些来自不同表的数据,揉成一个大对象,按 key-value 的格式存起来,比如 Redis;

    再后来你需要对博客内容进行相关性搜索,传统 RDB 不支持相关性搜索,最重要的,还是扩展性差,增加机器的带来边际效益有限,于是有了“全文搜索引擎”,比如 Elasticsearch;

    除此之外,还有“文档数据库”、“图形数据库”……

    没有一种数据库是银弹。

    总结

    这篇文章的题目是“如何选择数据库”,这是困扰很多人的问题,那么多数据库,到底要选什么好?

    可是当你问出这样一个问题时,其实你是在问一种“手段”。我现在要做这样一个需求,用什么数据库可以帮我实现它?

    但其实你需要的不只是一种“手段”,因为如果对方甩给你一个冷冰冰的名字,Mysql、Elasticsearch、MongoDB,你肯定会问,凭什么?

    你需要的,是一种“解决方案”。如果你需要数据十分严格准确,分毫不差,那我会推荐你采用“事务”和“关系模型”来处理数据;如果你需要数据能够被大量读取和写入,那我会推荐你扩展性强的“分布式”;如果你的数据经常是整个读取、整个更新的,那“关系模型”就没有“文档模型”适合你。

    “事务”、“关系模型”、“分布式”、“文档模型”等等,这些就是“解决方案”,知道用什么“解决方案”,用哪个数据库,自然水到渠成。

    正如一位大牛说的:

  • 设计实践中,要基于需求、业务驱动架构。无论选用 RDB/NoSQL,一定是以需求为导向,最终数据存储方案必然是各种权衡的综合性设计。
  • 用户不会因为你用了 Mysql 或者 MongoDB 而使用你的软件,毕竟绝大多数用户都不知道 Mysql 和 MongoDB 是什么玩意。

    2. 该选择哪个开源数据库哪一个更好

    如果打算为项目选择一款免费、开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定。MySQL与PostgreSQL都是免费、开源、强大、且功能丰富的数据库。你主要的问题可能是:哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据库呢?

    在选择数据库时,你所做的是个长期的决策,因为后面如果再改变决定将是非常困难且代价高昂的。你希望一开始就选择正确。两个流行的开源数据库MySQL与PostgreSQL常常成为最后要选择的产品。对这两个开源数据库的高层次概览将会有助于你选择最适合自己需要的。

    MySQL

    MySQL相对来说比较年轻,首度出现在1994年。它声称自己是最流行的开源数据库。MySQL就是LAMP(用于Web开发的软件包,包括Linux、Apache及Perl/PHP/Python)中的M。构建在LAMP栈之上的大多数应用都会使用MySQL,包括那些知名的应用,如WordPress、Drupal、Zend及phpBB等。

    一开始,MySQL的设计目标是成为一个快速的Web服务器后端,使用快速的索引序列访问方法(ISAM),不支持ACID。经过早期快速的发展之后,MySQL开始支持更多的存储引擎,并通过InnoDB引擎实现了ACID。MySQL还支持其他存储引擎,提供了临时表的功能(使用MEMORY存储引擎),通过MyISAM引擎实现了高速读的数据库,此外还有其他的核心存储引擎与第三方引擎。

    MySQL的文档非常丰富,有很多质量不错的免费参考手册、图书与在线文档,还有来自于Oracle和第三方厂商的培训与支持。

    MySQL近几年经历了所有权的变更和一些颇具戏剧性的事件。它最初是由MySQL AB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个版本:Standard、Enterprise、Classic、Cluster、Embedded与Community。其中有一些是免费下载的,另外一些则是收费的。其核心代码基于GPL许可,对于那些不想使用GPL许可的开发者与厂商来说还有商业许可可供使用。

    现在,基于最初的MySQL代码还有更多的数据库可供选择,因为几个核心的MySQL开发者已经发布了MySQL分支。最初的MySQL创建者之一Michael "Monty" Widenius貌似后悔将MySQL卖给了Sun公司,于是又开发了他自己的MySQL分支MariaDB,它是免费的,基于GPL许可。知名的MySQL开发者Brian Aker所创建的分支Drizzle对其进行了大量的改写,特别针对多CPU、云、网络应用与高并发进行了优化。

    PostgreSQL

    PostgreSQL标榜自己是世界上最先进的开源数据库。PostgreSQL的一些粉丝说它能与Oracle相媲美,而且没有那么昂贵的价格和傲慢的客服。它拥有很长的历史,最初是1985年在加利福尼亚大学伯克利分校开发的,作为Ingres数据库的后继。

    PostgreSQL是完全由社区驱动的开源项目,由全世界超过1000名贡献者所维护。它提供了单个完整功能的版本,而不像MySQL那样提供了多个不同的社区版、商业版与企业版。PostgreSQL基于自由的BSD/MIT许可,组织可以使用、复制、修改和重新分发代码,只需要提供一个版权声明即可。

    可靠性是PostgreSQL的最高优先级。它以坚如磐石的品质和良好的工程化而闻名,支持高事务、任务关键型应用。PostgreSQL的文档非常精良,提供了大量免费的在线手册,还针对旧版本提供了归档的参考手册。PostgreSQL的社区支持是非常棒的,还有来自于独立厂商的商业支持。

    数据一致性与完整性也是PostgreSQL的高优先级特性。PostgreSQL是完全支持ACID特性的,它对于数据库访问提供了强大的安全性保证,充分利用了企业安全工具,如Kerberos与OpenSSL等。你可以定义自己的检查,根据自己的业务规则确保数据质量。在众多的管理特性中,point-in-time recovery(PITR)是非常棒的特性,这是个灵活的高可用特性,提供了诸如针对失败恢复创建热备份以及快照与恢复的能力。但这并不是PostgreSQL的全部,项目还提供了几个方法来管理PostgreSQL以实现高可用、负载均衡与复制等,这样你就可以使用适合自己特定需求的功能了。

    3. 应用程序如何与数据库建立连接

    1、首先打开visual studio 2017开发工具进入软件主界面。

    4. 如何选择简单易用的数据库

    1.数据量太大,比如上亿,就用oracle,优点上亿数据对Oracle来说轻飘飘的,也不用太多优化配置,缺点安装比较麻烦,上手比较慢。

    2.数据量较大,比如千万级,用postgresql,它号称对标Oracle,处理千万级数据还是可以的,也是易学易用。

    3.数据量一般,比如百万级,用mysql,这个级别的数据量mysql处理还是比较快的。

    4.数据量较小,比如十万以下,sqlite、access都可以。

    上面是基于单表操作的数据量,你看着选。

    简单易用的数据库哪个比较好?这个要具体看你的用途,如果数据量比较少(10万左右),追求简约简单,免费开源的sqlite就行,如果数据量比较多,考虑到高并发、分布式,可以使用专业的mysql、postgresql,下面我分别简单介绍一下,感兴趣的朋友可以尝试一下:

    小巧灵活sqlite

    这是基于c语言开发的一个轻量级关系型数据库,短小精悍、免费开源,个人使用无需繁琐的配置,只需一个简单的运行库便可直接使用,针对各种编程语言都提供了丰富的API接口, java、 python、c#等都可轻松操作,如果你存储数据量不多,只是本地简单的操作(读多写少),可以使用一下这个数据库,占用内存非常少,轻便灵活,当然,在高并发、数据量大的情况下就不合适了:

    专业强大mysql

    这是目前应该广泛使用的一个关系型数据库,免费开源跨平台,在信息系统开发方面一直占据着主力位置,如果你从事于web开发或者网站后台建设,那么这个数据库一定非常熟悉,支持高并发、分布式,存储数据量相对于sqlite来说,更多也更安全,索引、触发器、存储过程等功能非常不错,支持数据导入导出、恢复备份,只要你熟悉一下基本使用过程,很快就能掌握和运用:

    免费开源postgresql

    这是加州大学计算机系开发的一个对象-关系型数据库(自由软件),免费、开源、跨平台,支持流计算、全文检索、图式搜索、并行计算、存储过程、空间数据、K-V类型,相比较mysql来说,在复杂查询、高并发下更稳定、性能更优越,可扩展性、可维护性非常不错,但也有劣势,例如新旧版本不分离存储,没有Coverage index scan等,总体使用效果来说还不错:

    当然,除了以上3个数据库,还有许多其他数据库,像mssql、oracle等也都非常不错,对于存储和处理数据来说绰绰有余,只要你熟悉一下基本使用过程,很快就能入门的,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

    最符合初学者理解和入门的是Access,因为它和Excel本来就是一个套件,相互转化容易,复制粘贴即可,非常好理解库、表、字段、键的概念。

    如果数据量不大,强烈推荐试试Filemaker,脚本化编程,自由定制输入界面、工作流程,非常便捷高效。

    最近杀出来的airtable,更是简单高效,界面美观,操作与电子表格相当,发展势头也非常迅猛。

    二者侧重点有所不同,用户可根据需要选择

    作为一个软件开发人员,长期需要和数据库打交道,个人更加青睐于MySQL。虽然可能基于你的Excel原因,有些人会建议你使用Access数据库,但是基于我个人的 意见,我并不建议你那样做。采用MySql的具体理由如下:

    1.MySQL具有普遍性,在国内的环境中,绝大多数的互联网企业采用的是MySQL。有了广大的用户基础后,针对于各种问题网上也能更好地找到解决方案。

    2.MySQL相对于Oracle而言,更加轻量化,针对于从Excel量级的数据,没必要使用Oracle。同时MySQL是完全免费的,不用担心版权及费用问题,无论对个人还是对预算有限的企业而言都是很好的选择。

    3.MySQL高度兼容标准SQL,这对于以后迁移到其他数据库而言,也能很大程度地降低学习成本。

    希望我的回答能够对你有所帮助!!![耶][耶][耶]

    Excel办公确实便利,可以做一些简单的数据分析,但涉及大量复杂的数据运算,就会遇到和题主一样的问题,运算速度慢,如果主机性能不是很好,还有可能面临电脑死机,数据丢失等问题。

    遇到这种情况,我们该如何解决呢?数据库的重要性显而易见!

    现在, 我将用3分钟的时间,与您探讨该选择何种数据库,以及选择它的理由,是否有更优的解决方案呢?

    MySQL数据库,90%的企业都会选择它

    数据库选得好,企业的数据安全,资产安全,也就得到了保障。那么该如何选择数据库呢?这个跟你的业务量和业务服务行业,密不可分。

    如果你只是上班打卡,用SQL server就可以了;

    如果你要储存会话信息,用户配置信息,购物车数据,建议使用NoSQL数据库;

    不过90%的企业或个人,首选数据库都是MySQL数据库。

    为什么这么说?

    因为,它集 低成本、高可用、可靠性强、易用性强、体积小、速度快开放源码 等特性于一身,所以在金融、财务、网站、 数据处理 等应用领域,它占据着独一无二的优势。

    这也是几乎所有企业都选择它,来存储数据的原因。

    加之MySQL数据库,支持多种存储引擎,支持大型数据库,可以处理成千上万条记录,还提供用于管理、检查、优化数据库操作的工具。

    因而,MySQL尤其受个人,以及中小企业的推崇。

    虽然MySQL数据库简单易用,但我还是不会部署该怎么办?

    别担心,现在市面上已经出现了,一种自带数据库的新型办公软件。

    比如说,云表企业应用平台,一款兼容excel功能,但功能更为强大的办公软件,它就内嵌了MySQL数据库。 (文末有免费获取方式)

    云表内嵌的MySQL数据库,有何优点?

    1. 性能更加优化,更加兼容系统。因为云表的研发人员,时刻更新维护MySQL数据库。

    2. 省去自己手动部署的麻烦。但如果你熟悉部署数据库,想把数据库改成Oracle或SQL server等数据库,也可以设置。(不过,我建议IT小白还是 “拿来即用” 就好)

    3. 快速实时计算。数据分析实时交互,完全满足管理决策中的临时性分析,多变的业务需求,以及频繁的结果刷新。

    4. 通过自带的内存计算引擎,无需事先建立CUBE,IT部门将告别报表延时报表分析,亿级数据秒级响应。

    内嵌的MySQL数据库是否可靠

    云表不仅是一款办公软件,同时还是一款开发工具。

    通过它,你将解决以下问题:

    复杂的数据运算,精确到行列的权限管控,以及工作流,海量用户同时在线办公,数据透视,制作像销售单,洽谈合同等表单报表,一份制作,即可重复录用......

    你还可以通过它,与电子称、地磅等进行对接,与用友金蝶等三方系统集成,生成条形码,扫码出入库,生成移动端APP...... 基本上业务所需的功能,你都可以放心交给它做。

    它最大的亮点就是,你可以 用使用excel的手法,用它来开发业务应用。

    而且,可视化的 拖拉拽 之后,开发出来的ERP、WMS、OA、进销存等业务应用,还秉承了MySQL数据库增删改查的功能特性。

    没错,用云表开发出来的业务应用,是允许二次开发的,而且功能可以随时增删改查,轻松满足大集团精细化的数据控制需求。

    不过,大家最关心的应该是数据安全问题吧。

    数据存放在云表内嵌的MySQL数据库,是安全不丢失的,它提供了多种数据存储的方式,本地部署,云端部署,混合部署,任君挑选!

    正因如此,像 恒逸石化、许继电气、航天科工委、中铁、中冶、云南小松 等大型集团,才鼓励内部员工去学习云表。

    篇幅所限,只说到这里,说太多你也不会看。

    免费 的软获取方式在下方:

    数据库的用处可大着呢,不仅可以实现数据共享,减少数据冗余度,还能实现对数据的集中控制,保持数据的一致性和可维护性。选取简单易用的数据库,你有什么好的建议呢,留言让我们看到噢!

    题主强调了简单易用。所以推荐最简单三个。

    1.Access。

    2.Excel。

    3.飞书文档、腾讯文档、石墨文档等的表格。

    如果要做分析,数据量才比较大,建议Access,还是专业的更好一些。网上教程也很多,比较容易学。而且建议用早一点的版本,比如2003或者2007,Access这些年微软一直想从office里去掉,奈何用的人还是很多,所以不敢去掉,但是采取了一种比较恶心的方法让用户放弃,就是每发布一个新版本,就去掉一些好用的功能,所以说Access是越早的功能越强。

    还一个推荐就是Sql Server Express版本,是SQL Server的免费版本,不要钱,基本功能都有,要比sqllite等强大的多

    这要结合你个人实际情况来定,有计算机基础,懂一点数据库的话那么市场上的那些软件都可以用,常用有oracle,sqlserver,mysql等,要上手快还是sqlserver比较快,界面操作也比较直观;如果一点基础都没有,但是又要分析数据的话可以用微软自带的一个access,这个上手比较快。决定用哪一种之后还是要买点教材看,简单的sql查询要会,熟练之后也能提高工作效率。

    个人使用数据库的话,只存数据不做分析,SQLite就足够了。

    阅读全文

    与软件开发如何选数据库相关的资料

    热点内容
    互联网如何引流程序员 浏览:106
    执行主程序exe是什么意思 浏览:203
    smt技术分享网站有哪些 浏览:533
    如何查询所有运行程序 浏览:560
    去迪拜哪里有劳务市场 浏览:502
    搞技术怎么兼职 浏览:202
    什么程序转发消息 浏览:854
    苹果手机视频怎么看具体大小信息 浏览:245
    有哪些记账软件能导入微信数据 浏览:589
    小辣椒今年市场多少钱一斤 浏览:668
    怎么推销一款产品 浏览:646
    颜值祛痘精华液代理商怎么样 浏览:412
    eclipse窗口程序在哪里 浏览:161
    早上怎么发信息给男生惊喜 浏览:188
    交易成功后多久追加 浏览:182
    抖音怎么让人看不到销售数据 浏览:459
    麦吉士什么产品好 浏览:925
    代理祛斑霜哪个厂家好代理 浏览:203
    甘肃航空职业技术学校怎么样 浏览:688
    楼兰混动用的什么技术 浏览:732