• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

做一个涉及数据库的软件,用什么编程语言或者什么软件

数据量不大,数据库用MySQL就足够了。开发语言你想用什么语言基本都可以,就看你熟悉哪种。根据你的描述,要多人同时编辑的话,肯定要几台可操作的机子联网,如果局域网内环境安全的可以考虑本机搭建一个服务器。

一、做一个涉及数据库的软件,用什么编程语言或者什么软件

数据量不大,数据库用MySQL就足够了。开发语言你想用什么语言基本都可以,就看你熟悉哪种。根据你的描述,要多人同时编辑的话,肯定要几台可操作的机子联网,如果局域网内环境安全的可以考虑本机搭建一个服务器,用网页形式做前台窗口再去服务器读写数据,优点搭建环境快捷,开发环境记事本也可以。如果觉得网页形式不好,想做成App,可以考虑用ActionScript,在flash上编程,优点,开发环境不讲究的下载个flash就可以,而且最主要是编辑可视化窗口简单直观,非常适合小工具的开发。

数据库的核心组件有哪些

为了实现这些核心功能,通常数据库会包括以下核心组件:

a. 存储管理

数据用什么样的方式来组织、存储,是key-value还是关系型,是按行存还是按列存,支不支持压缩,支不支持删除和修改,支持什么样的数据类型和存储接口,Posix还是对象存储。是否要支持计算存储分离,是否要支持分布式存储,是否支持事物处理,是否支持多副本,采用什么算法来加速数据的检索(索引)等等。存储管理是数据库的核心组件,解决了存储管理问题,数据库的问题就解决了一半了。

b. 查询优化器

要提高数据查询的效率,数据库必须找到一条优异化的执行路径,比如,查询时是否需要使用索引,如果有多个索引,应该选择哪一个,如果数据分布在不同的存储单元(表、集合等)里,应该按照什么顺序来访问效率较高等等。优化器面对的问题可能是一个极其复杂的路径规划问题,需要它在很短的时间里计算出优异路径,需要大量核心优化算法。属于数据库中复杂程度较高的部分。

举个例子,你要带着全家人,包括老人、小孩一起从上海去海南旅行,要制作一个性价比较好、家人满意度较高的计划,那么在计划时需要考虑哪些因素呢,首先,怎么去,是开车去,还是火车去,还是飞机去。开车,路上要花多久,中间需要休息几次,你和太太有没有时间,老人孩子是不是受得了,汽油费用,过路费用;飞机,怎么去机场,行李有多少,带不带的下,机票有没有打折,下了飞机怎么办等等。住什么酒店,去什么景点,老人喜欢去人多的人文景观,太太喜欢安静的地方和方便购物的地方,小孩喜欢有游乐场的地方,要不要酒店+景点一起订,会不会有优惠,要不要租车,租什么车…说到这里,是不是可以体会一个查询优化器需要考虑的问题有多少?

当然,这部分工作可以有相对简单的实现(基于规则),比如太太说了,时间确定、飞机来回、五星酒店、带私人沙滩。这样计划就会简单很多,也可以复杂到难以想象(基于机器学习、基于实际开销等等),太太说你全权负责,具体时间不确定,大概在8月-9月,要少花钱多办事,多做调研,找一个优异方案。那么做这个计划就会非常复杂,需要的支持决策信息就会非常多。这样做出来的决策大概率相对会优化,比基于规则实现的计划能适应更多场景。

c. 执行模块

优化器做好了执行计划后,接下来就会有执行的模块按照执行计划对数据进行相关的计算,包括数据的存取、常规的加减乘除、排序、平均值、哈希,也会包括一些机器学习的算法,数据的压缩/解压缩,最后将计算完成的结果返回给客户端。

d. 内部管理和调度

数据库要正常的工作,还会需要一些内部协调管理的模块,比如,内存和存储同步,存储空间整理,元数据管理,集群状态检测,容错和故障恢复等。

e. 管理工具和接口

为了提高易用性,数据库都需要提供一套管理工具,比如备份/恢复、状态检测、运行时监控、资源隔离、权限管理、安全审计、自定义接口、各种数据访问接口等。

延伸阅读:

二、什么是数据库

数据库就是英文的“database”翻译来的,data + base,故名思义就是数据的根源,数据的基础。那么为什么要有数据库呢,数据库首先是个计算机软件,在所谓数据库诞生之前,常用方法可能是程序员自己写一个小程序来完成数据处理分析这样的工作。

伴随着计算机的普及,越来越多的场景开始使用计算机,产生了越来越多的数据,也催生了越来越多的数据分析需求。为了降低数据分析的门槛,让更多人能够更方便高效地管理分析数据,工程师们就打造了一种专门的软件来帮助人们对数据进行合理的存储以提高存取效率,提供易用的接口和丰富的分析算法以方便使用,集成有效的管理工具以提高数据安全性等等,这就是数据库,也被称为数据库管理系统(DBMS,Database management system)。

数据库是一整套数据管理体系,包括数据存储的模型、数据组织的架构、数据分析的算法、数据管理的工具以及数据访问的接口等等。

相关文章