嗨,我是一位土木工程师,具有一定的编程经验,但是我对当今可用的各种选择并不熟悉。希望您能给我任何建议以最好的方式进行。
我想以网格格式制作和查询地面测量数据的数据库。在土方作业的各个时间,每个网格位置都会有很多测量值,因此存在第4维时间。
观察结果很可能会从文本文件中读取。在每个记录中,将有一个(2 x整数)个网格位置(行和列),一个(浮点)地平面以及各种字符串信息代码(总共最多30个字符)。
网格可以是大约10000行x 10000列。并非每次调查中网格上的每个位置都会有一个记录,但是通常它们最多会包含一百个记录。许多网格位置根本没有记录(该站点将不是完美的矩形)。
我想搜索记录,提取数据并进行计算,例如计算每个网格位置的最低或最高地面高度。我非常有信心,我能够使用数组使用FORTRAN,BASIC或C这样的语言简单地对此进行编程。尽管很多数组元素都是空的,但我想这并不是正确的方法,而像这样的大型数据库则需要特殊的工具,我将不得不学习如何使用它们。
我正在考虑该平台的可能选择-
使用数据库程序。我不熟悉这些功能的功能,但我想他们使用GUI会产生很多开销。
使用SQL?我对此了解不多,但这似乎是数据库的语言。我一直使用命令式语言而不是声明性语言,并且据维基百科了解,SQL是声明性语言,我对此变化感到有些紧张。我不完全了解使用它的过程。是否有制作控制台程序的编译器?数据库是否存储在磁盘上?很抱歉这样愚蠢的问题。
使用c-treeACE之类的API?我认为这可能是让我熟悉“先做然后再做”语言的一种方法(不幸的是,这是我作为工程师的想法!)。但是我希望API提供的后台内存和处理管理将优于我使用大型数组可以实现的功能。
还是我可以使用面向对象的语言来完成它,而让计算机担心存储需求。例如,如果我将记录存储为具有方法和属性的对象,这些方法和属性可以帮助我从每条记录中获取所需的结果,那么与3相比,这将是一个huge肿的程序吗?
可能有数亿条记录,我希望能够在运行Windows的现代PC上在几分钟而不是几小时(最好是几秒钟!)内查询和处理它们。更具体地说,我的是i6处理器,具有6Gb内存和120Gb SSD,运行Windows 7 64位。
希望有人有时间与新手分享一些智慧的话。