C++底子语法梳理:数据库!带你深入浅出了解数据库
https://p3.toutiaoimg.com/large/pgc-image/841d356a42b14fed85b636611de415ad基本概念
数据(data):描述事物的符号记录称为数据。
数据库(DataBase,DB):是长期存储在计算机内、有组织的、可共享的大量数据的集合,具有永世存储、有组织、可共享三个基本特点。
数据库管理系统(DataBase Management System,DBMS):是位于用户与操作系统之间的一层数据管理软件。
数据库系统(DataBase System,DBS):是有数据库、数据库管理系统(及其应用开辟工具)、应用步伐和数据库管理员(DataBase Administrator DBA)构成的存储、管理、处理和维护数据的系统。
实体(entity):客观存在并可相互区别的事物称为实体。
属性(attribute):实体所具有的某一特性称为属性。
码(key):唯一标识实体的属性集称为码。
实体型(entity type):用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
实体集(entity set):同一实体型的集合称为实体集。
联系(relationship):实体之间的联系通常是指差别实体集之间的联系。
模式(schema):模式也称逻辑模式,是数据库全体数据的逻辑结构和特性的描述,是全部用户的公共数据视图。
外模式(external schema):外模式也称子模式(subschema)或用户模式,它是数据库用户(包括应用步伐员和最终用户)能够看见和使用的局部数据的逻辑结构和特性的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
内模式(internal schema):内模式也称为存储模式(storage schema),一个数据库只有一个内模式。他是数据物理结构和存储方式的描述,是数据库在数据库内部的组织方式。
常用数据模型
条理模型(hierarchical model)
网状模型(network model)
关系模型(relational model)
(1)关系(relation):一个关系对应通常说的一张表
(2)元组(tuple):表中的一行即为一个元组
(3)属性(attribute):表中的一列即为一个属性
(4)码(key):表中可以唯一确定一个元组的某个属性组
(5)域(domain):一组具有相同数据范例的值的集合
(6)分量:元组中的一个属性值
(7)关系模式:对关系的描述,一般表示为 关系名(属性1, 属性2, ..., 属性n)
面向对象数据模型(object oriented data model)
对象关系数据模型(object relational data model)
半结构化数据模型(semistructure data model)
常用 SQL 操作
https://p6.toutiaoimg.com/large/pgc-image/ee5149259afe4d4bb8ae6cc094d73609
关系型数据库
基本关系操作:查询(选择、投影、连接(等值连接、自然连接、外连接(左外连接、右外连接))、除、并、差、交、笛卡尔积等)、插入、删除、修改
关系模型中的三类完整性束缚:实体完整性、参照完整性、用户定义的完整性
索引
数据库索引:顺序索引、B+ 树索引、hash 索引
数据库完整性
数据库的完整性是指数据的精确性和相容性。
完整性:为了防止数据库中存在不符合语义(不精确)的数据。
安全性:为了保护数据库防止恶意破坏和非法存取。
触发器:是用户定义在关系表中的一类由事件驱动的特殊过程。
关系数据理论
数据依赖是一个关系内部属性与属性之间的一种束缚关系,是通过属性间值的相称与否体现出来的数据间相关联系。
最重要的数据依赖:函数依赖、多值依赖。
范式
第一范式(1NF):属性(字段)是最小单位不可再分。
第二范式(2NF):满足 1NF,每个非主属性完全依赖于主键(消除 1NF 非主属性对码的部门函数依赖)。
第三范式(3NF):满足 2NF,任何非主属性不依赖于其他非主属性(消除 2NF 非主属性对码的通报函数依赖)。
鲍依斯-科得范式(BCNF):满足 3NF,任何非主属性不能对主键子集依赖(消除 3NF 主属性对码的部门和通报函数依赖)。
第四范式(4NF):满足 3NF,属性之间不能有非平凡且非函数依赖的多值依赖(消除 3NF 非平凡且非函数依赖的多值依赖)。
https://p6.toutiaoimg.com/large/pgc-image/62fb1781fe9c40b5a95cbf2f2abf7d4e
数据库恢复
事件:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事物的 ACID 特性:原子性、一致性、隔离性、持续性。
恢复的实现技能:创建冗余数据 -> 利用冗余数据实施数据库恢复。
创建冗余数据常用技能:数据转储(动态海量转储、动态增量转储、静态海量转储、静态增量转储)、登记日记文件。
并发控制
事件是并发控制的基本单位。
并发操作带来的数据不一致性包括:丢失修改、不可重复读、读 “脏” 数据。
并发控制主要技能:封锁、时间戳、乐观控制法、多版本并发控制等。
基本封锁范例:排他锁(X 锁 / 写锁)、共享锁(S 锁 / 读锁)。
活锁死锁:
(1)活锁:事件永远处于等候状态,可通过先来先服务的策略避免。
(2)死锁:事件永远不能结束
a、预防:一次封锁法、顺序封锁法;
b、诊断:超时法、等候图法;
解除:撤销处理死锁代价最小的事件,并释放此事件的全部的锁,使其他事件得以继续运行下去。
可串行化调度:多个事件的并发实行是精确的,当且仅当其效果与按某一次序串行地实行这些事件时的效果相同。可串行性时并发事件精确调度的准则。
<hr>今天的分享就到这里了,大家要好好学C++哟~
写在最后:对于准备学习C/C++编程的小伙伴,假如你想更好的提升你的编程核心能力(内功)不妨从现在开始!
编程学习册本分享:
https://p5.toutiaoimg.com/large/pgc-image/a2e9a93d8dfe497aa62c595753bf36f6
编程学习视频分享:
https://p5.toutiaoimg.com/large/pgc-image/5cd23b25512b41678de2c257b0a19739
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比本身琢磨更快哦!
对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!
页:
[1]