数据库logo

数据库设计

由Rikky提供

所有类别:

数据库基础 (文章图片)

数据库基础

用简单的术语设计数据库

数据库恢复 (文章图片)

数据库恢复

修复常见错误而不丢失数据

SQL 查询示例 (文章图片)

SQL 查询示例

用简单的话语讲解 SQL 基础,SQL 操作符

数据库示例 (文章图片)

数据库示例

通过流行示例分析数据库架构。

项目新闻 (文章图片)

项目新闻

更新、新功能和其他事件。

关系数据库是几乎所有IT项目的组成部分之一。数据库的本质是什么?它们有什么用处?

为什麼需要数据库?

数据库的本质在于为 IT 项目提供一种便利和高效的存储特定结构数据的方式。为了更好地理解,我们来看一个例子:

假设我们有一个商店,它的商品种类不断丰富,也可能会发生变化。我们想要开发一个网络商店,以便在线销售商品。如果我们将所有商品都写在网络商店的代码中,那么每次添加或编辑商品时都需要深入代码中,努力去处理需要的操作。

相反,我们可以将我们的商品信息存储在数据库中,并在网络商店的代码中编写从数据库中获取商品的功能。现在我们不需要深入代码来管理商品 - 我们可以直接在数据库管理系统 (DBMS) 的界面中管理它们,或者开发一个内容管理系统 (CMS),通过图形界面快速方便地进行所有必要的商品操作。

值得一提的是,如果没有数据库,而所有商品都编写在代码中,就无法编写内容管理系统。

数据库使得有效的搜索、过滤和排序数据成为可能。它们还提供了执行复杂查询和数据分析的机制。

这意味着,我们可以录入多个商品,但仅获得名称中包含特定单词的商品数据。或者价格大于或小于特定数值的商品。或者在特定日期之前/之后添加的商品。或者同时应用所有这些条件。

因此,数据库本身提供了广泛的可能性,使我们能够开发数据的排序、分组和过滤。

此外,数据库通常适用于存储大量数据,并且运行非常迅速,这使得每秒钟可以执行大量的数据库请求。这允许数十人同时访问数据库,而不会延迟。

即使同时用户数量达到很大的值,仍然存在各种负载优化技术,以确保稳定工作而不出现延迟。这被称为数据库的扩展,我们将在另一篇文章中回到这个主题。

从编程角度看数据库是什么?

数据库的种类和类型各不相同,但原则是相同的。这是一个需要安装在计算机或服务器上的程序。

在可以连接到数据库并在其中操作信息之前,程序必须被启动。当数据库启动时,可以通过特定的本地 IP 地址和端口连接到它。

另一个使用数据库的必要条件是配置对其的访问:为此需要添加数据库用户。在安装 DBMS 时,自动添加主用户“root”,后来可以添加其他用户,甚至为他们配置权限:可以设定,例如,用户连接到数据库时只能读取数据,而不能写入数据。

每个用户的访问是通过登录名和密码进行的 - 您不希望任何人都能完全访问数据库中的所有数据。在大多数情况下,通常只需要一个用户,后端通过该用户与数据库进行交互。

与数据库交互是通过特殊命令来完成的,这些命令允许执行经典的获取、添加、编辑和删除数据的操作 (简称 CRUD - create, read, update, delete)

这些命令可以通过程序代码发送(这是我们需要数据库最常见的情况),也可以在启动的 DBMS 控制台中直接写入,或者使用图形用户界面。

所有图形用户界面,比如 Navicat、phpMyAdmin 等,实际上只是将控制台命令发送到数据库,并将结果输出到图形界面。

当需要使数据库可以通过互联网访问时,这需要单独配置,但在这种情况下需要特别注意安全性。通常,数据库在独立的服务器上直接可通过互联网访问,这个服务器是专门为数据库采购的。

更常见的情况是,数据库和项目的后端 (也可能有前端) 在同一台服务器上。在这种情况下,不会从互联网开放对数据库的直接访问。后端通过本地网络连接到数据库,并与数据进行操作。

项目的客户端(前端)根本不应该“知道”数据库在哪里以及如何连接到它。它向后端发送请求,后端只能执行代码中严格规定的操作,并且不能执行其他操作。

数据库中的数据结构

