首页 > 数据库 >《数据库应用系统实践》------ 酒吧管理系统

《数据库应用系统实践》------ 酒吧管理系统

时间:2024-11-20 10:17:32浏览次数:3  
标签:INSERT 管理系统 INTO 账号 酒吧 VALUES ------ 管理员

系列文章

《数据库应用系统实践》------ 酒吧管理系统


文章目录


一、需求分析

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 BarManagement
ON PRIMARY
(NAME=YAN,
FILENAME='E:\SQLDate\BarManagement.mdf',
SIZE=5MB,
MAXSIZE=UNLIMITED)
LOG ON
(NAME=YAN_log,
FILENAME='E:\SQLDate\BarManagement.ldf',
SIZE=5MB,
MAXSIZE=UNLIMITED)

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

CREATE TABLE 管理员(
管理员账号       CHAR(20)      PRIMARY KEY,
酒吧名			 CHAR(20)    NOT NULL
)

CREATE TABLE 用户(
用户账号            CHAR(20)      PRIMARY KEY,
酒吧名		    CHAR(20)     NOT NULL,
管理员账号      CHAR(20)     NOT NULL
FOREIGN KEY (管理员账号) REFERENCES 管理员(管理员账号)
)

CREATE TABLE 酒吧(
酒吧号               CHAR(20)     PRIMARY KEY,
酒吧名                   CHAR(20)     NOT NULL,
管理员账号             CHAR(20)     NOT NULL,
FOREIGN KEY (管理员账号) REFERENCES 管理员(管理员账号)
)


CREATE TABLE 去往(
酒吧号            CHAR(20)     NOT NULL,
用户账号                CHAR(20)     NOT NULL,
 PRIMARY KEY(酒吧号,用户账号),
 FOREIGN KEY (酒吧号) REFERENCES 酒吧(酒吧号),
 FOREIGN KEY (用户账号) REFERENCES 用户(用户账号)
)

五、数据库实施

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','001','001')
INSERT INTO 用户 VALUES ('002','002','002')
INSERT INTO 用户 VALUES ('003','003','003')
INSERT INTO 用户 VALUES ('004','004','004')
INSERT INTO 用户 VALUES ('005','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')

3.数据处理(处理完成后请附上截图,请至少完成5项)

(1)至少包括2张表的等值连接;
在这里插入图片描述

(2)创建视图;
在这里插入图片描述

(3)编写包含子查询的SQL语句;
在这里插入图片描述

(4)有修改语句;
在这里插入图片描述

(5)有删除语句;
在这里插入图片描述

(6)有包含聚集函数;
在这里插入图片描述

(7)有记录过滤,条件过滤语句;
在这里插入图片描述

(8)有修改表结构的SQL语句;
在这里插入图片描述

(9)用T-SQL语句写出一个对数据表处理的人机交互程序;
在这里插入图片描述

(10)编写一个触发器;
在这里插入图片描述

六、数据库应用系统实现

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

用户登录:
账号:001
密码:001
在这里插入图片描述

信息查询:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

管理员登录:
账号:002
密码:002
在这里插入图片描述

信息查询:
在这里插入图片描述
在这里插入图片描述

信息修改:
在这里插入图片描述

数据增加:
在这里插入图片描述

数据修改:
在这里插入图片描述

数据删除:
在这里插入图片描述

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

	String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=BarManagement";
	String userName = "sa";
	String userPwd = "1";

3.其它代码

