标签: anchor-modeling

时态数据库设计,带有扭曲(实时与草稿行)

我正在考虑实现对象版本控制,需要同时拥有实时和草稿对象,并且可以使用来自某人经验的见解,因为我开始怀疑它是否有可能没有可能可怕的黑客攻击.

为了示例,我将其分解为带有标签的帖子,但我的用例更为一般(涉及缓慢变化的维度 - http://en.wikipedia.org/wiki/Slowly_changing_dimension).

假设您有一个posts表,一个tags表和一个post2tag表:

posts (
 id
)

tags (
 id
)

post2tag (
 post_id fkey posts(id),
 tag_id fkey tags(id)
)
Run Code Online (Sandbox Code Playgroud)

我需要一些东西:

  1. 能够准确显示帖子在任意日期时间的样子,包括已删除的行.
  2. 对于完整的审计跟踪,跟踪谁正在编辑什么.
  3. 需要一组物化视图("实时"表)以保持参照完整性(即日志记录对开发人员应该是透明的).
  4. 需要适当快速的实时最新的草稿行.
  5. 能够有一个帖子的帖子与现场帖子共存.

我一直在研究各种选择.到目前为止,我提出的最好的(没有点#4 /#5)看起来有点像SCD type6-hybrid设置,但是没有当前布尔值,而是当前行的物化视图.出于所有意图和目的,它看起来像这样:

posts (
 id pkey,
 public,
 created_at,
 updated_at,
 updated_by
)

post_revs (
 id,
 rev pkey,
 public,
 created_at,
 created_by,
 deleted_at
)

tags (
 id pkey,
 public,
 created_at,
 updated_at,
 updated_by
)


tag_revs (
 id,
 public,
 rev pkey,
 created_at,
 created_by,
 deleted_at
)

post2tag (
 post_id fkey posts(id),
 tag_id fkey tags(id), …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql database-design anchor-modeling

17
推荐指数
2
解决办法
6379
查看次数

有没有数据仓库框架?

我有很多mysql数据需要从中生成报告.它主要是历史数据,因此它不会发生太大变化,但它的重量很容易达到20-30千兆字节,预计会增长.我目前有一些PHP脚本集合,可以执行一些复杂的查询并输出csv和excel文件.我还使用带有书签查询的phpMyAdmin.我手动编辑它们来更改参数.数据量正在增长,需要访问数据的人数也在增长,因此我正在花时间改善这种情况.

前几天我开始阅读有关数据仓库的内容,似乎这个区域与我需要做的事情有关.我读过一些 文章,甚至还在等一本书.我想我已经掌握了这些系统的功能和可能性.

为我的数据创建一个报告系统一直在todo列表中,但直到最近我才认为这将是一个非常小众的计划冒险.由于我现在知道数据仓库是常见的事情,我认为必须有某种报告/仓库框架可以轻松开发.我很乐意跳过编写接口和脚本来安排和发送电子邮件报告等,并坚持编写查询和建立关系.

我大部分都是一个灯泡家伙,但我不是在转换语言或平台.我只需要一个更强大的解决方案,因为我的一次性脚本不能很好地扩展.

那么哪里是开始的好地方?

frameworks reporting data-warehouse anchor-modeling

15
推荐指数
2
解决办法
4221
查看次数

Anchor Modeling的优点和缺点是什么?

我目前正在尝试创建一个数据库,其中很大一部分数据是暂时的.在阅读了许多这样做的技术(大多数涉及6nf标准化)后,我遇到了锚点建模.

我正在开发的模式非常类似于Anchor Modeling模型,特别是因为用例(Temporal Data + Known Unknowns)是如此相似,我很想完全接受它.

我遇到的两个最大的问题是,我找不到任何详细说明这种方法的负面影响的内容,而且我找不到任何对生产中用于战争故事和陷阱的组织的引用,这些都是我需要注意的.

我想知道这里是否有人熟悉,可以简要地阐述一些否定因素(因为积极因素在研究论文及其网站上得到了很好的宣传),以及在生产环境中使用它的任何经验.

sql database-design temporal-database database-normalization anchor-modeling

15
推荐指数
3
解决办法
5613
查看次数

使用子查询加入消除不在Oracle中的工作

我能够将连接消除工作用于简单的情况,例如一对一的关系,但不能用于稍微复杂的场景.最后我想尝试锚建模,但首先我需要找到解决这个问题的方法.我正在使用Oracle 12c企业版第12.1.0.2.0版.

我的测试用例的DDL:

drop view product_5nf;
drop table product_color cascade constraints;
drop table product_price cascade constraints;
drop table product       cascade constraints;

create table product(
   product_id number not null
  ,constraint product_pk primary key(product_id)
);

create table product_color(
   product_id  number         not null references product
  ,color       varchar2(10)   not null
  ,constraint product_color_pk primary key(product_id)
);

create table product_price(
   product_id  number   not null references product
  ,from_date   date     not null
  ,price       number   not null
  ,constraint product_price_pk primary key(product_id, from_date)
);
Run Code Online (Sandbox Code Playgroud)

一些示例数据:

insert into product values(1);
insert …
Run Code Online (Sandbox Code Playgroud)

sql database oracle cost-based-optimizer anchor-modeling

9
推荐指数
1
解决办法
715
查看次数