系列文章

《数据库应用系统实践》------ 超市管理系统


文章目录

  • 系列文章
  • 一、需求分析
    • 1、系统背景
    • 2、 系统功能结构(需包含功能结构框图和模块说明)
    • 3.系统功能简介
  • 二、概念模型设计
    • 1.基本要素(符号介绍说明)
    • 2.ER图
  • 三、逻辑模型设计
    • 1.ER模型向关系模型转换规则
    • 2.转换后的关系模型
    • 3.关系模型优化(达到3NF)
  • 四、物理设计
    • 1.创建数据库的SQL语句或截图
    • 2.创建所有表的SQL语句或截图(包含完整性约束)
  • 五、数据库实施
    • 1.粘贴所创建的数据库关系图
    • 2.数据录入
    • 3.数据处理
  • 六、数据库应用系统实现
    • 1.相关界面截图(对每一张截图进行一定的文字说明)
    • 2.和数据库连接的程序语句
    • 3.其它代码
  • 七、总结
    • 参考文献:
  • 八、源代码获取

一、需求分析

1、系统背景

为超市管理系统的运用能够提高店内的财务、库存和销售情况的管理水平,现在市场上有很多的大型超市管理系统,这些大型软件功能丰富,涉及到商品供应商信息管理、员工档案管理、员工权限设定,商品资料的录入,商品进货的入库等等。但对于一个中小型超市来说,有些功能完全是多余的,而且市场上绝大部分的小型超市经营者计算机应用水平较低。针对小型超市的特点,计划开发一个小型超市管理系统。

2、 系统功能结构(需包含功能结构框图和模块说明)

(1)功能结构图

(2)模块说明
系统分为超市、商品、管理员三个模块
每个模块包含相应信息。

3.系统功能简介

管理员可以对商品的信息进行管理,并且可以参看超市的相关信息。

二、概念模型设计

1.基本要素(符号介绍说明)

.基本要素(符号介绍说明)
① 矩形:表示实体。
② 椭圆形:表示属性,即实体的属性。
③ 菱形:表示联系。
④ 连线:该连线为没有方向的线段,分为连接实体与属性(矩形与椭圆形之间的连线)和连接实体与联系名(矩形与菱形之间的连线);实体与联系名的连线旁需标注联系的类型,如1:1、1:n、m:n。
注意:在联系类型标注时请按照约定俗成的方式标注,一对多使用1:n,多对多使用m:n,如果超过两个实体请采用m:n:p:q:

2.ER图

三、逻辑模型设计

1.ER模型向关系模型转换规则

① 实体转换为单独的关系模式。
② 一对一联系转换为关系模式有两种方法。一、将联系转换为单独的关系模式;二、将其中一个实体的之间加入到另外一个实体的关系模式中,作为外键。
③ 一对多联系转换为关系模式有两种方法。一、将联系转换为单独的关系模式;二、将n实体的主键合并到1实体的关系模式中,作为1实体关系模式的外键。

2.转换后的关系模型

超市(超市号,超市名,地址,管理员账号)
陈列(超市号,商品码)
商品(商品码,商品名,类别,商品单价)
管理员(管理员账号,密码)

3.关系模型优化(达到3NF)

以上要素都属于第三范式

四、物理设计

1.创建数据库的SQL语句或截图

CREATE DATABASE 超市管理系统
ON PRIMARY
(NAME=YAN,
FILENAME='E:\SQLDate\超市管理系统.mdf',
SIZE=5MB,
MAXSIZE=UNLIMITED)
LOG ON
(NAME=YAN_log,
FILENAME='E:\SQLDate\超市管理系统_log.ldf',
SIZE=5MB,
MAXSIZE=UNLIMITED)

2.创建所有表的SQL语句或截图(包含完整性约束)