jp3.add(jl3);
		jp3.add(jtf2);
		jp3.setLayout(new FlowLayout(FlowLayout.CENTER));
		ButtonGroup grp = new ButtonGroup();
		jr1.setBounds(285, 105, 150, 20);
		jr3.setBounds(285, 133, 140, 15);

		grp.add(jr1);
		grp.add(jr3);

		jfrm.add(jr1);
		jfrm.add(jr3);
		jfrm.add(jp1);
		jfrm.add(jp2);
		jfrm.add(jp3);
		jfrm.add(jb1);
		jfrm.add(jb2);
		jb1.addActionListener(this);
		jb2.addActionListener(this);
		jb1.setBounds(100, 200, 85, 30);
		jb2.setBounds(200, 200, 85, 30);
		contentPane.add(jb1);
		contentPane.add(jp1);
		contentPane.add(jp2);
		contentPane.add(jp3);
		jl1.setBounds(120, 30, 200, 40);
		jp1.setBounds(40, 50, 300, 60);
		jp2.setBounds(25, 100, 300, 60);
		jp3.setBounds(25, 150, 300, 60);
		jfrm.setVisible(true);
		jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	/* 事件监听 具体的实现方法 */
	@SuppressWarnings("deprecation")
	public void actionPerformed(ActionEvent e) {

		if (e.getSource() == jb1)// 进行事件源的判断 如果登录
		{

			if (jr1.isSelected())// 简单查询
			{
				String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
				String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=BarManagement";
				String userName = "sa";
				String userPwd = "1";
				userId = null; // 用户
				try {
					Class.forName(driverName);
				} catch (Exception e1) {
					e1.printStackTrace();
				}
				try {
					Connection con = DriverManager.getConnection(dbURL, userName, userPwd);
					Statement s = con.createStatement();
					String r1 = "select * from 用户  where 用户账号=? and 密码=?";
					PreparedStatement P = con.prepareStatement(r1);
					P.setString(1, jtf1.getText());
					P.setString(2, jtf2.getText());
					ResultSet rs = P.executeQuery();
					if (rs.next()) {
						userId = rs.getString("用户账号").trim();
						new YG(userId);
						jfrm.setVisible(false);
					}

					else {
						JOptionPane.showMessageDialog(null, "用户账号或密码不正确!");
					}	

七、总结

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

很多地方有错误,界面做的比较丑,二维表的使用和数据库的获取不太熟练,对于同时使用多个顶层容器时有问题。按实验报告的要求完成了此次实训的内容。JAVA成功的连接到了数据库,并且能进行登录和查询操作并制作了开始画面。本次实训让我们巩固了数据库和JAVA的相关知识,大多时间都是需要自己查阅相关资料,锻炼了我们自主学习的能力。此次实训锻炼了我们的动手能力,在花费大量的时间与精力后完成的作品使我们有一种成就感,为将来的学习奠定了良好的基础。

参考文献:

[1]周宁. 信息资源数据库[M]. 武汉大学出版社, 2001.
[2]孙凯, 肖偲迪, 陈冉. 浅谈数据库[J]. 2021(2016-12):81-.
[3]王珊, 陈红. 数据库系统原理教程[M]. 清华大学出版社, 1998.

八、内容包括

包括有 Java源代码+数据库源码+实践报告+部署教程
在这里插入图片描述

九、获取源码

大家 点赞、收藏、关注、评论啦、查看

标签:INSERT,管理系统,INTO,账号,酒吧,VALUES,------,管理员
From: https://blog.csdn.net/Lixu_No_1/article/details/143869150

相关文章

  • Linux基本命令(三) 文本处理及优化终端操作
    目录一、文本处理  1.1内容匹配1.1.1grep文件内容搜索1.1.2 awk正则匹配内容1.2 内容打印 1.2.1head显示文件头部内容1.2.2tail显示文件底部内容1.2.3sed文件内容显示1.2.4cut列提取1.3 内容处理1.3.1内容替换1.3.2sort内容排序1.3.3uniq内容去重......
  • OAI-5G开源通信平台实践(三)
    端到端验证相关问题及分析解决PlmnTACSlice配置UEimsi配置opc/key配置问题5GC侧配置如下:错误现象解决PlmnTACSlice配置#1.UERANSIM接5GS##AMF报错02/2118:05:18.949:[amf]INFO:gNB-N2accepted[127.0.0.1]inmaster_smmodule(../src/amf......
  • 希冀 操作系统 实验lab1 内核、Boot和printf(保姆级教程 建议点赞收藏 未完成)
    这次我把所有代码都写出来方便大家复制(可以直接复制我的代码粘贴到终端执行)开始之前首先先拉取lab1的内容(一定先干这个,不然做不了实验!!!!!!!!!!!!!!!!)先切换到这个目录下cd20221105894-lab变为:输入gitpullgitcheckoutorigin/lab1 之后刷新一下你的学号-lab文件夹,如果改变了就好......
  • numpy02——广播原则
    1.广播原则的解释2. 索引3.切片,跟python的切片差不多4.sort方法,他是列表的内置方法,用于在列表就地排序,即直接在原列表上进行排序,不返回新列表,他是一个方法,可以对比可变数据类型5.sorted函数,他是一个函数,可以对任何可迭代对象进行排序,返回一个新的排序后的列表。......
  • 产品推介丨登高作业的守护神,登高防护智能管控平台筑牢高空作业“生命线”!
    导语施工作业中,登高作业是最常见的高风险作业,也是造成企业安全事故的主要原因之一。据统计,施工现场有50%以上的人身伤害是高空作业事故,高空作业造成高空坠落,会造成严重的人身伤害。不仅如此,登高作业还面临以下痛点:人员行为难控制未正确佩戴防护装备,或使用不当,大大增加突发安......
  • 智慧展厅为何成为企业数字化转型的璀璨舞台
    智慧展厅以其独特的魅力成为了连接物理世界与数字领域的创新桥梁,助力企业实现跨越式发展。智慧展厅融合了工业互联网、物联网、大数据、云计算及AI等技术,为企业产品推广和品牌宣传带来了前所未有的变革。智慧展厅解决方案并非简单的展览展示技术革新,而是企业全面拥抱数字化转......
  • pandas的基本使用
    numpy的unique方法的使用补充,return_index是返回所索引,return_inverse是返回去重后的数组的元素的索引并且按未去重的数组的元素的位置进行排列,return_counts是返回元素的数量类似与解包操作,如:正式进入pandas:一,操作对象,DataFrame是数据帧,Series是系列二,apply1.安装pan......
  • 智慧高空作业管控系统上线,提升工地安全水平
    高空作业因其特殊性,往往伴随着极高的风险。传统的安全管理方式主要依赖于人工监管、安全培训以及物理防护措施,虽然在一定程度上能够降低事故发生的概率,但受限于人为因素的不可控性和监管盲区,仍难以全面覆盖所有安全隐患。而智慧高空作业管控系统的引入,则通过集成物联网、大数据......
  • 环境保护法规与环境监测技术的协同发展
    随着工业化、城市化进程的加速,环境问题日益凸显,成为制约可持续发展的重大挑战。为了有效应对这一挑战,环境保护法规的制定与实施以及环境监测技术的创新与发展成为了不可或缺的两翼。两者相辅相成,共同推动着环境保护事业的深入发展。环境保护法规:制度保障与行为引导环境保护......
  • Android15音频进阶之提升进程优先级方案(九十五)
    简介:CSDN博客专家、《Android系统多媒体进阶实战》一书作者新书发布:《Android系统多媒体进阶实战》......