-
2016-06-14 11:42:14
视图的引入
1,视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。
2,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
3,使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。
视图的作用
1,使操作简便化;
2,增加数据的安全性;
3,提高表的逻辑独立性;
更多相关内容 -
四、视图的引入
2018-12-27 16:26:30视图的概念: 视图是一张虚拟的表,是从数据库中一个或多个表中导出来的表;视图是不存在物理数据的;使用视图查询时,数据来源于数据库原表中的数据。具有普通表的结构,但是不实现数据存储。 视图的作用: 1....视图的概念:
视图是一张虚拟的表,是从数据库中一个或多个表中导出来的表;视图是不存在物理数据的;使用视图查询时,数据来源于数据库原表中的数据。具有普通表的结构,但是不实现数据存储。
视图的作用:
1.操作简便化:我们可以建立一些简单的视图,所见即所得。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
2.增加数据的安全性:比如写代码时使用视图,不直接操作数据库表。可能原数据库表中的某些字段有很重要的信息,我们不对外公开,使用视图可以屏蔽掉不使用,只能操作可见到的数据,这样数据更加安全。
3.提高表的逻辑独立性:视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。
视图的缺点:
1.性能开销大:
数据库必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,数据库也要把它变成一个复杂的结合体,需要花费一定的时间。
2.修改限制:
当用户试图修改视图的某些信息时,数据库必须把它转化为对基本表的某些信息的修改,对于简单的视图来说,这是很方便的,但是,对于比较复杂的试图,可能是不可修改的。
参考表数据:
视图的创建:
这样,我们就创建好了一个视图:
下面我们来使用一下这个视图:
--从视图中检索数据,执行:
SELECT * FROM v1;
-- 定义一个只有书名和价格字段的视图:
create view v2 as select bookName,price from t_book;
--从v2视图中检索数据:
select * from v2;
这样只能检索到相关的列 保证了数据的安全性和独立性
你认为这样很安全吗?字段名还是被开发人员给看到了 我们可以给视图中的列单独取名字:
--创建单表视图(自定义列名):
create view v3(自定义的名字,p) as select bookName,price from t_book;
-- 执行:
select * from v3;
--结果:
--多表上创建视图:
create view v4 as select t1.bookName,t2.bookTypeName from t_book t1,t_booktype t2 WHERE t1.bookTypeId=t2.id;
--检索数据:
SELECT * FROM v4;
--结果:
查看视图:
1. DESCRIBE 语句查看视图基本信息
执行语句: DESCRIBE v4;
或者省略写法: DESC v4;
2.SHOW TABLE STATUS 语句查看视图基本信息:
执行语句:SHOW TABLE STATUS LIKE 'v4' 可以看到最后comment是View
可以对比执行:SHOW TABLE STATUS LIKE '表名' 看看 有什么不同
3.SHOW CREATE VIEW 语句查看视图详细信息
执行语句:SHOW CREATE VIEW v4
4.在 views 表中查看视图详细信息:
系统库中有一张VIEW表:
修改视图:是指修改数据库中,存在的视图的定义
比如,当基本表中的某些字段发生变化时,可以通过修改使徒的方式,来保持视图与基本表的一致性1.用 CREATE OR REPLACE VIEW 语句修改视图
我们把之前建立的V1 视图 改为只有bookName和price 两个字段:
执行语句:CREATE OR REPLACE VIEW v1(bookName,price) AS SELECT bookName,price FROM t_book
用这个命令时视图存在就修改,不存在就创建;
2. 用 ALTER 语句修改视图
ALTER VIEW v1 AS SELECT * FROM t_book
更新视图:更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为视图是一个虚拟的表,其中没有数据。通过视图更新时,都是转换基本表来更新。更新视图时,只能更新权限范围内的数据。
超出了范围,就不能更新。插入(INSERT):
INSERT INTO v1 VALUES(NULL,'java good','120','fang',1);
更新(UPDATE)
UPDATE v1 SET bookName='java very good',price=200 WHERE id=5;
删除(DELETE)
DELETE FROM v1 WHERE id=5;
删除视图:删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据;
删除V4视图:
DROP VIEW IF EXISTS v4;
-
解析SQL Server 视图、数据库快照
2020-09-10 07:47:51在程序开发过程中,任何一个项目都离不开数据库,这篇文章给大家详细介绍SQL Server 视图、数据库快照相关内容,需要的朋友可以参考下 -
数据库视图 sql
2021-01-28 08:08:21视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视...文章萌萌怪兽2020-02-...数据库必知词汇:数据库视图
视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。视图与表(有时为与视图区别,也称表为基本表——Base Table)不同,视图所对应的数据不进行实际存储,数据库中只存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视...
文章
萌萌怪兽
2020-02-23
113浏览量
数据库优化之创建视图
视图是保存在数据库中的SELECT查询,可在视图上执行SELECT语句的大多数命令。创建视图的原因有两个:一是出于安全考虑,用户不必看到整个数据库结构,而隐藏部分数据;二是符合用户日常业务逻辑,使其对数据更容易理解
什么是视图?
视图是另一种查看数据库中一个或多个表中数据的方法...
文章
余二五
2017-11-15
766浏览量
《Oracle数据库管理与维护实战》——2.11 Oracle数据字典
本节书摘来自异步社区出版社《Oracle数据库管理与维护实战》一书中的第2章,第2.11节,作者: 何伟娜 , 常建功,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.11 Oracle数据字典
Oracle数据库管理与维护实战数据字典内存放了Oracle的数据库信息,用户可以通过数据字...
文章
异步社区
2017-05-02
1310浏览量
Quick BI 数据可视化分析平台
2020年入选全球Gartner ABI魔力象限,为中国首个且唯一入选BI产品
广告
SQL Server技术问题之视图优缺点
优点:
一、简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。
二、安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据...
文章
技术小牛人
2017-11-22
548浏览量
11、SQL Server 视图、数据库快照
原文:11、SQL Server 视图、数据库快照
SQL Server 视图
什么是视图?
视图是一个虚拟的表,内容源于查询的结果集。只有当视图上建立了索引后,才会具体化。
视图可以筛选和处理数据,而不是直接访问基础表。如:创建一个视图,只展示源表中的几列数据,无需授予用户访问基础表的权限,取而...
文章
杰克.陈
2017-12-20
1017浏览量
Open SQL:1)简介
SAP实际上提供了两种访问数据库的方式:Open SQL与Native SQL,Native SQL为数据库自身的SQL,可以直接访问数据库,能够实现对数据库表及视图直接进行创建、修改、删除等操作。开发人员首先必须了解底层数据库SQL语法,而且Native SQL能直接对数据库表进行修...
文章
ken_ngai
2012-05-17
549浏览量
SQL Server技术问题之视图优缺点
优点:
一、简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。
二、安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户对数据...
文章
技术小牛人
2017-11-08
672浏览量
SQL Server 2005 五个动态管理对象
版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/chinahuyong/article/details/2563099
SQL Server 2005 五个动...
文章
rdiframework
2008-06-18
614浏览量
【数据库优化专题】MySQL视图优化(一)
本期数据库优化专题分享,为大家带来的是DBA+社群MySQL领域原创专家——李海翔所著的MySQL视图优化系列文章。以下是第一部分的内容,未完部分敬请关注后续更新。
专家简介
李海翔
网名:那海蓝蓝
DBA+社群MySQL领域原创专家
从事数据库研发、数据库测试与技术管理等工作10余...
文章
努力酱
2017-05-02
1927浏览量
《BI项目笔记》数据源视图设置
原文:《BI项目笔记》数据源视图设置
目的数据源视图是物理源数据库和分析维度与多维数据集之间的逻辑数据模型。在创建数据源视图时,需要在源数据库中指定包含创建维度和多维数据集所需要的数据表格和视图。BIDS与数据库连接,读取表格和视图定义,并在数据源视图中存储元数据。元数据是“关于数据的数据”:即表...
文章
杰克.陈
2014-12-02
659浏览量
SQL Server 2005 五个动态管理对象
SQL Server 2005 五个动态管理对象
SQL Server 2005的新功能为动态管理对象,它们是在指定时间返回某个数据库实例的特殊状态信息的数据库视图或函数。这些对象允许数据库管理员或开发者对数据库服务器进行高效监控。动态管理对象取代了SQL Server以前版本中的许多系统表格,但...
文章
科技小先锋
2017-11-21
927浏览量
说SQL
先说说什么叫SQL?大家反正都觉得这SQL和数据库有关,其实也不是这样的。SQL是一种结构化数据库查询语言,其发音为“sequel”或“S-Q-L”。尽管MICROSOFT以其特有的方式加入了所有权声明,但它在大多数据库应用中近乎成为一种标准。简言之,它是一种使用你选择的标准从数据库记录...
文章
技术小阿哥
2017-11-14
640浏览量
今天做一个网站与另外一个网站整合,学会了视图在不同数据库中的使用
1、访问不同的sql服务器的数据库表,通过一个视图使用 OPENDATASOURCE 来完成。
Create VIEW [dbo].[视图名称]
AS
Select *
FROM OPENDATASOURCE(
'SQLOLEDB',
'PWD=密码;UID=用户名;Ini...
文章
真爱无限
2013-04-06
645浏览量
人人都是 DBA(II)SQL Server 元数据
SQL Server 中维护了一组表用于存储 SQL Server 中所有的对象、数据类型、约束条件、配置选项、可用资源等信息,这些信息称为元数据信息(Metadata),而这些表称为系统基础表(System Base Tables)。在这些基础表中,存在于 master 数据库中的一部分基础表包...
文章
嗯哼9925
2017-12-13
1106浏览量
SQL补充复习材料(一):名词解释
(1)SQL模式:SQL模式是表和授权的静态定义。一个SQL模式定义为基本表的集合。 一个由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。 (2)SQL数据库:SQL(Structured Query Language),即‘结构式查询语言’,采用英...
文章
五岳之巅
2011-10-09
530浏览量
一款在线ER模型设计工具,支持MySQL、SQLServer、Oracle、Postgresql sql导入
给大家介绍一款在线ER模型生成的工具,可以针对多种数据库的DDL文件在线生成ER模型图表,支持MySQL、SQLServer、Oracle、PostgreSQL等数据库。主要功能如下:
支持表的创建,同时可以根据数据库的类型不同编辑表结构、字段类型、主键、默认值、索引、备注信息等等
支持视图,触...
文章
349767068q
2019-07-18
1636浏览量
SQL2K数据库开发二十之视图操作删除视图
1.在企业管理器中右击要删除的视图,在弹出的菜单中选择"删除"命令,或者点击工具栏上的删除图标。
2.在“除去对象”窗口中显示了要删除的对象,点击“全部除去”按钮可将这些数据库对象删除。
3.点击“显示相关性”按钮可以查看与该视图相关的所...
文章
技术小美
2017-11-09
890浏览量
「mysql优化专题」视图应用竟然还可以这么优化?不得不收藏(8)
当一个大型系统在建立时,会发现,数据库虽然可以存储海量的数据,可是一旦数据关系复杂,比如学生表(学号、姓名、年龄),学生成绩表(学号、科目、成绩),如需要姓名、科目、成绩组成关系,这样的情况我们选择创建一个新表是非常浪费资源的动作,为此,视图诞生了!
一、视图概述:
(1)什么是视...
文章
Java进阶架构师
2017-12-12
892浏览量
《视图更新与关系数据库理论》导读
前言
视图更新与关系数据库理论本书是这个系列的第3本书,它的两位“前辈”是:
《SQL and Relational Theory: How to Write Accurate SQL Code》(第2版)
《Database Design and Relational Theory: Norma...
文章
异步社区
2017-05-02
953浏览量
视图
一、概述
视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候,只是重新执行SQL。优点
1、可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。
2、可以将复杂的查询保存为视图。可...
文章
ryan_bai
2017-10-30
659浏览量
SQL2K数据库开发十九之视图操作查看视图信息
1.要查看视图的定义信息,可以在企业管理器中,右击相应的视图,在弹出的菜单中选择“属性”命令。
2.在弹出的属性对话框中显示了视图定义的文本。
3.点击“权限”按钮可以设置数据库用户操作该视图的权限。
4.点击"列"按钮...
文章
技术小美
2017-11-16
774浏览量
SQL2K数据库开发十八之视图操作修改和重命名视图
1.在要修改的视图上右击鼠标,在弹出的菜单中选择"设计视图"命令.
2.在视图的设计器中,可以按照定义视图的方法更改视图的定义,详细方法可参考上例。
3.如要更改视图的名称,则可以在要改名的视图上右击鼠标,在弹出的菜单中选择“重命名”...
文章
技术小美
2017-11-17
850浏览量
如何获取SQL Server数据库元数据[转]
from : http://www.chinaz.com/Program/MSSQL/0119631c2009.html元数据简介
元数据 (metadata) 最常见的定义为“有关数据的结构数据”,或者再简单一点就是“关于数据的信息”,日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在...
文章
ghost丶桃子
2016-05-18
1510浏览量
SQL SERVER 2008 R2 按照自定数据库对象类型生成脚本
好像Sql server 2008 的这个选择数据库对象类型,在点击“下一步”才提示出来。
SQL SERVER 2008 R2 生成数据... 支持不同的数据库对象类型。比如只导出视图、存储过程、函数。
Microsoft® SQL Server® 2008 R2 下载地址...
文章
阿笨net
2013-03-08
524浏览量
SQL2K数据库开发二十二之索引操作在视图上创建索引
1.在企业管理器中,右击要创建索引的视图,在弹出的菜单中选择“设计视图”命令进入视图设计器。
2.在视图设计器中显示了视图所包含的列,定义视图的SQL语句以及视图中的数据。
3.在设计器中任意一处右击鼠标,在弹出的菜单中选择“管理索引”命令...
文章
技术小美
2017-11-18
845浏览量
4.视图
计算机数据库中的视图是一个虚拟表,其内容由查询定义;
不是数据表,因为它不能存储数据;
只是一个或多个数据表中数据的逻辑显示。
本质:一条被命名的SQL语句。
视图好处:
对机密数据提供安全保护,限制对数据的访问;
简化复杂的查询;
提供数据的独立性;
分解复杂的查询需求,创建多个视图获取数...
文章
zxiaofan
2016-01-23
738浏览量
SQL Server 2005系列教学(12) 导入导出服务
DTS 数据转换服务
在使用SQL SERVER的过程中,由于经常需要从多个不同地点将数据集中起来或向多个地点复制数据,所以数据的导入和导出是极为常见的操作。用户可以使用BCP命令来完成这一任务
SQL SERVER自带了一个数据转换服务DTS,来完成这一任务。
也就是现在数据源是多种多样的,...
文章
技术小胖子
2017-11-15
930浏览量
物化视图基础概念、mview跨库迁移表
概念:
物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。
物化视图类型:
包含聚集的物化视图;只包含连接的物化...
文章
技术小美
2017-11-12
939浏览量
《深入解析sas:数据处理、分析优化与商业应用》一2.4 访问关系型数据库系统中的数据
本节书摘来自华章出版社《深入解析sas:数据处理、分析优化与商业应用》一书中的第2章,第2.4节,作者 夏坤庄 徐唯 潘红莲 林建伟,更多章节内容可以访问云栖社区“华章计算机”公众号查看
2.4 访问关系型数据库系统中的数据
SAS提供了一组访问关系型数据库的SAS/ACCESS接口,每种接口有单...
文章
华章计算机
2017-07-03
1399浏览量
SQL Server Replication 中关于视图的点滴
原文:SQL Server Replication 中关于视图的点滴
在服务器A数据库TEST新建了一个本地发布(Local Publications)RPL_GES_MIS_TEST,在服务器B数据库RPL_TEST上创建了一个本地订阅(Local Subscriptions),它订阅了...
文章
杰克.陈
2018-08-03
626浏览量
-
软件架构视图
2016-01-02 23:36:40软件架构概念:将若干结构元素进行装配,从而满足系统主要功能和性能需求,并满足其他非功能性需求,如可靠性、可伸缩性、可移植性和可用性。用来处理软件高层次结构的设计和实施。 -
simpleLiveView:在“简单视图”中运行时,为Cardano节点创建“实时视图”
2021-05-24 23:28:43Crypto2099简单实时取景创建此简单脚本的目的是为cardano-node ...1.4版更改1.4版引入了一些更改,包括提供“节点名称”以标记您的统计视图的功能(即“ [TICKR] Relay#1”)。 还介绍了对连接的远程对等方总数的 -
matlab最简单的代码-mvposeestim:灵活混合零件和自适应视点选择的多视图姿态估计
2021-05-22 13:35:27matlab最简单的代码目的 灵活混合零件和自适应视点选择的多视图姿态估计。 如果使用此实现,请引用[1]。 关键词人体姿态估计;零件的灵活混合;多视图几何 基本信息 [1]中描述的多视图人体姿势估计方法的实现。 该... -
软件架构视图—4+1视图模式
2021-08-11 18:25:38一、软件架构 软件架构概念:将若干结构元素进行装配,从而满足系统主要功能和性能需求,并满足其他非功能性的需求,如可靠性、可伸缩性、可移植性...使用多重视图的目的: 基于多个并发视图的使用情况来说明描述软https://www.cnblogs.com/PatrickLiu/p/6214857.html
一、软件架构
软件架构概念:将若干结构元素进行装配,从而满足系统主要功能和性能需求,并满足其他非功能性的需求,如可靠性、可伸缩性、可移植性和可用性。用来处理软件高层次结构的设计和实施。
软件架构 ={元素,形式,关系/约束}
软件架构涉及到抽象、分解和组合、风格和美学。用由多个视图或视角组成的模型来描述软件架构,该方法称为多重视图方法。
使用多重视图的目的:
基于多个并发视图的使用情况来说明描述软件密集型系统架构的模型。
1、使用多重视图允许独立地处理各"风险承担人":最终用户、开发人员、系统工程师、项目经理等所关注的问题,
2、并且能够独立地处理功能性和非功能性需求。
多重视图方法从根本上说是需求种类的复杂性所致。
二、需求背景
1、需求的三个层次
软件需求包括3个不同的层次――业务需求、用户需求和功能需求。
业务需求 (Business requirement)表示组织或客户的高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围(vision and scope)文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求(project charter 或 market requirement)文档。
用户需求 (user requirement)描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。
功能需求 (functional requirement)规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求 (behavīoral requirement),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。功能需求描述是开发人员需要实现什么。注意:用户需求不总是被转变成功能需求。产品特性,所谓特性(feature),是指一组逻辑上相关的功能需求,它们为用户提供某项功能,使业务目标得以满足。对商业软件而言,特性则是一组能被客户识别,并帮助他决定是否购买的需求,也就是产品说明书中用着重号标明的部分。客户希望得到的产品特性和用户的任务相关的需求不完全是一回事。一项特性可以包括多个用例,每个用例又要求实现多项功能需求,以便用户能够执行某项任务。
系统需求 (system requirement)用于描述包含有多个子系统的产品(即系统)的顶级需求。系统可以只包含软件系统,也可以既包含软件又包含硬件子系统。人也可以是系统的一部分,因此某些系统功能可能要由人来承担。
业务规则 包括企业方针、政府条例、工业标准、会计准则和计算方法等。业务规划本身并非软件需求,因为它们不属于任何特定软件系统的范围。然而,业务规则常常会限制谁能够执行某些特定用例,或者规定系统为符合相关规则必须实现某些特定功能。有时,功能中特定的质量属性(通过功能实现)也源于业务规则。所以,对某些功能需求进行追溯时,会发现其来源正是一条特定的业务规则。
功能需求记录在软件需求规格说明(SRS)中。SRS完整地描述了软件系统的预期特性。SRS我们一般把它当作文档,其实,SRS还可以是包含需求信息的数据库或电子表格;或者是存储在商业需求管理工具中的信息;而对于小型项目,甚至可能是一叠索引卡片。开发、测试、质量保证、项目管理和其他 相关的项目功能都要用到 SRS。
除此之外,对于需求层次,我们还有其它的分法:组织级需求->业务需求->用户需求->功能需求(有时也叫行为需求)。在此不做一一介绍。
除了功能需求外,SRS中还包含非功能需求,包括性能指标和对质量属性的描述。
质量属性 (quality attribute)是对产品的功能描述作的补充,它从不同方面描述了产品的各种特性。这些特性包括可用性、可移植性、完整性、效率和健壮性,它们对用户或开发人员都很重要。其他的非功能需求包括系统与外部世界的外部界面,以及对设计与实现的约束可用性(usability)的质量属性,它规定了业务需求中“有效”(efficiently)一词的含义。
约束 (constraint)限制了开发人员设计和构建系统时的选择范围。约束,在产品的架构设计中,是需要被首先考虑的问题。
如果说产品的功能代表了产品的能力,那么产品的质量属性代表了产品的品质,产品的约束代表了产品必须去满足的或者适应的条件!用人说“用户体验”是产品的灵魂,对于个人级的软件这么说或许很恰当,当对于企业级甚至是行业级的产品,其灵魂有两个:一个是产品带给用户的价值,另一个是产品的品质,简单的说,就是价值和品质。但其成为一个产品的前提应该是满足约束,否则就不应该设计、开发、进入市场而成为一个垃圾。
三、4+1架构视图
架构视图是对从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,而省略了与此方面无关的实体。
架构要涵盖的内容和决策太多,采用"分而治之"的办法从不同视角分别设计;同时,也为软件架构的理解、交流和归档提供方便。
为了最终处理大型的、富有挑战性的架构,该模型包含五个主要的视图:
- 逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。
- 过程视图(Process View),捕捉设计的并发和同步特征。
- 物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。
- 开发视图(Development View),描述了在开发环境中软件的静态组织结构。
- 场景视图
3.1 逻辑视图(LogicalView)
逻辑视图用来描述系统的功能需求,即在为用户提供服务方面系统所应该提供的功能。在逻辑视图中,系统分解成一系列的功能抽象、功能分解与功能分析,这些主要来自问题领域(ProblemDefinition)。在面向对象技术中,表现为对象或对象类的形式,采用抽象、封装和继承的原理。用对象模型来代表逻辑视图,可以用类图(Class Diagram)来描述逻辑视图。借助于类图和类模板的手段 ,类图用来显示一个类的集合和它们的逻辑关系:关联、使用、组合、继承等。相似的类可以划分成类集合。类模板关注于单个类,它们强调主要的类操作,并且识别关键的对象特征。
逻辑视图的表示法:
构件(Components):类、类服务、参数化类、类层次
连接件(Connectors):关联、包含聚集、使用、继承、实例化
逻辑视图的风格采用面向对象的风格,其主要的设计准则是视图在整个系统中保持单一的、一致的对象模型,避免就每个场合或过程产生草率的类和机制的技术说明。
3.2 过程视图
过程视图(ProcessView),又称“进程视图”,又称“处理视图”。
过程架构考虑一些非功能性的需求,如性能和可用性。它解决并发性、分布性、系统完整性、容错性的问题,以及逻辑视图的主要抽象如何与进程结构相配合在一起,即定义逻辑视图中的各个类的具体操作是在哪一个线程(Thread)中被执行。过程视图侧重系统的运行特性。服务于系统集成人员,方便后续性能测试
Ø 构件:进程、简化进程、循环进程
Ø 连接件:消息、远程过程调用(RPC)、双向消息、事件广播 。
过程视图:关注进程、线程、对象等运行时概念,以及相关的并发、同步和通信等问题。
进程架构可以在几种层次的抽象上进行描述,每个层次针对不同的问题。在最高的层次上,进程架构可以视为一组独立执行的通信程序(叫作"processes")的逻辑网络,它们分布在整个一组硬件资源上,这些资源通过 LAN 或者 WAN 连接起来。多个逻辑网络可能同时并存,共享相同的物理资源。
接着,我们可以区别主要任务、次要任务。主要任务是可以唯一处理的架构元素;次要任务是由于实施原因而引入的局部附加任务(周期性活动、缓冲、暂停等等)。主要任务的通讯途径是良好定义的交互任务通信机制:基于消息的同步或异步通信服务、远程过程调用、事件广播等。次要任务则以会见或共享内存来通信。在同一过程或处理节点上,主要任务不应对它们的分配做出任何假定。
3.3 物理视图
物理视图(PhysicalView)主要描述硬件配置。服务于系统工程人员,解决系统的拓扑结构、系统安装、通信等问题。主要考虑如何把软件映射到硬件上,也要考虑系统性能、规模、可靠性等。可以与进程视图一起映射。物理架构主要关注系统非功能性的需求,如可用性、可靠性(容错性),性能(吞吐量)和可伸缩性。
软件在计算机网络或处理节点上运行,被识别的各种元素(网络、过程、任务和对象),需要被映射至不同的节点;我们希望使用不同的物理配置:一些用于开发和测试,另外一些则用于不同地点和不同客户的部署。因此软件至节点的映射需要高度的灵活性及对源代码产生最小的影响。
物理视图的表示法
Ø 构件:处理器、计算机、其它设备
Ø 连接件:通信协议等
3.4开发视图
开发视图(DevelopmentView),描述了在开发环境中软件的静态组织结构,即关注软件开发环境下实际模块的组织,服务于软件编程人员。将软件打包成小的程序块(程序库或子系统),它们可以由一位或几位开发人员来开发。子系统可以组织成分层结构,每个层为上一层提供良好定义的接口。
系统的开发架构用模块和子系统图来表达,显示了"输出"和"输入"关系。完整的开发架构只有当所有软件元素被识别后才能加以描述。但是,可以列出控制开发架构的规则:分块、分组和可见性。
开发视图的风格通常是层次结构,每个层为上一层提供良好定义的接口,层次越低,通用性越好。
开发视图的表示方法:
Ø 构件:模块、子系统、层
Ø 连接件:参照相关性、模块/过程调用
大部分情况下,开发架构考虑的内部需求与以下几项因素有关:开发难度、软件管理、重用性和通用性及由工具集、编程语言所带来的限制。开发架构视图是各种活动的基础,如:需求分配、团队工作的分配(或团队机构)、成本评估和计划、项目进度的监控、软件重用性、移植性和安全性。它是建立产品线的基础。
3.5场景视图
场景视图,又称“用例视图”,它综合所有的视图。用于刻画构件之间的相互关系,将四个视图有机地联系起来。可以描述一个特定的视图内的构件关系,也可以描述不同视图间的构件关系。
四种视图的元素通过一组重要场景(更常见的是用例)进行无缝协同工作,我们为场景描述相应的脚本(对象之间和过程之间的交互序列)。在某种意义上场景是最重要的需求抽象,它们的设计使用对象场景图和对象交互图来表示。
场景视图是其他视图的冗余(因此"+1"),但它起到了两个作用:
- 作为一项驱动因素来发现架构设计过程中的架构元素。
- 作为架构设计结束后的一项验证和说明功能,既以视图的角度来说明,又作为架构原型测试的出发点。
作为一项驱动因素,源于迭代开发中有场景驱动(scenario-driven)方法。场景驱动方法认为系统大多数关键的功能以场景(或 use cases)的形式被捕获。关键意味着:最重要的功能,系统存在的理由,或使用频率最高的功能,或体现了必须减轻的一些重要的技术风险。
关于驱动开发方法:
开始阶段:
- 基于风险和重要性为某次迭代选择一些场景。场景可能被归纳为对若干用户需求的抽象。
- 形成"稻草人式的架构"。然后对场景进行"描述",以识别主要的抽象(类、机制、过程、子系统)。
- 所发现的架构元素被分布到 4 个蓝图中:逻辑蓝图、进程蓝图、开发蓝图和物理蓝图。
- 然后实施、测试、度量该架构,这项分析可能检测到一些缺点或潜在的增强要求。
- 捕获经验教训。
循环阶段:下一个迭代过程开始进行:
- 重新评估风险,
- 扩展考虑的场景选择板。
- 选择能减轻风险或提高结构覆盖的额外的少量场景,
然后:
- 试着在原先的架构中描述这些场景。
- 发现额外的架构元素,或有时还需要找出适应这些场景所需的重要架构变更。
- 更新4个主要视图:逻辑视图、进程视图、开发视图和物理视图。
- 根据变更修订现有的场景。
- 升级实现工具(架构原型)来支持新的、扩展了的场景集合。
- 测试。如果可能的话,在实际的目标环境和负载下进行测试。
- 然后评审这五个视图来检测简洁性、可重用性和通用性的潜在问题。
- 更新设计准则和基本原理。
- 捕获经验教训。
然后:
- 试着在原先的架构中描述这些场景。
- 发现额外的架构元素,或有时还需要找出适应这些场景所需的重要架构变更。
- 更新4个主要视图:逻辑视图、进程视图、开发视图和物理视图。
- 根据变更修订现有的场景。
- 升级实现工具(架构原型)来支持新的、扩展了的场景集合。
- 测试。如果可能的话,在实际的目标环境和负载下进行测试。
- 然后评审这五个视图来检测简洁性、可重用性和通用性的潜在问题。
- 更新设计准则和基本原理。
- 捕获经验教训。
终止循环
为了实际的系统,初始的架构原型需要进行演进 。较好的情况是在经过2 次或 3 次迭代之后,结构变得稳定:主要的抽象都已被找到。子系统和过程都已经完成,以及所有的接口都已经实现。接下来则是软件设计的范畴,这个阶段可能也会用到相似的方法和过程。
场景视图的表示法:
场景表示法与组件逻辑视图非常相似,但它使用过程视图的连接符来表示对象之间的交互,对象实例使用实线来表达。
备注:以上所有视图的实例,在后续的文章中有附上。
四、UML中的图和各视图的对应关系
n 场景视图:用例图
n 逻辑视图:类图和对象图
n 开发视图:类图和组件图
n 进程视图:顺序图、协作图、状态图、活动图、组件图
n 部署视图:部署图
架构设计中产生的文档可以归结为两种:
无论是否经过一次本地定制的和技术上的调整,"4+1"视图都能在许多大型项目中成功运用。事实上,它允许不同的"风险承担人"找出他们就软件架构所关心的问题。系统工程师首先接触物理视图,然后转向进程视图;最终用户、顾客、数据分析专家从逻辑视图入手;项目经理、软件配置人员则从开发视图来看待"4+1"视图。 在 Rational 和其他地方,提出并讨论了其他系列视图,例如 Meszaros(BNR)、Hofmeister。Nord 和 Soni(Siemenms)、Emery 和 Hilliard(Mitre),但我们发现其他视图通常可以归入我们所描述的 4 个视图中的一个。例如Cost&Schedule 视图可以归入开发视图,将一个数据视图归入一个逻辑视图,以及将一个执行视图归入进程视图和物理视图的组合。
-
怎样在JAVA中建立视图
2021-02-12 10:21:06展开全部MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成e69da5e887aa3231313335323631343130323136353331333262383638。Event(事件)导致Controller改变... -
由三视图还原成实物图教学设计说明.doc
2021-10-12 20:58:49由三视图还原成实物图教学设计说明.doc -
SpringMvc框架(视图和视图解析器)
2020-07-14 10:32:31则视图路径还要加上类的@RequestMapping值,上面例子中视图路径为view/test.jsp 2 视图和视图解析器 2.1 引入 视图是展示给用户的内容。在此之前,需要通过控制器得到对应的数据模型,如果是非逻辑视图,则不会经过... -
2020年高中数学 1.1.5 三视图教案 北师大版必修2.doc
2021-10-12 20:44:362020年高中数学 1.1.5 三视图教案 北师大版必修2.doc -
多视图聚类综述
2021-11-22 20:53:05解决问题:虽然上述子空间方法已经取得了显著的改进,但仍然可以从以下两点进行改进:i)现有的大多数多多视图子空间聚类方法都是先学习一个共享的亲和矩阵或图,然后应用谱聚类得到最终的聚类结果。然而,直接从... -
关于不完整多视图聚类相关知识的记录
2021-06-17 10:00:34摘要:我们提出了一个新的框架,称为交叉部分多视图网络(CPM-Nets),旨在充分和灵活地利用多个部分视图。我们首先为多视图表示提供了完备性和多样性的正式...此外,引入非参数分类损失来产生结构化表示和防止过拟合,.. -
人工智能-机器学习-面向信息集成的实化视图增量计算方法与实现.pdf
2022-05-19 00:12:11人工智能-机器学习-面向信息集成的实化视图增量计算方法与实现.pdf -
Thymeleaf视图模块技术
2022-03-26 18:59:35Thymeleaf视图模块技术 我们要实现,一个在网页上的水果管理系统,可以显示当前的水果信息,可以增加删除修改水果信息,而且这整个过程都是显示在页面上,也就是说页面上是实时更新的。 类似这样: 首先,先介绍一... -
Qt模型/视图教程
2020-04-26 00:57:31引入1.1 标准widget1.2 模型/视图提供解决方案1.3 模型/视图widget概览1.4 在表单和模型间使用适配器2. 一个简单的模型/视图应用程序2.1 一个只读的表2.2 使用角色(Role)扩展只读的案例2.3 将钟嵌入表的单元格2.4 ... -
SQL Server实验——数据库视图的定义与使用
2020-04-21 18:58:33SQL Server实验——数据库视图的定义与使用学生选课数据库的创建创建学生信息表student创建课程信息表course创建学生选课信息表sc插入相关信息视图的创建基本应用一、创建信息系(sdept=’IS’)学生信息的视图IS_... -
数据库视图
2014-10-16 19:12:33描述数据库的视图,以及视图的注意,用法以及举例,更好的学习数据库视图 -
多视图聚类方向:子空间学习
2021-08-10 14:36:061.对由多视图特征描述的数据进行聚类,通常的方法是通过挖掘多视图特征之间的互补信息来集成多视图特征。 本文方法的目标是通过限制标签空间的多样性和一致性来学习多视图聚类的最优标签矩阵。首先将聚类标签... -
Oracle物化视图:创建最简单物化视图
2018-05-06 21:31:22物化视图是一种特殊的物理表,“物化”(Materialized)视图... oracle最早在OLAP系统中 引入了物化视图的概念。但后来很多大型OLTP系统中,发现类似统计的查询是无可避免,而这些查询操作如果很频繁,对整体数据库性... -
模型-视图 编程
2016-07-20 23:43:18这种架构引入了功能的分离,给程序员带来了非常大的灵活性来自定义数据的展示,也提供了一个标准模型接口,使得很多不同的数据源都能被现有的视图所使用。在这篇文章中,我们对模型/视图范例,与之相关的概念做了一... -
【多视图】Incomplete Multiview Spectral Clustering With Adaptive Graph Learning
2022-01-06 15:48:13不完整多视图聚类 -
计算机图形学视图矩阵推导过程
2018-04-06 00:59:50视图矩阵推导过程(Demo基于WebGL 2.0实现) 一、概述 首先,我们需要了解些概念: 摄像机坐标系或者摄像机空间:物体经摄像机观察后,进入摄像机空间。 视变化,是将世界坐标系下的坐标变化到摄像机坐标系,视... -
数据库实验7 数据库视图的定义与使用
2020-06-23 22:51:197.1实验目的及要求 掌握视图的用法,加深对视图作用的理解 7.2实验内容 1.创建、修改和删除视图 2.利用视图进行查询 7.3实验步骤 7.3.1视图的创建(查看视图结果用select语句) 1.创建网络工程学生信息的视图... -
MVC 模型-视图-控制器
2018-11-14 02:52:22MVC 模型-视图-控制器 -
Oracle数据库基础(五)(视图,序列,索引)
2019-06-28 21:10:45一、视图 1.1 什么是视图? 1.2 视图的作用? 1.3 授权创建视图 1.4 创建简单视图(单表) 1.5 查询视图 1.6 对视图进行DML操作 1.7 创建具有CHECK OPTION约束的视图 1.8 通过查询USER_VIEW获取相关信息 1.9 创建... -
VC 文档+视图 详细分析
2015-01-28 18:06:40目录(?)[-] 深入浅出MFC文档视图架构之基本概念深入浅出MFC文档视图架构之文档模板深入浅出MFC文档视图架构之文档深入浅出MFC文档视图架构之视图深入浅出MFC文档视图架构之框架深入浅出MFC文档视图... MFC引入了"文档 -
多视图CAD检测系统乳腺X线摄影基于案例的检测性能优化
2017-01-20 11:03:35多视图CAD检测系统乳腺X线摄影基于案例的检测性能优化 介绍 通常乳腺肿块的检测基于双视图乳腺摄影,医生在阅片是会将所有可用视图的信息组合在一起,他们比较MLO和CC视图,寻找不对称性并评估相对于先前乳房X线... -
双点双向路由引入案例
2020-07-16 09:51:45双点双向路由引入案例: 在大型复杂的IP网络中,会存在多种路由协议,为了是网络中路径互通,必然会在多种协议之间进行重分布使路由信息的共享.在进行多点双向重分布时,由于路由协议优先级的不同,会引起次优路径的问题...