数据库的三级模式结构与两级映像

三级模式结构与两级映像

  • 什么是数据库的三级模式结构?
  • 1. 模式(Conceptual Schema,概念模式)
    • 定义
    • 特点
    • 作用
    • 示例
  • 2. 外模式(External Schema,外部模式)
    • 定义
    • 特点
    • 作用
    • 举例
  • 3. 内模式(Internal Schema,内部模式)
    • 定义
    • 特点
    • 作用
    • 举例
  • 三级模式结构的关系和映射
    • 1. 外模式与模式的映射
      • 外模式与模式的关系
      • 映射机制
      • 举例
        • 电商系统中的用户视图与模式
        • 权限控制:
      • 映射的意义
    • 2. 模式与内模式的映射
      • 模式与内模式的关系
      • 映射机制
      • 举例
        • 电商系统中的存储优化
        • 映射逻辑:
      • 映射的意义
    • 3. 外模式与内模式的间接关系
    • 总结:映射在三级模式结构中的作用
    • 扩展:三级模式映射的类比
  • 三级模式的作用总结
  • 举例
    • 假设我们有一个图书馆系统:
  • 三级模式的优点

什么是数据库的三级模式结构?

三级模式结构是数据库系统架构的基础,用来管理和组织数据的视图和存储。它把数据库的整体结构划分为外模式模式内模式三个层次。
这种结构的目的是为了实现数据的抽象化管理,让用户不用关心复杂的底层存储方式,也可以根据不同需求灵活定义数据的呈现方式,同时保障数据的安全性和一致性。

数据库的三级模式结构就像一栋大楼:

  • 外模式:用户看到的房间样子,每个人只能进到他有钥匙的房间。
  • 模式(概念模式):大楼的总体设计图,包括房间布局、水电线路等。
  • 内模式:大楼的建筑材料(钢筋、水泥)以及具体的施工方式。

1. 模式(Conceptual Schema,概念模式)

定义

  • 模式是数据库的核心层,描述了整个数据库的逻辑结构。它定义了数据库中有哪些数据、数据之间的关系,以及如何保证数据的一致性和完整性。

特点

  1. 全局视图:描述的是数据库的整体结构,是所有用户和应用共享的。
  2. 逻辑层面:关注数据的逻辑组织方式,而不是物理存储方式。
  3. 保证一致性:它负责维护数据的完整性约束和一致性(如主键约束、外键约束等)。

作用

  • 为数据库定义一个统一的数据结构。
  • 屏蔽数据的存储细节,使得应用程序和用户不用关心数据是如何存储的。
  • 确保当数据库底层存储方式(内模式)变化时,逻辑结构保持不变(物理数据独立性)。

示例

在一个电商系统中:

  • 用户表:包含用户ID、姓名、邮箱等字段。
  • 商品表:包含商品ID、名称、价格、库存等字段。
  • 订单表:包含订单ID、用户ID、商品ID、下单时间等字段。
  • 数据关系:订单表中的用户ID是用户表的外键,商品ID是商品表的外键。

这些数据表和关系在概念模式中被定义。

2. 外模式(External Schema,外部模式)

定义

  • 外模式是数据库的用户视图,为不同用户或应用程序提供不同的数据子集和访问方式。

特点

  1. 个性化视图:每个用户或应用程序可以有自己的数据视图,只能看到需要的数据,其他数据被屏蔽。
  2. 安全性:通过外模式控制用户的访问权限,保障数据安全。
  3. 多样性:允许不同用户同时访问数据库,而彼此的视图可以完全不同。

作用

  • 让用户只看到他们需要的数据,屏蔽不必要的复杂性。
  • 实现逻辑数据独立性:当概念模式(数据结构)变化时,用户视图可以保持不变。

举例

在一个电商系统中:

  • 买家视图:只看到商品列表(商品名称、价格)和自己的订单信息。
  • 卖家视图:可以看到商品库存、销售情况。
  • 管理员视图:可以查看和修改所有数据。

比如:
买家只需要知道“我买了什么,花了多少钱”,而卖家需要知道“商品库存还剩多少”。这两个用户的需求不同,数据库通过外模式给他们提供了不同的数据视图。

3. 内模式(Internal Schema,内部模式)

定义

  • 内模式描述了数据在数据库中的物理存储方式,包括存储结构、索引方式、文件组织等。

特点

  1. 与硬件相关:关注数据的底层物理存储,具体到硬盘上的存储文件、索引等。
  2. 存储优化:为了提升性能,内模式需要选择合适的数据结构(如B+树索引、哈希索引)和存储方式(如压缩、分区)。
  3. 不可见性:用户和应用程序无法直接接触到内模式。

