2 关系型数据库是什么?

article/2025/11/9 17:46:28

目录结构

  • 关系型数据库基本概念
  • 结构化查询语言
      • 数据定义语言(DDL)
      • 数据查询语言(Data Query Language, DQL)
      • 数据操纵语言(Data Manipulation Language, DML)
      • 数据控制语言(Data Control Language, DCL)
  • 关系型数据库的优缺点
      • 关系型数据库的优点
      • 关系型数据库的缺点

  关系型数据库建立在关系型数据模型的基础上,是借助于集合代数等数学概念和方法来处理数据的数据库。现实世界中的各种实体以及实体之间的各种联系均可用关系模型来表示,市场上占很大份额的 Oracle、MySQL、DB2 等都是面向关系模型的 DBMS。

关系型数据库基本概念

  在关系型数据库中,实体以及实体间的联系均由单一的结构类型来表示,这种逻辑结构是一张二维表。图 1 所示的学生选课系统中,实体和实体间联系在数据库中的逻辑结构可通过图 2 所示。

在这里插入图片描述

							图 1:关系型数据库

在这里插入图片描述

					图 2:学生选课系统数据库逻辑结构

  关系型数据库以行和列的形式存储数据,这一系列的行和列被称为表,一组表组成了数据库。图 3 所示的员工信息表就是关系型数据库。

在这里插入图片描述

						图 3:员工信息表

属性说明

  • 二维表:也称为关系,它是一系列二维数组的集合,用来代表与存储数据对象之间的关系。它由纵向的列和横向的行组成。
  • 行:也叫元组或记录,在表中是一条横向的数据集合,代表一个实体。 列:也叫字段或属性,在表中是一条纵行的数据集合。列也定义了表中的数据结构。
  • 主属性:关系中的某一属性组,若它们的值唯一地标识一个记录,则称该属性组为主属性或主键。主属性可以是一个属性,也可以由多个属性共同组成。在图1-5中,学号是学生信息表的主属性,但是课程信息表中,学号和课程号共同唯一地标识了一条记录,所以学号和课程号一起组成了课程信息表的主属性。

结构化查询语言

关系型数据库的核心是其结构化的查询语言(Structured Query Language, SQL),SQL 涵盖了数据的查询、操纵、定义和控制,是一个综合的、通用的且简单易懂的数据库管理语言。同时 SQL 又是一种高度非过程化的语言,数据库管理者只需要指出做什么,而不需要指出该怎么做即可完成对数据库的管理。

SQL 可以实现数据库全生命周期的所有操作,所以 SQL 自产生之日起就成了检验关系型数据库管理能力的“试金石”,SQL 标准的每一次变更和完善都引导着关系型数据库产品的发展方向。

SQL 包含以下四个部分。

数据定义语言(DDL)

DDL 包括 CREATE、DROP、ALTER 等动作。在数据库中使用 CREATE 来创建新表,DROP 来删除表,ALTER 负责数据库对象的修改。

例如,创建学生信息表使用以下命令:
CREATE TABLE StuInfo(id int(10) NOT NULL,PRIMARY KEY(id),name varchar(20), female bool,class varchar(20));

数据查询语言(Data Query Language, DQL)

DQL 负责进行数据查询,但是不会对数据本身进行修改。

DQL的语法结构如下:
SELECT FROM 表名1,表2
where 查询条件 #可以组合 and、or、 not、 =、between、and、in、like 等;
group by 分组字段
having (分组后的过滤条件)
order by 排序字段和规则;

数据操纵语言(Data Manipulation Language, DML)

DML 负责对数据库对象运行数据访问工作的指令集,以 INSERT、UPDATE、DELETE 三种指令为核心,分别代表插入、更新与删除。

向表中插入数据命令如下:
INSERT 表名 (字段1,字段2,…,字段n,) VALUES (字段1值,字段2值,…,字段n值) where 查询条件;

数据控制语言(Data Control Language, DCL)

DCL 是一种可对数据访问权进行控制的指令。它可以控制特定用户账户对查看表、预存程序、用户自定义函数等数据库操作的权限,由 GRANT 和 REVOKE 两个指令组成。

