数据库课程知识点总结

数据库概述

数据库基本特点:数据结构化,数据独立性,数据冗余小,易扩充,统一管理和控制,永久存储,有组织,可共享

三级模式

  • 模式:一个数据库只有一个模式,是对数据逻辑结构的定义(属性名,类型,取值范围)

  • 外模式:是模式的一部份,不同用户看到不同的外模式

  • 内模式:靠近数据库的底层,对数据库存储的描述

两级映射

  • 外模式/模式映射:当模式改变时,外模式不需要改变,逻辑的独立性

  • 内模式/模式映射:当内模式改变时,模式不用改变,物理的独立性

视图属于外模式(编译好的SQL语句),表属于内模式

关系数据库

关系模式

关系也是一个二维表,表的每行对应于关系一个元组,表的每列与一个域对应,表列的值集为对应域的子集

关系模式的形式化表示R(U, D, DOM, F),U属性集,D域集,DOM属性与域之间来源关系集,F属性间的依赖关系

关系模式定义至少应包括:模式名、属性名、值域名和完整性约束,其实表头那一行就是关系模式

关系模式是一个类型,任何属性不可再分

不同的咧也可以属于同一个域

行列的顺序都无所谓

关系中不同的列可以对应相同的域,为了区分取不同的名字即属性

候选码:可以唯一标识一个元组,可以一个,也可以多个;候选码都是主属性,主属性不一定是候选码

主码:从候选码中筛选出一个,也叫主键

外键:外部关系中的主码

全码:所有属性构成的主码

关系代数的运算

运算对象:关系 -> 运算结果:关系

合并U 、相交∩ 、求差-(相减)、笛卡尔积×、选择σ 、投影π (选择某些列组成新的关系)、联接(取满足关系的拼接,自然连接(重复字段只保留一个),等值连接,左外连接(左无null),右外连接(右无null)) 、求商÷

关系代数表达式:用F表示每个条件,T指代每个表,getfield就是要获取的字段

$$\prod\ _{get field} (\delta _{F_{1} \wedge F_{2} \wedge ... \wedge F_{n}} (T_{1} \times T_{2} \times ... \times T_{n}))$$

数据库系统

数据库完整性

实体完整性:基本关系R的主属性不能取空值

参照完整性:定义主--外码之间的引用规则,不引用不存在的实体,外键是否为空要根据情况而定

用户定义完整性:针对某一具体应用的数据必须满足的语义要求

数据库范式

X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖X

X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖X

X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖X

  • 1NF:列不能再分

  • 2NF:消除部分依赖

  • 3NF:消除传递依赖

  • BCNF非主属性对每一个码都是完全函数依赖;主属性对每一个不包含它的码,也是完全函数依赖;没有任何属性完全函数依赖于非码的任何一组属性

DBMS设计

七个阶段:规划 -> 需求分析(数据流图和数据字典) -> 概念设计(E-R图) -> 逻辑设计(关系模式) -> 物理设计 -> 数据库实施 -> 运维

E-R图:方框表示实体,属性使用圆圈,联系用菱形

通过把实体和联系都转成表就是关系模型(1:1和1:N的关系一般和实体集转换的关系合并,M:N单独出一个关系)

数据库设计&系统分析人员,自始至终参与,决定平台质量的核心成员

子系统

原子性:事务是一组不可分割的操作单元,这组单元要么同时成功要么同时失败;DBMS的事务管理子系统

一致性:事务前后的数据完整性要保持一致;DBMS的完整性子系统

隔离性:多个用户的事务之间不要相互影响,要相互隔离;DBMS的并发控制子系统

持久性:一个事务一旦提交,那么它对数据库产生的影响就是永久的不可逆的,如果后面再回滚或者出异常,都不会影响已提交的事务;DBMS的恢复管理子系统

数据库高级能力

索引

表的主键索引必须是唯一索引,平衡B+树适合做为唯一索引

表上建立索引会影响数据插入和修改的效率,建立索引不一定会提高查询效率

聚簇索引:一个表只能有一个,将数据存储与索引放到了一块,找到索引也就找到了数据;表中记录的顺序和物理顺序一致,适合按照列值范围查询的操作

非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行,key buffer把索引先缓存到内存中,当需要访问数据时),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,索引不在key buffer命中时,速度慢的原因

查询优化

查询树的优化:提前根据条件从表选出字段

硬件:增加内存,增加CPU核心,不设置数据库自增;软件:索引,优化语句,不使用游标

