发布于 2026-01-06 0 阅读
0

数据库设计

数据库设计

数据库设计是指构建数据库中的数据结构和关系。它不仅仅关乎数据库如何存储数据。
在本系列文章中,我们将探讨 SQL 和 NoSQL 的设计技巧。我们将设计用于以下用途的数据库:

  1. 电子商务商店
  2. 学校管理
  3. 新闻网站

我们将看到如何在图表中设计这些数据库,然后将其转换为 SQL 和 NoSQL。我们将学习如何选择合适的数据库类型。是不是很令人兴奋?

基础知识

数据库设计的基础是确定需要存储哪些数据,将这些数据分组到表或集合中,并在相关数据点之间建立关系。整个数据库设计过程涉及以下几个方面。

  1. 使用实体关系(ER)图来可视化存储的对象及其关系。
  2. 现代数据库设计会用到诸如此类的工具。

构建可以导出为特定平台(Postgresql、MongoDB、MySQL 等)语法的表或集合。

SQL和NoSQL有什么区别?

很高兴你问了这个问题。

SQL数据库。

SQL 数据库是使用Structured Query LanguageSQL 语句来操作数据的数据库。SQL 数据库将数据存储在表中。一个表的结构大致如下:

人们

ID 姓名 年龄 工作
1 约翰·多伊 45 在互联网上使用的名称
2 简·多伊 40 据称是女性版本
3 乔什·多伊 1 开发者

所以,如果我们想获取表中人员的姓名,我们可以使用如下 SQL 语句:

SELECT name FROM people;
Enter fullscreen mode Exit fullscreen mode

这叫做 SQL 查询。查询是一种命令,它主要负责在数据库中创建、读取、更新和删除 (CRUD) 数据。上面的 SQL 查询会检索 people 表中人员的姓名。因此,SQL 数据库就是通过 SQL 查询来运行的。
如果你想知道结果,上面查询的结果应该是:

姓名
约翰·多伊
简·多伊
乔什·多伊

SQL数据库示例

  1. PostgreSQL
  2. MySQL
  3. Microsoft SQL Server

NoSQL数据库

NoSQL 数据库是指不使用 SQL 进行查询的数据库。例如,MongoDB 就是一个文档型数据库。MongoDB 将数据存储在文档中。我们的用户表在文档型数据库中的表示形式如下:

{
  "people": [
    {
      "id": 1,
      "name": "John Doe",
      "age": 45,
      "job": "name used on the internet"
    },
    {
      "id": 2,
      "name": "Jane Doe",
      "age": 40,
      "job": "supposed female version"
    },
    {
      "id": 3,
      "name": "Josh Doe",
      "age": 1,
      "job": "developer"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

查询文档数据库的操作类似于:

   db.people.find({}, { "name": 1, "_id": 0 })
Enter fullscreen mode Exit fullscreen mode

其他 NoSQL 数据库的例子包括:

  1. 像这样的图数据库 ,我们可以看到一个人与另一个喜欢其他东西的人是朋友。它展示了某些事物之间错综复杂的关系。这对于社交媒体软件来说是一个很好的设计。
    图 db.png

  2. 键值存储,例如Redis

实体关系(ER)图

这些图表使用形状和箭头来表示数据对象及其关系。ER 图是数据库设计的重要步骤。下图是一个典型的 ER 图。

er diagram.png

这里,我们有一个包含三个表(或集合)和两个关系的数据库。即使您对数据库一无所知,ER 图的直观结构也能让您了解数据库处理的信息。

  • Customer与冒号(:)customer-noname空格(:) 相连的椭圆形符号e-mail称为属性。在 SQL 中,它们是列。在文档数据库中,它们是 BSON(二进制 JSON)属性。
  • 这些矩形代表实体或对象。在 SQL 中,它们代表表。在文档数据库中,它们代表集合。
  • 菱形代表关系。在这个ER图中,makesA连接customerorderB。所以A是一个customer makes…… order。Bincludes连接orderproductB。所以A是一个order includes…… product

通过 ER 图,您可以全面了解数据库在特定平台(SQL 或 NoSQL)上的实现方式。

SQL数据库建模工具(QuickDB)

QuickDB可用于为多种数据库管理系统 (DBMS) 构建表和关系模型。它是一款免费增值产品,提供免费和付费两种方案。其最突出的功能是能够导出适用于包括 MySQL 和 PostgreSQL 在内的多个平台的 SQL 特定代码。

quickdb.png

包起来

现代数据库是使用现代工具设计的。在开始使用数据库的项目之前,必须先设计好数据库,以避免在项目后续阶段出现混乱和糟糕的应用程序设计。

如果您觉得这篇文章有用,请分享。这是一个系列文章,敬请期待更多关于数据库设计的文章。最后,为了增添趣味,请欣赏这张图片。

有趣的图片比较数据库.png

😂 希望你笑了。感谢阅读。再见✌🏽🧡

鸣谢

  1. 封面照片由Fabio拍摄,来自Upslash
  2. 本文对比了 NoSQL 和 SQL数据库。
  3. 来自Neo4J 的图数据库图像
文章来源:https://dev.to/vicradon/database-design-26pj