CREATE TABLE 管理员(
管理员账号       CHAR(20)      PRIMARY KEY,
密码           CHAR(20)    NOT NULL
)CREATE TABLE 陈列(
超市号          CHAR(20)    NOT NULL,
商品码          CHAR(20)    NOT NULL,
PRIMARY KEY( 超市号, 商品码 )
)CREATE TABLE 超市(
超市号        CHAR(20)      PRIMARY KEY,
超市名       CHAR(20)      NOT NULL,
地址          CHAR(20)      NOT NULL,
管理员账号     CHAR(20)      NOT NULL,
FOREIGN KEY (管理员账号) REFERENCES 管理员(管理员账号)
)CREATE TABLE 商品(
商品码         CHAR(20)     PRIMARY KEY,
商品名         NCHAR(10)    NOT NULL,
类别           NCHAR(10)    NOT NULL,
商品单价       NCHAR(10)     NOT NULL
)

五、数据库实施

1.粘贴所创建的数据库关系图

2.数据录入

INSERT INTO 管理员 VALUES ('001','001')
INSERT INTO 管理员 VALUES ('002','002')
INSERT INTO 管理员 VALUES ('003','003')
INSERT INTO 管理员 VALUES ('004','004')
INSERT INTO 管理员 VALUES ('005','005')INSERT INTO 超市 VALUES ('001','大脚超市','上海市上海建桥学院店','001')
INSERT INTO 超市 VALUES ('002','环联超市','上海市人民广场店','002')
INSERT INTO 超市 VALUES ('003','波峰超市','上海市龙阳路站','003')
INSERT INTO 超市 VALUES ('004','小二超市','上海市淞虹路站','004')
INSERT INTO 超市 VALUES ('005','贵宾超市','上海市南京东路站','005')INSERT INTO 商品 VALUES ('001','橘子','水果','1')
INSERT INTO 商品 VALUES ('002','苹果','水果','2')
INSERT INTO 商品 VALUES ('003','薯片','零食','5')
INSERT INTO 商品 VALUES ('004','猪肉','肉类','14')
INSERT INTO 商品 VALUES ('005','橙子','水果','5')INSERT INTO 陈列 VALUES ('001','001')
INSERT INTO 陈列 VALUES ('002','002')
INSERT INTO 陈列 VALUES ('003','003')
INSERT INTO 陈列 VALUES ('004','004')
INSERT INTO 陈列 VALUES ('005','005')

3.数据处理

(1)至少包括2张表的等值连接;

(2)创建视图;

(3)编写包含子查询的SQL语句;

(4)有修改语句;

(5)有删除语句;

(6)有包含聚集函数;

(7)有记录过滤,条件过滤语句;

(8)有修改表结构的SQL语句;

(9)用T-SQL语句写出一个对数据表处理的人机交互程序;

(10)编写一个触发器;

六、数据库应用系统实现

1.相关界面截图(对每一张截图进行一定的文字说明)

管理员登录:

信息查询

信息修改:

数据增加:

数据删除:

数据修改:

2.和数据库连接的程序语句

 xg.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName =超市管理系统","sa","1");String sql ="update 管理员  set 管理员账号='"+d1.getText()+"',密码='"+d2.getText()+"'where 管理员账号='"+d1.getText()+"'";PreparedStatement pstm = conn.prepareStatement(sql);//执行查询pstm.executeUpdate();JOptionPane.showMessageDialog(frm,"修改成功");}catch(ClassNotFoundException cnfe) {JOptionPane.showMessageDialog(null, "数据源错误" ,"错误",JOptionPane.ERROR_MESSAGE);}catch(SQLException sqle) {JOptionPane.showMessageDialog(null, "数据操作错误" ,"错误",JOptionPane.ERROR_MESSAGE);}}});lr.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName =超市管理系统","sa","1");//建立查询条件String sql = "insert into 管理员 (管理员账号,密码) values ('" +d1.getText()+"','"+d2.getText()+"')";PreparedStatement pstm =conn.prepareStatement(sql);//执行查询pstm.executeUpdate();JOptionPane.showMessageDialog(frm, "添加成功");}catch(ClassNotFoundException cnfe) {JOptionPane.showMessageDialog(null,"数据源错误","错误",JOptionPane.ERROR_MESSAGE);}catch(SQLException sqle) {JOptionPane.showMessageDialog(null,"数据操作错误","错误",JOptionPane.ERROR_MESSAGE);}}});sc.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver" );Connection conn2 =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=超市管理系统","sa","1");//建立查询条件String sql2 ="delete from 管理员  where 管理员账号 ='"+d1.getText()+"'";PreparedStatement pstm2 =conn2.prepareStatement(sql2);//执行查询

