当前位置: 首页 > news >正文

数据库-理论基础

目录

1.什么是数据库?

2.数据库与文件系统的区别?

3.常见的数据库由那些?

4.关系型数据库(MySQL)的特征及组成结构介绍


1.什么是数据库?

数据:描述事物的符号记录,可以是数字,文字,图形,声音,语言等多种形式,他们都可以经过数字化后存入计算机

数据库:存储数据的仓库,是长期存放在计算机内,有组织,可共享的大量 数据集合。数据库中的数据按照一定数据模型组织,描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享。总结为一下几点

  • 数据结构化
  • 数据的共享性,冗余度低,易扩充
  • 数据独立性高
  • 数据由DBMS统一管理和控制(安全性,完整性,并发控制,故障恢复)解释:DBMS数据库管理系统 (能够操作和管理数据库的大型软件)

2.数据库与文件系统的区别?

文件系统:文件系统是操作系统用于明确存储设备(常见的是磁盘)或分区上的文和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称为文件系统

数据库系统:数据库管理系统(DMS) 是一种操纵和管理数据库的大型软件,用于建立,使用和维护数据库,简称DBMS.他对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

对比和区别:

1.管理对象不同:文件系统的管理对象是文件,并非直接对数据进行管理,不同的数据结构需要使用不同的文件类进行保存(例如:txt文件和doc 文件不能通过修改文件名称完成转换)而数据库直接对数据进行存储和管理

2.存储方式不同:文件系统使用不同的文件将数据分类(.doc/.mp4/.jpg)保存在外部存储上;数据库系统使用标准统一的数据类型进行数据保存(字母 数字 符号 时间)

3.调试数据的方式不同:文件系统使用不同软件打开不同类型的文件;数据库系统由DBMS统一调用和管理。如下图

 优缺点总结:

  • 由于DBMS 的存在,用户不在需要了解数据存储和其他实现的细节,直接通过DBMS就能获取数据,为数据的使用带来极大的便利
  • 具有以数据为单位的共享性,具有数据的并发访问能力。DBMS保证了在访问时数据的一致性。
  • 低延时访问,典型例子就是线下支付系统的应用,支付规模局的的时候,数据库系统的表现远远优于文件系统
  • 能够较为频繁的对数据进行修改,在需要频繁修改数据的场景下,数据库系统可以依赖DBMS来对数据进行操作且对性能的消耗相比文件系统比较小
  • 对事物的支持。DBMS支持事务,即一系列对数据的操作集合要么都完成,要么不完成。在DBMS上对数据的各种操作都是原子级的 

3.常见的数据库由那些?

关系型数据库

        关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。简单的来说关系型数据库由多张能互相联系的二维行列表组成的数据库。

        关系模型 就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系数据库有Oracle,DB2,Microsoft SQL Server,Microsoft Acess,MySQL,浪潮 K-DB 等

        实体关系模型 简称 E-R 模型,是一套数据库设计的工具,它运用真实世界种事物与关系的观念,来解释税局库中的抽象的数据架构。实体关系模型利用图形的方式(实体-关系图)来表示数据库的概念设计,有助于设计过程中的构思及沟通讨论  

非关系型数据库

        非关系型数据库:又称为NoSQL (Not Only SQL ),意为不仅仅是SQL 是一种轻量,开源,不兼容 SQL 功能的数据库,对NoSQL 最普遍的定义为“非官联型的” 强调Key-Value 存储和文档数据库的优点,而不是单纯的地反对RDBMS (关系型数据库管理系统) 

4.关系型数据库(MySQL)的特征及组成结构介绍

关系型数据库的发展历程

1.层次模型

2.网状模型

关系模型

         关系模型以二维标结构来表示实体与实体之间的联系,关系模型的数据结构是一个“二维表框架” 组成的集合。每一个二维表又可称为关系。在关系模型中,操作的对象和结果都是二维表。

        关系模型是目前最流行的数据库模型。支持关系模型的数据库管理系统称为关系数据库管理系统,Access就是一种关系数据管理系统。图所示为一个简单的关系模型,其中图(a)所示为关系模式,图(b)所示为这两个关系模式型的关系,关系名称分为教师关系和课程关系,每个关系均含3个元组,其主码均为“教师编号”。

 

 在关系模型中基本数据结构是二维表,不想层次或网状那样的连接指针。记录之间的联系是通过不同关系哦中同名属性来体现的。关系模型中的各个关系模式不是应当孤立的,也不是随意拼凑的一堆二维表,它必须满足相应的要求。

