数据库系统的三级模式结构知识笔记

1、数据抽象的三个层次

数据库系统利用三个层次划分来抽象来对用户屏蔽系统的复杂性、简化用户与系统的交互。

1.1 物理层

物理层属于最低级层次的抽象,描述数据在存储器上如何进行存储的。物理层会详细描述复杂的底层结构。

1.2 逻辑层

逻辑层属于中间层,用来描述数据库中存储什么数据以及这些数据间存在什么关系。逻辑层相对简单的描述了整个数据库的结构。

1.3 视图层

视图层是最高层次的抽象,描述数据库的某个部分。

2、数据库的三级模式结构

数据库系统采用三级模式结构。具体描述如下:

3、数据库的模式介绍

3.1 概念模式

概念模式也称为模式,是数据库中全部数据的逻辑结构和特征的描述,它由若干个概念记录类型组成,只涉及型的描述、不涉及具体的值。

概念模式反映的是数据库的结构和联系,相对是稳定的。而实例反映的是数据库某一时刻的状态,相对是变动的。概念模式描述概念记录类型、记录间的联系、操作、数据的完整性和安全性等要求。描述概念模式的数据定义语言称为模式DDL。

3.2 外模式

外模式称为用户模式和子模式,是用户与数据库系统的接口,是用户用到的那部分数据的描述。描述外模式的数据定义语言称为外模式DDL。

3.3 内模式

内模式也称为存储模式,是物理结构和存储方式的描述,是数据在数据库内部的表示方式。定义所有的内部记录类型、索引、文件的组织方式,以及数据控制方式的细节。描述内模式的数据定义语言称为内模式DDL。

4、两级映像

数据库系统在三级模式之间提供了两级映像:模式/内模式映像、外模式/模式映像。两级映像保证了数据库中的数据具有较高的逻辑独立性、物理独立性。

模式/内模式映像:存在于概念级和内部级之间,实现概念模式到内模式的相互转换。

外模式/模式映像:存在于外部级和概念级之间,实现外部模式到概念模式的相互转换。

5、数据的独立性

数据的独立性是指数据与程序独立,将数据的定义从程序中分类出去,由DBMS负责数据的存储,从而简化应用程序,大大减少应用程序编制的工作量。数据的独立性由DBMS的二级映像功能来保证的。分为数据的物理独立性、数据的逻辑独立性。

数据的物理独立性:是指当数据库的内模式发生改变时,数据的逻辑结构不变。

数据的逻辑独立性:是指用户的应用程序与数据库的逻辑结构是相互独立的。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Arrays.sort()排序

/*** Arrays.sort()排序* 默认升序*/Testpublic void test(){Integer[] result {1,4,7,9};Arrays.sort(result);for (int i 0;i<result.length;i)System.out.println(i);}

import package的问题

在新建class的时候除了名字还可以选择包名&#xff1a; 新建2个包名&#xff0c;然后在不同的包里写2个同名的类&#xff0c; 程序中导入另外一个包 package com.hs;import com.hy.Father; 当直接使用Father的时候提示是引用的com.hy.Father public static void main(String[] …

mysql分区列要包含主键吗_MYSQL的分区字段,必须包含在主键字段内

在对表进行分区时&#xff0c;如果分区字段没有包含在主键字段内&#xff0c;如表A的主键为ID,分区字段为createtime &#xff0c;按时间范围分区&#xff0c;代码如下&#xff1a; www.2cto.comCREATE TABLE T1 (id int(8) NOT NULL AUTO_INCREMENT,createtime datetime NOT …

python爬虫怎么下载图片到手机_Python爬虫获取图片并下载保存至本地

1、抓取煎蛋网上的图片。 2、代码如下&#xff1a; import urllib.request import os #to open the url def url_open(url): requrllib.request.Request(url) req.add_header(User-Agent,Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0) responseu…

数据库技术基础:常见基本模型介绍笔记

1、层次模型层次模型采用树型结构表示数据与数据间的联系。层次模型中每个节点表示一个实体&#xff0c;实体之间的联系用节点之间的连线表示&#xff0c;并且除了根节点以外&#xff0c;其他节点有且仅有一个双亲节点。层次模型特点&#xff1a;记录之间的联系通过指针实现&am…

升序