存储过程和触发器

都是SQL语句集

触发器:一种的特殊的存储过程,(INSERT, UPDATE, DELETE)*(BEFORE,AFTER),总共六种组合

存储过程:编译执行,创建好的会存储在数据库服务中

存储过程中只能定义一个触发器

数据转储

事务开始BEGIN TRANSATION提交事务COMMIT

故障:事务故障,系统故障(日志检查点前面的都保存,后面的已提交的redo,没有提交的undo),介质故障

动态(转储和用户事物并发)静态(转储前没有不一致,转储中不能操作)

日志:先写日志再写数据库

数据库并发

读脏数据:在一个事务读取了另一个事务修改但还未提交的数据后,如果这个事务被回滚,那么之前读取的数据就会变得无效

不可重复读:需要读两次,前后间隔时间大,期间数据被修改,回来读时候发现不一致

数据幻读:需要两次统计数据总量,第一次到第二次统计期间发生了提交,前后统计数据不一致

数据库隔离的级别

  • 读未提交(造成脏读,不可重复读,幻读)

  • 读已提交(不可重复读,大多数数据库默认级别)

  • 可重复读(读操作不允许update,但可以add,幻读)

  • 可串行化(所有事物顺序执行)

x锁:独占锁,写之前必须申请;S锁:共享锁;读之前要申请(二级:读完释放,三级:操作完释放)

两段锁协议:必须先申请完所有,再解锁,不能解锁后又申请;可串行的设计,遵循两段锁协议,调度是串行化的,不遵循,也可以是串行化的

数据库产生死锁的原因

  • 事务之间对资源访问顺序的交替:程序BUG

  • 并发修改同一个记录:使用乐观锁和悲观锁

  • 事务封锁范围大且相互等待

  • 索引不当导致全表扫描:全表扫描的语句做索引优化

SQL语句

SQL是一种结构化的语言,用于描述要做什么而不考虑怎么做

数据库权限

#授权A更新TB的G属性
GRANT UPDATE(G) ON TB TO A
#给予全部权限,授权不能循环授权,可以重复授权
GRANT ALL PRIVILIGES ON TABLE <TABLE_NAME> TO <USER_NAME>
#取消授权
REVOKE <PRIVILIGE> ON TABLE ... TO ...
#使用角色
CREATE ROLE <ROLE_NAME>
GRANT ... TO <ROLE_NAME>
GRANT <ROLE_NAME> TO <USER_NAME>/PUBLIC
#审计功能,记录SC表的修改
AUDIT ALTER, UPDATE ON SC

建表

CREATE TABLE + 表名 + (字段 + 类型)

PRIMARY KEY 主键

FOREIGN KEY(字段)REFERENCES 表(字段)

CHECK(条件)

CREATE TABLE RESULT(
  PNO VARCHAR,
  GNO VARCHAR,
  RANK INT,
  BONUS NUMBER(10,5),
  PRIMARY KEY(PNO,GON),
  FOREIGN KEY(PNO) REFERENCES PLAYER(PNO),
  FOREIGN KEY(GNO) REFERENCES GAME(GNO),
  CHECK((RANK IS NULL)OR(RANK > 0)),
  CHECK(BONUS>=1)
);

视图

CREATE VIEW BORROW_VIEW(CATEGORY,BORROW_NUM) AS
SELECT B.CATEGORY,BR.COUNT(DATE_BORROW) FROM BOOK B BORROW BR
WHERE B.BOOK_ID == BR.BOOK_ID AND B.CATEGORY='' AND TO_CHAR(BR.DATE_BORROW,'YYYY')=''
GROUP BY CATEGORY;  

查询

SELSCT + 字段 + FROM + 表名 + WHERE + 条件

求和 SUM 求平均 AVG 计算数量 COUNT 不在其中 NO IN 拥有条件 HAVING

SELECT P.PNAME FROM PLAYER P
WHERE P.PNO NOT IN (
  SELECT R.PNO FROM GAME G, RESULT R
  WHERE G.GNO=R.GNO AND G.GAME=''
) AND P.SEX='';

SELSECT P.NAME, Q.BONUS FROM PLAYER P (
  SELECT PNO, SUM(BONUS) AS BONUS FROM RESULT
  GROUP BY PNO HAVING SUM(BONUS)>10
) Q WHERE P.PNO = Q.PNO;

