使用视图大致有两个方面的原因:
1.封装查询
数据库虽然可以存储海量数据,但是在数据表设计上却不可能为每种关系创建数据表。
关系------每个关系可以看成由行和列交叉组成的一个二维表格。
一个关系对应一个二维表格。
例如:对于学生表,存储了学生信息,学生的属性包括学号、姓名、年龄、家庭住址等信息;而学生成绩表只存储了学生学号、科目、成绩等信息。现需获得学生姓名及成绩信息,那么就需要创建一个关系,该关系需要包括学生姓名、科目、成绩。但为该关系创建一个新的数据表,并利用实际信息进行填充,以备查询使用,是不适宜的。因为这种做法很明显的造成了数据库中数据的大量冗( rǒng)余。
视图则是解决该问题的最佳策略。因为视图可以存储查询定义(或者说关系运算),那么,一旦使用视图存储了查询定义,就如同存储了一个新的关系。用户可以直接对视图中所存储的关系进行各种操作,就如同面对的是真实的数据表。
2.灵活的控制安全性