关系式数据库的组成结构和名词解释

        数据以表格的形式出现,每行为单独的一条记录,每列为一个单独的字段,许多的记录和字段组成一张表(table) 若干的表单组成库(database)

  • 记录(一条数据) 在数据库当中,表当中的行称为记录
  • 字段 (id name .......)    在数据库当中,表当中的称之为字段。
  • MySQL 数据类型       

        数据类型用于指定特殊字段所包含数据的规则,它决定了数据保存在字段里的方式,包括分配给字段的宽度,以及值是否可以是字母,数字,日期,和时间等。任何数据或数据的组合都对于的数据类型,用于存储字母,数字,日期和时间,图像,二进制数据等。数据类型是数据本身的特征,其特性被设置到表里面的字段。

        MySQL 常见基础数据类型 

                1.字符串类型 (CHAR (0-255 固定长度)VARCHAR(0-255可变长度))

                2.数值类型(INT(整数型)FLOATI(浮点型))

                3.日期和时间类型(DATE(年月日),TIME(时分秒))

  • MySQL 约束类型 

        约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性,唯一性。

1.主键约束 primary key 主键约束相当于唯一约束+飞空约束的组合,主键约束不允许重复,也不预序出现空值。每个表最多只允许一个主键,建立主键约束可以在列表级别创建,也可以在表示级别创建。当创建主键的约束时,系统默认会在所有的列列组合上建立对应的唯一索引。

2.外键约束  foregin key 外键约束时保证一个或两个表之间的参照完整性,外键时构建于一个表的两个字段或是两个表的两个字段之间的参照关系

3.唯一约束 unique 唯一约束是指table 表的列或列表不能重复,保证数据的唯一性。唯一性约束不允许出现重复的值,但是可以为多个null.同一个表可以又多个唯一约束,多个列表组合的约束。在创建唯一约束时,如果不给唯一约束名称,就默认和列名相同。唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。

4.非空约束 not null 与默认值 default :  非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。Null 类型特征:所有的类型的值都可以时null 包括 int float 等数据类型。 

  • MySQL 索引  

                索引是一个单独的,物理的数据库结构,它是某一个字段或若干字段的集合。表的存储由两部分组成,一部分用来存放数据,另一部分存放索引页面。通常,索引页面相对于数据页面来说小的多。数据检索花费的大部分开销是磁盘读写,没有索引就需要从磁盘上读表的每一个数据页,如果有索引,则只需查找索引页面就可以了。所以建立合理的索引,就能加速数据的检索过程。

  • MySQL 锁  

        数据库是一个多用户的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事物同时存取同一数据地情况。若对并发操作不加控制就可能会读取和存储不正确地数据,破环数据库地一致性。

        加锁是实现数据库并发控制地一个非常重要的技术。当事物在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事物就对该数据对象有了一定的控制,在该事务释锁之前,其他事物不能对此数据对象进行更新操作。 

  • MySQL 的存储引擎

        存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式。存储引擎是基于表的,而不是基于库的。所以存储引擎页可以被称为表类型。Oracle,SqlServer 等数据库只有一种存储引擎。MySQL提供了插件式的存储引擎架构。所以MySQL 存在多种存储引擎。可以根据需要使用相应引擎,或者编写存储引擎。

MYISAM:默认引擎,插入和查询速度较快,支持全文索引,不支持事务,行级锁和外键约束等功能。

INNODB: 支持事物,行级锁和外键约束等功能

MEMORY: 工作在内存中,通过散列字段保存数据,速度快,不能永久保存数据

  • 事务 (Transaction) 是并发控制的基本单位 

        可以把一系列要执行的操作称为事务,而事务管理就是管理这些操操作要么完全执行,要么完全不执行

        经典案例:银行转账工作,从一个账号扣款 并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把他们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保存数据的一致性。

注意:mysql 中并不是所有的数据引擎都支持事务管理的,只有 innodb 支持事务管理。

相关文章:

数据库-理论基础

目录 1.什么是数据库? 2.数据库与文件系统的区别? 3.常见的数据库由那些? 4.关系型数据库(MySQL)的特征及组成结构介绍 1.什么是数据库? 数据:描述事物的符号记录,可以是数字,文…...

