数据库系统

三级模式

  • 外模式
    • 数据库的用户使用的局部数据的逻辑结构和特征的描述
    • 数据库用户的数据视图,是与某一应用程序有关的数据的逻辑表示。
  • 概念模式
    • 它是数据库中全体数据的逻辑结构和特征的描述;
    • 模式是所有用户的公共数据视图。因为数据库是多人共享使用的,模式就是大家都看到的样子,综合了所有用户的数据需求。
  • 内模式
    • 数据物理结构和存储方式的描述
    • 是数据在数据库内部的表示方式
      • 记录的存储方式:如顺序存储,按B树结构存储,Hash存储)
      • 索引的组织方式:B+树索引,hash索引,Join index索引
      • 数据是否压缩存储
      • 数据是否加密

两级映射

  • 外模式/概念模式映射

    保证了数据的逻辑独立性。当模式改变时,数据库管理员修改有关的外模式/模式映像,使外模式保持不变;而应用程序是根据数据的外模式编写的,从而应用程序不必修改,保证了数据与应用程序的逻辑独立性,简称为数据的逻辑独立性。

  • 概念模式/内模式映射

    保证了数据的物理独立性。

    • 当数据的存储结构改变时(如本来我们用堆存储,改成了B+树),数据库管理员修改模式/内模式映像,使模式保持不变。
    • 应用程序不受影响,保证了数据与程序的物理独立性,简称为数据的物理独立性。

数据库的设计

E-R模型

在这里插入图片描述

集成的方法

  • 多个局部E-R图一次集成。
  • 逐步集成,用累加的方式一次集成两个局部E-R。

集成产生的冲突及解决办法

  • 属性冲突:包括属性域冲突和属性取值冲突。
  • 命名冲突:包括同名异义和异名同义。
  • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。

一个实体型转换为一个关系模式

  • 1:1联系
  • 1:n联系
  • m:n联系

三个以上实体间的一个多元联系

关系代数

  • 笛卡尔乘积
  • 投影
  • 选择
  • 联接

规范化理论

函数依赖