那么,数据库中的数据是如何存储的呢?每个数据库包含一组表,表中的记录是存储的数据。在我们开始在项目中使用数据库之前,我们需要定义其结构:必须将我们计划存储的所有信息划分为逻辑组,并为每组创建一个表。

回到网络商店的例子,我们可以有一个专门的商品表,一个商品类别表、用户表、用户订单表等。

并且对于每个表,应考虑其“列”。如果我们打算存储商品,我们将存储哪些数据?名称?是的,一个列。价格?是的,又一个列。商品类别?是的,那就再一个列。

数据库并不限制我们存储的内容,想存什么就可以存,最重要的是预先确定并融入数据库的结构。我们可以创建任意数量的表,以及这些表中的列数。

当我们将数据写入表时,每条记录就是一行。它存储有关某个特定对象的信息。在商品表中,每一行信息就是关于一个具体商品的信息。此外,在数据库中的每条记录通常还包括另一列:ID,其中存储唯一标识符(这可以是一个数字,也可以是哈希)。在一个表中没有重复的 ID,使得通过已知的特定记录的 ID 以 100% 的精确度获取此记录的信息成为可能。

为什么是关系型数据库?这到底意味着什么?

Relation 从英语翻译过来是关系。关系型数据库提供了在不同表之间建立关系的可能性,这使得有效组织数据成为可能。这有助于避免信息重复并保证数据的完整性。

关系有不同的类型,我们平台上有几篇关于这一主题的文章,每种关系类型都有一篇。通俗易懂并提供实例。如果您开始学习数据库,请务必阅读这些文章!

数据库结构必须提前规划!

我们定义数据库结构(将会有哪些表,以及表中的列有哪些)的阶段称为数据库架构设计。这是一个非常负责和重要的阶段,因为正确的设计决定了项目能否正常运作并在高负载下不会延迟。

如果数据库设计错误,可能会马上或不会马上发现,并可能导致需要重新设计整个数据库,这也意味着需要重新编写与数据库交互的代码。

正因如此,为了避免错误,并正确规划数据库结构,最好使用专门的数据库设计程序,而不是在开发过程中直接用控制台命令或 DBMS 创建它。

我在哪里可以设计数据库?

尝试使用新的可视化构造器,称为数据库设计。简单方便的界面使您能够以图形模型的可视化方式设计关系数据库,您可以链接来自不同表的字段,指示它们之间的关系。让我们看看它是什么样的:

观看预告片
Где можно спроектировать базу данных? В Database Design!

数据库设计应用程序中的模式可以稍后导出为SQL转储,通过链接下载。转储文件可用于在任何正常的SQL数据库管理系统(DBMS)中重新创建关系数据库的确切结构,如MySQL。您甚至不需要为此编写SQL查询代码!

在数据库设计应用程序中工作是一种乐趣!

适用于专业人士和学生,用于组织存储和分析,以及可视化数据库模型以满足他们的项目需求。

在数据库设计中,您可以从浏览器进行工作,无需下载或安装任何东西!

转到数据库设计构造器

更多文章
和项目新闻:

新增:方便的表格和列选择用于关联,能够在深色主题和浅色主题之间切换,以及二步验证。

新增:方便的表格和列选择用于关联,能够在深色主题和浅色主题之间切换,以及二步验证。

项目新闻

尝试新的方便的表格选择功能进行关联!添加了表格搜索功能,现在您可以指定关联的列。喜欢浅色界面的朋友可以选择新的浅色主题。安全性得到了提高。 阅读文章

新增了共享设置!

新增了共享设置!

项目新闻

现在可以与团队或客户分享数据库模式!大家会对您提供的数据库模式形式感到兴奋,这已经得到验证! 阅读文章

新增:方便的表头颜色选择、表格组、可以为表格添加说明和复制表格的功能。改善了工作区的缩放。

新增:方便的表头颜色选择、表格组、可以为表格添加说明和复制表格的功能。改善了工作区的缩放。

项目新闻

为表格分配颜色后,可以迅速为另一张表格分配相同的颜色。每种颜色可以通过创建表格颜色组来命名。可以只显示一个表格组,隐藏其他组。表格的说明始终显示在表格上方。修复了缩放的bug。 阅读文章

新增了数据类型、扩展设置和外部导出,以及鼠标和触控板的灵敏度切换。

