关系数据库的模板匹配

时间:2010-02-21 20:03:59

标签: database fraud-prevention

我正在尝试执行以下操作: 我们正在尝试为股票市场设计欺诈检测系统。 我知道欺诈规范(它们就像模板)。 所以我想知道我是否可以设计一个模板,并查找与该模板匹配的所有记录。


注意: 我无法使用传统查询导致模板很复杂 例如我的一个欺诈是循环交易,它是这样的: A从B购买,B从C购买,而C从A购买(这是一个周期) 这个周期可以包括4或5人。

对于这种情况是否有任何好的建议。

3 个答案:

答案 0 :(得分:0)

我不明白为什么你不能像你所说的那样使用“传统查询”。 SQL可用于编写极其复​​杂的查询。就此而言,我不确定这是一个极具挑战性的问题。

首先,我会将您描述的行为视为不同的事务,因此我将事务视为模型。我可能会有一个transactions表,其中包含buyerselleramount等一些列...

您也可以将shares作为自己的表,并使用STI(单表继承)将该共享的前100个所有者放在同一个表中,将所有者的所有主键放入“ “shares表中的所有者”列,如234/823/12334/1234/...,您可以执行复杂查询,查看该共享是由同一个人拥有,还是非常轻松快速地查找字符串中的模式。

- 的更新 -

我不建议编造一种“小语言”我不明白为什么当你有大量精选语言和数据库可供选择时,你想要做那样的事情,所有这些都有很好的完善并且经过测试的方法可以准确地解决您正在做的事情。

我最好的建议是弹出你的IDE(为TextMate竖起大拇指)并选择你最喜欢的语言(在我的情况下是Ruby)。找到一些示例数据并创建数据库并开始编写一些代码!尝试这样的实验你不会出错,它将完全暴露出比我们在Stackoverflow上想象的更好的方法。

答案 1 :(得分:0)

绝对是数据挖掘。但正如您所指出的,您已经拥有了模型(模板)。查找欺诈检测而不是预防以获得更好的搜索结果?

我知道有些银行使用SPSS PASW Modeler进行欺诈检测。这非常直观,您可以在玩数据时看到自己在做什么。所以你可以实现你的模板。我同意约瑟夫的观点,你需要进行游戏,制作一些新的数据结构。

也许是时间序列模型?

答案 2 :(得分:-1)

理论上,你可以先开发一个“小语言”,一个语法简单的东西(这使得表达域 - 在你的情况下是欺诈模式 - 很容易)并从中生成一个或多个SQL查询。

作为大多数解决方案,这可以被认为是一个滑块:在另一个极端,另一个是“完全欺诈检测语言”,您可以为最常见的情况构建存储过程,并编写新的存储过程使用之前编写的更“基本”的块来实现各种模式。

您要做的事情属于数据挖掘保护伞,因此您也可以尝试了解更多信息:也许您可以找到特定数据库的数据挖掘包(您没有指定)并查看是否存在帮助您找到数据中的常见模式。