/*** 升序*/Testpublic void test25() {List<Integer> array Stream.of(1, 8, 5, 3).collect(toList());// 升序排序array.sort(Integer::compareTo);System.out.println(array);}

核心动画与UIView的区别

核心动画与UIView的区别 1、核心动画只作用于layer&#xff0c;使用核心动画之前&#xff0c;必须有layer 2、核心动画只是假象&#xff0c;并没有移动实际位置 什么时候使用核心动画&#xff0c;什么时候使用UIView动画 1、当不需要与用户进行交互时&#xff0c;使用核心动画或…

python convert函数_Python内置函数

英文文档&#xff1a;hex(x)Convert an integer number to a lowercase hexadecimal string prefixed with “0x”, for exampleIf x is not a Python int object, it has to define an __index__() method that returns an integer.说明&#xff1a;1. 函数功能将10进制整数转…

数据库技术:数据存储和查询知识笔记

1、存储管理器存储管理器作用&#xff1a;负责数据库中数据的存查询和更新。存储管理器负责和文件系统交互&#xff0c;将不同的DML语句翻译成底层文件系统命令&#xff0c;通过这种方式原始数据就通过文件系统存储在磁盘上。存储管理器是存储底层数据和应用程序、以及向数据库…

mininet在哪编写python脚本_1 mininet 简介及同时支持python2和python3

Mininet 是由斯坦福大学研究开发的开源软件&#xff0c;是一个基于Linux Container虚拟化技术的轻量级网络模拟器。即可以在个人电脑上模拟出包括交换机、主机、和控制器等软件定义网络节点。 为openflow应用提供简单、免费的应用测试平台。 支持多用户独立的在同一张拓扑上进行…

python列表去重的方法_Python列表中去重的多种方法

怎么快速的对列表进行去重呢&#xff0c;去重之后原来的顺序会不会改变呢&#xff1f;去重之后顺序会改变set去重列表去重改变原列表的顺序了l1 [1,4,4,2,3,4,5,6,1]l2 list(set(l1))print(l2) # [1, 2, 3, 4, 5, 6]但是&#xff0c;可以通过列表中索引(index)的方法保证去重…

lambda中orElse(null)使用

如果取得第一个元素&#xff0c;则用findFirst() 最后提取元素的时候&#xff0c;可以用&#xff1a;get或者orElse(null) 这里要注意的是&#xff0c;规范用法是orElse(null) 用get方法&#xff0c;如果filter中获取的是null&#xff0c;那么用get方法会抛出异常&#xff1…

求凸包(两遍扫描,求上下凸包的方法)

求凸包模版 struct point { double x,y; double val,len; }points[20]; point points1[20]; point points2[20]; const int INF1e8; bool cmp(point a,point b) { if(a.xb.x) return a.y<b.y; return a.x<b.x; } double chaji(point a,point b,point c,point d) { return…

数据挖掘:数据仓库相关知识笔记

1、数据仓库介绍数据仓库&#xff08;DW&#xff09;&#xff1a;可以满足管理人员的决策分析需要&#xff0c;在数据库基础上产生了满足决策分析需要的数据环境。传统数据库和数据仓库比较比较内容传统数据库数据仓库数据内容当前数据历史的、存档的、归纳的、计算的数据目标面…

python200行代码_如何用200行Python代码“换脸”

本文将介绍如何编写一个只有200行的Python脚本&#xff0c;为两张肖像照上人物的“换脸”。 这个过程可分为四步&#xff1a; 检测面部标记。 旋转、缩放和转换第二张图像&#xff0c;使之与第一张图像相适应。 调整第二张图像的色彩平衡&#xff0c;使之与第一个相匹配。 把第…

git的smart Checkout跟force checkout的区别

1:在切换分支的时候,常常会遇到下图的问题 是因为我在test分支上修改了代码&#xff0c;但是没有commit&#xff0c;切换到其他分支上就弹出了这个窗口 我们需要怎么处理呢 2:可以看到弹框底部有Force Checkout Dont checkout Smart Checkout,表示什么意思呢 Smart …

python画图中grid等于true_Python中的matplotlib画图总结

# -*- coding: utf-8 -*-import matplotlib.pyplot as pltfrom numpy.random import randnimport numpy as npfrom io import StringIOimport pandas as pd#Create figurefig plt.figure()#创建子图subplot: 表示2X2&#xff0c;即4个子图中的第1个图&#xff0c;编号为1#参数…

数据挖掘相关知识介绍

1、数据挖掘定义把数据库中大量数据背后隐藏的重要信息抽取出来&#xff0c;然后为公司创造很多潜在的利润&#xff0c;针对这种海量数据库中挖掘数据信息的技术称为数据挖掘&#xff08;DM&#xff09;。2、数据挖掘的分类按照数据库种类&#xff1a;关系型数据库的数据挖掘、…

Yii2 behavior运用

1 class ReturnDataTypeBehaviors extends Behavior2 {3 4 public $type json;5 public $pcOrMobile pc; // or mobile6 7 //控制器执行之后事件8 public function events()9 { 10 return [Controller::EVENT_BEFORE_ACTION > beforeType]; …

c语言数字灵活多变的访问形式_学习C语言你必须知道的事儿!

是新朋友吗&#xff1f;记得先点蓝字关注我哦&#xff5e;今日课程菜单Java全栈开发 | Web前端H5大数据开发 | 大数据分析人工智能Python | 人工智能物联网有听过这样一段话&#xff1a;在编程界&#xff0c;C语言就是道家的“三”&#xff0c;A生B&#xff0c;B生C&#xff0c…