设R(U)是属性U上的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中的任意两个元组u,v,只要有u[X]=v[X],就有u[Y门=v[Y],则称X函数决定Y,或称Y函数依赖于X,记为X→Y。

价值与用途

  • 主键:唯一标识
  • 候选键:
    • 将关系模式的函数依赖关系用“有向图”的方式表示
    • 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
    • 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
  • 外键:其他关系的主键

范式

  • 1NF:在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。
  • 2NF:当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式。
  • 3NF:第三范式(3NF):当且仅当R是1NP,且E中没有非主属性传递依赖于码时,则称R是第三范式。
  • BCNF:设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。

由上往下逐步优化,已解决插入异常、删除异常、数据冗余

模式分解

  • 保持函数依赖分解
    设数据库模式p={R1,R2,…,R}是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri上的FD集是Fi。如果{F1,F2,Fk}与F是等价的(即相互逻辑蕴涵),那么称分解p保持FD
  • 无损分解
    什么是有损,什么又是无损?
    有损:不能还原。
    无损:可以还原。
  • 无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式

并发控制

事务

  • 原子性
  • 一致性
  • 隔离性
  • 持续性

封锁协议

  • 一级封锁协议。事务T在修改数据R之前必须先对其加区锁,直到事务结束才释放。可防止丢失修改
  • 二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放$锁。可防止丢失修改,还可防止读“脏”数据
  • 三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改、防止读“脏”数据与防止数据重复读
  • 两段锁协议。可串行化的。可能发生死锁

整性约束

  • 实体完整性约束
  • 参照完整性约束
  • 用户自定义完整性约束
  • 触发器

数据库安全

措施说明
用户标识和鉴定最外层的安全保护措施,可以使用用户帐户、口令及随机数检验等方式
存取控制对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限。
密码存储和传输对远程终端信息用密码传输
视图的保护对视图进行授权
审计使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来

数据备份

优点缺点
冷备份非常快速的备份方法(只需复制文件);容易归档(简单复制即可):容易恢复到某个时间点上(只需将文件再复制回去):能与归档方法相结合,做数据库”最佳状态”的恢复;低度维护,高度安全单独使用时,只能提供到某一时间点上的恢复;在实施备份的全过程中,数据库必须要作备份而不能做其他工作:若磁盘空间有限只能复制到磁带等其他外部存储设备上,速度会很慢;不能按表或按用户恢复
热备份可在表空间或数据库文件级备份,备份的时间短:备份时数据库仍可使用:可达到秒级恢复(恢复到某一时间点上);可对几乎所有数据库实体做恢复;恢复是快速的不能出错,否则后果严重;若热备份不成功所得结果不可用于时间点的恢复:因难于维护,所以要特别小心,不允许“以失败告终”
  • 完全备份:备份所有数据
  • 差量备份:仅备份上一次完全备份之后变化的数据
  • 增量备份:备份上一次备份之后变化的数据
  1. 静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。
  2. 静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
  3. 动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
  4. 动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据。

日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中

反规范化

由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降

  • 增加派生性冗余列
  • 增加冗除列
  • 重新组表
  • 分割表

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

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

相关文章

CICD流水线 发布公用jar到maven私仓

3.1 发布公用jar到Maven私仓 1.选择流水线 2.新建流水线 3.选择模版 4.选择代码仓库 5. 调整构建命令 6.新增一个新阶段为 ”发送通知“,这里以邮件通知为例,保存之后,运行该流水线,对应jar就会自动发到我们私仓,并之…

春招-实战项目冲刺直播课

春招-实战项目冲刺直播课 CCtalk 丰富多元的综合内容平台-专业的知识分享与在线教育平台https://www.cctalk.com/m/group/91161801

CTF之社工-初步收集

题目就一个刷钻网站(假的) 扫描一下目录 发现还有一个登录界面 时间多的可以爆破一下(反正我爆不出来),接着我们下载那个压缩包看看 发现是一个钓鱼小软件 没发现什么有用的信息那我们就去wireshark看看数据包喽&#…

winform 等待加载窗体

winform 等待加载窗体 当我们查询sql语句或处理大量的数据时,为了防止界面假死状态,可以加一个等待窗体过渡一下。 1. 新建一个主窗体,一个等待窗体frmLoading 2. 给等待窗体增加一个动态图片 3. 在主窗体中调用 namespace winformLoading…

解析以及探讨数据库技术及其应用

一,引言 数据库作为信息时代的基石,是一种用于高效存储、管理和检索大量结构化数据的系统。它的核心价值在于提供了一种可靠且可扩展的方式,将复杂多样的数据按照特定结构和规则组织起来,以便于不同用户和应用程序进行访问和使用。…

揭秘!接口自动化测试应该做什么?

在软件开发过程中,接口测试是一个至关重要的环节,它确保了系统或组件之间的数据交换、传递和控制管理过程以及相互逻辑依赖关系的正确性。传统的瀑布软件流程中,测试人员在做某个系统的手工功能测试时,会首先从业务人员或开发人员…

vitepress系列-04-规整sideBar左侧菜单导航

规整左侧菜单导航 新建navConfig.ts 文件用来管理左侧导航菜单: 将于其他的配置分开,避免config.mts太大 在config目录下,新建 sidebarModules文件目录用来左侧导航菜单 按模块进行分类: 在config下新建sidebarConfig.ts文件&…

Visual Studio 配置代码风格审查工具cpplint

文章目录 一、Visual Studio 配置代码风格审查工具cpplint1、安装2、运行3、集成到Visual Studio4、集成到Git 前言 cpplint是一个用于检查C代码风格的工具,它可以帮助我们发现潜在的编码问题,提高代码质量。cpplint遵循Google的C编码规范,通…

【c++练习】求3个长方柱的体积

【问题描述】编写一个基于对象数组的程序,用成员函数实现多个功能,求3个长方柱的体积。要求用成员函数实现以下功能: 1、由键盘分别输入3个长方柱的长、宽、高; 2、计算长方柱的体积; 3、输出3个长方柱的体积。 【…

【白菜基础】蛋白组学之生信分析(1)

刚换了一个新课题组,新老板的研究方向为蛋白组学,从未接触过蛋白组学的我准备找一组模拟数据进行生信分析的入门学习。 蛋白组学数据挖掘流程图,参考公众号:蛋白质组学数据挖掘思路解析 (qq.com) 一、认识数据 我们组的数据主要…

csdn博客自定义模块:显示实时天气、日历、随机语录代码

目录 1.样式说明2.效果展示3.代码下载 1.样式说明 vip会员或者博客专家可以自定义模块代码,比如我博客的样式,有这几部分组成: 灯笼祝福(我这里是龙年快乐,可以自定义更改任何字)、滚动欢迎语&#xff08…

Ubuntu下TexStudio如何兼容中文

怎么就想起来研究一下这个? 我使用大名鼎鼎的3Blue1Brown数学动画引擎Manim,制作了一个特别小的动画视频克里金插值。在视频中,绘制文字时,Manim使用到了texlive texlive-latex-extra这些库。专业的关系,当年的毕设没…

服装商城小程序设计分享,服装商城设计分享,自助建站模板分享

在当今数字化的时代,服装商城小程序的设计成为了提升用户购物体验的关键。下面,我将分享一些关于服装商城小程序设计的要点和思路。 首先,界面的简洁与美观至关重要。简洁的布局能让用户轻松找到所需商品,避免繁琐的操作流程。同时…

如何水出第一篇SCI:SCI发刊历程,从0到1全过程经验分享!!!

如何水出第一篇SCI:SCI发刊历程,从0到1全路程经验分享!!! 详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:Ai学术叫叫兽e…

血细胞检测数据集 | 用于血细胞计数+检测的小规模数据集_已经整理成VOC格式_总共410张图

项目应用场景 面向血细胞检测计数数据集,已经整理成 VOC 格式,可以直接用于目标检测算法的训练,如 YOLO 等目标检测算法的训练。血细胞检测数据集图片质量好,可直接训练出一个血细胞检测模型,或者作为血细胞检测数据集…

SOLIDWORKS在教育领域的应用

随着科技的飞速发展和数字化浪潮的推进,SOLIDWORKS作为一款强大的三维设计软件,其应用领域已经不仅局限于工程设计和制造行业,还逐渐渗透到教育领域中,成为培养学生实践能力和创新思维的重要工具。本文将探讨SOLIDWORKS在教育领域…

数组排序(Comparator)

题目 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();sc.nextLine();Integer[] res new Integer[n1];//使用Integ…

idea Springboot 电影推荐系统LayUI框架开发协同过滤算法web结构java编程计算机网页

一、源码特点 springboot 电影推荐系统是一套完善的完整信息系统,结合mvc框架和LayUI框架完成本系统springboot dao bean 采用协同过滤算法进行推荐 ,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发)&…

能否安全地删除 Mac 资源库中的文件?

在管理Mac电脑存储空间时,用户确实可能考虑对资源库(Library)文件夹进行清理以释放空间。Mac资源库是一个系统及应用程序存放重要支持文件的地方,其中包括但不限于配置文件、临时文件、缓存、插件、偏好设置、应用程序支持数据等。…

vitepress系列-05-其他优化设置

其他优化设置 设置底部上一页和下一页 设置: import { defineConfig } from vitepress// https://vitepress.dev/reference/site-config export default defineConfig({lang: en-US,title: "东东爱编码的技术博客",description: "记录日常学习点点…