【已解决】src/spt_python.h:14:20: 致命错误:Python.h:没有那个文件或目录

src/spt_python.h:14:20: 致命错误:Python.h:没有那个文件或目录 问题 其中重点的报错信息 src/spt_python.h:14:20: fatal error: Python.h: No such file or directory 思路 sudo yum install python-devel然后重新安装需要的依赖。 解决 成功。…...

基于Face++网络爬虫+人脸融合算法智能发型推荐程序——深度学习算法应用(含Python及打包exe工程源码)+爬虫数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Pycharm 环境 模块实现1. Face.APl调用1)Face.APl介绍2)调用API 2. 数据爬取1)网络数据爬取步骤2)爬虫实现 3. 模型构建4. 用户界面设计1)需要调用的库文…...

Jetson nano嵌入式平台配置ip记录

背景 Jetson nano平台使用千兆网和PC连接时没有ip地址,在ubuntu的终端输入ifconfig显示eh0未设置ip,需要先在nano平台上配置ip地址,然后PC通过千兆网远程控制该平台。 配置ip 使用终端进入到network文件夹中, cd /etc/network…...

前端中的跨域请求及其解决方案

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 跨域(Cross-Origin)⭐CORS(跨域资源共享)⭐JSONP(JSON with Padding)⭐代理服务器⭐ WebSocket⭐服务器设置响应头⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a…...

SpringBoot2.0(mybatis-plus初始使用)

目录 一,介绍二,SpringBoot2.x整合MybatisPlus Lombok2.1,添加依赖 pom2.2,配置数据库信息 application.properties2.3,工程结构初始化 三,创建接口返回统一对象四,创建bean五,创建…...

游戏视频录制软件对比,哪款最适合你的需求?

随着电子竞技和游戏直播行业的迅速崛起,越来越多的玩家渴望记录并分享自己在游戏中的精彩瞬间。游戏视频录制软件正是满足这一需求的关键工具。本文将针对三款优秀的游戏视频录制软件进行对比分析,以便为读者提供选购建议。 游戏视频录制软件1&#xff1…...

耐蚀合金连续油管最新版 学习记录

声明 本文是学习GB-T 42858-2023 耐蚀合金连续油管. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了耐蚀合金连续油管的订货、材料、制造、检验试验、标记等。 本文件适用于油气井用耐蚀合金连续油管(以下简称"油管")…...

LoGoNet:基于局部到全局跨模态融合的精确 3D 目标检测

论文地址:https://arxiv.org/abs/2303.03595 论文代码:https://github.com/sankin97/LoGoNet 论文背景 激光雷达传感器点云通常是稀疏的,无法提供足够的上下文来区分远处的区域,从而造成性能次优。 激光雷达-摄像机融合方法在三…...

Python 多线程、线程池、进程池

线程间的通讯机制 消息队列 event 事件对象 当线程创建完成之后,并不会马上执行线程,而是等待某一事件发生,线程才会启动 import threading# # 创建 event 对象 # event threading.Event() # # 重置代码中的 event 对象,使得所…...

深入浅出了解华为端到端交付流程的概念和5个关键点

如果您或您所在的组织在学习和研究华为,那么对“端到端”这个词语就一点都不陌生。 今天华研荟带着您了解华为端到端的交付流程的思想和一些做法,如果了解了这个,那么对于华为在其他领域提出的端到端要求或做法就一通百通了。 一、什么是端…...

[Linux]进程信号

[Linux]进程信号 文章目录 [Linux]进程信号进程信号的定义信号的特点信号的生命过程发送信号的原理进程处理信号的方式分类使用指令查看Linux系统定义的信号信号产生使用终端按键产生信号使用指令向进程发送信号调用系统调用向进程发送信号由软件条件产生信号硬件异常产生信号 …...

PostgreSQL 数据类型

文章目录 PostgreSQL数据类型说明PostgreSQL数据类型使用单引号和双引号数据类型转换布尔类型数值类型整型浮点型序列数值的常见操作 字符串类型日期类型枚举类型IP类型JSON&JSONB类型复合类型数组类型 PostgreSQL数据类型说明 PGSQL支持的类型特别丰富,大多数…...

智慧港口4G+UWB+GPS/北斗RTK人员定位系统解决方案

港口人员定位系统能够帮助企业实现对港口作业人员的全面监控和管理,不仅可以保障人员的人身安全,还可以提高人员的作业效率,为港口的可持续发展提供有力保障。接下来为大家分享智慧港口人员定位系统解决方案。 方案背景 1、港口作业人员多&a…...

