WEB开发网
开发学院数据库DB2 DB2中多种常用功能的解决方法 阅读

DB2中多种常用功能的解决方法

 2007-05-20 16:18:39 来源:WEB开发网   
核心提示: 猜测游戏和镜屋您的表很不错 — 为什么要从视图访问它?这样做有许多理由:列级别安全性:排除那些您不希望用户在定义视图的 SELECT 中看到的列,行级别安全性:除非您定义一个视图,DB2中多种常用功能的解决方法(6),否则 Windows/UNIX/OS/2 上的 DB2 v7

猜测游戏和镜屋

您的表很不错 — 为什么要从视图访问它?这样做有许多理由:

列级别安全性:排除那些您不希望用户在定义视图的 SELECT 中看到的列。

行级别安全性:除非您定义一个视图,否则 Windows/UNIX/OS/2 上的 DB2 v7 不允许您限制对表中某些行的访问(如果您希望限制对允许用户看到的内容的更新,请记得加上 check 选项):

create view london_football as
select * from football
where team in ('Arsenal','Aston Villa')
with check option

设想这一点对于“人力资源”应用程序的作用:用户可以查看薪水在 $nn,nnn 以下的雇员,给他们加薪而加薪后的薪水不会在 $nn,nnn 以上。

DROP COLUMN:DB2 不允许您删除一个列。我可以想到您希望删除列的三个理由:

回收空间:如果您希望这样做,可以导出您希望保存的数据,删除那个表,用您需要的那些列重新创建表,然后装入这个表。这是否代价高昂?当然是,但是回收空间需要这样或者 REORG TABLE。这些本来就是代价高昂的操作。

这个列不再是行的逻辑部分:例如,您意识到您的雇员可能有两个地址,并且停止跟踪雇员(employee)表中的地址(雇员表和雇员地址(employee_address)表之间现在有 n:m 关系)。在雇员表上创建一个不包含地址列的视图。

如果您真的要用新奇的方法,可以使用 RENAME TABLE 命令给基表一个新的名称,然后将原始表名作为该视图的名称。您的视图也可以连接雇员表中的有用列和从雇员地址获得的地址。现在我们回到了关系的正道。

列变宽了。如果它是 VARCHAR,那您运气不错。DB2 允许您将 VARCHAR 列最多加宽至表空间(tablespace)中定义的页大小宽度(缺省的 4K 页大小为 4,005,而在 32K 页上最多为 32,672):

上一页  1 2 3 4 5 6 7 8  下一页

Tags:DB 多种 常用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接