12 数据库设计之4.1 关系模型

在上一篇的章节中,我们讨论了数据库的权限管理,了解了如何通过适当的权限配置来保护我们的数据安全。本章将为您介绍一个与数据库设计密切相关的重要概念——关系模型。通过阐述关系模型的定义、组成部分及其应用,我们将为后续的数据库范式讨论打下基础。

什么是关系模型?

关系模型是由著名的计算机科学家埃德加·F·科德(Edgar F. Codd)在20世纪70年代提出的一种数据管理模型。它基于数学中的“关系”概念,通过将数据组织成表格(即“关系”)的方式来简化数据组织与操作。

关系模型的基本组成

在关系模型中,数据以关系的方式存储,主要包括以下几个组成部分:

  1. 关系:一个关系是一个数据表,由一系列行(记录)和列(字段)组成,例如一个名为 employees 的表。

  2. 元组(Tuple):表中的一行称为元组,表示一个具体的数据记录。比如,一个员工的记录可能是:

    1
    (1, 'Alice', 'HR')
  3. 属性(Attribute):表中的每一列称为属性。对于 employees 表,可能的属性包括 idnamedepartment

  4. 值域(Domain):属性可以取的值的范围。例如,id 属性的值域可能只包含整数,而 name 属性的值域可以是字符串。

关系的特征

关系模型具有几个明显的特征,这些特征使得其在数据库设计与管理中极具优势:

  • 无序性:在关系中,元组的顺序没有意义,您可以随意排列。

  • 唯一性:每个元组在关系中是唯一的,不能有重复。

  • 原子性:每个属性的值都是不可分割的基本数据项。

实际案例

我们以一个简单的图书馆管理系统作为例子来阐述关系模型的应用。假设我们需要存储以下信息:

  • 图书信息:图书ID、书名、作者、出版社。
  • 读者信息:读者ID、姓名、联系方式。

数据库设计

针对以上需求,我们可以设计两个数据表:

  1. books(图书表)

    book_id title author publisher
    1 《数据库系统》 张三 某出版社
    2 《计算机网络》 李四 其他出版社
  2. readers(读者表)

    reader_id name contact
    1001 小明 123456789
    1002 小红 987654321

在PostgreSQL中创建表

我们可以使用如下SQL语句在PostgreSQL中创建这两个表:

1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE books (
book_id SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(100) NOT NULL,
publisher VARCHAR(100) NOT NULL
);

CREATE TABLE readers (
reader_id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
contact VARCHAR(20) NOT NULL
);

在上述SQL语句中:

  • SERIAL用于自动生成ID。
  • VARCHAR用于定义字符串类型。
  • PRIMARY KEY用于指定主键,确保每一行数据唯一。

结论

通过对关系模型的学习和对具体案例的设计,我们看到了如何利用关系模型高效地组织和管理数据。理解关系模型是学习数据库设计及后续范式讨论的基石。

在下一章中,我们将进一步探讨数据库的范式,学习如何设计引入规范化的数据库模型,优化数据存储与管理。

12 数据库设计之4.1 关系模型

https://zglg.work/postgresql-database-zero/12/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论