数据库课程设计报告李东峻许智豪闫薷月吴忧.docx
- 文档编号:29434274
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:12
- 大小:136.54KB
数据库课程设计报告李东峻许智豪闫薷月吴忧.docx
《数据库课程设计报告李东峻许智豪闫薷月吴忧.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告李东峻许智豪闫薷月吴忧.docx(12页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告李东峻许智豪闫薷月吴忧
数据库课程设计报告
专业:
计算机科学与技术
班级:
14级4班
学号:
20140902410
20140902434
20140902436
20140902431
姓名:
李东峻
许智豪
闫薷月
吴忧
工厂零件进销存及工程管理系统
一、需求分析
背景分析:
根据工厂规模日益扩增,负责的工程项目也越多且越大,与零件供应商的的交易也越来越繁琐,行业竞争也日益激烈。
面对诸多问题,拥有一款优秀的工厂物资及工程的管理系统会大大提高工作的效率;从长期利益来看,一套好的管理系统还可以减少经费开支,增加工厂的利润;此外,还方便了工厂的人员了解和管理相关的业务,使工厂的管理水平跟得上工厂的快速发展,实现工厂管理的高效化。
功能需求:
1、用户在登录应用程序界面时,检查用户的合法性,并在用户连续3次登录失败后自动关闭程序。
2、只有管理员可以通过该程序对工厂相关的全部信息进行管理
3、系统管理员可以通过应用程序对用户信息进行统一管理,修改或删除用户的信息。
4、普通用户只可以修改自己的账号和密码,但是不能更改自己的用户类型。
5、普通客户和系统管理员可以通过应用程序查询与工厂零件相关的信息。
用户可以根据查询对象的不同属性查询到想要的信息,而且部分数据能够支持模糊查询
6、应用程序内部要可以通过SQL语句对数据库内的数据进行插入、修改和删除等操作。
7、当系统管理员对相关信息进行操作时,系统要自动检测输入的数据是否合理,并弹出相应的提示信息。
8、存储的各种物资的数量要随零件的供应量或使用量的变化而动态变化,出现不合理数据时通知操作员。
9、应用程序中要有该程序的相关简介和使用说明,帮助系统管理员和用户更好地使用该程序。
二、概念结构设计(E-R图)
三、逻辑结构设计
表Employees的结构
编号
字段名称
数据类型
说明
1
Employee_No
Varchar(5)
员工编号,主键
2
Employee_Name
Varchar(20)
姓名
3
Project_No
Varchar(5)
负责的工程项目编号
4
Title
Varchar(20)
头衔
5
Age
Decimal(3)
年龄
Employee_No(Employee_Name,Project_No,Title,Age),该关系模式满足BCNF
表Providers的结构
编号
字段名称
数据类型
说明
1
Provider_No
Varchar(5)
供应商编号,主键
2
Provider_Name
Varchar(20)
供应商名称
3
Provider_Phone
Varchar(20)
联系方式
4
Provider_Address
Varchar(40)
所在地址
5
Provider_Account
Varchar(20)
银行账号
Provider_No(Provider_Name,Provider_Phone,Provider_Address,Provider_Account)该关心模式满足BCNF
表Parts的结构
编号
字段名称
数据类型
说明
1
Part_No
Varchar(5)
零件编号,主键
2
Part_Name
Varchar(10)
零件名称
3
Color
Vachar(10)
零件颜色
4
Weight
Decimal(5,1)
重量
5
Price
Decimal(10,1)
零件价格
6
Number
Decimal(9)
零件数目
7
Description
Varchar(300)
相关描述
Part_No(Part_Name,Color,Weight,Price,Number,Description),该关系模式满足BCNF
表Projects的结构
编号
字段名称
数据类型
说明
1
Project_No
Varchar(5)
工程编号,主键
2
Project_Name
Varchar(20)
工程名称
3
Start_Time
Date
开工日期
4
Budget
Decimal(10,1)
预算资金
Project_No(Project_Name,Start_Time,Budget),该关系模式满足BCNF
表Deal的结构
编号
字段名称
数据类型
说明
1
Deal_No
Varchar(5)
供应编号,主键
2
Provider_No
Varchar(5)
供应商编号
3
Part_No
Varchar(5)
零件编号
4
Deal_Date
Date
供应日期
5
Deal_Number
Decimal(7)
供应数量
Deal_No(provider_No,Part_No,Deal_Date,Deal_Number),该关系模式满足BCNF
表Used的结构
编号
字段名称
数据类型
说明
1
Used_No
Varchar(5)
零件使用编号,主键
2
Project_No
Varchar(5)
使用零件的过程编号
3
Part_No
Varchar(5)
被使用的零件编号
4
Used_Date
Date
使用日期
5
Used_Number
Decimal(8)
使用的零件数量
Used_No(Project_No,Part_No,Used_Date,Used_Number),该关系模式满足BCNF
外键定义
关系名
主键表
主键字段
外键表
外键字段
FK_Deal_to_Providers
Providers
Provider_No
Deal
Provider_No
FK_Deal_to_Parts
Parts
Part_No
Deal
Part_No
FK_Used_to_Parts
Parts
Part_No
Used
Part_No
FK_Used_to_Projects
Projects
Project_No
Used
Project_No
FK_Employees_to_Projects
Projects
Project_No
Employees
Project_No
四、物理设计
创建Users(系统的用户)表
createTABLEUsers
(
User_Novarchar(10)notnull,
PassWordvarchar(10),
User_Typevarchar
(1),
ConstraintPK_UsersPrimaryKey(User_No)
);
创建Providers(零件供应商)表
CREATETABLEProviders
(
Provider_NoVarchar(5)notnull,
Provider_Namevarchar(20),
Provider_Phonevarchar(20),
Provider_Addressvarchar(40),
Provider_Accountvarchar(30),
ConstraintPK_ProvidersPrimaryKey(Provider_No)
);
Provider_No是常用于查询且更新较少的列,故建一个唯一索引
CREATEUNIQUEINDEXProvidersNOONProviders(Provider_No);
创建Projects(工程项目)表
CREATETABLEProjects
(
Project_Novarchar(5)notnull,
Project_Namevarchar(20),
Start_Timevarchar(20),
Budgetdecimal(10,1),
ConstraintPK_ProjectsPrimaryKey(Project_No)
);
Project_No是常用于查询且更新较少的列,故建一个唯一索引
CREATEUNIQUEINDEXProjectNOONProjects(Project_No);
创建Employees(工程负责人)表
CREATETABLEEmployees
(
Employee_Novarchar(5)notnull,
Employee_Namevarchar(20),
Agedecimal(3),
Titlevarchar(20),
Project_Novarchar(5),
ConstraintPK_Employees
PrimaryKey(Employee_No),
ConstraintFK_Employees_to_Projects
ForeignKey(Project_No)ReferencesProjects(Project_No)
);
Employee_No是常用于查询且更新较少的列,故建一个唯一索引
CREATEUNIQUEINDEXEmployeeNOONEmployees(Employee_No);
创建Parts(零件)表
CREATETABLEParts
(
Part_Novarchar(5)notnull,
Part_Namevarchar(30),
Colorvarchar(10),
Weightdecimal(5,1),
Pricedecimal(10,1),
Descriptionvarchar(300),
Numberdecimal(9),
ConstraintPK_PartsPrimaryKey(Part_No)
);
Part_No是常用于查询且更新较少的列,故建一个唯一索引
CREATEUNIQUEINDEXPartNOONParts(Part_No);
创建Deal(供应信息)表
CREATETABLEDeal
(
Deal_Novarchar(5)notnull,
Provider_Novarchar(5),
Part_Novarchar(5),
Deal_Datevarchar(20),
Deal_Numberdecimal(7),
ConstraintPK_ProviderPrimaryKey(Deal_No),
ConstraintFK_Provide_to_ProvidersForeignKey(Provider_No)ReferencesProviders(Provider_No),
ConstraintFK_Provide_to_PartsForeignKey(Part_No)ReferencesParts(Part_No)
);
创建Used(零件使用信息表)
CREATETABLEUsed
(
Used_Novarchar(5)notnull,
Project_Novarchar(5),
Part_Novarchar(5),
Used_Numberdecimal(8),
Used_Datevarchar(20),
ConstraintPK_UsedPrimaryKey(Used_No),
ConstraintFK_Used_to_ProjectsForeignKey(Project_No)ReferencesProjects(Project_No),
ConstraintFK_Used_to_PartsForeignKey(Part_No)ReferencesParts(Part_No)
);
五、总结
系统优缺点的分析:
这个系统相对于某个工厂的信息管理系统来说,真的只能算是一辆卡车上的一颗螺丝。
系统可以完成的功能还远远不能满足实际生活中的需要,而且系统的操作界面很呆板,风格也比较单一。
不能导出图片、音频或视频文件。
不过我们相信如果有更多的时间,我们会把这个系统做得更好!
该系统使用比较简单,操作人员只需要有基本的计算机知识即可。
系统中对各种可能出现的错误操作(如重复输入具有唯一性的数据项、将零件的数目变成负数等)考虑得比较全面,在操作过程中系统会自动弹出相应的提示,比较人性化。
个人感想:
这是我们第一次将编程语言和数据库结合起来使用,刚开始做一点把握都没有。
本次课程设计使我们真正的学到了不少知识,由于之前对MFC的知识积累不够,尤其是在数据库与VC++连接上存在很大漏洞,使得本次课程设计遇到了许多困难。
但正是伴随着这些困难得一个个的被解决,我们学到了许多知识,每次解决一个问题都会收获不少的知识,第一次感受到数据库与编程语言的结合实在是太完美了。
本次课程设计让我们有机会能把之前学的数据库知识系统的串联起来。
尤其是对数据库的建立与操作都上了一个台阶,包括怎么建立更简洁且没有冗余又很完备的数据库系统,怎样对数据库结构模型的进行设计,更重要的是前期对概念模型也就是E-R图的规划。
深刻的体会到前期工作的重要性,只有正确详尽的对系统进行分析以后,才能更高效率的完成系统的开发。
做课程设计的过程中,没有老师辅导我们,向老师发邮件求助也没有得到回应。
我们就买了好几本书,自己慢慢看,然后试着自己做,在引用书中的部分方法的同时也融入自己的思考,灵活地应用多种方法,遇到难题就上网查看解决的方法,真的收获不少。
我们相信只要是自己做了就一定会有收获的!
细节决定一个程序的好坏与成败!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 李东峻许智豪闫薷月吴忧