作用

  • 定义数据的存储方式和存取路径。
  • 屏蔽硬件存储的细节,为上层提供统一的逻辑数据结构。

举例

在电商系统中:

  • 用户表的实际存储可能是一个以用户ID为索引的B+树。
  • 商品表的数据可能分区存储在不同的硬盘上。
  • 日志数据可能存储在压缩文件中。

三级模式结构的关系和映射

在三级模式结构中,外模式、模式和内模式之间通过映射来建立联系。这些映射的作用是屏蔽层级之间的变化,实现数据的独立性和灵活性。

映射机制分为两种:

  1. 外模式与模式的映射:负责连接用户的视图(外模式)和数据库的逻辑结构(模式)。
  2. 模式与内模式的映射:负责连接逻辑结构(模式)和数据的物理存储(内模式)。

1. 外模式与模式的映射

外模式与模式的关系

  • 外模式是从 模式中派生出来的,它是用户或应用程序需要的数据子集。
  • 映射用来描述外模式和模式之间的数据对应关系
  • 它的作用是将用户的视图翻译为数据库的逻辑结构,并保证当模式发生变化时,外模式不受影响(逻辑数据独立性)。

映射机制

  1. 用户视图到模式的映射
    • 外模式的字段(列)如何对应到模式中的字段。
    • 外模式可能只包含模式中的部分字段,甚至会对字段重命名或计算处理。
  2. 权限控制
    • 映射过程还会对用户的权限进行限制,比如用户无法看到某些敏感字段。
  3. 数据转换
    • 如果外模式中的字段与模式中的字段格式不同,映射会对数据进行转换(如单位换算、日期格式化等)。

举例

电商系统中的用户视图与模式

假设一个电商数据库的模式中定义了如下表结构:

  • 用户表(User):用户ID姓名邮箱密码手机号余额
  • 商品表(Product):商品ID名称库存价格

外模式的需求:

  1. 普通买家视图(外模式1):需要看到“用户姓名、邮箱、手机号、余额”。
  2. 管理员视图(外模式2):需要看到所有字段,包括用户密码。

映射逻辑:

  • 外模式1:从用户表中筛选姓名邮箱手机号余额四个字段。
  • 外模式2:直接对用户表提供完整的字段视图。
权限控制:
  • 普通买家不能访问“密码”字段,这就是通过外模式与模式的映射实现的权限屏蔽。

映射的意义

  • 数据定制化:每个用户或应用只需要关心自己使用的数据。
  • 屏蔽逻辑变化:当模式(比如新增了一个字段)发生变化时,通过调整映射,用户的视图可以保持不变。
  • 数据安全:映射可以通过控制外模式来限制用户访问敏感数据。

2. 模式与内模式的映射

模式与内模式的关系

  • 模式描述数据库的逻辑结构,如表结构、字段属性和数据关系。
  • 内模式描述数据在存储设备上的组织方式,如文件结构、索引、分区方式等。
  • 映射用来描述逻辑结构如何对应到物理存储结构
  • 它的作用是当存储方式发生变化时,不影响模式(概念模式),从而实现物理数据独立性

映射机制

  1. 逻辑结构到存储结构的映射
    • 模式中的表、字段如何对应到物理存储的文件、块。
  2. 存储优化
    • 映射过程会选择最佳的存储方式(如索引、压缩)。
  3. 数据存取路径
    • 定义如何通过索引、哈希等方式快速检索数据。

举例

电商系统中的存储优化

假设电商数据库的模式定义了如下逻辑表结构:

  • 商品表(Product):商品ID名称库存价格

在内模式中,该逻辑表可能以不同方式存储:

  1. 对于频繁查询商品价格的场景:
    • 内模式中使用B+树索引按价格排序存储,以加快检索速度。
  2. 对于库存数据非常大的商品表:
    • 内模式中将商品表按照库存进行分区,低库存商品存储在SSD上,高库存商品存储在机械硬盘上。
  3. 如果需要减少存储占用:
    • 内模式中使用压缩存储库存字段。
映射逻辑:
  • 商品表的逻辑结构与存储结构之间的映射定义了:
    1. 哪个字段作为主键存储。
    2. 索引的类型和范围。
    3. 存储文件的组织方式(如分区)。

映射的意义

  • 存储优化:根据数据访问特点,选择最优的存储结构。
  • 屏蔽存储细节:即使底层的存储方式发生变化(比如从B+树改成哈希索引),概念模式和外模式都不需要改变。
  • 提高性能:通过索引、分区等优化存取路径,加快数据访问速度。

