JMU 数科 数据库与数据仓库期末总结(1)
本章根据老师给出的知识点作进一步相对生动一点的解释。
不保证完全正确。
先给出总的知识点,再给出生动解释。
知识点
- 数据模型通常由三部分组成:数据结构、数据操作和完整性约束。
- 关系模式中主码的取值必须唯一且非空,这是实体完整性的要求。
- 数据独立性包括逻辑独立性和物理独立性。
- 游标的功能是把集合记录转换为单记录。
- 当数据库被破坏后,如果事先保存了数据库副本和日志文件,则有可能恢复数据库。
- 非规范化的过程可以将属性域变为简单域以达到第一范式(1NF),然后通过消除非主属性对主键的部分依赖来达到第二范式(2NF),最后通过消除非主属性对主键的传递依赖来达到第三范式(3NF)。
- DBMS 存取控制机制主要包括两部分:自主存取控制和强制存取控制。
- 数据库系统的三层模式两层映像。
- 如果不对并发操作进行合理的调度,可能导致三种数据不一致性:丢失修改、不可重复读和脏数据。
- 数据库管理系统的主要功能有数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立以及维护等四个方面。
- 强制存取控制是对数据本身进行密集标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记的用户才可以操纵数据,从而提供了更高级别的安全性。
- 当数据库存储结构改变时,由数据库管理员对模式/内模式映像相应改变,可以使模式不变,从而使应用程序也不变,称为数据与程序的物理独立性。
- 数据模型是由数据结构、数据操作和完整性约束三部分组成的。
- 在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则:保持原有的依赖关系和无损连接性。
- 规范化的基本思想是逐步消除数据依赖中的不合适部分,即“一事一地”的模式设计原则,其实质是概念的单一化。
- 在数据库设计中,把数据需求写成文档,它是各类数据描述的集合,包括数据项、数据结构、数据流、数据存储和数据加工过程等的描述,通常称为数据字典。
- 审计员可以利用审计日志监控数据库的各种行为,对潜在威胁提前采取措施加以防范。
- 在设计分 E-R 图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计人员设计的,所以各个分 E-R 图之间难免有不一致的地方,这些冲突主要有属性冲突、命名冲突和结构冲突三类。
- ODBC 是能连接不同关系数据库管理系统,使数据库系统 “开放”,能够实现 “数据库互联”,而由微软公司推出的接口标准。
1. 数据模型基础
想象一下,数据模型就像是图书馆里的图书分类系统。它告诉我们如何组织信息,包括书籍(数据)应该放在哪里(数据结构),我们能对书籍做些什么(比如借阅或归还,即数据操作),以及遵循哪些规则(比如借书需要证件,这就是完整性约束)。
2. 主键与实体完整性
就像每个人都有独一无二的身份证号一样,数据库表中的每一行也需要有一个独一无二的标识,这就是主键。没有这个标识或者重复了,数据库就会混乱,这就是为什么主键的值必须唯一且非空,保证数据的准确性,我们称之为实体完整性。
3. 数据独立性
数据独立性就像你搬家时,家里的家具布置(数据的展现形式)可以变,但你的物品清单(实际数据)不变。逻辑独立性意味着改变数据库的逻辑结构(如增加字段)不会影响到应用程序;物理独立性则是数据库的存储方式变化(比如换硬盘)也不影响程序访问数据。
4. 游标的用途
游标就像是阅读长篇小说(集合记录)时用的书签,它可以帮助数据库从大量数据中定位到某一行(单记录),然后逐行处理数据,这样我们就可以对每一条记录进行精细的操作了。
5. 数据库恢复
如果数据库不幸“生病”了(数据损坏),就像我们身体有备份的免疫细胞一样,数据库也有备份和日志文件作为“恢复药”。通过这些备份资料,数据库管理员就能让数据库“康复”,恢复到之前健康的状态。
6. 范式与非规范化
范式就像是整理房间的规则,让数据更有序。第一范式确保每列不可再分;第二范式进一步要求除了主键外的其他列只依赖于主键的一部分;第三范式则要求非主键列之间也不能相互依赖。而非规范化,就是在某些情况下为了提高查询效率,故意“乱放”一些东西,牺牲一点整洁来换取速度。
7. 数据库安全:存取控制
DBMS(数据库管理系统)就像家里的保安系统,自主存取控制就像是你决定谁可以进哪个房间;而强制存取控制更像是严格的规定,不管你想不想,只有符合规定的人才能进入特定区域。
8. 三层模式与两层映像
数据库的三层模式像是舞台剧的剧本、排练和演出。内模式是后台具体怎么实现的,外模式是观众(应用程序)看到的样子,而模式是剧本本身。两层映像就像是导演调整剧本和演员表演之间的关系,确保无论后台如何改动,观众看到的演出效果保持一致。
9. 并发控制的重要性
并发控制就像是管理一条繁忙的马路,不让车辆(多个事务操作)相撞。如果不加以控制,可能会发生“丢失修改”(就像一个人改了路标,另一个人没看到新指示)、“不可重复读”(同一地方每次看都不一样)和“脏读”(读到了还没确定的信息)等问题。
10. DBMS的核心功能
数据库管理系统(DBMS)是个全能管家,它负责定义数据怎么存储(数据定义),怎么增删查改(数据操纵),还要确保数据库高效稳定地运行(运行管理),以及定期检查维护(建立和维护),确保数据库的健康。
11. 强制存取控制
强制存取控制是一种高级别的安全性措施,它在数据本身添加密级标记,无论数据如何复制,标记都与其不可分割。只有满足标记条件的用户才有权操纵数据,从而提高了安全性。
12. 物理独立性
当数据库的存储结构发生变化时,数据库管理员会更新模式/内模式映像,使得模式保持不变,应用程序不受影响。这种特性称为数据与程序的物理独立性,保证了应用代码无需因底层存储结构的变化而频繁修改。
13. 数据模型
数据模型是描述数据的一种方法,它由三个基本要素构成:数据结构、数据操作和完整性约束。数据结构定义了数据的组织方式,数据操作指明了我们可以对数据执行什么操作,完整性约束则规定了数据应满足的规则。
14. 规范化原则
在关系数据库的规范化理论中,“分解”是指将大表拆分成小表的过程。在这个过程中,我们需要遵守两个重要原则:保持原有的依赖关系和无损连接性。前者保证了数据的一致性,后者保证了数据的完整性。
15. 规范化的思想
规范化的目的是逐步消除数据依赖中的不合适部分,也就是所谓的冗余。这背后的原则是“一事一地”的设计原则,也被称为概念单一化。这意味着每个事实都应该在一个地方出现,避免数据的重复存储,减少数据冗余,提高数据质量。
16.数据字典
想象一下,如果你要建一座房子,首先你需要一份图纸,上面详细标注了各种材料、尺寸和工艺流程。在数据库设计中,我们也需要类似的“图纸”,那就是数据字典。它记录了所有数据的需求,包括数据的种类、结构、流动路径、存储位置和处理步骤等,方便我们按图施工。
17.审计日志
假设你在银行工作,每天都会有很多人存钱、取钱。为了防止有人偷钱,你会设置摄像头监控整个过程。在数据库世界里,审计日志就相当于这个摄像头,它可以记录下所有的操作,一旦发现异常,审计员就能及时采取措施保护数据库的安全。
18.E-R图
设计 E-R 图就好比一群人在画一幅拼图,每个人都负责一部分。但由于大家各自画各自的,有时会出现颜色不统一、图案重叠等情况。这些问题主要分为三类:有的地方颜色不一样(属性冲突),有的地方图案名称重复(命名冲突),还有的地方图案形状不匹配(结构冲突)。解决这些问题就需要大家坐下来沟通协调。
19.ODBC:数据库互联的通用语言
ODBC 就像是一座桥梁,可以让不同品牌的汽车都能顺利通行。在数据库的世界里,ODBC 让各种类型的数据库管理系统也能互相交流,实现了数据的自由流通。这座桥是由微软公司建造的,它让数据库变得开放,不再孤岛般存在。
相关文章:

