数据库中的视图及三级模式结构


一、视图及视图更新

简单地说,视图可以看成是一个窗口,它所反映的是一个表或若干表的局部数据,可以简化查询语句。视图一经定义,用户就可以把它当作表一样来查询数据。

但视图和基本表不同,视图是一个虚表,即视图储存的是查询语句而不是查询结果。一个视图既可以定义在基本表上,也可以定义在另一个视图上。一个视图可在几个表或视图上建立,一个表或视图也可建立多个视图。

DROP TABLE IF EXISTS student;

CREATE TABLE student
(
    student_id   INT PRIMARY KEY,
    student_name VARCHAR(50) UNIQUE,
    gender       ENUM ('Male', 'Female') DEFAULT 'Male',
    major        VARCHAR(50) NOT NULL,
    birthdate    DATE        NOT NULL
);

INSERT INTO student (student_id, student_name, gender, major, birthdate)
VALUES (1, 'Alice', 'Female', 'Computer Science', '2000-05-15'),
       (2, 'Andrew', 'Male', 'Engineering', '1999-09-20'),
       (3, 'Maria', 'Female', 'Mathematics', '2001-03-10'),
       (4, 'Samantha', 'Female', 'Physics', '2002-01-25'),
       (5, 'Michael', 'Male', 'Biology', '1998-11-05'),
       (6, 'Jessica', 'Female', 'History', '1997-06-30'),
       (7, 'William', 'Male', 'Computer Science', '1996-04-15'),
       (8, 'John', 'Male', 'Computer Science', '1995-08-08');

# 创建计算机专业的学生视图
CREATE OR REPLACE VIEW computer_science_students AS
SELECT *
FROM student
WHERE major = 'Computer Science';

SELECT * FROM computer_science_students;
# +----------+------------+------+----------------+----------+
# |student_id|student_name|gender|major           |birthdate |
# +----------+------------+------+----------------+----------+
# |1         |Alice       |Female|Computer Science|2000-05-15|
# |7         |William     |Male  |Computer Science|1996-04-15|
# |8         |John        |Male  |Computer Science|1995-08-08|
# +----------+------------+------+----------------+----------+

行列子集视图是指从单个基本表导出的,并且只是去掉了基本表的某些行和某些列,但保留了主键的视图。在关系数据库中,基本表的行列子集视图一般是可更新的。但对于其他一些些视图来说,由于对视图的更新不能通过视图消解唯一地、有意义地转换成对相应的基本表的更新,因此这些视图不允许更新。

这些不能更新的视图主要包括:

  • 视图是由两个以上基本表导出的。
  • 视图的字段来自于字段表达式聚集函数常数
  • 视图定义中含有 GROUP BY 子句或 DISTINCT 短语。
  • 视图定义中含有嵌套查询,并且内层查询的 FROM 子句中涉及的表也是导出该视图的基本表。
  • 另一个不允许更新的视图上定义的视图。

二、数据库三级模式结构

在这里插入图片描述

数据库的三级模式:

  • 数据库模式:又称逻辑模式,是对数据库中全体数据逻辑结构和特征的描述,是所有用户的公共数据视图,模式描述的是数据的全局逻辑结构。
  • 数据库外模式:又称为子模式或用户模式,是数据库用户能够看见和使用的局部数据逻辑结构和特征的描述,是数据库用户的数据视图,通常是模式的子集,一个数据库可以有多个外模式。
  • 数据库内模式:又称存储模式,是对数据库物理结构存储方式的描述,是数据在数据库内部的表现形式,一个数据库只有一个内模式。

数据库的两级映像:外模式/模式的映像模式/内模式的映像,分别保证了数据库中数据的逻辑独立性物理独立性

数据库三级模式与两级映象的好处:

  • 方便了用户使用,简化了用户接口
  • 实现了数据的独立性(物理数据独立、逻辑数据独立)
  • 有利于数据共享
  • 有利于数据的安全和保密

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值