新增了数据类型、扩展设置和外部导出,以及鼠标和触控板的灵敏度切换。

项目新闻

现在选择数据类型变得更容易了,数据类型增加了,并且增加了提示。为了方便使用触控板,增加了同名模式。 阅读文章

如何在SQL中从表中获取数据:SQL查询SELECT FROM WHERE

如何在SQL中从表中获取数据:SQL查询SELECT FROM WHERE

SQL 查询示例

学习SQL与示例:如何编写SQL命令以从数据库中获取数据?我用简单的词语解释如何从数据库中提取信息,没有废话。命令SELECT FROM WHERE很简单!适用于MySQL,PostgreSQL,MS SQL,SQLite,Oracle,MariaDB和其他SQL数据库管理系统。 阅读文章

如何在 SQL 中向表中添加行:SQL INSERT INTO 语句

如何在 SQL 中向表中添加行:SQL INSERT INTO 语句

SQL 查询示例

通过示例学习 SQL:如何编写 SQL 命令以向表中添加数据?我用简单的语言解释如何将数据插入数据库表,没有任何废话。INSERT INTO 命令很简单!适用于 MySQL、PostgresQL、MS SQL、SQLite、Oracle、MariaDB 和其他 SQL 数据库。 阅读文章

如何在SQL中修改表记录中的数据:SQL更新查询

如何在SQL中修改表记录中的数据:SQL更新查询

SQL 查询示例

更新SQL记录,如何编写SQL命令以更改表中的行?我用简单的话解释如何编辑SQL数据库元组中的数据,没有多余的细节。UPDATE SET命令很简单!它适用于MySQL、PostgreSQL、MS SQL、SQLite、Oracle、MariaDB和其他SQL数据库管理系统。 阅读文章

如何在 SQL 中从表中删除数据:SQL 查询 DELETE FROM WHERE

如何在 SQL 中从表中删除数据:SQL 查询 DELETE FROM WHERE

SQL 查询示例

通过示例学习 SQL:如何编写 SQL 命令以从数据库表中删除一行?我用简单的语言解释 SQL 中的行删除,如何删除 SQL 记录,没有多余的信息。DELETE FROM WHERE 查询很简单!它适用于 MySQL、PostgreSQL、MS SQL、SQLite、Oracle、MariaDB 等其他 SQL 数据库管理系统。 阅读文章

关系数据库是几乎所有IT项目的组成部分之一。数据库的本质是什么?它们有什么用处?

关系数据库是几乎所有IT项目的组成部分之一。数据库的本质是什么?它们有什么用处?

数据库基础

为什么需要数据库?从编程的角度来看,什么是数据库?数据库中的数据结构,什么是“关系”,最后,为什么在数据库设计阶段要非常负责任地对待? 阅读文章

数据库设计基础:如何创建“一对一”关系(1:1),以及在什么情况下需要这种关系,简单的例子说明。

数据库设计基础:如何创建“一对一”关系(1:1),以及在什么情况下需要这种关系,简单的例子说明。

数据库基础

关系数据库课程,在线数据库培训。如何创建“一对一”(1:1)的关系,以及何时需要这种关系类型。学习关系数据库的结构,包含SQL查询的实例。 阅读文章

数据库设计基础:如何创建“多对多”(M:N)关系,以及何时需要这种类型的关系,简单明了的例子讲解。

数据库设计基础:如何创建“多对多”(M:N)关系,以及何时需要这种类型的关系,简单明了的例子讲解。

数据库基础

关系数据库课程,在线数据库学习。如何创建“多对多”(M:N)关系,以及何时需要这种类型的关系。通过SQL查询示例探索关系数据库的结构。 阅读文章

数据库设计基础:简单来说,数据规范化的含义、关系型数据库中关系的目的、“一对多”关系。

数据库设计基础:简单来说,数据规范化的含义、关系型数据库中关系的目的、“一对多”关系。

数据库基础

关系型数据库的课程,在线数据库学习。“一对多”关系(1:M),用简单的例子来解释。 阅读文章

MySQL无法启动:MySQL意外关闭错误

MySQL无法启动:MySQL意外关闭错误

数据库恢复

一切运作如常,突然MySQL崩溃并出现错误?让我告诉你如何在不丢失数据的情况下解决这个问题。 阅读文章