实时时钟和日历电路芯片MS85163/MS85163M

MS85163/MS85163M 是一款 CMOS 实时时钟 (RTC) 和 日历电路,针对低功耗进行了优化,内置了可编程的时钟输出、中断输出和低电压检测器。所有寄存器地址和数据都通过两线双向I 2 C 总线进行串行传输,最大总线传输速度为 400kbit/s 。采用SOP8…...

【Java从入门到精通】这也许就是Java火热的原因吧!

前言:Java是一种高级的、面向对象的、可跨平台的程序设计语言。Java根据技术类别可划分为以下几类:JavaSE(Standard Edition,标准版):支持面向桌面、嵌入式和移动设备的应用程序开发;JavaEE&…...

zTasker—简洁易用强大的定时热键一体自动化工具,效率倍增器

软件名称 zTasker 应用平台 PC Windows7及以上 一句简介 市面上定时类软件很多,但无一例外功能都很单一,要完成不同的任务,需要不同的软件 市面上的热键软件,要么功能少,要么像是AutoHotKey这样对于一般用户太专业…...

惊艳时装界!AIGC风暴来袭,从设计到生产的全新体验

时尚是一个不断演进的领域,充满创新和独创性,但现在,创新迈入了一个崭新的境界——人工智能生成内容(AIGC)。这个革命性的技术,改变了时装设计的游戏规则。在过去的几年里,人工智能已经深刻地改…...

element -ui table表格内容无限滚动 使用插件vue-seamless-scroll

使用插件 一、安装组件依赖 npm install vue-seamless-scroll 二、引入组件 import vueSeamlessScroll from "vue-seamless-scroll"; components: { vueSeamlessScroll }, <div class"table-list "><vue-seamless-scroll :class-option"…...

如何在windows环境下编译T

一&#xff0c; 安装MYSYS2 1. 去https://www.msys2.org下载 msys2-x86_64-xxxxx.exe; 2. 按照msys2.org主页提示的步骤安装; 3.安装完默认起来的是 UCRT的&#xff0c; 可以根据环境的需要选择&#xff0c; 我选择的 MSYS2 MINGW64 4. 搭建编译环境&#xff0c; 安装对应的软…...

USB接口针式打印机

1 针式打印机原理 - 针式打印机16针是纵向排列&#xff0c;每次打印垂直的16bit&#xff0c;然后右移一bit&#xff0c;继续下列打印&#xff1b;字节的MSB表示最上面的点&#xff0c;字节LSB表示最下面的点 - 由于汉字字模的点阵是横向排列的&#xff0c;而提供给打印头的信息…...

外贸建站教程步骤有哪些?独立站怎么搭建?

推荐的外贸建站教程&#xff1f;制作国际贸易网站的流程&#xff1f; 对于那些希望将产品或服务推向全球市场的企业来说&#xff0c;建立一个专业、具有吸引力的网站是至关重要的。下面115SHOP将介绍外贸建站教程的关键步骤&#xff0c;帮助您更好地了解如何在国际市场上建立您…...

useGetState自定义hooks解决useState 异步回调获取不到最新值

setState 的两种传参方式 1、直接传入新值 setState(options); const [state, setState] useState(0); setState(state 1); 2、传入回调函数 setState(callBack); const [state, setState] useState(0); setState((prevState) > prevState 1); // prevState 是改变之…...

input子系统框架、外设驱动开发

一、input子系统基本框架 Linux内核为了两个目的&#xff1a; 简化纯输入类外设&#xff08;如&#xff1a;键盘、鼠标、游戏杆、轨迹球、触摸屏。。。等等&#xff09;的驱动开发统一输入类外设产生的数据格式&#xff08;struct input_event&#xff09;&#xff0c;更加方…...

Google Chrome 浏览器以全屏模式打开

目录 前言以全屏模式打开禁止弹出无法更新的提示窗禁止翻译网页Chrome设置禁止翻译网页可能1可能2可能3 网页添加指令禁止Chrome翻译网页 禁用脚本气泡浏览器解决办法html解决办法方法1&#xff1a;鼠标滑过超链接时&#xff0c;使状态栏不出现超链接方法2&#xff1a;方法3&am…...

安装torch113、cuda116并运行demo【Transformer】

