大型数据库中的数据关联

时间:2009-12-01 21:03:55

标签: sql-server oracle sql-server-2008 oracle11g

我们正在尝试确定整个企业中存储的某些信息的位置,以使其符合我们的数据政策。在文件末端,我们使用Nessus搜索不同的文件,但我想知道数据库端。

使用Nessus似乎毫无意义,因为它会输出原始数据,不会告诉我们它在哪个表或行,或者给我们提供了很多有用的信息,特别是考虑到这些数据库非常大(数百GB)。

另外值得注意的是,该系统需要能够进行基于模式的匹配(例如使用正则表达式)。不只是一个“愚蠢的搜索”引擎。

我已经调查了数据挖掘和数据仓库的使用,以便找到这些数据,但似乎它们更多的是用于分析数据,而不仅仅是实际查找数据。

是否有更好的方法可以搜索数据库中的大量数据来尝试查找此信息?我们正在使用Oracle 11g和SQL Server 2008,并且需要在两者上执行搜索,所以我想远离特定于服务器的范例(尽管我必须重写一些代码以从T-SQL转换为PL / SQL,反之亦然,我不介意)

3 个答案:

答案 0 :(得分:2)

在SQL Server上搜索大量文本,您可以查看全文搜索。

在此处阅读更多http://msdn.microsoft.com/en-us/library/ms142559.aspx

但如果我正确阅读,您希望以类似于网络搜索引擎蜘蛛网站和网页的方式来抓取您的数据库。

您可以使用一组全文查询来恢复跨越多个表的结果。

答案 1 :(得分:1)

Oracle支持使用RegExp_Like()函数的正则表达式,根据系统元数据自动生成所需的代码应该非常简单(例如,查找特定长度的所有文本列,并包含它们)在谓词中再次查找该表以查找与正则表达式匹配的行和值)。真的听起来不太具挑战性。从理论上讲,您可以检查约束列以防止插入与正则表达式匹配但可能过度的值。

答案 2 :(得分:0)

Oracle Text适用于搜索数据库中保存的larg(ish)文本(例如PDF,HTML,TXT或DOC)中的单词/短语。有一些有限的模糊搜索,但不是正则表达式本身。

您并没有真正了解您要查找的数据类型或数据库中的数据。 Nessus表示您正在寻找安全问题,但“数据关联”的标题暗示了完全不同的东西。

实际上,数据结构应提供有关查找内容和位置的信息。这就是数据库的意义 - 为可访问性构建数据。支持CMS,论坛软件或类似软件的数据库将是一个不同的鱼类。