SELECT LEVEL, COUNT(LEVEL) FROM READER
GROUP BY LEVEL ORDER BY LEVEL DESC;

更新

UPADATE + 表名 + SET + 字段 + WHERE + 条件

UPDATE RESULT SET BONUS = BONUS+1
WHERE PNO IN (
  SELECT R.PNO FROM PLAYER P, RESULT R
  WHERE P.PNO=R.PNO AND PSEX='' AND REANK=1
);

存储过程

开头必须DELIMITER //

CREATE PROCEDURE + 过程名 + (IN + 变量名 + 类型)

BEGIN开始 + 语句多行 + END结束

DELIMITER //
CREATE PROCEDURE DELPLAYER(IN PNAME VARCHAR)
BEGIN
DECALRE V1 VARCHAR;
SET V1 = PNAME;
DELETE FROM RESULT WHERE PNO=(SELECT PNO FROM PLAYER WHERE PNAME=V1);
DELETE FROM PLAYER WHERE PNAME=V1;
END

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

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

相关文章

将idea项目代码部署到Linux系统中

目录 1. 将idea与虚拟机建立连接 2. 设置上传到虚拟机的目录 3.上传项目代码 1. 将idea与虚拟机建立连接 打开idea要上传的项目,找到Tools -> Development -> Configuration 设置一个连接的名称,我这里设置为centos 将Type设置为SFTP,点击SSH configuration 开始配…

数据库物理结构设计-定义数据库模式结构(概念模式、用户外模式、内模式)、定义数据库、物理结构设计策略

一、引言 如何基于具体的DBMS产品&#xff0c;为数据库逻辑结构设计的结果&#xff0c;即关系数据库模式&#xff0c;制定适合应用要求的物理结构 1、在设计数据库物理结构前&#xff0c;数据库设计人员首先 要充分了解所用的DBMS产品的功能、性能和特点&#xff0c;包括提供…

抖音集成:通过MessageBox引领数字化营销新潮流

抖音集成&#xff1a;通过MessageBox引领数字化营销新潮流 在数字化营销的大潮中&#xff0c;企业需要不断探索新的方式来优化其营销策略&#xff0c;以抓住更多的市场机会。抖音作为一款全球知名的短视频社交平台&#xff0c;凭借其庞大的用户群体和高度互动的特性&#xff0…

亿发进销存管理系统+:多终端无缝协同,实现经营销售场景全覆盖

亿发软件凭借产品、市场、业务的深入理解&#xff0c;在进销存基础上进行了延伸&#xff0c;推出多终端、一体化的“进销存管理系统”多元产品矩阵。对企业经营中进货、出货、销售、付款等进行全程跟踪管理。有效辅助企业解决业务管理、销售管理、库存管理、财务管理等一系列问…

【论文阅读】-- TSR-TVD:时变数据分析和可视化的时间超分辨率

TSR-TVD: Temporal Super-Resolution for Time-Varying Data Analysis and Visualization 摘要1 引言2 相关工作3 我们的循环生成方法3.1 损失函数3.2 网络架构 4 结果与讨论4.1 数据集和网络训练4.2 结果4.3 讨论 5 结论和未来工作致谢参考文献附录1 训练算法及优化2 网络分析…

02.Ambari自定义服务开发-metainfo.xml介绍

文章目录 metainfo.xml 介绍配置说明Hbase metainfo.xml配置说明配置参数详细介绍配置文件样例DORIS metainfo.xml 介绍 ​ 在Ambari自定义开发中&#xff0c;metainfo.xml 配置文件起着至关重要的作用。它用于定义服务的元数据信息&#xff0c;包括服务的版本、组件、执行脚本…

RabbitMQ基本概念

RabbitMQ是AMQP协议的一个开源实现&#xff0c;所以其基本概念也就是的 AMQP 协 议中的基本概念。如图3-1所示是 RabbitMQ 的整体架构图。 Message(消息):消息是不具名的&#xff0c;它由消息头和消息体组成。消息体是不透明的&#xff0c; 而消息头则由一系列可选属性组成&…

六西格玛绿带可以跳过,直接学六西格玛黑带吗?真实情况告诉你

在现代企业管理中&#xff0c;六西格玛&#xff08;Six Sigma&#xff09;已经成为提升质量和效率的重要工具。对于很多企业而言&#xff0c;培养内部的六西格玛专家&#xff0c;特别是黑带&#xff08;Black Belt&#xff09;&#xff0c;是推动持续改进的关键。然而&#xff…