文章目录 01. 导读02. 显卡驱动版本03. 创建环境、下载安装必要包04. 运行参考代码&#xff1a; 01. 导读 安装torch113、cuda116并运行demo【Transformer】 02. 显卡驱动版本 C:\Users\Administrator>nvidia-smi -l 10 Wed Sep 13 23:35:08 2023 ----------------------…...

基于scRNA-seq的GRN分析三阴性乳腺癌的肿瘤异质性

三阴性乳腺癌即TNBC是一种肿瘤异质性高的乳腺癌亚型。最近的研究表明&#xff0c;TNBC患者可能包含具有不同分子亚型的细胞。此外&#xff0c;基于scRNA-seq数据构建的GRN已经证明了对关键调控因子研究的重要性。作者使用scRNA-seq对TNBC患者的GRN进行了全面分析。从scRNA-seq数…...

Python:二进制文件实现等间隔取相同数据量并合并

举例&#xff1a;每3byte为一页&#xff0c;每3页为一wl。将所有wl的第一页/第二页/第三页分别合并为一个文件。 data b\x01\x02\x03\x04\x05\x06\x07\x08\x09\x01\x02\x03\x04\x05\x06\x07\x08\x09\x01\x02\x03\x04\x05\x06\x07\x08\x09\x01\x02\x03\x04\x05\x06\x07\x08\x0…...

python使用openvc库进行图像数据增强

以下是使用Python和OpenCV库实现图像数据增强的简单示例代码&#xff0c;其中包括常用的数据增强操作&#xff1a; import cv2 import numpy as np import os# 水平翻转 def horizontal_flip(image):return cv2.flip(image, 1)# 垂直翻转 def vertical_flip(image):return cv2…...

如何利用Api接口获取手机当前的网络位置信息

在移动互联网时代&#xff0c;手机定位已经成为了一个日常化的需求&#xff0c;无论是导航、社交还是打车等服务都需要获取手机的位置信息。而获取手机位置信息最基础的一步就是获取手机当前的网络位置信息&#xff0c;本文将介绍如何利用API接口获取手机当前的网络位置信息。 …...

连云港网站建设公司/谷歌排名优化入门教程

提取码&#xff1a;tj14对于从事C或者C的程序员来说&#xff0c;必须对每个对象的整个生命周期负责。但是对java程序员来说&#xff0c;在jvm的自动内存管理机制下&#xff0c;不需要为每一个对象去写delete或者free代码&#xff0c;不容易出现内存泄漏或内存溢出的问题。但正因…...

wordpress微信机器人/百度搜索关键词设置

问题&#xff1a;idea 打包时&#xff0c;要求包名和项目名称不一致 两种解决办法&#xff1a; 一&#xff0c;找到要打包的项目修改pom.xml 文件 <build><!-- 打包名称 使用配置文件名称 --><finalName>qc-web-v2</finalName> </build>二&am…...

如何快速建设推广网站/网站建设优化推广

介绍我不会告诉你怎么在自己的电脑上去构建、安装一个定制化的 Linux 内核&#xff0c;这样的资料太多了&#xff0c;它们会对你有帮助。本文会告诉你当你在内核源码路径里敲下make 时会发生什么。当我刚刚开始学习内核代码时&#xff0c;Makefile 是我打开的第一个文件&#x…...

wordpress教程 网站标题/站外推广渠道有哪些

“我们把DevOps和研发任务协同结合起来&#xff0c;打破了研发团队的最后一道隔阂。” 往往在产品开发过程中&#xff0c;研发人员需要掌控的最多的工具和平台。 代码&#xff0c;环境&#xff0c;部署&#xff0c;容器&#xff0c;服务器一大堆的工具和平台要使用&#xff0…...

wordpress真难用/建站系统哪个比较好

Doze打盹模式共有五种状态&#xff0c;不同状态间的切换如下图所示&#xff0c;如果厂家没有修改时间的话&#xff0c;因此从灭屏到Doze模式&#xff0c;至少需要61分钟&#xff0c;官方是60分钟&#xff0c;但需要1分钟作为运动监测。根据代码跟踪,如果应用不在白名单,系统灭屏…...

wordpress分类目录关键字/主流搜索引擎有哪些

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/81124938 本文来自沪江技术中心开发经理杨福强在LiveVideoStackCon 2017上的分享&#xff0c;并由LiveVideoStack整理而成。杨福强于20…...