注:这里的很多内容是参考kx system公司的资料翻译过来的,所以我放在翻译栏.(小弟英语也不是太好,请不要笑话我,其中有些我实在无法组织出正确的语句就把原文贴上来了)

1:有关q的发展

Q编程语言和kdb+数据库是由Arthur Whitney开发出来的,在2003年由Kx Systems公司发布,q的设计目标为展示,速度,及效率.此设计的折衷考虑是简洁,精练例如,C++ Java, or C#,结合SQL.While the q programming gods revel in programs resembling an ASCII core dump, this manual is for the rest of us.

Q 从APL语言发展而来,APL是由Kenneth Iverson于1950年在哈佛发明,第一个面向数学符号的语言,APL成为计算机语言是当它被IBM介绍为向量编程语言,意味着它可以在一次单独的操作中处理一个列表的数据.它在金融及其它需要大批量数据处理的工业取得成功.

自从q语言作为向量处理语言出现以来,它在复杂的计算及大的数据列上表现出很好的性能,q语言的新表现在其处理出现在关系范例的的大列数据效率很高.它的语法允许select表达式,这各SQL92标准相像,its collection of built-in functions forms a rich superset of those in SQL 92.

在q语言中也存在一此LISP的影子.事实上,q的基础数据结构是list.它的符号和术语是不同的,但the functionality is there and is arguably simpler,For those so inclined, writing compilers is a snap in q.

Q的DNA序列也表现出了其作为功能编程语言的影响. While q is not purely functional, it is arguably as functional as C++, Java and C# are object-oriented.

2:体系结构

一个精通q语言的开发员的编程思想与传统的面各关系型数据库的开发员不一样,在下文中"冗长的编程(高级语言)"指C++,Java 和 C#.为了将你带入到正确的思想轨道,我们总结了一些潜在的,While q is not purely functional, it is arguably as functional as C++, Java and C# are object-oriented.给q 的初学者.

在高级数据库程序语言中主要有以下几类:

业务对象必须映射为一个完全不同的表现形式,例如,表,为了持久化.它在对象-关系的正确转移了做出了很大的努力.如EJB

业务对象为了传输必须映射到另一个表现形式,通常为一些二进制字节码,或者是XML格式

履行数据的操作如选择和集合最好是在数据库据服务器的存储过程中完成.复杂的数字计算最好是在应用服务器而不是在数据库服务器上.

很多的高级语言是用来得到正确的不同的表现形式,同时很多高级语言的代码是用来排列资源和同步不同的表现形式.这些问题在q语言中不会出现.

内存数据库:一种看KDB+数据库的形式为它是一个内存数据库并且持久备份的.实体格式被保存在内存实质上和存储在硬盘或者是传输中的一样.当数据被q在内存中操作的时候,没有分开存储过程的语言.这有一点类似ADO.NET中不连贯的记录集,但是在建造表对象和用来在硬盘上操作表的数据之间没有分离.

解释型语言:q是解释型语言而不是编译型语言.在执行中,数据和函数存活于内存的工作站中.Iterations of the development cycle tend to be quick because all information needed to debug is available in the workspace.q程序将作为一个脚本存储及执行.一般地,q函数能当做一个字符串创建出来,也可以动态地执行,所以它能编写出自修改的代码.

顺序的Lists:因为经典的SQL为建立在无序集上的,在表中的行顺序是没有定义的.在q中,顺序的lists是所有non-trivial数据结构的基础,所有表中的行有顺序.因此这使得处理大量的时间序列的数据非常容易也非常地快.

执行顺序:当q是从左到右写的时候,表达式将会从右到左执行,ad the q gods prefer,右的左边,意味着左边的函数或者是操作符将执行其右边的.没有操作符优先的说法,所以很少需要圆括号是解决操作优先级的问题.

面向表的:放弃那些"进来"的对象,为了和上面提到的几种语言对比,q语言没有实现像面向对象编程的类一样,也没有继承,虚函数.取而代之的是,q语言建立了一个复杂的通过建造和映射顺序lists,实际上在数学里也叫序列或者是向量.在q语言中higher-lever数据的建造操作为字典和表.一个函数可以在一个工作区内声明为全局的,或者在另一个函数中匿名定义,对于函数来说变量可以是全局也可以是局部的.

面向列的:SQL表存储数据在行同时操作的是行或是行的某一个域为单位的数据,q语言存储数据到表的时候是采取列的形式,操作的时候也是操作整个列向量.

类型:q是强类型的,动态的,检查性的语言,但它的类型比他们类型语言来说少些麻烦,每一个变量都有一个很好定义类型的值,同时类型促使其操作的动态性.一个变量的类型是没有明确定义的,变量类型的名反射出了指派到它上面的值.一个存储了同类型的lists是不允许转换到其它类型的.

