E-R图的基础练习

本文介绍了E-R图在数据库设计中的应用,通过11个实例详细解析了如何绘制E-R图,涵盖了商店、顾客、学生、教师、公司、仓库、运动员、比赛项目等多个场景,涉及实体、属性及不同类型的联系,帮助理解数据库设计的基本概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1题:

设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电话,“顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。

①  试画出ER图,并注明属性和联系类型。(5分)

 

第2题:

假设每个学生选修若干门课程,且每个学生每选一门课只有一个成绩,每个教师只担任一门课的教学,一门课由若干教师任教。“学生”有属性:学号、姓名、地址、年龄、性别。“教师”有属性:职工号、教师姓名、职称,“课程”有属性:课程号、课程名。

①试画出ER图,并注明属性和联系类型。(5分)

 

第3题:

设某商业公司数据库中有三个实体集,一是”公司”实体集,属性有公司编号、公司名、地址等;二是”仓库”实体集,属性有仓库编号、仓库名、地址等;三是”职工”实体集,属性有职工编号、姓名、性别等。每个公司有若干个仓库,每个仓库只能属于1个公司,每个仓库可聘用若干职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。

<
### 关于E-R的学习资源与练习题 #### 实体关系(E-R)概述 实体关系(Entity-Relationship Diagram, ERD 或 E-R )是数据库设计的重要工具之一,用于描述现实世界中的实体及其相互间的关系。通过构建 E-R ,可以清晰地表达数据模型的概念层次[^1]。 --- #### 转换为关系模型的重要性 由于 E-R 本身是一个全局的设计概念,它并不适合直接被计算机处理。因此,在实际应用中,需要将 E-R 转化为关系模型,以便适配关系数据库的存储和查询机制[^2]。 --- #### 数据库建模的核心要素 在进行数据库设计时,需考虑以下几个方面: 1. **表结构定义**:确定哪些表是必要的。 2. **字段选择**:明确每个表应包含的具体字段。 3. **关联关系**:分析并实现不同表之间的联系方式(如一对一、一对多或多对多)。这些核心内容构成了数据库设计的基础工作流程[^4]。 --- #### 推荐学习资源 以下是几类可以帮助深入理解及实践 E-R 的相关材料: ##### 书籍推荐 - 李国良老师编写的《数据库管理系统》教材提供了详尽的数据建模理论基础以及大量实例解析。 ##### 在线教程 - 许多在线教育平台提供专门针对 E-R 绘制技巧的教学视频,例如 Coursera 和 Udemy 上由知名教授开设的相关课程。 - 官方文档或技术博客也常有实用案例分享,比如 Oracle 官网对于 SQL Developer Data Modeler 工具使用的介绍。 ##### 工具支持 利用专业的软件辅助绘能够提高效率并减少错误率: - Microsoft Visio 是一种广泛应用于商业环境下的形化编辑器; - Lucidchart 提供直观易用界面的同时还兼容多种导出格式; - MySQL Workbench 不仅能完成基本ER表制作还能自动生成对应的SQL脚本语句。 --- #### 示例题目 下面给出一道典型的基于场景的需求分析到最终形成规范化表格形式的任务作为示范: 假设某学校希望开发一套学生选课系统,请按照如下要求完成其初步逻辑框架搭建: 1. 描述主要涉及的对象(即实体); 2. 列举各对象的关键属性; 3. 明确它们之间存在的约束条件或者操作行为. 解答思路可参照标准三步法展开讨论... ```sql -- 创建学生基本信息表 CREATE TABLE Students ( StudentID INT PRIMARY KEY, Name VARCHAR(50), Age TINYINT UNSIGNED, Gender ENUM('M','F') ); -- 构造课程详情记录集合 CREATE TABLE Courses( CourseCode CHAR(8) NOT NULL UNIQUE , Title TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '课程名称', Credit SMALLINT SIGNED AUTO_INCREMENT PRIMARY KEY ); -- 建立中间连接桥梁以表示两者间的多重映射情况 CREATE TABLE Enrollments ( EnrollmentID BIGSERIAL PRIMARY KEY , -- 自增主键 StudentRef INTEGER REFERENCES STUDENTS(StudentId), ClassOfferingReference SERIAL FOREIGN KEY REFERENCES COURSES(Credit) ); ``` 上述代码片段展示了如何依据给定情境逐步建立起完整的物理层面上的表现形态. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值