数据库概论

news2024/11/29 5:44:11

目录

  • 什么是数据库
  • 数据库的概念模型
    • 层次模型
    • 网状模型
    • 关系模型
  • 为什么要使用关系型数据库
  • 完整性约束
  • 结构化查询语言SQL
    • 基本语句

什么是数据库

考虑这些问题:当用户使用软件计算时,如果想要保存计算结果或者想选择不同的题目,是否要保存、读取多个不同的文件呢?这样的效率高吗?这种数据管理策略合适吗?假设有上万套练习题时,是否需要保存上万个文件呢?
很明显,我们需要数据库的帮助。在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。
数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
数据库时长期存储在计算机内、有组织、可共享的大量数据的集合。它的目的是提供一种可以方便、高效管理数据库信息的途径。
数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样“仓库”,并根据管理的需要进行相应的处理。

例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。

有了这个"数据仓库"就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那的人事管理就可以达到极高的水平。

此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种“数据库”,使其可以利用计算机实现财务、仓库、生产的自动化管理。

J.Martin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。

当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。

数据库的概念模型

aws数据库服务一览图

层次模型

优点:

数据结构简单清晰。
因为记录之间的联系用有向边表示,这种联系在DBMS中通常使用指针实现,查询效率高。层次模型数据库性能优于关系数据库,不低于网状数据库。
提供了良好的完整性支持。进行插入操作时,如果没有对应的双亲结点就不能插入它的子女结点值。进行删除操作时,如果删除双亲结点,则相应的子女结点值也将被同时删除。
缺点:

现实世界中的很多联系是非层次性的。如果结点之间具有多对多联系,不再适合使用层次模型表示。如果一个子女结点确实具有多个双亲结点,使用层次结构模型表示的时候就会出现大量的冗余,且操作复杂。
查询子女结点必须通过双亲结点。
由于结构严密,层次命令趋于程序化。

网状模型

优点:

能够更为直接地表示现实世界。
具有良好的性能,存取效率高。
缺点:

结构复杂,伴随应用环境的扩大,数据结构变得越来越复杂,不利于最终用户掌握。
网状模型的数据定义语言和数据管理语言复杂。
由于记录之间的联系通过存取路径实现,应用程序在访问数据的时候必须选择恰当的存取路径,因此用户必须了解系统结构的细节,导致加重了编写应用程序的负担。

关系模型

优点:

关系模型建立在严格的数学概念的基础之上。
关系模型概念单一。无论是实体还是实体之间的联系都用关系来表示。对数据的检索和更新结果也是基于关系(表)的。所以,数据结构简单清晰,用户易懂易用。
关系模型的存取路径对用户透明,从而具有较高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
缺点:

由于存取路径对用户是透明的,查询效率往往不如格式化数据模型。
为了提高系统性能,数据库管理系统必须对用户的查询请求进行优化。

为什么要使用关系型数据库

关系型数据库的优势:

便于理解:二维表构造非常贴近逻辑;
应用方便:支持通用的SQL(结构化查询语言)语句;
易于维护:全部由表结构组成,文件格式一致;
复杂操作:可以用SQL句子多个表之间做非常繁杂的查询;
事务管理:促使针对安全性性能很高的数据信息浏览规定得到完成。
关系型数据库存在的不足

读写性能差,尤其是海量信息的效率高读写能力;
固定不动的表构造,灵便度稍欠;
高并发读写时,硬盘I/O存在瓶颈;
可扩展性不足,不像web server和app server那样简单的添加硬件和服务节点来拓展性能和负荷工作能力。
非关系型数据库概念介绍
非关系型数据库:指非关系型的,分布式系统的,且一般不确保遵照ACID标准的数据储存系统。

非关系型数据库算是一种数据结构化储存的集合,可以是文档或键值对等。

非关系型数据库的本质是传统关系型数据库的功能阉割版本,通过去掉不需要的功能来提高性能。

非关系型数据库的类型:

键值储存数据库
列储存数据库
文档型数据库
图数据库
非关系型数据库的优点

格式灵活:数据存储格式非常多样,应用领域广泛,而关系型数据库则只适用基础的关系模型。
性能优越:NOSQL是根据键值对的,不用历经SQL层的分析,因此 性能非常高。
可扩展性:基于键值对,数据之间耦合度极低,因此容易水平扩展。
低成本:非关系型数据库部署简易,且大部分可以开源使用。
非关系型数据库的不足:

不支持sql,学习和运用成本比较高;
无事务处理机制;
数据结构导致复杂查询不容易实现。
关系型与非关系型数据库的区别:
成本:Nosql数据库易部署,不用像Oracle那般花费较高成本选购。
查询速率:Nosql数据库将数据储存于缓存当中,不用历经SQL层的分析;关系型数据库将数据储存在电脑硬盘中,查询速率远不如Nosql数据库。
储存格式:Nosql的储存文件格式是key,value方式、文本文档方式、照片方式这些,能储存的对象种类灵活;关系数据库则只适用基础类型。
可扩展性:关系型数据库有join那样的多表查询机制限定造成拓展性较差。Nosql依据键值对,数据中间沒有耦合度,因此容易水平拓展。
数据一致性:非关系型数据库注重最终一致性;关系型数据库注重数据整个生命周期的强一致性。
事务处理:SQL数据库支持事务原子性粒度控制,且方便进行事务回滚;NoSQL也支持事务处理,但可靠性不足,其价值在于可扩展性和大数据量处理。