空值:在经典SQL中,空值指示丢失的数据或者是任何类型.在q语言中,不同类型有不同的空值.无穷值或者是空值能参与数学计算和其他有合理结果的运算.

完整的I/O:I/O是通过句柄来作为功能窗口与外界通讯的.一旦一个句柄被建立读可以得到句柄的值,通过句柄也可以写值.

KDB+ database 介绍相关推荐

  1. 柏林情感语料库(Emo-DB)Berlin Emotional Database 介绍

    柏林情感语料库(Emo-DB)Berlin Emotional Database 介绍 最近在做毕业设计,用到了这个数据集. 在写毕设论文的时候需要详细资料,去bing上面搜了一下官方介绍,现整理如下 ...

  2. 内核调试番外篇 - KDB的介绍与简单使用

    From: 内核&调试调试 1.什么是 KDB? kdb是一个Linux系统的内核调试器,它是由SGI公司开发的遵循GPL许可证的开放源码调试工具.kdb嵌入在Linux内核中,为内核& ...

  3. ORL Faces Database介绍

    ORL人脸数据集共包含40个不同人的400张图像,是在1992年4月至1994年4月期间由英国剑桥的Olivetti研究实验室创建. 此数据集下包含40个目录,每个目录下有10张图像,每个目录表示一个 ...

  4. KDB+ database

    很早就想把KDB+的一些知识共享出来,一直没有时间,现在国内KDB+用户很少,参考资料自然也少得可怜,去年做过一个相关项目,现在把一些我知道的东西拿出来跟大家分享,当然,我的理解并不一定完全正确,也不 ...

  5. kdb+ 是怎么学下去的

    毕业后,我在一家私募公司做数据工程师,一来就用kdb做各种数据的处理和管理.回想起那段学习kdb的日子,对于一个刚毕业的大学生来说简直是充满了挑战.公司里没有专门人培训,只有靠去不断地请教一两个前辈, ...

  6. Interfacing to kdb+ from Java

    http://www.sinv.de/slog/?p=23 Retrieving data from kdb+ into Java is extremely simple. The java driv ...

  7. 使用Oracle 11g新特性 Active Database Duplication 搭建Dataguard环境

    Duplication Database 介绍 Duplicate database可以按照用途分为2种:duplicate database(复制出一个数据库)duplicate standby d ...

  8. HTML5开发 Web SQL Database 本地数据库

    Web Database 介绍 Web SQL数据库API实际上不是HTML5规范的组成部分,而是单独的规范.它通过一套API来操纵客户端的数据库.Safari.Chrome.Firefox.Oper ...

  9. DDSM database、INbreast database、MIAS等乳腺MG数据获取方式

    收集医学数据目前来说是无法使用,其一是数据杂乱,其二没有专家标记或者注释,只有很范的有无病灶 而且也不确切.故需要搜索公开的公共库(Breast Mammography),现在搜索到的有MG数据库有以 ...

最新文章

  1. 搭建Jupyter学习环境
  2. maven中pom.xml中依赖包代码的查询地址
  3. iOS下音视频通信-基于WebRTC
  4. 【数据库系统】形式化查询语言の关系代数
  5. SonicWall 紧急提醒:EOL 设备正遭勒索攻击!
  6. 计算机组成原理—存储系统总结
  7. c#中动态调用webService
  8. shell脚本备份数据库
  9. 我只能说,Spring Data REST真的很燥辣
  10. BootDo平台数据库使用Oracle
  11. 软件产品测试报告模板
  12. python100以内奇数累加和_用python脚本来计算100以内奇数或者偶数之和
  13. Android事件传递
  14. itunes使用备份,恢复
  15. wps如何自己制作流程图_wps流程图怎么制作(wps快速生成流程图)
  16. ​微信公众号素材图片去哪找?
  17. js 购物车数量增减,总价格联动变化
  18. arcgis加载项双击没反应
  19. C语言经典编程(浙大版C语言第三版)详解
  20. CCNA(十五)思科ACL、NAT配置命令

热门文章

  1. 复指数与高斯函数乘积的傅里叶变换_测量波函数
  2. era翻译_英语单词era是什么意思,英文单词查询era,在线单词era翻译
  3. indesign选中不了图片删除_用 InDesign 制作带拼音的文件
  4. Mysql 8配置驱动
  5. 网络菜鸟把网络老鸟急死了
  6. iptables 2: 规则的查看、添加、删除、修改
  7. 渗透测试-2022红队必备工具列表总结​
  8. 行政服务中心大厅3D导航引导系统建设方案
  9. 关于Android零基础学习的思考
  10. springboot踩坑日记-java: User-specified option “-proc:none“ is ignored for “xxx-xxx-common“. This compil