The Model Clause Model子句
(page 273)
Riyaj Shamsudeen
The Model clause introduced in the Oracle Database version 10g provides an elegant method to
replace the spreadsheet. With the Model clause, it is possible to utilize powerful features such as
aggregation, parallelism, and multi-dimensional, multi-variate analysis in SQL statements. If you
enjoy working with Excel spreadsheets to calculate formulas, you will enjoy working with the Model
clause, too.
Model子句在Oracle数据库10版本引入,提供了一种优雅的方式替代电子数据表(的计算)。使用Model子句,就有可能利用其强大的特性,在
SQL语句中实现诸如聚合,平行和多维度,多变量的分析。如果你喜欢使用Excel电子表格计算公式,你也就会喜欢使用Model子句。
In situations where the amount of data to be processed is small, the inter-row referencing and
calculating power of the spreadsheet is sufficient to accomplish
the task at hand.
However, scalability
of such a spreadsheet as a data warehouse application is limited and cumbersome
.
For example,
spreadsheets are generally limited to two or three dimensions, and creating spreadsheets with more
dimensions is a manually intensive task. Also, as the amount of data increases, the execution of
formulas slows down in a spreadsheet. Furthermore, there is an upper limit on the number of rows in a
spreadsheet workbook.
对于处理的是少量数据的情况,行间引用和电子表格的计算能力足以应付
手头的任务。
然而,若是数据仓库应用的电子数据表的可扩展性将是受限的和累赘的
。
例
如,电子数据表一般限定为二维或者三维,创建更多维的电子数据表是一项手工繁重的任务。而且,随着数据量的增加,电子数据表中的公式的执行会变慢。再者,
在工作薄中电子表格的行数是有上限的。
Since the Model clause is an extension to the SQL language application. the Model clause is highly
scalable, akin to the Oracle database’s scalability. Multi-dimensional, multi-variate calculations over
millions of rows, if not billions of rows, can be implemented easily with the Model clause, unlike with
spreadsheets. Also, many database features such as object partitioning and parallel execution can be
used effectively with the Model clause, thereby further improving scalability.
因为Mode子句是Sql语言应用的延伸,Model子句具有的高度可扩展能力类似于Oracle的扩展能力。在上百万行数行上,只要不是上十亿行,多维度,多变量计算可用Model子句轻易的执行,不像电子表格。还有,许多数据库特性如对象分区和平行执行都能高效的使用Model子句,因而进一步提高可扩展性。
Aggregation of the data is performed inside the RDBMS engine, avoiding costly round-trip calls as
in the case of the third party datawarehouse tools. Scalability is further enhanced by out-of-the-box
parallel processing capabilities and query rewrite facilities.
数据的聚合是在RDBMS引擎中执行的,避免了高成本的往返调用第三方数据仓库工具。通过现成的
并行处理功能和查询重写工具,可扩展性进一步增强。
The key difference between conventional SQL statement and the Model clause is that the Model
clause supports inter-row references, multi-cell references, and cell aggregation.
It is easier to
understand the Model clause with examples, so I will introduce the Model clause with examples. Then
I’ll discuss the advanced features in the Model clause.
传统SQL语句和Model子句的关键不同在于Model子句支持行间引用,多单元格引用,和单元格聚合。
通过例子更容易理解Model子句,因此我将通过例子介绍Model子句。接下来再讨论Model子句的高级特性。
9.1 Spreadsheets 电子数据表(电子表格)
Let’s consider the spreadsheet in Listing 9-1. In this spreadsheet, the inventory for a region and week
is calculated using a formula: current inventory is the sum of last week’s inventory and the quantity
received in this week minus the quantity sold in this week. This formula is shown in the example using
Excel spreadsheet notation. For example, the formula for week 2’s inventory would be =B5+C4-C3 ,
where B5 is the prior week’s inventory, C4 is the current week’s receipt_qty and C3 is the current
week’s sales_qty. Essentially, this formula uses an inter-row reference to calculate the inventory.
我们看一下列表9-1的电子表格。在这个电子表格中,区域和星期的库存通过公式计算:当前的库存是上一周的库存与本周接收的数量之和再减去本周售出的数
量。例子中的公式使用了Excel电子表格记法。例如,第二周的库存公式是=B5+C4-C3
,其中B5是上一周的库存,C4是当前周接收量,C3是当前周的销售量。实质上,该公式使用了行间引用来计算库存。
Listing 9-1. Spreadsheet Formula to Calculate Inventory 电子表格公式计算库存
Product = Xtend Memory, Country =’Australia’
A |
B |
C |
D |
E |
F |
G |
Year=2001 |
Week-> |
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
Sale |
92.26 |
118.38 |
47.24 |
256.70 |
93.44 |
43.17 |
Receipts |
96.89 |
149.17 |
49.60 |
259.10 |
98.66 |
20.22 |
Inventory |
4.63 |
35.42 |
37.78 |
40.18 |
45.41 |
22.44 |
|
|
=B5+C4-C3 |
|
|
|
|
While it’s easy to calculate this formula for a few dimensions using a spreadsheet, it’s much more
difficult to perform these calculations with more dimensions. Performance suffers as the amount of
data increases in the spreadsheet. These issues can be remedied by using the Model clause that the
Oracle Database provides. Not only does the Model clause provide for efficient formula calculations,
but the writing of multi-dimensional, multi-variate analysis also becomes much more practical.
虽然对低纬度的(数据)使用电子表格计算该公式比较容易,但是执行多维度的计算会非常困难。随着电子表格中的数据量的增大使得性能受到影响。这个问题可以通过使用Oracle数据库提供的Model子句弥补。Model子句不但提供高效的公式计算,而且使得书写多维度,多变量分析变得更加的实际。
分享到:
相关推荐
本章“《Pro Oracle SQL》CHAPTER 9 The Model Clause”重点讲解了Model子句的使用,特别是其在聚合操作中的应用。 Model子句的基本结构允许用户指定一个数据区域(即模型区域),在这个区域内对数据进行计算和操作...
《Pro Oracle SQL》一书的第9章深入探讨了Oracle数据库中的"Model"子句,这一章节重点关注如何使用Model子句来更新数据行。在Oracle SQL中,Model子句是一种强大的功能,允许进行复杂的行处理和模拟迭代计算,通常...
《Pro Oracle SQL》一书的第9章深入探讨了Oracle数据库中的“Model”子句,这一章节重点关注了9.5节——评估顺序。在Oracle SQL中,Model子句是一种高级的行处理工具,用于进行复杂的行计算和模拟迭代过程,比如解决...
《Pro Oracle SQL》一书中的第9章详细探讨了Oracle SQL中的“模型”子句,这一章的主题是“9.7 迭代”。在Oracle数据库中,模型子句是一种强大的功能,它允许用户进行复杂的多步骤计算,尤其适用于处理数组、矩阵...
《Pro Oracle SQL》一书中的第9章详细探讨了Oracle SQL中的“模型”子句,这一章重点关注了位置引用和符号引用的概念。在Oracle数据库中,模型子句是一种强大的工具,用于处理复杂的行列操作,例如数据建模、数据...
《Pro Oracle SQL》是Oracle数据库查询的一本权威指南,其中第9章主要讲解了如何使用Model子句进行行间引用,这是一个高级SQL特性,用于处理复杂的行与行之间的计算和逻辑操作。9.2章节专注于Inter-Row Referencing...
《Pro Oracle SQL》一书的第9章,重点关注了使用"Model"子句进行性能调优的方法。在Oracle数据库中,Model子句是一种强大的功能,它允许数据建模和复杂的计算,尤其适用于解决多步骤计算问题,如模拟、预测和序列...
《Pro Oracle SQL》一书的第七章深入探讨了高级分组技术,特别是关于`HAVING`子句的部分。`HAVING`子句在SQL查询中扮演着至关重要的角色,它用于在聚合函数的结果集上设置条件,这与`WHERE`子句有所不同。`WHERE`...
Pro Oracle SQL unlocks the power of SQL in the Oracle Database—one of the most potent SQL implementations on the market today. To master it requires a three-pronged approach: learn the language ...
Walking the Tree: From the Top Down 5-9 Ranking Rows with the LEVEL Pseudocolumn 5-10 Formatting Hierarchical Reports Using LEVEL and LPAD 5-11 Pruning Branches 5-13 Summary 5-14 Practice 5 Overview 5...
### Oracle SQL 优化与调优技术详解:深入理解SQL提示 #### 一、SQL提示的定义及作用 在Oracle数据库的SQL语句中,SQL提示(Hints)是一种用于指导优化器选择特定执行计划的特殊注释语法。这些提示能够帮助数据库...
Clause-view个人中心、设置常用的itemview
资源分类:Python库 所属语言:Python 资源全名:clause-1.1.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Oracle和SqlServer语法区别 Oracle和SqlServer是两种流行的关系型数据库管理系统,它们之间存在着一些语法区别。了解这些区别对于开发者来说非常重要,因为它可以帮助他们更好地迁移到新的数据库管理系统。下面将...
### ORACLE和SQL Server的语法区别 #### 一、概述 本文主要介绍Oracle与SQL Server在SQL语言层面的异同之处,重点在于Transact-SQL(T-SQL)与PL/SQL之间的区别,并提供了一些迁移策略。对于希望将现有的Oracle...
Oracle SQL查考手册是一部关于Oracle数据库查询语言的重要参考资料,它涵盖了运算符、表达式、条件、函数以及常见的SQL DDL(Data Definition Language)和Clause等内容。这篇总结将深入解析这些核心概念,帮助读者...
Chatopera 语义理解系统:机器学习,聊天机器人,意图识别clause-osc.zip