3. 外模式与内模式的间接关系

由于外模式和内模式之间没有直接的映射关系,它们的联系必须通过模式(概念模式)来建立:

  • 外模式定义了用户对数据的需求。
  • 模式(概念模式)充当中介,把外模式的需求翻译成具体的逻辑结构。
  • 内模式负责根据逻辑结构组织数据的存储。

这个分层的设计非常重要:

  1. 外模式与内模式隔离:用户不需要关心数据的存储细节,只需通过外模式操作逻辑结构。
  2. 统一管理:概念模式统一管理数据库的逻辑结构和数据关系,保障数据的一致性。

总结:映射在三级模式结构中的作用

映射类型作用实现的数据独立性
外模式与模式的映射将用户的视图映射到概念模式,控制用户能访问的数据子集。逻辑数据独立性
模式与内模式的映射将概念模式映射到物理存储结构,优化数据存储方式和访问路径。物理数据独立性

扩展:三级模式映射的类比

我们可以把三级模式映射比喻成一个大图书馆的管理流程:

  1. 外模式与模式的映射
    用户(比如学生、老师)只想借某些类型的书籍(比如小说、教科书),而图书管理员根据用户需求(外模式)从图书馆系统(模式)里筛选出对应的书籍。
  2. 模式与内模式的映射
    图书馆里有很多书架,书的摆放方式可能按照类别、作者姓名或编号排列。管理员只关心书架编号(内模式),不需要重新设计书的逻辑分类(模式)。

三级模式的作用总结

层次作用面向对象
外模式提供个性化视图,保障数据安全性,屏蔽数据库逻辑和存储的复杂性用户和应用程序
模式统一数据库逻辑结构,确保数据的一致性,屏蔽存储的物理细节数据库的全局逻辑视图
内模式定义数据的物理存储方式,优化存储和访问性能,屏蔽硬件和存储细节数据存储(硬件相关)

举例

假设我们有一个图书馆系统:

  1. 模式:图书馆的管理系统描述了所有书籍的信息(如书名、作者、ISBN号)、借阅记录、书籍的分类关系。
  2. 外模式
    • 普通读者视图:只能看到有哪些书,可以借哪些书。
    • 管理员视图:可以查看书籍的库存、借阅情况,还能新增或删除书籍。
  3. 内模式:书籍信息在数据库中以何种方式存储,比如使用B+树索引存储书名,ISBN号为主键,借阅记录分区存储等。

