1、华南理工数据库课程设计作业上一、课程设计内容基本要求1、工厂管理数据库工厂需建立一个管理数据库存储以下信息:*工厂信息包括工厂代号,工厂名,厂长名及工厂运营开销。*一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址,电话及每个月的车间运营开销。*一个车间有多个工人,每个工人有职工号、姓名、年龄、性别,工种及月工资。*一个车间生产多种产品,产品有产品号、产品名、规格,制造成本和销售价格。*一个车间生产多个零件,一个零件也可能由多个车间制造。零件有零件号、零件名,制造成本和销售价格。*一个产品由多个零件组成,一个零件也可装配出多种产品。*产品与零件均存入仓库中。*厂内有多个仓库,仓库有仓库号
2、,仓库主任姓名、电话及仓库的运营成本。应完成的主要功能:(1)各种各样的管理功能,如工厂信息的管理功能,包括录入、修改、查询、输出工厂的信息;车间信息的管理功能,包括录入、修改、查询、输出车间的信息;还有工人,零件,产品,仓库等的信息管理功能。(2) 工厂的利润统计,包括月利润和年利润统计。(3) 能输出各种各样的报表,如工人工资月报表,年报表;每个车间生产的产品和零件数量的月报表;仓库存储产品和零件数量的月报表;工厂运营开销和车间运营开销的月报表等。2、开发环境 数据库选用微软的SQL SERVER。开发环境可以选择:(1)Delphi; (2)Visual Basic; (3) C+ bu
3、ilder; (4) Visual C+。只选择其中的一种软件开发工具就可以。3、基本要求(1)完成问题陈述中所提到的所有需求功能(2)要求撰写不少于2500个文字的文档。(3)文档中至少要包括:ER模型图、系统功能图、数据字典、表关系的详细说明。(4)用户界面设计:采用窗口式,色彩要柔和,界面要友好,操作要简单。(5)用户手册,描述软件系统所具有的功能及基本的使用方法。使用户能了解该软件的用途,并能确定在什么情况下、如何使用它。(6)操作手册,为操作人员提供该软件每一个运行的具体过程和相关知识,包括操作方法的细节等。4、文档格式(1)概述 包括项目背景、编写目的、软件定义、开发环境等内容。(
4、2)需求分析 问题陈述、需完成的功能。 画出ER模型图(3)数据库逻辑设计 把ER模型图转换为关系表。 描述每一个基本表关系。要求所有关系达到BCNF范式。 定义视图、定义索引、主关键字、定义权限。(4)软件功能设计 画出软件功能图。 描述每一个功能所完成的任务情况。(5)界面设计 界面设计要合理。(6)结束语 写出完成本课程设计的心得,领会数据库理论与软件开发实践的关系。有哪些收获。软件还需要哪些改进。二、需求分析 1、功能需求本课题任务是开发一个小型的工厂管理系统,一个小型的工厂管理系统是实现对工厂基本信息(工厂、车间、工人、产品等数据)进行管理。主要功能:(1)各种各样的管理功能,如工厂
5、信息的管理功能,包括录入、修改、查询、输出工厂的信息;车间信息的管理功能,包括录入、修改、查询、输出车间的信息;还有工人,零件,产品,仓库等的信息管理功能。(2) 工厂的利润统计,包括月利润和年利润统计。(3) 能输出各种各样的报表,如工人工资月报表,年报表;每个车间生产的产品和零件数量的月报表;仓库存储产品和零件数量的月报表;工厂运营开销和车间运营开销的月报表等。工厂需建立一个管理数据库存储以下信息:*工厂信息包括工厂代号,工厂名,厂长名及工厂运营开销。*一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址,电话及每个月的车间运营开销。*一个车间有多个工人,每个工人有职工号、姓名、年龄、
6、性别,工种及月工资。*一个车间生产多种产品,产品有产品号、产品名、规格,制造成本和销售价格。*一个车间生产多个零件,一个零件也可能由多个车间制造。零件有零件号、零件名,制造成本和销售价格。*一个产品由多个零件组成,一个零件也可装配出多种产品。*产品与零件均存入仓库中。*厂内有多个仓库,仓库有仓库号,仓库主任姓名、电话及仓库的运营成本。2、数据字典 数据项 表1.1 数据项名 含义说明 数据类型 长 度 厂名 工厂相关信息 char() 20 厂长名 工厂相关信息 char() 6 车间号 车间相关信息 int() 10 车间主任 车间相关信息 char() 6 地址 车间相关信息 char()
7、 20 电话 车间相关信息 int() 11 员工号 员工相关信息 int() 10 职位编号 员工相关信息 char() 20 姓名 员工相关信息 char() 6 年龄 员工相关信息 int() 2 性别 员工相关信息 char() 2 工种 员工相关信息 char() 20 地址 员工相关信息 char() 20 电话 员工相关信息 int() 11 产品号 产品相关信息 int() 10 价格 产品相关信息 int() 10 产品名称 产品相关信息 char() 20 车间号 产品相关信息 int() 10 零件号 零件相关信息 int() 10 重量 零件相关信息 int() 10
8、价格 零件相关信息 int() 10 仓库保管员编号 仓库相关信息 int() 10 姓名 仓库相关信息 char() 6 电话 仓库相关信息 int() 11数据结构 表1.2 数据结构名 含义说明 组成工厂表 定义了工厂的相关信息 厂名, 厂长车间表 定义了车间的相关信息 车间编号,车间名称,车间主任编号,备注员工表 定义了员工表的相关信息 员工号,姓名,工种,职位编号,年龄, 性别,电话,地址产品表 定义了产品的相关信息 编号,产品名称,价格,车间编号,备注零件表 定义了零件的相关信息 零件号,重量,价格 车间-零件表 定义了车间与零件的相关信息 车间编号,零件号 产品-零件表 定义了产
9、品与零件的相关信息 产品编号,零件号仓库表 定义仓库的相关信息 编号, 管理员姓名,电话 零件-仓库表 定义了零件与仓库的相关信息 仓库编号(主键),零件编号 产品-仓库表 定义了产品与仓库的相关信息 仓库编号(主键),产品编号3、数据流图数据流1是 管理员登陆输入工厂的订单信息,以及生产的细节产品的规格等等数据流2 是 工厂生产好的产品后的产品信息 以及存入工厂图2.1 第0层数据流图图1.2 第1层数据流图 图1.31 第3层数据流图1.32 第3层数据流图1.33第3层数据流数据流数据存储 数据存储名 含义说明 组成 车间信息 储存了车间的相关信息 车间地址,车间名称,车间主任 员工信息
10、 储存了员工的相关信息 姓名性别职位号,年龄,电话地址 产品信息 储存了产品的相关信息 产品号,价格,生产地 零件信息 定义了零件的相关信息 零件号,价格 仓库信息 定义仓库的相关信息 仓库号,电话处理过程 表1.5 处理过程名 含义说明 输入 输出生产过程 查找所要生产的零件信息 零件信息 零件生产过程 查找所要生产的产品信息 产品信息 产品 储存过程 查找出零件储存的仓库号 仓库信息 零件 储存过程 查找出产品储存的仓库号 仓库信息 产品三、概念结构设计1、实体通过对上面的系统总体分析,可以得到大概的实体-关系模型(E-R模型),如下:员工:姓名,性别,年龄,住址,电话,职位号车间:车间名
11、称,车间地址,车间主任产品:产品号,价格,生成地零件:零件号,价格仓库:仓库电话,管理员,仓库号则对应的E-R如下:2、局部的E-R图 事务规则: 一个车间可以容纳多名员工(1:n) 事物规则:一个车间能生产多种零件(1:n) 事物规则:一个仓库能保管多种零件(1:n) 事物规则:一个零件能够组装多个产品(M:N) 一个产品可以由多个零件构成(N:M)3、总体的E-R图四、逻辑模式设计1、将E-R图转化为关系模式 逻辑结构设计的任务是将概念结构设计的E-R图,转化为与选用的 DBMS所支持的数据模型相符的逻辑结构,形成逻辑模型。关系模型(第1数据项为主键):工厂(厂名, 厂长名)车间(车间号,
12、车间主任,地址,电话,备注)员工(职工号,姓名,工种,职位编号,年龄,性别,电话,地址)产品(产品号,产品名称,价格,车间编号,备注)零件(零件号,重量,价格)仓库(仓库号,仓库保管员,姓名,电话) 车间-零件(车间号,零件号)产品-零件(产品号,零件号)零件-仓库(仓库号,零件号) 产品-仓库(仓库号,产品号)2、数据模型的优化 将转化的关系模式进行优化,最终达到第三范式。优化后的关系模式如下:工厂(厂名, 厂长名)车间(车间号,车间主任,地址,电话)员工(职工号,姓名,工种,职位编号,年龄,性别,电话,地址)产品(产品号,产品名称,价格,车间编号,备注)零件(零件号,重量,价格)仓库(仓库
13、号,仓库保管员号,姓名,电话)车间-零件(车间号,零件号)产品-零件(产品号,零件号)零件-仓库(仓库号,零件号) 产品-仓库(仓库号,产品号) 表3.1 工厂信息表(gc) 字段名称 数据类型 长度 约束 属性 厂名 char() 20 NOT NULL 主码 厂长名 char() 6 NOT NULL 非主属性 表3.2 车间信息表(cj) 字段名称 数据类型 长度 约束 属性 车间号 int() 10 NOT NULL 主码 车间主任 char() 6 NOT NULL 非主属性 地址 char() 20 NOT NULL 非主属性 电话 int() 11 NOT NULL 非主属性 备
14、注 char() 20 NOT NULL 非主属性 表3.3 员工信息表(yg) 字段名称 数据类型 长度 约束 属性 职工号 int() 10 NOT NULL 主码 姓名 char() 6 NOT NULL 非主属性 工种 char() 20 NOT NULL 非主属性 职位编号 char() 20 NOT NULL 非主属性 年龄 int() 2 NOT NULL 非主属性 性别 char() 2 NOT NULL 非主属性 地址 char() 20 NOT NULL 非主属性 电话 int() 11 NOT NULL 非主属性 表3.4 产品信息表(cp) 字段名称 数据类型 长度 约
15、束 属性 产品号 int() 10 NOT NULL 主码 产品名称 char() 20 NOT NULL 非主属性 价格 int() 10 NOT NULL 非主属性 车间编号 int() 10 NOT NULL 非主属性 备注 char() 20 NOT NULL 非主属性 表3.5 零件信息表(lj) 字段名称 数据类型 长度 约束 属性 零件号 int() 10 NOT NULL 主码 重量 int() 10 NOT NULL 非主属性 价格 int() 10 NOT NULL 非主属性 表3.6 仓库信息表(ck) 字段名称 数据类型 长度 约束 属性 仓库号 int() 10 NO
16、T NULL 主码 仓库保管员号 int() 10 NOT NULL 非主属性 姓名 char() 6 NOT NULL 非主属性 电话 int() 11 NOT NULL 非主属性 表3.7车间-零件生产关系表(cjlj)字段名称 数据类型 长度 约束 属性车间号 int() 10 NOT NULL 外码零件号 int() 10 NOT NULL 外码 表3.8产品-零件组成关系表(cplj) 字段名称 数据类型 长度 约束 属性产品号 int() 10 NOT NULL 外码零件号 int() 10 NOT NULL 外码 表3.9零件-仓库存储关系表(ljck) 字段名称 数据类型 长度
17、 约束 属性零件号 int() 10 NOT NULL 非属性仓库号 int() 10 NOT NULL 外码 表3.10产品-仓库存储关系表(cpck) 字段名称 数据类型 长度 约束 属性 产品号 int() 10 NOT NULL 非属性 仓库号 int() 10 NOT NULL 外码五、检验是否满足用户需求 例行事务需求1:要在车间表中添加新的数据,基本格式为Insert into (列名1,列名2),)VALUES (,) 2:要修改职位表的数据,则要使用UPDATE语句,基本格式为 UPDATE SET=,=. WHERE 3:删除操作 DROP VIEW视图名 查询事务需求因为
18、该课程设计要求是能实现查询各车间,生产的产品和零件信息,查询各仓库中产品和零件信息,所以重点在此。 先说说明查询的基本格式: SELECET ALL | DISTINCT别名1,别名2 FROM表别名1,表别名2 WHERE GROUP BY HAVING ORDER BY 列名2ASC|DESE例:select *from cp ,ljwhere cpbh in(select cpbh from ljcj), and ljno in(select ljno from ljcj);select *from cp,ljwhere cpbh in(select cpbh fromcplj), an
19、d ljbh in(select ljbh from cplj); 六、代码设计和界面设计下面是主要的界面:主要的源代码:登陆 %else Error+=登陆错误:没有次用户; Error=(String)session.getAttribute(ERROR);%下面是连接数据库的一部分的代码:import java.sql.*;public class dbconn String sDBDriver=sun.jdbc.odbc.JbdcodbcDriver; String sConnS
20、tr=jsbc:odbc:reg; Connection conn=null; ResultSet rs=null; public dbconn() try Class.forName(sDBriver); catch(java.lang.ClassNotFoundException e) System.err.println( class dbconnect not found! + e.getMessage(); public ResultSet esecuteQuery(String sql) rs=null; try conn=DrivetrrManager.getConnection
21、(sConnStr); Statement stmt=conn.createStatement(); rs=stmt.executeQuery(sql); catch(SQLException ex) System.out.println(ex.getMessage(); return rs; public ResultSet executeUpdate(String sql) rs=null; try conn=DriverManager.getConnection(sConnStr); Statement stmt=conn.createStatement(); rs=stmt.execu
22、teQuery(sql); catch(SQLException ex) System.err.println(ex.getMessage(); return rs; 七、课程设计总结通过这次课程设计,我深深的认识到,如果仅仅只是运用理论知识,是远远不够的。我们必须理论联系实际,才能很好的将数据库这门课程学好,并用于实际案例中。同时,经过这次课程设计,我发觉自己的动手操作能力变强了,并在解决遇到的各种问题的过程中,学到了很多新的知识,也为自己对以后的工作充满信息和希望打下了良好的基础。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。 由于我的知识浅薄,经验不足及阅历颇浅,在设计的过程中遇到问题,可以说得是困难重重,遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,在功能方面,各功能都只是实现了简单的部分,功能还需完善。在代码方面,由于时间仓促,代码未经锤炼,测试不是很充分。对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在通过专业人士的帮助和运用丰富的网络资源,终于游逆而解。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1