数据库三种模式
数据库——三种模式
1.前言
数据库有三种模式
外模式 (External Schema)2. 模式 (Conceptual Schema)3. 内模式 (Internal Schema)
三者共同构建了数据库的 完整结构.
建议从例子开始看,例子看懂再看前面的,会比较好理解
2.外模式(External Schema)
外模式通常由概念模式导出。它给出了每个用户的局部数据描述。
作用:保证了数据库的 安全性 和 完整性 。每个用户只能看见和访问所对应的外模式中的数据,数中的安全性和完整性。每个用户且只能看见和访问所对应的外模式中的数据,数据库中的其余数据他们是看不到的(安全性)。
ps:一个外模式可以被 多个应用程序 所使用,但一个应用程序只能使用 一个外模式
3.模式(Conceptual Schema)
也叫“ 逻辑模式 ”或“ 概念模式 ”,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图(我认为“模式”更像是一个动作,是在你定义这个表时候添加的一些列、约束等的动作)。
一个数据库只有一个概念模式。既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、开发工具以及高级程序设计语言无关。
作用:定义了数据的 逻辑结构 (如表、列、数据类型、约束等),以及数据之间的关 联关系 。
4.内模式(Internal Schema)
也叫“ 存储模式 ”或“ 物理模式 ”,是数据在数据库系统内部的表示,是对数据的物理结构和村存储方式的描述。当然数据库管理系统在物理存储方面有很大的灵活性(你想把数据存硬盘可以,存u盘都行),当数据存储的介质或存取方式发生变化的时候,只用改变内模式,而不影响概念模式(你把数据从硬盘拷贝到u盘,并不会改变表的结构,有几个表,表里有几列都不会变)和外模式(电脑上玩原神,在手机上打开,并不会因为数据存储的位置发生变化,而导致等级降低)
作用:内模式它可以给出数据库的 物理存储结构 ,其中包括存储记录的 类型 、 索引 和 文件的物理结构 ,以及数据是否压缩、加密等。
5.实际例子——理解三种模式
为学校设计一个数据库系统。系统中记录学生的信息、课程的信息以及学生和课程之间的关联关系。
5.1 外模式(External Schema)
对于学校的教务管理部门,他们主要关心学生的基本信息、课程信息以及学生的选课情况。因此,我们可以为他们设计一个外模式,其中包含 学生表 (包含学生ID、姓名、年龄等字段)、 课程表 (包含课程ID、课程名称、授课教师等字段)以及 选课表 (包含学生ID、课程ID、成绩等字段)。这样, 教务管理部门 就可以通过这个外模式来查询、更新和管理学生、课程以及选课的相关信息。
对于 学校的教师 ,他们可能更关心自己所教授的课程以及选课的学生情况。因此,我们可以为教师设计一个不同的外模式,其中主要包含 课程表 以及 选课表 的相关字段。这样,教师可以方便地查看自己所教授的课程信息以及学生的选课和成绩情况。
5.2 模式(Conceptual Schema)
模式是整个数据库的 逻辑结构 ,它描述了数据的 整体组织和关系 。在这个例子中,模式可能包含三个主要的实体: 学生 、 课程 和 选课 。每个实体都有相应的属性,如学生的姓名、年龄,课程的名称、教师,以及选课的学生ID、课程ID和成绩。这些实体之间通过关系(如选课关系)相互连接。模式还定义了数据的完整性约束,如主键约束、外键约束等,以确保数据的准确性和一致性。
5.3 内模式(Internal Schema)
内模式描述了数据在 物理存储介质 上的 组织 和 存储 方式。它关心的是数据的存储结构、索引方式、数据的压缩和加密等。例如,在这个例子中,我们可能会选择使用关系型数据库管理系统(如MySQL)来存储数据。在物理存储上,学生表、课程表和选课表可能会被存储为 不同 的文件或表空间,每个表中的数据按照特定的行格式进行存储。为了提高查询效率,我们可能还会为某些字段建立索引。