0%

三段论在传统逻辑中,是在其中一个命题(结论)必然地从另外两个命题(叫做前提)中得出的一种推论。这个定义是传统的,可以宽松地从亚里士多德的《前分析篇》Book I, c. 1中推出来。希腊语“sullogismos”的意思是“演绎”。
三段论由三个部分组成:大前提、小前提和结论,它在逻辑上是从大前提和小前提得出来的。大前提是一般性的原则。小前提是一个特殊陈述。在逻辑上,结论是从应用大前提于小前提之上得到的。

阅读全文 »

芝诺悖论是古希腊数学家芝诺(Zeno of Elea)(盛年约在公元前464-前461)提出的一系列关于运动的不可分性的哲学悖论。这些悖论由于被记录在亚里士多德的《物理学》一书中而为后人所知。芝诺提出这些悖论是为了支持他老师巴门尼德关于“存在”不动、是一的学说。这些悖论是芝诺反对存在运动的论证其中最著名的两个是:“阿基里斯追乌龟”和“飞矢不动”。这些方法现在可以用微积分(无限)的概念解释。

阅读全文 »

一本介绍了数据仓库(DW)和商业智能(BI)的建模过程,不过因为主要的难度是在后端的ETL过程,所以本书理论上说重点还是介绍了DW的建模过程,BI更多指向的是前端的报表开发,技术上难度没有后端的ETL大。
本书最大的特点是,针对我们常见行业重点业务过程的建模进行了详细描述,让用户对数据建模有个直观的了解。
在启动BI项目之前,我们必须明白,BI的主要收益是,获得高质量的决策。

阅读全文 »

一、概念

1、排它锁和共享锁

在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。
当数据对象被加上排它锁时,其他的事务不能对它读取和修改。
加了共享锁的数据对象可以被其他事务读取,但不能修改。
数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。

阅读全文 »

ODI:Oracle Data Integrator
CDC概念:CDC全称Changed Data Capture,顾名思义就是捕获变化的数据。
换句话说,这也可用于增量的ETL,否则的话,每次ETL都要进去全量抽取的话,效率必然极大的下降,实用性也不高。
CDC其实是增量抽取的概念,但在ODI中,却意味着ODI独特的增量抽取方法。

阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*Oracle 业务表添加时间戳触发器*/  
CREATE OR REPLACE PROCEDURE "P_ADD_KETTLE" (
table_name VARCHAR2) AS
BEGIN
DBMS_OUTPUT.PUT_LINE(table_name);
--添加时间戳列
EXECUTE IMMEDIATE 'Alter Table "'|| table_name || '" add KETTLE_LASTMODIFY TIMESTAMP (6) DEFAULT current_timestamp';
COMMIT;
--添加触发器
EXECUTE IMMEDIATE 'CREATE OR REPLACE TRIGGER KL_'|| SUBSTR('KL_' || table_name,4,27) || '
BEFORE Insert or Update ON "'|| table_name || '"
FOR EACH ROW
DECLARE
-- local variables here
BEGIN
:NEW.KETTLE_LASTMODIFY := current_timestamp;
END;';
COMMIT;
DBMS_OUTPUT.PUT_LINE('PROCESS OK...');

END p_add_kettle;

这里代理键指使用非business column作为主键字段的情况,通常就是我们想给每条记录添加的ID。

一.MSSqlServer的代理键

  1. 最简单的方法是使用自增字段,这样就不必在代码中处理自增字段。
    缺点:用过的值删除后不会很难再被使用
  2. 采用最大值表的方法保存所有代理键的最大值。可以将处理算法放在服务器端的存储过程中,也可以采用客户端算法生成代理键,但这都就需要在代码中明确给代理键字段赋值。采用这种方法还要注意防止同时读写代理键候选值。

二.Oracle的代理键

1. Oracle中没有自增字段

所以不管采取什么方法,都免不了要明确处理代理键字段。最接近MSSqlServer自增字段的方法步骤如下:

阅读全文 »

Oracle DML触发器实现功能:
很多时候我们或者客户有如下需求:
在A.B表上添加触发器.
触发事件:UPDATE,DELETE,INSERT 后触发;对表的每一行触发器执行一次;记录用户名,操作类型,操作时间,修改或删除前的数据,新增的数据。

阅读全文 »

一、什么是数据库分区

mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。
如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块,这样呢,我们查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。如果表的数据太大,可能一个磁盘放不下,这个时候,我们可以把数据分配到不同的磁盘里面去。

阅读全文 »