三级模式的优点

  1. 逻辑独立性:用户的视图不会因为数据结构的变化而改变。
  2. 物理独立性:数据的存储方式可以改变,不影响上层逻辑。
  3. 安全性:不同用户可以定义不同视图,保障数据访问安全。
  4. 灵活性:多用户、多应用同时访问时,能够提供不同的外模式视图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/957829.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTB:Heist[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用smbclient匿…

【HarmonyOS NEXT】华为分享-碰一碰开发分享

关键词:鸿蒙、碰一碰、systemShare、harmonyShare、Share Kit 华为分享新推出碰一碰分享,支持用户通过手机碰一碰发起跨端分享,可实现传输图片、共享wifi等。我们只需调用系统 api 传入所需参数拉起对应分享卡片模板即可,无需对 U…

使用Inno Setup软件制作.exe安装包

1.下一步: 2. 填写 程序名字 和 版本号: 3.设置安装路径信息 4.添加要打包的exe和依赖文件 5.为应用程序创建关联的文件 如果不需要就直接取消勾选 6.创建快捷方式 (1)第一种:常用 (1)第二种&am…

CPU 缓存基础知识

并发编程首先需要简单了解下现代CPU相关知识。通过一些简单的图,简单的代码,来认识CPU以及一些常见的问题。 目录 CPU存储与缓存的引入常见的三级缓存结构缓存一致性协议MESI协议缓存行 cache line 通过代码实例认识缓存行的重要性 CPU指令的乱序执行通过…

初步搭建并使用Scrapy框架

目录 目标 版本 实战 搭建框架 获取图片链接、书名、价格 通过管道下载数据 通过多条管道下载数据 下载多页数据 目标 掌握Scrapy框架的搭建及使用,本文以爬取当当网魔幻小说为案例做演示。 版本 Scrapy 2.12.0 实战 搭建框架 第一步:在D:\pyt…

Python - itertools- pairwise函数的详解

前言: 最近在leetcode刷题时用到了重叠对pairwise,这里就讲解一下迭代工具函数pairwise,既介绍给大家,同时也提醒一下自己,这个pairwise其实在刷题中十分有用,相信能帮助到你。 参考官方讲解:itertools --- 为高效循…

YOLO-cls训练及踩坑记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、模型训练 二、测试 三、踩坑记录 1、推理时设置的imgsz不生效 方法一: 方法二: 2、Windows下torchvision版本问题导致报错 总结 前…

云计算、AI与国产化浪潮下DBA职业之路风云变幻,如何谋破局启新途?

引言 在近日举办的一场「云和恩墨大讲堂」直播栏目中,云和恩墨联合创始人李轶楠、副总经理熊军和欧冶云商数据库首席薛晓刚共同探讨了DBA的现状与未来发展。三位专家从云计算、人工智能、国产化替代等多个角度进行了深入的分析和探讨,为从业者提供了宝贵…

PAT甲级-1017 Queueing at Bank

题目 题目大意 银行有k个窗口,每个窗口只能服务1个人。如果3个窗口已满,就需要等待。给出n个人到达银行的时间和服务时间,要求计算每个人的平均等待时间。如果某个人的到达时间超过17:00:00,则不被服务,等待时间也不计…

从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑

文章目录 从零安装 LLaMA-Factory 微调 Qwen 大模型成功及所有的坑一 参考二 安装三 启动准备大模型文件 四 数据集(关键)!4.1 Alapaca格式4.2 sharegpt4.3 在 dataset_info.json 中注册4.4 官方 alpaca_zh_demo 例子 999条数据, 本机微调 5分…

AI刷题-策略大师:小I与小W的数字猜谜挑战

问题描述 有 1, 2,..., n ,n 个数字,其中有且仅有一个数字是中奖的,这个数字是等概率随机生成的。 Alice 和 Bob 进行一个游戏: 两人轮流猜一个 1 到 n 的数字,Alice 先猜。 每完成一次猜测,主持会大声…

【数据分享】1929-2024年全球站点的逐年最低气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标!说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站点…

CSDN 博客之星 2024:默语的技术进阶与社区耕耘之旅

CSDN 博客之星 2024:默语的技术进阶与社区耕耘之旅 🌟 默语,是一位在技术分享与社区建设中坚持深耕的博客作者。今年,我有幸再次入围成为 CSDN 博客之星TOP300 的一员,这既是对过往努力的肯定,也是对未来探…

计算机网络 (56)交互式音频/视频

一、定义与特点 定义:交互式音频/视频是指用户使用互联网和其他人进行实时交互式通信的技术,包括语音、视频图像等多媒体实时通信。 特点: 实时性:音频和视频数据是实时传输和播放的,用户之间可以进行即时的交流。交互…

Node.js——express中间件(全局中间件、路由中间件、静态资源中间件)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础

嵌入式知识点总结 ARM体系与架构 专题提升(一)-硬件基础 目录 1.NAND FLASH 和NOR FLASH异同 ? 2.CPU,MPU,MCU,SOC,SOPC联系与差别? 3.什么是交叉编译? 4.为什么要交叉编译? 5.描述一下嵌入式基于ROM的运行方式和基于RAM的运行方式有什么区别? 1…

【JavaSE】(8) String 类

一、String 类常用方法 1、构造方法 常用的这4种构造方法:直接法,或者传参字符串字面量、字符数组、字节数组。 在 JDK1.8 中,String 类的字符串实际存储在 char 数组中: String 类也重写了 toString 方法,所以可以直…

JS(6)-数组

一.数组的基本使用 1.数组:把多个数据存到一组 每个数组都有编号,从零开始,数组的编号叫索引或下标,可以存放数字,字符串等。 2.取值 3.遍历数组:用循环的方法把每个数都访问到 a)练习 首先,定…

查看电脑或笔记本CPU的核心数方法及CPU详细信息

一、通过任务管理器查看 1.打开任务管理器 可以按下“Ctrl Shift Esc”组合键,或者按下“Ctrl Alt Delete”组合键后选择“任务管理器”来打开。 2.查看CPU信息 在任务管理器界面中,点击“性能”标签页,找到CPU使用记录区域&#xff0c…

Docker核心命令与Yocto项目的高效应用

随着软件开发逐渐向分布式和容器化方向演进,Docker 已成为主流的容器化技术之一。它通过标准化的环境配置、资源隔离和高效的部署流程,大幅提高了开发和构建效率。Yocto 项目作为嵌入式 Linux 系统构建工具,与 Docker 的结合进一步增强了开发…