其实说白了,人总是在为了方便自己而做一些事情的,在大多数使用场景中,关系型数据库更方便更好理解

完整性约束

数据完整性
要想了解这三类完整性约束首先要了解什么是数据完整性。
数据完整性是指数据库中存储的数据是有意义的或正确的,和现实世界相符。关系模型中三类完整性约束:
– 实体完整性(Entity Integrity)
– 参照完整性(Referential Integrity)
– 用户定义的完整性(User-defined Integrity) •
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持

实体完整性
• 保证关系中的每个元组都是可识别的和惟一的 • 指关系数据库中所有的表都必须有主键,而且表中不允
许存在如下记录:
– 无主键值的记录
– 主键值相同的记录
• 原因:实体必须可区分
例如:
在这里插入图片描述

上图就出现了主键值(学号是主键)重复的情况。当在表中定义了主键时,数据库管理系统会自动保证数据的实体完整性,即保证不允许存在主键值为空的记录以及主键值重复的记录。

参照完整性
也称为引用完整性
• 现实世界中的实体之间往往存在着某种联系,在关系模型中,实体以及实体之间的联系都是用关系来表示的,这样就自然存在着关系与关系之间的引用
• 参照完整性就是描述实体之间的联系的
• 参照完整性一般是指多个实体或关系之间的关联关系
在这里插入图片描述

此完整性涉及到了外键:
• 参照完整性规则就是定义外键与被参照的主键之间的引用规则
• 外键一般应符合如下要求:
– 或者值为空
– 或者等于其所参照的关系中的某个元组的主键值

用户定义完整性
• 也称为域完整性或语义完整性
• 是针对某一具体应用领域定义的数据约束条件
• 反映某一具体应用所涉及的数据必须满足应用语义的要求
• 实际上就是指明关系中属性的取值范围,防止属性的值与应用语义矛盾
• 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统方法处理它们,而不要由应用程序承担这一功能

结构化查询语言SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

基本语句

结构化查询语言包含6个部分:
1、数据查询语言(DQL: Data Query Language):其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。
2、数据操作语言(DML:Data Manipulation Language):其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。
3、事务控制语言(TCL):它的语句能确保被DML语句影响的表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
4、数据控制语言(DCL):它的语句通过GRANT或REVOKE实现权限控制,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
5、数据定义语言(DDL):其语句包括动词CREATE,ALTER和DROP。在数据库中创建新表或修改、删除表(CREATE TABLE 或 DROP TABLE);为表加入索引等。
6、指针控制语言(CCL):它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

大概就是以上内容,简单阐述了一下关于关系型数据库的内容,如果想了解更多可以阅读这篇文章
tink

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#高级--IO详解