如何用Vue3和Plotly.js实现一个交互式世界地图动画

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 利用 Plotly.js 创建交互式世界生命预期地图 应用场景 本代码展示了如何使用 Plotly.js 创建一个交互式世界生命预期地图&#xff0c;允许用户按年份浏览不同国家和地区的生命预期数据。该地图可以用于研究世…

电脑文件concrt140.dll丢失要怎么恢复?靠谱修复方法分析

电脑文件concrt140.dll丢失这种情况&#xff0c;相对来说还是比较少见的&#xff01;但是不代表没有&#xff0c;既然有人出现这种情况了&#xff0c;那么小编势必要给大家详细的讲解一下concrt140.dll这个文件&#xff0c;以及我们要怎么去解决concrt140.dll文件丢失的问题。下…

技术贴 | RNA甲基化修饰m6A的检测——MeRIP-seq

01 m6A是什么 目前在细胞RNA中已经识别到了超过100种化学修饰&#xff0c;其中RNA甲基化修饰在生命活动中有着非常重要的作用(Xu et al 2020)。RNA甲基化是指在甲基转移酶的催化下&#xff0c;在RNA分子上的某一个原子上添加一个甲基基团(CH3)。RNA甲基化修饰类型有很多&#…

架构师篇-5、架构语言-ArchiMate

内容摘要&#xff1a; TOGAF内容元模型TOGAF架构语言ArchiMate3ArchiMate实践案例分享 TOGAF内容框架【核心内容元模型】 作为一个通用且开放式的标准&#xff0c;TOGAF需要采用一种非常灵活的方式来对其内容元模型进行定义&#xff0c;从而使得不同的企业可以根据自身需要对…

Swagger2及常用校验注释说明

Api(value "后台用户管理") RestController RequestMapping("bossuser") public class BossUserController {ApiOperation(value "测试接口")PostMapping("test")public String testUser(Valid RequestBody TestUser user) {LOG.inf…

vue表头字段添加鼠标悬浮提示

<el-table-column prop"jfScore" align"center" min-width"100px"><template slot"header" slot-scope"scope"><div><span>信用积分</span><el-tooltip:aa"scope"class"it…

nodepad 中换行符、tab替换

1 nodepad 主要符号 换行符: \r\n&#xff08;windows&#xff09; tab: \t 2 展示符号 3 相互替换 tip:需要点击扩展 参考&#xff1a; https://blog.csdn.net/lijing742180/article/details/85174564

服务器出现意外情况。(Exception from HRESULT: 0x80010105(RPC E SERVERFAULT))

这种情况一般出现在excel2007版本&#xff0c;下载了什么阅读器之类的 2007改不了这个加载项&#xff0c;需要重装一个其他版本&#xff08;2010版本可以&#xff09; 然后如下操作修改为COM加载项

步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理

文章目录 步步深入SpringMvc DispatcherServlet源码掌握springmvc全流程原理继承关系入口 DispatcherServlet#doDispatch多文件上传解析获取处理器handler的完整注册流程获取HandlerAdapter执行拦截器PreHandle执行HandlerAdapter.handle参数解析器HandlerMethodArgumentResolv…

抖音外卖服务商有哪些,盘点这几家正规服务商!

当前&#xff0c;抖音外卖的关注度不断上涨&#xff0c;抖音外卖服务商也逐渐成为了众多创业者心中的理想创业赛道。在此背景下&#xff0c;抖音外卖服务商的入局途径多次引发创业者热议&#xff0c;以抖音外卖服务商有哪些公司为代表的相关话题更是长期位居创业者问题榜单的前…

走进机器学习

第1关&#xff1a;走进机器学习 机器学习简介 机器学习近年来被大规模应用在各种领域&#xff0c;特别是 NLP 领域。虽然机器学习是门建立在统计和优化上的新兴学科&#xff0c;但是在自然语言处理、数据科学等领域&#xff0c;它却占据着核心的地位。 图 1 机器学习最初的研…

论文降重困难重重?AI降重来帮忙

论文查重和降重是确保学术成果原创性及学术诚信的关键步骤&#xff0c;直接影响我们的学业成果和毕业资格。传统的论文查重方法主要包括使用查重软件和个人自查&#xff0c;而论文降重通常涉及改写、使用同义词替换、内容的扩展和深化&#xff0c;以及正确的引用和注释等方式来…