DCL 以控制用户的访问权限为主,GRANT 为授权语句,对应的 REVOKE 是撤销授权语句。

关系型数据库的优缺点

  关系型数据库已经发展了数十年,其理论知识、相关技术和产品都趋于完善,是目前世界上应用最广泛的数据库系统。

关系型数据库的优点

  • 容易理解:二维表结构非常贴近逻辑世界的概念,关系型数据模型相对层次型数据模型和网状型数据模型等其他模型来说更容易理解。
  • 使用方便:通用的SQL 使用户操作关系型数据库非常方便。
  • 易于维护:丰富的完整性大大减少了数据冗余和数据不一致的问题。关系型数据库提供对事务的支持,能保证系统中事务的正确执行,同时提供事务的恢复、回滚、并发控制和死锁问题的解决。

关系型数据库的缺点

  随着各类互联网业务的发展,关系型数据库难以满足对海量数据的处理需求,存在以下不足。

  • 高并发读写能力差:网站类用户的并发性访问非常高,而一台数据库的最大连接数有限,且硬盘 I/O有限,不能满足很多人同时连接。
  • 对海量数据的读写效率低:若表中数据量太大,则每次的读写速率都将非常缓慢。
  • 扩展性差:在一般的关系型数据库系统中,通过升级数据库服务器的硬件配置可提高数据处理的能力,即纵向扩展。但纵向扩展终会达到硬件性能的瓶颈,无法应对互联网数据爆炸式增长的需求。还有一种扩展方式是横向扩展,即采用多台计算机组成集群,共同完成对数据的存储、管理和处理。这种横向扩展的集群对数据进行分散存储和统一管理,可满足对海量数据的存储和处理的需求。但是由于关系型数据库具有数据模型、完整性约束和事务的强一致性等特点,导致其难以实现高效率的、易横向扩展的分布式架构

http://chatgpt.dhexx.cn/article/T2HoDmnc.shtml

相关文章

常见的关系型数据库有哪些

Oracle Database:由Oracle公司开发和维护的商业关系型数据库,具有广泛的应用场景和功能。 MySQL:开源关系型数据库,常用于Web应用程序和小型企业应用。 Microsoft SQL Server:由Microsoft公司开发和维护的商业关系型…

Bezier曲线快速相交计算(含代码)

Bezier曲线快速相交计算 背景介绍算法思路解释和分析示例参考资料 背景介绍 很多时候,需要计算曲线段与曲线段是否有交点。常规的思路是直接联立方程求解。不过,直接求方程的解这种思路通常在计算上开销较大。 针对任意曲线,曲线的方程阶次…

js绘制贝塞尔曲线(Bézier-Curve)