JMU 数科 数据库与数据仓库期末总结(1)
本章根据老师给出的知识点作进一步相对生动一点的解释。 不保证完全正确。 先给出总的知识点,再给出生动解释。 知识点 数据模型通常由三部分组成:数据结构、数据操作和完整性约束。关系模式中主码的取值必须唯一且非空,这是实体完整性的…...

前端问题整理
Vue vue mvvm(Model-View-ViewModel)架构模式原理 Model 是数据层,即 vue 实例中的数据View 是视图层, 即 domViewModel,即连接Model和Vue的中间层,Vue实例就是ViewModelViewModel 负责将 Model 的变化反映…...

【实践功能记录6】表格列悬浮展示tooltip信息
需求描述: 鼠标悬浮在表格的IP字段上时,使用tooltip展示IP信息,如图: 1.封装根据IP展示信息的组件 请求接口获取IP信息,注意请求接口时防抖 <!-- 根据IP展示资产信息 --> <template><div><el-…...

AI论文速读 | 2024[SIGIR]基于大语言模型的下一个兴趣点推荐
论文标题:Large Language Models for Next Point-of-Interest Recommendation 作者:Peibo Li ; Maarten de Rijke ; Hao Xue (薛昊); Shuang Ao ; Yang Song ; Flora D. Salim 机构:新南威尔士大学(UNSW),…...

