设为首页 加入收藏

TOP

11GConcept第四章翻译Partitions,Views,andOtherSchemaObjects(分区,视图,以及其他SchemaObjects)(六)
2014-11-24 08:16:37 来源: 作者: 【 】 浏览:7
Tags:11GConcept 第四章 翻译 Partitions Views andOtherSchemaObjects (分区 视图 及其他 SchemaObjects
来汇聚数据以及比较数据集

创建一个维可以使查询重写特性更广泛的使用,在透明的重写查询去使用物化视图后,数据库可以提升查询性能。

Hierarchical Structure of aDimension(维度的层次结构)

一个维度表是一个逻辑结构,它定义了两列或者多列之间的体系关系。维度没有分配存储。

维度信息是存在维度表中的,而事实信息也是存在事实表中的。

在 用户维度,用户向上存,从城市,省,国家,州,全球。数据分析 正常情况是在高级别的维度层次 根据情况需要逐步深入。

在子级别的每个值 都和一个父级别的值进行关联。一个层次关系是一个层次 到另一个层次的 功能性依赖。

Creation of Dimensions(维度的创建)

维度是通过sql语句创建的,CREATE DIMENSION 语句指定了如下:

·多个LEVEL 子句,每个表示了维度中的一列,或者一组列

·一个或多个HIERARCHY子句 指定了父子关系

·可选的ATTRIBUTE子句,每个表示个别级别 附加的列或一组列。

下面语句是就创建customers_dim维度的语句:

CREATE DIMENSION customers_dim

LEVELcustomer IS (customers.cust_id)

LEVELcity IS (customers.cust_city)

LEVELstate IS(customers.cust_state_province)

LEVELcountry IS (countries.country_id)

LEVELsubregion IS (countries.country_subregion)

LEVELregion IS (countries.country_region)

HIERARCHY geog_rollup (

customer CHILD OF

city CHILD OF

state CHILD OF

country CHILD OF

subregion CHILD OF

region

JOIN KEY (customers.country_id) REFERENCES country)

ATTRIBUTE customer DETERMINES

(cust_first_name,cust_last_name,cust_gender,

cust_marital_status,cust_year_of_birth,

cust_income_level,cust_credit_limit)

ATTRIBUTE country DETERMINES(countries.country_name);

一个维度中的列可以在 同一个表中(反规范化) 或者从多个表中(完全或者部分规范化)

举个例子。一个规范化的时间维度可以包含 一个日期表,一个月表,一个年表,通过使用join条件将每个日期行与月行关联,每个月行与年行关联。

而在完全反规范化的时间维度中,日期,月,年列都在同一个表中,无论是规范化或者反规划反,列之间的层次关系必须在CREATE DIMENSION 语句中指定。

Overview of Synonyms(同义词概述)

一个同义词就是一个schema object的别名。举个例子,你可以创建同义词 给表、视图、序列、PL/SQL 程序单元、用户定义的对象类型、或者别的同义词。

因为同义词就是一个简单的别名。它不需要存储,它就是数据字典中的一条定义。

同义词可以简化SQL语句。同义词同样对隐藏基础对象的位置有用。

如果基础对象必须要重命名或者更改位置,那么只需要对同义词进行重定义,而应用基于同义词的SQL可以继续工作,不需要进行调整。

你可以创建private(私有)和public(公共) 两种同义词。

private同义词是在指定用户的schema中,用户可以控制它对谁生效。

public同义词是被用户组PUBLIC所拥有,它对每个数据库用户生效。

下面例子中,DBA给hr.employees表创建了一个叫people的全局同义词

oe用户通过people同义词来计算 employees表中的行数。

SQL>CREATE PUBLIC SYNONYM people FORhr.employees;

Synonym created.

SQL> CONNECT oe/oe

Connected.

SQL>SELECT COUNT(*) FROM people;

COUNT(*)

----------

107

使用公共同义词很少,因为他们使得数据库整合更加困难

像下面的案例,如果其他管理员打算创建公共同义词people。那么将会保存,因为一个数据库中只有一个公共同义词people可以存在。公共同义词的滥用会导致多个应用之间的命名空间冲突。

SQL> CREATE PUBLIC SYNONYM people FORoe.customers;

CREATE PUBLIC SYNONYM people FOR oe.customers

*

ERROR at line 1:

ORA-00955: name is already used by anexisting object

SQL> SELECT OWNER, SYNONYM_NAME,TABLE_OWNER, TABLE_NAME

2 FROM DBA_SYNONYMS

3 WHERE SYNONYM_NAME = 'PEOPLE';

OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME

---------- ------------ ---------------------

PUBLIC PEOPLE HR EMPLOYEES

同义词自身是不安全的,当你授予统一的对象权限时,你应该已经授权基础对象的权限。同义词在grant语句中,只作为对象的别名。

首页 上一页 3 4 5 6 下一页 尾页 6/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇linux操作系统下完全删除oracle数.. 下一篇Oracle分析表简介

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis on AWS:Elast (2025-12-27 04:19:30)
·在 Spring Boot 项目 (2025-12-27 04:19:27)
·使用华为开发者空间 (2025-12-27 04:19:24)
·Getting Started wit (2025-12-27 03:49:24)
·Ubuntu 上最好用的中 (2025-12-27 03:49:20)