E-R图作业
1.一个图书馆借阅管理数据库要求提供下述服务:
(1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。
(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。
我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息下相应出版社增购有关书籍。我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。
根据以上情况和假设,试作如下设计:
(1)构造满足需求的E-R图。
(2)转换为等价的关系模式结构。
书籍(书号,品种,存放位置,数量)
借阅者(借书证号,姓名,单位)
出版社(出版社名,电报编号,电话,邮编,地址)
借阅(书号,借书证号,借书日期,还书日期)
出版(书号,出版社名)
2.工厂(包括厂名和厂长名)需建立一个管理数据库存储以下信息:
(1)一个工厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。
(2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。
(3)一个车间生产多种产品,产品有产品号和价格。
(4)一个车间生产多种零件,一个零件也可能为多个车间制造。零件有零件号、重量和价格。
(5)一个产品由多种零件组成,一种零件也可装配出多种产品。
(6)产品与零件均存入仓库中。
(7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
试:(1)画出该系统的E-R图。(属性省略)
(2)给出相应的关系模式。
工厂(厂名,厂长名)
车间(车间号,车间主任姓名,地址,电话,厂名)
工人(职工号,姓名,年龄,性别,工种,车间号)
产品(产品号,价格) 零件(零件号,重量,价格)
仓库(仓库号,仓库主任姓名,电话) 拥有(车间号,厂名) 雇佣(车间号,职工号)
生产(车间号,产品号) 制造(车间号,零件号)
组成(产品号,零件号) 存储产品(仓库号,产品号) 存储零件(仓库号,零件号)
3.假设要建立一个企业数据库,该企业有多个下属单位,每一个单位有多个职工,一个职工仅隶属于一个单位,且一个职工仅在一个工程中工作,但一个工程中有很多职工参加工作,有多个供应商为各个工程供应不同设备。单位的属性有:单位名、电话。职工的属性有:职工号、姓名、性别。设备的属性有:设备号、设备名、产地。供应商的属性有:姓名、电话。工程的属性有:工程名、地点。
请完成如下处理:
1.设计满足上述要求的E-R图。
2.将该E-R图转换为等价的关系模式。
单位(单位名,电话)
职工(职工号,姓名,性别,单位名)
设备(设备号,设备名,产地)
供应商(供应商名,电话)
工程(工程名,地点)
隶属(单位名,职工号)
工作(职工号,工程名)
供应(供应商名,工程名,设备号)
3.根据你的理解,用下划线标明每个关系中的码。
单位(单位名) 职工(职工号) 设备(设备号) 供应商(供应商名)
工程(工程名) 隶属(单位名,职工号) 工作(职工号,工程名)
供应(供应商名,工程名,设备号)
4.社某商业集团数据库中有3个实体集,一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。
商店与商品间存在“销售”联系,每个商店可销售多种商品,每中商品也可以放在多个商店销售,每个商店孝顺的一种商品有月销售量;商店与职工之间存在“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和工资。
(1)试画出E-R图。
(2)将该E-R图转换成关系模式,并指出主码和外码。
商店(商店编号(主码),商店名,地址)
商品(商品号(主码),商品名,规格,单价)
职工(职工编号(主码),姓名,性别,业绩)
销售(商店编号(外码),商品号(外码),月销售量)
聘用(商店编号(外码),职工编号(外码),聘期,工资)
5.开放题
自己设计一个应用,描述相应需求,然后画出E-R图(至少3个实体)。
=》应用:在线购物平台数据库
需求:
管理商品信息,包括商品名称、价格、库存等。
管理用户信息,包括用户名、密码、联系方式等,用户可以购买商品并记录购买信息,也可以查询商品信息。
记录订单信息,包括订单号、下单时间、订单状态等,以供用户参考。
6.体会
这次做数据库设计真的让我收获满满。一开始通过图书馆管理系统的例子,我逐渐摸清了E-R图的门道,发现它简直是把复杂的业务需求变得清晰易懂的神器!在设计在线购物平台数据库的时候,我才真正体会到,一个好的数据库设计得从用户的需求出发,仔细分析哪些是实体、哪些是联系,然后一点点地构建起来。这其中最关键的是要让数据结构尽量简洁,减少冗余,同时合理设置主码和外码来保证数据的一致性和准确性。整个过程下来,我对怎么设计出既高效又实用的数据库有了更深的理解,感觉以后面对更复杂的应用开发也更有底气了(以上内容不保证答案完全正确。