现代RDBMS支持XML列类型和功能,用于处理存储过程中的XML.从历史上看,我总是将层次结构数据(无论是OO对象还是XML)映射到关系表.鉴于XML的广泛数据库支持我应该改变我的方式吗?
我有大约3500个防洪设施,我想将其表示为确定流路径的网络(基本上是有向图).我目前正在使用SqlServer和CTE递归检查所有节点及其上游组件,只要上游路径不分叉,这就可以工作.然而,由于增加了上游复杂性,一些查询比其他查询指数长得多,即使它们在物理上不太远(即两个或三个"下游"段).在某些情况下,我会在杀死查询之前让它超过十分钟.我正在使用一个简单的双列表,一列是设施本身,另一列是第一列中列出的设施的上游设施.
我尝试使用当前工具添加索引以帮助加快速度,但这没有任何区别.并且,对于图中可能的连接,任何节点可以具有多个上游连接,并且可以从多个"下游"节点连接.
当然有可能在数据中有循环,但我还没有找到一种好的方法来验证这一点(除了CTE查询报告最大递归计数命中时;这些很容易修复).
所以,我的问题是,我存储这些信息是错误的吗?有没有比CTE更好的方法来查询上游点?
我的公司现在第一次支持Oracle,我的大多数同事都是没有真正使用过Oracle的SQL Server开发人员.我对甲骨文有点熟悉,但远不是这个主题的天才.不幸的是,这足以说明我比大多数同事更了解甲骨文,所以我发现自己不断努力解释我仍在学习的概念,根本不熟悉Oracle的人可以了解.
我遇到的最大问题是了解SQL Server术语如何转换为Oracle术语.我知道没有直接的1:1术语映射,但是在与我的以SQL Server为中心的同事交谈时,能够知道如何将Oracle概念引入SQL Server术语,反之亦然.有人能告诉我将这些SQL Server术语放入Oracle术语的最佳方法吗?
相反,如何用SQL Server术语解释这些Oracle概念?
我一直在阅读很多关于非关系型数据库,整个NOSQL运动的帖子,并且围绕它进行了很多新的活动.这似乎是构建高度可扩展的Web应用程序的一种非常有趣的方法,但不幸的是(在这个新生阶段也是一件好事)目前还没有一个明确的领导者/标准.
我的背景是在LAMP堆栈中(以MySQL作为dB),我想了解它会有什么差异和限制 - 但是使用现实生活中的Web应用程序的例子.关于RDBMS与非RDBMS的优缺点理论有很多很好的文章,但是我没有找到任何有关如何构建现有Web应用程序(例如社交书签)的示例新的dB结构的优势以及如果有的话可以省去哪些功能 - NOSQL dB可以是键值还是以文档为中心的或图形.
是否有人愿意接受对现实世界网络应用程序的NOSQL与RDBMS模型/架构的高级别比较(例如社交书签或可能很好地解释这些概念的任何其他示例)?
有关其他人的参考,以下是我遇到的一些文章:
rdbms database-design scalability non-relational-database nosql
我读过一些文章说,像MySQL这样的RDBMS并不擅长扩展,但像MongoDB这样的NoSQL可以很好地分解. 我想知道RDBMS提供的哪个功能本身不能很好地分片.
我想测试一下NoSQL世界.这只是好奇心,而不是绝对需要(尚未).我已经阅读了一些有关SQL和NoSQL数据库之间差异的信息.我确信潜在的优势,但我有点担心NoSQL不适用的情况.如果我理解NoSQL数据库本质上错过了ACID属性.
有人可以给出ACID关系数据库可以处理的一些真实世界操作(例如电子商务站点,或科学应用程序,或......)的示例,但NoSQL数据库可能会失败,无论是系统地某种类型竞争条件还是停电等?
如果没有修改数据库引擎,那么完美的例子就是没有任何解决方法.NoSQL数据库表现不佳的例子最终会成为另一个问题,但在这里我想看看理论上我们什么时候不能使用这种技术.
也许找到这样的例子是数据库特定的.如果是这种情况,那么让MongoDB代表NoSQL世界.
编辑:澄清这个问题我不想讨论哪种数据库对某些情况更好.我想知道在某些情况下这项技术是否绝对是一个绝对的死胡同,因为无论我们如何努力尝试某种类型的功能,SQL数据库提供的功能都无法在nosql商店之上实现.由于有许多nosql商店可用,我可以接受选择现有的nosql商店作为支持,但我最感兴趣的是商店应该提供的最小功能子集,以便能够实现更高级别的功能(比如可以使用不提供X的商店...).
因此,如果我试图实现看起来像Facebook的Graph API的东西,需要非常快速并支持数百万用户,那么使用Redis而不是RDBMS有什么不利之处呢?
谢谢!乔纳森
我想知道是否有一种通用的方法来创建liquibase的"有序索引".会产生这些SQL语句的东西:
CREATE INDEX idx_name ON my_table (m_column DESC)
Run Code Online (Sandbox Code Playgroud)
我需要oracle,postgresql,mysql和sql server.
如果没有,我将不得不手动使用SQL每个RDBM 的标签.
我刚刚遇到交易,我想知道
对于1.我知道你必须将它用于银行转账,但是将它用于一切都不是更好吗?!?
我安装了MySQL Workbench,我遇到了以下问题.
我执行这个简单的选择查询:
SELECT * FROM spring_security.user;
Run Code Online (Sandbox Code Playgroud)
返回行列表.
因此,在输出区域中,我选择特定行的字段,然后尝试更改其值.但我不能这样做.
似乎是不可能为特定行的特定字段插入新值.
为什么?如何使用此工具更改值?
TNX
rdbms ×10
nosql ×3
mysql ×2
scalability ×2
acid ×1
database ×1
indexing ×1
liquibase ×1
mongodb ×1
oracle ×1
redis ×1
replace ×1
scalable ×1
sharding ×1
sql ×1
sql-server ×1
terminology ×1
transactions ×1
xml ×1