Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 关系数据库的模板匹配_Database_Fraud Prevention - Fatal编程技术网

Database 关系数据库的模板匹配

Database 关系数据库的模板匹配,database,fraud-prevention,Database,Fraud Prevention,我正在努力做到以下几点: 我们正试图为股票市场设计一个欺诈检测系统。 我知道欺诈的规范(它们就像模板)。 所以我想知道我是否可以设计一个模板,并找到所有与此模板匹配的记录 注意: 我不能使用传统的查询,因为模板很复杂 例如,我的一个欺诈行为是循环交易,它是这样的: A从B买来,B从C买来,C从A买来(这是一个循环) 该周期可包括4人或5人 对于这种情况有什么好的建议。理论上,您可以先开发一种“小型语言”,它具有简单的语法(这使得表示域(在您的案例中是欺诈模式)变得容易),然后从中生成一个或多个

我正在努力做到以下几点: 我们正试图为股票市场设计一个欺诈检测系统。 我知道欺诈的规范(它们就像模板)。 所以我想知道我是否可以设计一个模板,并找到所有与此模板匹配的记录


注意: 我不能使用传统的查询,因为模板很复杂 例如,我的一个欺诈行为是循环交易,它是这样的: A从B买来,B从C买来,C从A买来(这是一个循环) 该周期可包括4人或5人


对于这种情况有什么好的建议。

理论上,您可以先开发一种“小型语言”,它具有简单的语法(这使得表示域(在您的案例中是欺诈模式)变得容易),然后从中生成一个或多个SQL查询

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


您试图做的事情属于数据挖掘范畴,因此您也可以尝试了解更多信息:也许您可以为您的特定数据库(您没有指定)找到一个数据挖掘包,看看它是否有助于您在数据中找到通用模式

从理论上讲,您可以先开发一种“小型语言”,这种语言具有简单的语法(这使得表示域(在您的案例中是欺诈模式)变得容易),并从中生成一个或多个SQL查询

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


您试图做的事情属于数据挖掘范畴,因此您也可以尝试了解更多信息:也许您可以为您的特定数据库(您没有指定)找到一个数据挖掘包,看看它是否有助于您在数据中找到通用模式

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

首先,我要看一下您描述为vary transactional的行为,因此我将事务视为一个模型。我可能有一个
交易
表,其中有一些列,如
买方
卖方
金额
,等等

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

-更新-

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


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

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

首先,我要看一下您描述为vary transactional的行为,因此我将事务视为一个模型。我可能有一个
交易
表,其中有一些列,如
买方
卖方
金额
,等等

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

-更新-

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


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

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

我知道一些银行使用SPSS PASW Modeler进行欺诈检测。这是非常直观的,您可以在处理数据时看到自己在做什么。因此,您可以实现您的模板。我同意Joseph的观点,你需要开始玩,制作一些新的数据结构


也许是timeseries模型?

肯定是数据挖掘。但正如你所指出的,你已经