您的位置:

深入了解数据库ER设计

一、ER设计介绍

数据库ER设计是数据库设计中最为重要的一个部分,ER是Entity-Relationship(实体-关系)的缩写。通俗的说,ER模型是一种描述现实世界的抽象模型,用来表示现实世界的实体以及它们之间的关系。

在数据库中,ER图描述了实体的属性和它们之间的联系,ER图是通过实体、关系和属性三个元素组成的。

下面是一个简单的示例,同时也是后续示例代码的基础。

/*创建学生表*/
CREATE TABLE student (
    id INT NOT NULL ,
    name VARCHAR(20) NOT NULL ,
    age INT NOT NULL ,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
/*创建课程表*/
CREATE TABLE course (
    id INT NOT NULL ,
    name VARCHAR(20) NOT NULL ,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
/*创建选课表*/
CREATE TABLE course_selected (
    id INT NOT NULL ,
    student_id INT NOT NULL ,
    course_id INT NOT NULL ,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

二、实体和属性设计

在ER模型中,实体指的是现实世界中一个可以被独立标识的对象,例如在上述示例中的“学生”和“课程”就是两个实体。

属性则是描述实体特征的数据类型,例如学生实体就有姓名和年龄这两个属性。

下面是示例代码中学生实体的设计:

CREATE TABLE student (
    id INT NOT NULL ,
    name VARCHAR(20) NOT NULL ,
    age INT NOT NULL ,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

三、关系的处理

在ER模型中,关系是指实体之间相互联系的情况,例如示例中的“学生”和“课程”就存在选课这个关系。

在关系处理中,我们需要考虑两个方面:关系类型和关系的基数。

关系类型指的是实体之间的联系种类,常见的有一对一、一对多、多对一和多对多四种。

关系的基数则是指实体之间的关系数量,常见的有1、n、0..1、0n、1..n等。

下面是示例代码中选课关系的设计:

/*创建选课表*/
CREATE TABLE course_selected (
    id INT NOT NULL ,
    student_id INT NOT NULL ,
    course_id INT NOT NULL ,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

四、ER图的绘制和使用

ER图是用来展示实体和关系的视觉化图表,使用ER图可以更加清晰的呈现数据库的结构。在实际项目中,我们通常使用UML工具来绘制ER图。

使用ER图可以进行数据库的逻辑设计,并且通过ER图可以更加清晰明了的表达关系的类型和基数。

下面是一张简单的ER图示例:


 

五、总结

数据库ER设计是数据库设计中最为重要的一个部分,通过实体、属性和关系的设计可以创建出一个合理、高效的数据库结构。在实际项目中,我们可以使用UML工具来绘制ER图,并且通过ER图可以更直观的展示数据库结构。

深入了解数据库ER设计

2023-05-23
数据库的笔记mysql,数据库管理系统笔记

2022-11-24
mysql数据库完整笔记(mysql数据库数据)

2022-11-13
java学习笔记(java初学笔记)

2022-11-14
jsp程序开发学习笔记2,jsp程序设计题库

本文目录一览: 1、《JSP&Servlet学习笔记》pdf下载在线阅读,求百度网盘云资源 2、林信良编著jsp&servlet学习笔记第2版课后答案吗 3、jsp有没有快速掌握的办法呀? 4、要学J

2023-12-08
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
mysql数据库论文,MySQL数据库论文读书笔记

2022-11-17
python基础学习整理笔记,Python课堂笔记

2022-11-21
mysql数据库开发笔记(mysql数据库应用案例教程电子版

2022-11-14
重学java笔记,java笔记总结

2022-11-23
java基础知识学习笔记一,Java基础笔记

2022-11-21
ER图外键详解

2023-05-19
java笔记,尚硅谷java笔记

2022-12-01
jsp数据库笔记,jsp写入数据库

本文目录一览: 1、怎么用jsp连接mysql数据库 2、jsp中怎么使用数据库 3、JSP 从数据库中如何取得图片的路径? 怎么用jsp连接mysql数据库 一. 数据库的连接和操作笔记:1.初始化

2023-12-08
java方法整理笔记(java总结)

2022-11-08
数据仓库设计指南

2023-05-22
印象笔记记录java学习(Java成长笔记)

2022-11-12
java笔记,大学java笔记

2022-11-28
python课堂整理32(python笔记全)

2022-11-12
MySQL生成ER图的详细阐述

2023-05-22