3.其它代码

     xg.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName =超市管理系统","sa","1");String sql ="update 管理员  set 管理员账号='"+d1.getText()+"',密码='"+d2.getText()+"'where 管理员账号='"+d1.getText()+"'";PreparedStatement pstm = conn.prepareStatement(sql);//执行查询pstm.executeUpdate();JOptionPane.showMessageDialog(frm,"修改成功");}catch(ClassNotFoundException cnfe) {JOptionPane.showMessageDialog(null, "数据源错误" ,"错误",JOptionPane.ERROR_MESSAGE);}catch(SQLException sqle) {JOptionPane.showMessageDialog(null, "数据操作错误" ,"错误",JOptionPane.ERROR_MESSAGE);}}});lr.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName =超市管理系统","sa","1");//建立查询条件String sql = "insert into 管理员 (管理员账号,密码) values ('" +d1.getText()+"','"+d2.getText()+"')";PreparedStatement pstm =conn.prepareStatement(sql);//执行查询pstm.executeUpdate();JOptionPane.showMessageDialog(frm, "添加成功");}catch(ClassNotFoundException cnfe) {JOptionPane.showMessageDialog(null,"数据源错误","错误",JOptionPane.ERROR_MESSAGE);}catch(SQLException sqle) {JOptionPane.showMessageDialog(null,"数据操作错误","错误",JOptionPane.ERROR_MESSAGE);}}});sc.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver" );Connection conn2 =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=超市管理系统","sa","1");//建立查询条件String sql2 ="delete from 管理员  where 管理员账号 ='"+d1.getText()+"'";PreparedStatement pstm2 =conn2.prepareStatement(sql2);//执行查询

七、总结

(可选,200字左右的小结,包括
(1)完成情况和不足之处
(2)心得体会
(3)建议)

在实训中,我和我的队友们各有分工,工作明了,这使我们设计的系统能够顺利的进行,在遇到一些问题,就一起讨论从各方面去倾听,去学习,去归纳出一个更加合理,更加可靠地答案。其实,从中我们可以提前去感受体验一下做软件,做系统的那种氛围,去体验一下团队之间的那种默契和合作。对未来我们以后的发展会起到意想不到道的作用。团队之间的分工更加给人一种责任感,这并不是别人的事,而是自己的事,队友之间更加的是相互理解,多去沟通,我觉得吧,这对整个项目来说也是很重要的。

参考文献:

[1]桂云秋, 满文汇, 海丽,等. SQLServer触发器及应用[J]. 电脑迷, 2016(12):1.
[2]张燕琴. 基于SQLServer数据库的查询优化[J]. 软件导刊, 2012, 11(8):3.
[3]杨立志, 乔春贵, 黄毅梅,等. SqlServer数据库的数据备份[J]. 气象与环境科学, 2006, 000(002):86-87.

八、源代码获取

本次的分享就到这里啦,创作不易,感谢点赞收藏