Rust 实战丨通过实现 json! 掌握声明宏
在 Rust 编程语言中,宏是一种强大的工具,可以用于在编译时生成代码。json! 是一个在 Rust 中广泛使用的宏,它允许我们在 Rust 代码中方便地创建 JSON 数据。 声明宏(declarative macros)是 Rust 中的一种宏࿰…...

vue+elementUI实现在表格中添加输入框并校验的功能
背景: vue2elmui 需求: 需要在一个table中添加若干个输入框,并且在提交时需要添加校验 思路: 当需要校验的时候可以考虑添加form表单来触发校验,因此需要在table外面套一层form表单,表单的属性就是ref…...

为国产加油:“缺芯少屏”暂缓,另一领域,也要加把劲
说起咱中国之前的“缺芯少屏”,真的是让人挺闹心的。 不过呢,为了改变这个状况,咱们的工程师们可是费了不少劲儿,辛辛苦苦努力了数十年。现在好了,咱们也迎来了柔性屏的时代。 柔性屏 说起来,在触摸屏或者…...

【Qnx】Qnx coredump解析
Qnx coredump解析 coredump文件 Qnx运行的程序崩溃时,会生成coredump文件。 默认情况下这些文件默认会保存在/var/log/*.core 文件中。 解析coredump文件,可以帮忙加快分析程序崩溃的原因,比如了解崩溃的堆栈。 通常可以使用gdb和coreinfo…...

超级签名源码/超级签/ios分发/签名端本地linux服务器完成签名
该系统完全在linux下运行,不存在使用第三方收费工具,市面上很多系统都是使用的是第三方收费系统,例如:某心签名工具,某测侠等,不开源而且需要每年交费,这种系统只是在这些工具的基础上套了一层壳…...

RocketMQ在Centos7系统上单机部署
最近因为一些信创问题,要将RabbitMQ替换为RocketMQ,因此在此分享一些RocketMQ在Centos7系统上单机部署相关过程。 优缺点 RocketMQ的优点: 性能优越:RocketMQ在处理大量消息时,性能优于RabbitMQ。当面临每秒数万到数…...

Vue37-非单文件组件
一、组件的两种编写形式: 非单文件组件;单文件组件。 二、创建一个组件 2-1、组件中的el 组件中不写el,不说为谁服务。 2-2、组件中的data 因为对象形式,多处复用的话,有引用关系,改一处,另一…...

CSS实现经典打字小游戏《生死时速》
🌻 前言 CSS 中有这样一个模块:Motion Path 运动模块,它可以使元素按照自定义的路径进行移动。本文将为你讲解这个模块属性的使用,并且利用它实现我小时候电脑课经常玩的一个打字游戏:金山打字的《生死时速》。 &…...

推箱子-小游戏
学习目标: 巩固Java基础,数据类型、二维数组、条件语句等; 效果展示:...

AI数字人的开源解决方案
目前,国内外已经涌现出一些优秀的数字人开源解决方案,这些解决方案为开发者提供了构建数字人应用的工具和基础设施。以下是一些比较知名的数字人开源解决方案。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1…...

java写一个验证码
生成验证码 内容:可以是小写字母,也可以是大写字母,还可以是数字 规则 长度为5 内容中是四位字母,1位数字。 其中数字只有1位,但是可以出现在任意的位置。 package User;import java.util.ArrayList; import jav…...

【星海随笔】ELK优化
ELS 再遇到大的日志文件的时候不会自动进行清理的,我们可以通过 logrotate 转储工具进行操作。 该命令是基于 Cron 实现,由系统执行,当然也可以手动进行执行例如 logrotate -f configfile# more /etc/logrotate.confweekly // 默认每一周执行一次rotate轮转工作 r…...

SQL Auto Increment
SQL Auto Increment 在关系型数据库中,自动增量(Auto Increment)是一个常见且实用的特性。它允许数据库自动为表中插入的新行分配唯一的标识符,通常用于主键字段。本文将深入探讨SQL中的自动增量功能,包括其工作原理、…...

网络安全练气篇——PHP编程语言基础
目录 PHP基础 一、PHP简介与环境搭建 什么是PHP? PHP环境安装 代码编辑选择 二、基本语法 PHP基本语法操作 PHP变量与输出 啥是常量? PHP注释 PHP单引号双引号声明 三、PHP表单 PHP表单 四、登录界面搭建与讲解 构建登陆页面 登陆页面端 服务器端…...

LabVIEW程序内存泄漏分析与解决方案
维护他人编写的LabVIEW程序时,若发现程序运行时间越长,占用内存越大直至崩溃,通常是内存泄漏导致的。本文从多角度分析内存泄漏的可能原因,包括数组和字符串处理、未释放的资源、循环中的对象创建等,并提供具体的解决方…...

JVM垃圾回收器介绍
Serial GC: 算法: 使用的是标记-清除算法。特点: 串行执行,适用于单CPU环境或较小的堆内存配置。在新生代和老年代的回收中都是单线程执行,因此在进行垃圾回收时会暂停所有应用线程(Stop-The-World)。 Parallel GC (也称为吞吐量优…...

subprocess隐藏cmd窗口
process subprocess.Popen(command, shellTrue, stdoutsubprocess.PIPE, stderrsubprocess.PIPE,creationflagssubprocess.CREATE_NO_WINDOW) 添加参数即可不显示cmd运行窗口 creationflagssubprocess.CREATE_NO_WINDOW...

编程前端看什么书比较好:深入解析与推荐
编程前端看什么书比较好:深入解析与推荐 在编程前端的学习道路上,书籍无疑是我们最宝贵的财富。一本好的书籍,不仅可以提供系统的知识体系,还能引导我们深入探索技术的奥秘。然而,面对市面上琳琅满目的前端书籍&#…...

HarmonyOS(36) DevEco Studio 配置debug和release
在android开发中可以在build.gradle来配置realease和debug,在HarmonyOS中可以通过build-profile.json5文件中通过buildModeSet配置: 在DevEco Studio 中可以通过下面来选择运行debug还是release: 我们可以通过BuildProfile.ets里面的静态变量获取当前…...

PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)复现
PHP语言在设计时忽略了Windows对字符编码转换的 Best-Fit 特性,导致未授权的攻击者可以通过特定字符串绕过 CVE-2012-1823 补丁,执行任意PHP代码,导致服务器失陷。 1.漏洞级别 高危 2.漏洞搜索 fofa: app"XAMPP"3.影响范围 P…...

WHAT - React 学习系列(二)
目录 一、官方介绍二、框架具体对比1. Next.js(Pages Router)2. Remix3. Gatsby4. Expo(用于原生应用)5. Next.js(App Router)Next.js App Router主要特性与 Pages Router 的对比 具体使用示例创建 App Router 项目目录结构示例示例代码 总结 这一篇主要…...

Java 反射机制 -- Java 语言反射的概述、核心类与高级应用
大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 010 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…...

【Python入门与进阶】Jupyter Notebook配置与优化
目录 1.Jupyter Notebook简介 2.Jupyter Notebook的安装 2.1 命令行安装 2.2 可视化界面安装 3.Jupyter Notebook的使用 3.1 启动 Jupyter Notebook 3.2 Jupyter Notebook 界面介绍 3.3 创建新的 Notebook 3.4 编写和运行代码单元 3.5 使用 Markdown 编写文档 3.6 保…...

DataCap 自定义 File 转换器
DataCap 支持自定义 File 转换器,使用者可以编写自己的文件转换器集成到 DataCap 中。该文档主要讲解如何快速集成一个文件转换器到 DataCap 系统中。 该模块我们主要使用到的是 file 模块内的代码,我们本文使用 json 来做示例。 模块基本配置 新建项目…...

ARM32开发--IIC原理
知不足而奋进 望远山而前行 目录 文章目录 前言 目标 内容 I2C通讯规则 I2C写操作 I2C读流程 通讯信号 开始 结束 发送数据 bit发送 Byte发送 等待响应 接收数据 bit接收 Byte接收 发送响应 总结 前言 在现代消费电子和工业电子领域,各种类型的…...

列表、集合、字典的相关练习
1、使用列表推导式,输出1~100的所有素数 输入下面代码 # 定义一个辅助函数用来判断是否是素数 def is_prime(num):if num < 1:return Falsefor i in range(2, int(num**0.5) 1): #int函数将结果转换为整数,向下取整if num % i 0:return Falsere…...