锚定建模有哪些优缺点? [英] What are the pros and cons of Anchor Modeling?

查看:356
本文介绍了锚定建模有哪些优缺点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个数据库,其中很大一部分数据是时间性的。在阅读了许多这样做的技术(大多数涉及6nf标准化)后,我遇到了 Anchor Modeling



我正在开发的模式非常类似于Anchor Modeling模型,特别是因为用例(Temporal Data + Known Unknowns)非常相似,所以我很乐意完全拥抱它。



我遇到的两个最大的问题是,我没有找到任何详细的这种方法的负面情况,我找不到任何参考在生产中使用它的组织我想知道这里的任何人是否熟悉,简要阐述了一些负面因素(因为积极的因素)在研究论文及其网站中广泛使用)以及在生产环境中使用它的任何经验。

解决方案

参考 anchormodeling.com



这里有几点我知道


  1. DB-对象太大,无法手动维护,因此请确保您始终使用设计器来演进模式。


  2. 目前,设计人员完全支持MS SQL Server ,所以如果你必须始终端口代码,你可能需要等到目标数据库完全支持。我知道它在下拉框中有Oracle,但是...


  3. 不要指望(也不要求)开发人员了解它,他们必须访问模型通过5NF视图 - 这是好的。事实是,表格通过视图加载(而不是 - )触发器,这可能(或可能不)是性能问题。


  4. 期望您可能需要编写一些额外的维护程序(对于每个时间属性),这些程序不是自动生成的(还有)。例如,我经常需要一个时间属性的修剪过程 - 在两个连续的时间事件上删除同一个ID的同一个值记录。


  5. 生成的视图和查询视图可以很好地解决,所以将来可能会写下任何内容。然而,其他人将会对视图进行查询,而不是总是很好地解决。所以希望你可能需要比平常更多的警察查询。


令人难过的是,我最近使用方法来重建我仓库的一部分,它的工作就像一个魅力。诚然,仓库没有这里概述的大部分问题。



我建议创建演示系统和测试,测试,测试是至关重要的,特别是第3点 - 通过触发器加载。


I am currently trying to create a database where a very large percentage of the data is temporal. After reading through many techniques for doing this (most involving 6nf normalization) I ran into Anchor Modeling.

The schema that I was developing strongly resembled the Anchor Modeling model, especially since the use case (Temporal Data + Known Unknowns) is so similar, that I am tempted to embrace it fully.

The two biggest problem I am having is that I can find nothing detailing the negatives of this approach, and I cannot find any references to organizations that have used it in production for war-stories and gotchas that I need to be aware of.

I am wondering if anyone here is familiar enough with to briefly expound on some of the negatives (since the positives are very well advertized in research papers and their site), and any experiences with using it in a production environment.

解决方案

In reference to the anchormodeling.com

Here are a few points I am aware of

  1. The number of DB-objects is simply too large to maintain manually, so make sure that you use designer all the time to evolve the schema.

  2. Currently, designer supports fully MS SQL Server, so if you have to port code all the time, you may want to wait until your target DB is fully supported. I know it has Oracle in dropdown box, but ...

  3. Do not expect (nor demand) your developers to understand it, they have to access the model via 5NF views -- which is good. The thing is that tables are loaded via (instead-of-) triggers on views, which may (or may not) be a performance issue.

  4. Expect that you may need to write some extra maintenance procedures (for each temporal attribute) which are not auto-generated (yet). For example, I often need a prune procedure for temporal attributes -- to delete same-value-records for the same ID on two consecutive time-events.

  5. Generated views and queries-over-views resolve nicely, and so will probably anything that you write in the future. However, "other people" will be writing queries on views-over-views-over-views -- which does not always resolve nicely. So expect that you may need to police queries more than usual.

Having sad all that, I have recently used the approach to refactor a section of my warehouse, and it worked like a charm. Admittedly, warehouse does not have most of the problems outlined here.

I would suggest that it is imperative to create a demo-system and test, test, test ..., especially point No 3 -- loading via triggers.

这篇关于锚定建模有哪些优缺点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