【IT专家网独家】在感恩节的早晨,Shannon,ABC Gum公司的架构师,她正在考虑回家吃她的火鸡大餐,这时她收到了一封电子邮件。电子邮件是数据仓库组发来的,要求设计一个可以在一行记录内记录完整的客户信息的表。电子邮件接着说内部审计已经对每个属性和记录进行了数据控制。哦,还有一件事——他们今天就要拿到!
幸运的是,Shannon的公司已经实现了客户的360度察看的信息策略。她知道在企业内部共享的客户属性存储在中心位置,其余属性存储在各个系统的本地环境中。实际上,Shannon就在几天前已经协助在公司元数据库中设计了一个联合客户数据模型,它描述了这些属性和它们之间的关系。考虑了这些这些客户信息,Shannon思考她要怎样应用数据控制。
她再一次转向使用元数据仓库帮助她识别每个客户属性的记录系统。她对自己笑了,记起来她在设计过程中曾经告诉过她的架构师同事,“总有一天会出现一个针对每个属性的累积‘真实源’。”她还需要为聚合行存储一个“真实源”。Shannon再次得到了答案;她将用数据源参考表中的主键的二进制值和在Oracle数据库中的位逻辑操作来规范客户和它的数据源之间的一对多的关系。她会将这个值存储在每一行的一列中。
二进制数
二进制数是阿拉伯数字符号0和1的最常见的表示方法。二进制数实际上是位组成的一个序列,每个位代表了两个值中的一个。
下面的表格显示了10进制数13(10+3)和等价的二进制数,1101(8+4+1)。
| 10000 | 1000 | 100 | 10 | 1 | |
| 10进制数 | 1 | 3 |
| 16 | 8 | 4 | 2 | 1 | |
| 2进制数 | 1 | 1 | 0 | 1 |
位逻辑操作
当位由布尔逻辑操作符操作的时候,它指的是位操作。位操作是操作于2个相同长度的二进制格式上,匹配它们相对应位置上的位。
与(AND)
一对位值的逻辑与是当第一个位为1,并且第二个也为1的时候,逻辑与的结果为1。否则为0。
或(OR)
一对位值的逻辑或是如果第一个位为1,或者第二个为1,则逻辑或的结果为1。否则为0。
异或(XOR)
一对位值的逻辑异或是如果两个位不相同,则异或的结果为1。如果相同的话,则为0。
位逻辑操作
| 位1 | 位2 | AND | OR | XOR |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