《数据库应用系统实践》------ 超市管理系统相关推荐

  1. 《数据库应用系统实践》------ 超市销售管理系统

    系列文章 <数据库应用系统实践>------ 超市销售管理系统 文章目录 系列文章 一.需求分析 1.系统背景 2. 系统功能结构(需包含功能结构框图和模块说明) 3.系统功能简介 二.概 ...

  2. 《数据库应用系统实践》------ 酒店客房管理系统

    系列文章 <数据库应用系统实践>------ 酒店客房管理系统 文章目录 系列文章 一.需求分析 1.系统背景 2. 系统功能结构(需包含功能结构框图和模块说明) 3.系统功能简介 二.概 ...

  3. 《数据库应用系统实践》------ 公园游客日流量管理系统

    系列文章 <数据库应用系统实践>------ 公园游客日流量管理系统 文章目录 系列文章 一.需求分析 1.系统背景 2. 系统功能结构(需包含功能结构框图和模块说明) 3.系统功能简介 ...

  4. 《数据库应用系统实践》------ 小区停车管理系统

    系列文章 <数据库应用系统实践>------ 小区停车管理系统 文章目录 系列文章 一.需求分析 1.系统背景 2. 系统功能结构(需包含功能结构框图和模块说明) 3.系统功能简介 二.概 ...

  5. ssm生鲜超市管理系统的设计与实现 毕业设计-附源码261635

    SSM生鲜超市管理系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题.针 ...

  6. springboot基于Javaweb的超市管理系统 毕业设计-附源码281024

    超市管理系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题. ...

  7. (附源码)springboot基于Javaweb的超市管理系统 毕业设计281024

    超市管理系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题. ...

  8. (附源码)ssm生鲜超市管理系统的设计与实现 毕业设计261635

    S SM生鲜超市管理系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题. ...

  9. JSP+Servlet+MySql超市管理系统项目源码

    一. 开发背景 软件名称:超市管理系统(servlet+jsp) 使用对象:学习或了解过 java 基础课程,开始接触 javaWeb 的学生和软件爱好者 源码链接https://pan.baidu. ...

最新文章

  1. 关于hibernate的实体类中有集合类型转化成JSON的工具类 - 怀念今天的专栏 - 博客频道...
  2. rehat linux设置ip,RedhatHat配置IPv6地址
  3. ps怎么更改背景图层大小_PhotoShop处理图层的一些技巧方法、PS图层处理教程
  4. 通过计算机网络进行的商务活动包括,电子商务练习题及答案
  5. 2009网络视频监控业务分析及市场发展研究报告
  6. 微成本搭建企业高效沟通平台
  7. TensorFlow:判断CUDA和GPU是否可用
  8. 深度学习TF—4.随机梯度下降
  9. bzero函数_Linux(基础) | 系统IO函数的使用
  10. 申请QQ认证空间标志领黄钻90天 明星粉丝团认证空间
  11. 向云再出发:如数据般飞驰的内蒙古
  12. 搭建GTK+开发环境
  13. php技术面试成功后试岗,6.3公里“阅读静安”光音栈桥“会唱歌”
  14. 电脑照片太大怎么压缩?如何调整照片kb?
  15. WHQL 认证服务过程
  16. 支持tcam的服务器,使用tcam实现数据流的选择性路由
  17. CornerNet论文笔记
  18. 【新手向】C语言中“=”与“==”的区别及使用方法
  19. python内置模块re_13.python内置模块之re模块
  20. 离散事件动态系统 #Petri网作业 #可达图 #赋时Petri

热门文章

  1. android友盟自定义事件,友盟:自定义事件
  2. OpenHarmony鸿蒙相关资料
  3. stcoder Splatter Painting 记忆化搜索
  4. windows script host是什么意思,windows based script host
  5. 极简工作法则- 泰普勒人生
  6. 计算机不得不知道的知识,术业有专攻计算机维修人员不得不知道的知识
  7. Android-实现图文混排编辑
  8. JavaEE1(4/23)
  9. js挂马,臭名昭著nu99.com
  10. k8s(八)—调度因素(nodeName、nodeSelector、亲和与反亲和、Taints 污点)、影响pod调度的指令