零、文章目录 IO详解 1、IO是什么 (1)IO是什么 IO是输入/输出的缩写,即Input/Output。在计算机领域,IO通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。输入和输出是信息处理系统(例如计算器&…

Spring Cloud应用- Eureka原理、搭建

初期对Spring Cloud的学习以应用搭建为主,所以内容不会太枯燥。 一直以来,自以为Spring全家桶的学习中,Spring framework是基础中的基础,部分内容也还是必须要读源码去理解底层原理,SpringMVC、SpringBoot&#xff0c…

基于PESdk和EasyModbus实现录波控制逻辑和数据传输

文章目录 0. 概要1. 录波功能简介1.1 功能框架1.2 录波控制逻辑1.3 手动录波数据传输流程1.4 故障录波传输流程 2 C语言应用程序接口(API)2.1 EasyModbus接口2.2 PESdk 3 录波功能的实现3.1 功能码定义3.1.1 公共功能码3.1.2 用户自定义功能码3.1.3 保留…

维修服务预约小程序的效果如何

生活服务中维修项目绝对是需求量很高的,如常见的保洁、管道疏通、数码维修、安装、便民服务等,可以说每天都有生意,而对相关维修店企业来说,如何获得更多生意很重要。 接下来让我们看看通过【雨科】平台制作维修服务预约小程序能…

XX棋牌架设指南

一、环境要求: 1.服务器要求:WINDOWS2008或更高版本。 2.数据库要求:MS SQL SERVER 2008 R2或更高版本。 3.服务器需要安装IIS。 二、游戏部署步骤: 1.解压文件至服务器数据盘,此处以D盘为例进行说明。 2. 目录说…

树结构及其算法-用链表来实现二叉树

目录 树结构及其算法-用链表来实现二叉树 C代码 树结构及其算法-用链表来实现二叉树 以链表实现二叉树就是使用链表来存储二叉树,也就是运用动态分配内存和指针的方式来建立二叉树。 使用链表来表示二叉树的好处是节点的增加与删除操作相当容易,缺点…

MATLAB野外观测站生态气象数据处理分析实践应用

1.基于MATLAB语言 2.以实践案例为主,提供所有代码 3.原理与操作结合 4.布置作业,答疑与拓展 示意图: 以野外观测站高频时序生态气象数据为例,基于MATLAB开展上机操作: 1.不同生态气象要素文件的数据读写与批处理实现 …

Ubuntu18.04系统镜像制作

安装使用systemback # 添加源 sudo add-apt-repository --remove ppa:nemh/systemback sudo add-apt-repository "deb http://ppa.launchpad.net/nemh/systemback/ubuntu xenial main"# 下载 sudo apt update sudo apt install systemback打开systemback,点击创建li…

加州大学提出 PromptAgent 帮忙我们高效的使用 ChatGPT

本心、输入输出、结果 文章目录 加州大学提出 PromptAgent 帮忙我们高效的使用 ChatGPT前言加州大学团队提出了可以自动优化 Prompt 的框架 —— PromptAgentPromptAgent 原理论文 实例介绍PromptAgent 框架设计PromptAgent 的策略优化过过程PromptAgent 的结果是否具备普适性弘…

[Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb

一.部署nodejs项目,映射端口,挂载数据卷 可以到https://hub.docker.com/去搜索node镜像,然后下载,也可以直接通过docker pull node下载镜像,然后用这个node镜像启动容器node,这样系统就集成了node服务了,在这里挂载www/node目录到容器中,并指定端口映射,运行nodejs程序,安装npm…

【Tricks】PC端微信输入时,文本出现右对齐情况怎么恢复

应该是摁到某个快捷键,于是光标就变成如下图所示的样子: 如果再输入字符,则字符就会变成下图所示的样子(对齐输入框右侧): 解决办法:ctrl J 解决办法:ctrl J 解决办法&#xff1…

transformers-AutoClass

https://huggingface.co/docs/transformers/main/en/autoclass_tutorialhttps://huggingface.co/docs/transformers/main/en/autoclass_tutorialAutoClass可以自动推断和加载给定checkpoint的正确架构。 对于文本,使用Tokenizer将文本转换为token序列,创…

MTSC2023|深圳大会,你关心的技术话题都在这里

MTSC中国互联网测试开发大会 (Make Tester Super Cool, 简称MTSC) 是由国内知名的测试技术社区TesterHome发起的软件测试行业技术会议,大会以“软件质量保障体系和测试研发技术交流”为主要目的,旨在为行业搭建一个深入探讨和交流…

【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包

一、Nginx导言 1、引言 Nginx 是一款高性能的 Web 服务器和反向代理服务器,也可以充当负载均衡器、HTTP 缓存和安全防护设备。它的特点是内存占用小、稳定性高、并发性强、易于扩展,因此在互联网领域得到了广泛的使用。 总结出以下三点: 负载均衡&#x…

作物模型--土壤数据制备过程

作物模型–土壤数据制备过程 首先打开FAO网站 下载下面这两个 Arcgis打开.bil文件 .mdb文件在access中转成.xls格式 Arcgis中对.bil文件定义投影

进口跨境商城源码的技术要点和优化策略

随着全球电子商务的快速发展,进口跨境商城已成为一种新型的商业模式。为了满足消费者日益增长的需求,提高商城的运营效率和用户体验,对进口跨境商城源码进行技术优化显得尤为重要。本文将探讨进口跨境商城源码的技术要点和优化策略。 一、背景…

Prometheus+Node_exporter+Grafana实现监控主机

PrometheusNode_exporterGrafana实现监控主机 如果没有安装相关的配置,首先要进行安装配置,环境是基于Linux,虚拟机的相关环境配置在文末给出,现在先讲解PrometheusNode_exporterGrafana的安装和使用。 一.Prometheus安装 虽然…

后端设计PG liberty的作用和增量式生成

Liberty(俗称LIB和DB),是后端设计中重要的库逻辑描述文件,这里边包含了除过physical(当然也有一点点涉及)以外所有的信息,对整个后端设计实现有非常大的作用。借此机会,一起LIB做一个…

半导体精密划片机在行业中适合切割哪些材料?

在高端精密切割划片领域中,半导体材料需要根据其特性和用途进行选择。划片机适用于多种材料,包括硅片、石英、氧化铝、氧化铁、砷化镓、铌酸锂、蓝宝石和玻璃等。这些材料在半导体行业被广泛使用,包括在集成电路、半导体芯片、QFN、发光二极管…

【R统计】各式各样的插补法解决数据缺失的问题!

💂 个人信息:酷在前行👍 版权: 博文由【酷在前行】原创、需要转载请联系博主👀 如果博文对您有帮助,欢迎点赞、关注、收藏 订阅专栏🔖 本文收录于【R统计】,该专栏主要介绍R语言实现统计分析的…