为关系数据库设计架构

作者 : IT 大叔 本文共1485个字,预计阅读时间需要4分钟 发布时间: 2020-09-14

什么是关系数据库

在1970年为IBM工作期间,EF Codd提出了一种用于组织数据库结构的关系模型的思想,并在他的研究论文“大型共享数据库的数据关系模型”中创造了“关系数据库”一词。他强加了一个定义,其中包含十几条规则(Codd的12条规则),其中至少有两项现在是必需的:

1-(关系数据库应)以关系形式(以表格形式表示,即表的集合,每个表由一组行和列组成)向用户显示数据;

2-提供关系运算符以表格形式处理数据。

数据库可以包含存储和组织必要数据所需的尽可能多的表(或“关系”)。每个表都由行和列(也称为“属性”)组成,并且具有唯一的“主键”来标识每一行(有时也称为记录)。当一个表的行链接到另一个表的行时,将创建一个包含此链接行的唯一ID的列,称为“外键”。

最常见的关系数据库是MySQLPostgreSQL,它们使用结构化查询语言通过“ INSERT”,“ SELECT”,“ ALTER”和“ DELETE”等命令访问和操作数据。SQL很简单,而且学习时间并不长。

数据之间的关系

在设计数据库时,必须首先确定需要存储哪些数据,然后确定数据之间的关系。为了识别表之间的关系,必须从两侧检查它们。它们将属于以下类别之一:

一对一

第一个表中的每一行仅与第二个表中的一行相关。

一对多

第一个表中的每一行可以与第二个表中的任何数量的行相关。

多对多

第一个表中的任何数量的行都可以与第二个表中的任何数量的行相关。这种类型的关系不适用于表格数据,因此将需要一个结点(或相交)表将它们分解为两个一对多的关系表。

建筑桌子

想象我们正在为当地兽医办公室创建一个MySQL数据库。要存储的重要信息将包括宠物的名称和品种以及其主人的姓名和电话号码。我们可以建立一个名为“ pets”的表格,其中将包含宠物的名称,种类和年龄,并为每个宠物提供唯一的ID。

为关系数据库设计架构插图

为了使表格有条理,我们可以将所有动物种类的列表存储在另一个表格中,为每个种类指定一个唯一的ID。

为关系数据库设计架构插图(2)

宠物表和物种表之间的关系是多对一的:每个宠物只能属于一个物种,但是每个物种可以有很多宠物。

我们将创建一个所有者表,该表将存储所有者的全名和电话号码。

为关系数据库设计架构插图(4)

每个所有者可能拥有不知名的宠物,并且潜在的宠物数量可能很大,因此直接在此表中存储宠物信息不是一个好主意。此外,每个宠物可能会列出一个以上的所有者,从而创建了多对多关系,因此需要一个联接表,在联接表中我们将输入每个所有者和宠物的唯一ID。

为关系数据库设计架构插图(6)

每个字段应仅包含一个值,或具有唯一的真理来源。这些信息在电子表格上可能看起来像这样:

为关系数据库设计架构插图(8)

全部放在一起

可以在https://dbdiagram.io/上找到一个非常有用的工具,用于可视化数据和设计MySQL和PostgreSQL数据库的表。您在左侧的输入字段中输入表名称和内容,它将为您生成漂亮的表。这是我输入的创建上面显示的表的内容:

为关系数据库设计架构插图(10)

每个表都有一个id列,该列将是一个称为主键([pk])的整数(int)。“ varchar”表示字符串数据类型,并在括号后跟数字以指定允许的最大长度,最多8,000个字符。其他数据类型包括日期,时间,二进制等。我们虚构的宠物/主人数据库的完整架构如下所示:

为关系数据库设计架构插图(12)

您可以通过在字段之间拖动来显示这些关系,它将在代码编辑器的底部为您生成一个列表。(如果愿意,您也可以自己输入。)

为关系数据库设计架构插图(14)

<表示一对多
>表示多对一
-表示一对一

它们甚至允许您导出您设计的架构,或者导入您可能要目视检查的现有架构。

为关系数据库设计架构插图(16)

结论

关系数据库将信息存储在有组织的表中。

使用SQL访问和操作数据。

可视化架构结构可能具有挑战性。使用dbdiagram之类的设计器有助于理解数据之间的关系,从而创建有组织的配置。

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » 为关系数据库设计架构

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论