贝塞尔曲线(Bzier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们…

Bezier曲线与B-Spline曲线

微分几何基础 微分集合是用微分的方法来研究曲线的局部性质,如曲线的弯曲程度等。 一条可以用参数表示的三维曲线是一个有界点集,可以写成一个带参数的、连续的、单值的数学函数: { x x ( t ) y y ( t ) z z ( t ) 0 ⩽ t ⩽ 1 p p ( t…

初识贝塞尔(bezier)曲线

文章目录 资料援引贝塞尔曲线的用途一阶贝塞尔(bezier)曲线二阶贝塞尔(bezier)曲线三阶贝塞尔(bezier)曲线高阶贝塞尔(bezier)曲线三阶贝塞尔曲线求插值(Slerp&#xff0…

贝塞尔曲线(Bezier Curve)原理、公式推导及matlab代码实现

1. 定义 贝塞尔曲线(Bezier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋&#…

Bezier(贝塞尔曲线通用规律算法-DEMO)

之前也看过一些相关贝塞尔曲线的知识,但就是一直没有实践应用; 今天,听到有同事:程序、美术,在讨论相关的,人物的曲线路径行走的问题; 一些数学比较牛X的,说了用2阶,或…

bezier曲线原理(简单阐述)

原理和简单推导(以三阶为例): 设P0、P02、P2是一条抛物线上顺序三个不同的点。过P0和P2点的两切线交于P1点,在P02点的切线交P0P1和P2P1于P01和P11,则如下比例成立: 这是所谓抛物线的三切线定理。 当P0&…

Bezier贝塞尔曲线

1.简介 Bezier曲线在图形学和游戏中经常使用,一般用的比较多的是4个控制点的贝塞尔曲线,这里手写了一个仅供参考(注:理论上也可以写任意多个点(3个及以上)的贝塞尔,就是一个递归的过程&#xff…

java 贝塞尔曲线_在Java中绘制贝塞尔曲线

我需要创建一个简单的Java程序,通过任意数量的点逐个像素地绘制贝塞尔曲线.此刻,一切似乎都没问题,只是曲线总是在x 0 y 0坐标处结束. 截图1 截图2 我需要它在最后一点结束.我的大脑今天工作不太好,所以我正在寻求帮助. 这是我有的: private void drawScene(){ pr…

贝塞尔曲线(Bezier Curve)原理及公式推导

1. 定义 贝塞尔曲线(Bezier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋&#…

Bezier(贝塞尔)曲线小总结

在初学时,我发现Bezier曲线(中文名贝塞尔曲线,想要了解历史发展等的可以看此百度百科:贝塞尔曲线_百度百科)很难理解,故在此写了一篇自己的心得感悟。要理解它最重要的是理解Bernstein基函数。首先&#xf…

Bezier曲线原理—动态解释

Bezier曲线原理 贝塞尔曲线(Bzier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮…

正确的Bezier曲线的绘制

原文地址:http://blog.csdn.net/mylovestart/article/details/8434310 Bezier曲线是参数多项式曲线,它由一组控制多边形折线(控制多边形)的顶点唯一定义,在控制多边形的各顶点中,只有第一个和最后一个顶点在曲线上,其他的顶点则用以定义曲线的导数,阶次和形状 Bezier曲线的数…

根据Bezier曲线的定义公式实现Bezier曲线的绘制

Bezier曲线的定义公式 Pi是曲线上点的坐标(x,y,(z0)), Bi,n(t)伯恩斯坦公式,绘制Bezier曲线的第一种方法是根据这个公式来绘制。首先看看绘制的效果: (1)计算定义中多项式的值 首先要求伯恩斯…

Bezier曲线描述

Bezier曲线 1.Bezier曲线的定义 当用曲线段拟合曲线f(x)时,可以把曲线表示为许多小线段φi(x)之和,其中φi(x)称为基(混合)函数。 这些基(混合)函数是要用于计算和显示的。因此,经常选择多项式…

Bezier曲线的绘制

Bezier曲线是参数多项式曲线,它由一组控制多边形折线(控制多边形)的顶点唯一定义,在控制多边形的各顶点中,只有第一个和最后一个顶点在曲线上,其他的顶点则用以定义曲线的导数,阶次和形状 Bezier曲线的数学基础是能够在第一个和最后一个顶点之间进行插值的一个多项式混合函数,…

Bezier曲线的生成算法

Bezier曲线的生成方法 生成一条Bezier曲线实际上就是要求出曲线上的点。 1.根据定义直接生成Bezier曲线 定义: 其中 那么生成步骤为: ①首先给出 的递归计算式: ②:将表示成分量形式 由于的计算量大,算法效率不高…

bezier曲线解析与代码(c++)

前言: 作为rhino重度用户,我对于nurbs建模早有耳闻,但对于何为nurbs却不得其解。最近借上《计算机辅助设计》课程的机会,对此作了一些深入的学习,于是在此记录一下一些课程笔记和课后思考。了解nurbs,主要对…

Bezier曲线构造

Bezier曲线构造 曲线公式 曲 线 : C ( u ) ∑ i 0 n B n , i ( u ) P i 基 函 数 : B n , i n ! i ! ( n − i ) ! u i ( 1 − u ) n − i 曲线:C(u) \sum^n_{i0}B_{n,i}(u)P_i\\ 基函数:B_{n,i}\frac{n!}{i!(n-i)!}u^i(1-u)…