0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

带你深入浅出了解C++中数据库

C语言编程学习基地 来源:C语言编程学习基地 作者:C语言编程学习基地 2021-10-29 10:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

基本概念

数据(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)

关系型数据库

基本关系操作:查询(选择、投影、连接(等值连接、自然连接、外连接(左外连接、右外连接))、除、并、差、交、笛卡尔积等)、插入、删除、修改

关系模型中的三类完整性约束:实体完整性、参照完整性、用户定义的完整性

索引

数据库索引:顺序索引、B+ 树索引、hash 索引

数据库完整性

数据库的完整性是指数据的正确性和相容性。

完整性:为了防止数据库中存在不符合语义(不正确)的数据。

安全性:为了保护数据库防止恶意破坏和非法存取。

触发器:是用户定义在关系表中的一类由事件驱动的特殊过程。

关系数据理论

数据依赖是一个关系内部属性与属性之间的一种约束关系,是通过属性间值的相等与否体现出来的数据间相关联系。

最重要的数据依赖:函数依赖、多值依赖。

范式

第一范式(1NF):属性(字段)是最小单位不可再分。

第二范式(2NF):满足 1NF,每个非主属性完全依赖于主键(消除 1NF 非主属性对码的部分函数依赖)。

第三范式(3NF):满足 2NF,任何非主属性不依赖于其他非主属性(消除 2NF 非主属性对码的传递函数依赖)。

鲍依斯-科得范式(BCNF):满足 3NF,任何非主属性不能对主键子集依赖(消除 3NF 主属性对码的部分和传递函数依赖)。

第四范式(4NF):满足 3NF,属性之间不能有非平凡且非函数依赖的多值依赖(消除 3NF 非平凡且非函数依赖的多值依赖)。

数据库恢复

事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

事物的 ACID 特性:原子性、一致性、隔离性、持续性。

恢复的实现技术:建立冗余数据 -》 利用冗余数据实施数据库恢复。

建立冗余数据常用技术:数据转储(动态海量转储、动态增量转储、静态海量转储、静态增量转储)、登记日志文件。

并发控制

事务是并发控制的基本单位。

并发操作带来的数据不一致性包括:丢失修改、不可重复读、读 “脏” 数据。

并发控制主要技术:封锁、时间戳、乐观控制法、多版本并发控制等。

基本封锁类型:排他锁(X 锁 / 写锁)、共享锁(S 锁 / 读锁)。

活锁死锁:

(1)活锁:事务永远处于等待状态,可通过先来先服务的策略避免。

(2)死锁:事务永远不能结束

a、预防:一次封锁法、顺序封锁法;

b、诊断:超时法、等待图法;

解除:撤销处理死锁代价最小的事务,并释放此事务的所有的锁,使其他事务得以继续运行下去。

可串行化调度:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同。可串行性时并发事务正确调度的准则。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3994

    浏览量

    67840
  • C++
    C++
    +关注

    关注

    22

    文章

    2122

    浏览量

    76731

原文标题:C++基础语法梳理:数据库!带你深入浅出了解数据库

文章出处:【微信号:cyuyanxuexi,微信公众号:C语言编程学习基地】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库
    的头像 发表于 07-24 11:12 454次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—服务器异常断电导致Oracle<b class='flag-5'>数据库</b>故障的<b class='flag-5'>数据</b>恢复案例

    三款主流国产数据库的技术特点

    随着数字经济的快速发展和数据安全要求的提升,国产数据库正迎来前所未有的发展机遇。在信创浪潮推动下,达梦数据库、TiDB、华为高斯数据库等国产数据库
    的头像 发表于 07-14 11:08 830次阅读

    数据库数据恢复—MongoDB数据库文件丢失的数据恢复案例

    MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍
    的头像 发表于 07-01 11:13 480次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—MongoDB<b class='flag-5'>数据库</b>文件丢失的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—SQL Server数据库被加密如何恢复数据

    SQL Server数据库故障: SQL Server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。
    的头像 发表于 06-25 13:54 517次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>被加密如何恢复<b class='flag-5'>数据</b>?

    MySQL数据库是什么

    开发、企业应用和大数据场景。以下是其核心特性和应用场景的详细说明: 核心特性 关系型数据库模型 数据以 表(Table) 形式组织,表由行(记录)和列(字段)构成。 通过 主键、外键 实现表间关联,支持复杂查询和事务处理。 示例
    的头像 发表于 05-23 09:18 935次阅读

    数据库数据恢复——MongoDB数据库文件拷贝后服务无法启动的数据恢复

    MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的
    的头像 发表于 04-09 11:34 674次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复——MongoDB<b class='flag-5'>数据库</b>文件拷贝后服务无法启动的<b class='flag-5'>数据</b>恢复

    数据库数据恢复—SQL Server附加数据库提示“错误 823”的数据恢复案例

    SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份
    的头像 发表于 02-28 11:38 851次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server附加<b class='flag-5'>数据库</b>提示“错误 823”的<b class='flag-5'>数据</b>恢复案例

    适用于SQLite的dbExpress数据库驱动程序

    dbExpress Driver for SQLite 概述 dbExpress Driver for SQLite 是一个独立于数据库的层,它定义了通用的 接口提供从 Delphi 和 C++
    的头像 发表于 02-09 09:45 785次阅读

    从Delphi、C++ Builder和Lazarus连接到MySQL数据库

      从 Delphi、C++ Builder 和 Lazarus 连接到 MySQL 数据库 MySQL 数据访问组件(MyDAC)是一个组件,提供从 Delphi 和
    的头像 发表于 01-20 13:47 1349次阅读
    从Delphi、<b class='flag-5'>C++</b> Builder和Lazarus连接到MySQL<b class='flag-5'>数据库</b>

    从Delphi、C++ Builder和Lazarus连接到Oracle数据库

    从 Delphi、C++ Builder 和 Lazarus 连接到 Oracle 数据库 Oracle 数据访问组件 (ODAC) 是一个组件,它为 32 位和 64 位平台提供从
    的头像 发表于 01-15 10:01 1377次阅读

    分布式云化数据库有哪些类型

    分布式云化数据库有哪些类型?分布式云化数据库主要类型包括:关系型分布式数据库、非关系型分布式数据库、新SQL分布式数据库、以列方式存储
    的头像 发表于 01-15 09:43 891次阅读

    MySQL数据库的安装

    MySQL数据库的安装 【一】各种数据库的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】MySQL 介绍
    的头像 发表于 01-14 11:25 878次阅读
    MySQL<b class='flag-5'>数据库</b>的安装

    数据库是哪种数据库类型?

    数据库是一种部署在虚拟计算环境数据库,它融合了云计算的弹性和可扩展性,为用户提供高效、灵活的数据库服务。云数据库主要分为两大类:关系型
    的头像 发表于 01-07 10:22 821次阅读

    数据库加密办法

    企业对于数据的重视程度不言而喻,也衍生出了数据=资产的概念。但是数据泄漏的事件频繁发生,为了保护数据资产,企业有必要对
    的头像 发表于 12-24 09:47 1022次阅读

    数据库数据恢复—Mysql数据库表记录丢失的数据恢复流程

    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库无任何
    的头像 发表于 12-16 11:05 1013次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—Mysql<b class='flag-5'>数据库</b>表记录丢失的<b class='flag-5'>数据</b>恢复流程