《工厂用数据库管理系统》一文探讨了专为制造业设计的数据管理解决方案,旨在提高生产效率和资源利用率。
一、课程设计的目的
掌握数据库的基础知识、基本理论、原理以及实现技术。
二、设计题目:工厂数据库管理系统
已知的技术参数及设计要求:
需求说明与具体要求:
题目为“工厂数据库管理系统”。某工厂需建立一个管理数据库来存储以下信息:
1. 工厂包括名称和负责人。
2. 一厂内有多个车间,每个车间具有编号、主任姓名、地址以及电话号码。
3. 车间内部有多名工人,每位工人的资料应包含职工号、名字、年龄、性别及职业类型等信息。
4. 每个车间生产多种产品,每种产品的数据包括产品编码、名称和价格。
5. 同样地,每个车间还制造不同的零件。零件的信息则有编号、重量以及价格。
6. 一个产品由多个不同类型的零件构成;而同一种零件也可能用于装配多个不同类型的产品中去。
7. 所有的产品与零部件都需存放在仓库内。
8. 工厂内部设有若干个仓库,每个仓库的详细信息包括编号、主任姓名及其联系方式。
各阶段具体要求如下:
1. 需求分析阶段:定义数据项的具体含义及取值范围;明确目标系统的数据流程图;
2. 概念结构设计阶段:绘制实体关系模型E-R图;
3. 逻辑结构设计阶段:将概念模型转换成关系模式,确定每个表的主键及其函数依赖集,并评估所创建的关系数据库是否符合第三范式(3NF)标准。
4. 物理设计阶段:指定所有字段名称、类型、长度及精度限制;定义数据库和表格的名字与结构组成;决定索引文件以及关键字的选择;
5. 数据库安全性和维护策略制定阶段:提出合理的用户认证机制,访问控制规则,并创建视图以增强安全性。同时考虑使用触发器来实现复杂的完整性约束条件设计一套有效的备份方案。
6. 实施步骤:所有操作均需在查询分析工具中通过SQL语句或系统存储过程完成。
三、设计内容
1. 将概念模型转化为关系模式:
根据E-R图,可以确定有六个实体对象,并创建了相应的表。其中将每个实体的主键设为各自的表格中的主关键字;对于四对一的关系,则把“一对”那边的主键作为外键加入到多的一方中去处理。另外还存在四个多对多关系,因此需要额外建立联系表并分别添加两个相关联实体的标识符(即它们各自的主要索引)做为这些中间连接表格中的外来引用。
在设计过程中遇到仓库与零件、产品之间的多重关联时有两种方法:
1. 建立单独的存储表“仓库-零件”和“仓库-产品”,将两者编号作为外键,确保参照完整性。
2. 创建单一综合型仓储物品记录表(含仓号、物项编码及库存量),虽然简洁但会失去部分引用完整性的保证。
经过权衡考虑,第一种方案更为合适。
四、设计步骤
4.1 需求分析阶段
(1) 定义数据元素的含义和可能取值:
| 数据项名 | 含义 | 类型 | 宽度 | 小数位数 |
| -------- | ------------- | -------- | ------| ---------|
| FacName | 工厂名称 | Char | 10 |- |
| FacMName | 厂长姓名 | Char | 8 |- |
| CNo | 车间主任编号 | Char | 8 |- |
| WorkNo | 车间号 | Char | 4 |- |
| WorkAddress 工车间地址 | Char |12 |- |
| Workphone 工车间电话号码 |Char |5 |- |
| WorkerNo 员工编号 |Char |8 |- |
| WorkerName 员工姓名 |Char |30 |- |
| WorkerSex 性别 | Char |1 |- |
| WorkerAge 年龄 | Int |4 |- |
| WorkNo 所属车间编号 | Char | 8 |- |
(2) 定义数据结构:
- 工厂:工厂情况表(包括FacName和FacMName)
- 车间:车间信息表(WorkNo、CNo等字段组成)
- 员工:员工详情记录表格(WorkerNo,WorkerName, WorkerSex, WorkAge以及所属的WorkNo)
...其他数据结构定义略。