《数据库应用系统实践》------ 校友会信息系统

系列文章

《数据库应用系统实践》------ 校友会信息系统


文章目录

  • 系列文章
  • 一、需求分析
    • 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 AlumniInformation
ON PRIMARY
(NAME=YAN,
FILENAME='E:\SQLDate\AlumniInformation.mdf',
SIZE=5MB,
MAXSIZE=UNLIMITED)
LOG ON
(NAME=YAN_log,
FILENAME='E:\SQLDate\AlumniInformation.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','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')

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.相关界面截图(对每一张截图进行一定的文字说明)

用户登录:
账号:001
密码:001

在这里插入图片描述

信息查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
管理员登录:
账号:001
密码:001

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

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

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

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

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

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

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

3.其它代码

		{

			if (jr1.isSelected())// 简单查询
			{
				String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
				String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=AlumniInformation";
				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, "用户账号或密码不正确!");
					}
					s.close();
					con.close();
				} catch (Exception e1) {
					e1.printStackTrace();
				}
			}

			if (jr3.isSelected())// 
			{
				String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

七、总结

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

这次的实训内容都已完成,开始五天是有关于数据库的设计,从数据库的创建到数据的插入都是独自完成的,其中因为许多的原因改了很多次,但最后还是完美的完成了。后面的五天是将自己设计的数据库与java连接起来,编写java代码来查询所创建的数据库里的信息,由于种种原因我JAVA学的不好,编程我几乎写不出来,只能照着别人的来修改,而且还老是出错,最后在同学的热心帮助下最终完成了。在我做完实验之后,我又重新复习了java的相关知识,这次的实验总体上对我来说还是具有挑战性的。

参考文献:

[1]刘桂玲. SQLServer数据库应用分析[J]. 软件导刊, 2012, 11(10):2.
[2]徐人凤, 曾建华. SQLServer数据库及应用[M]. 高等教育出版社, 2013.
[3]邓文艳. SQLServer数据库备份和还原[J]. 山西财经大学学报, 2007(S2):1.

八、源代码获取

本次的分享就到这里啦,创作不易,感谢点赞收藏👍
感兴趣的小伙伴可以在评论区留言或者私信我哦💕

提示:代码获取链接: 下载完整源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/24878.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux Kernel RTC驱动使用hwclock调试

hwclock hwclock的源码路径:sys-utils/hwclock.c 源码: if (opt & HWCLOCK_OPT_HCTOSYS)to_sys_clock(&rtcname, utc);else if (opt & HWCLOCK_OPT_SYSTOHC)from_sys_clock(&rtcname, utc);else if (opt & HWCLOCK_OPT_SYSTZ)set_…

Redis 的数据类型和命令帮助

文章结构 Redis 数据类型1. Redis全局命令(跟key有关系,而跟value无关)2. StringsGetting and setting StringsManaging counters 3. Lists(L)Basic commandsBlocking commands 4. Sets(S)Basic commands 5. Hashes(H)Basic commands 6. Sort…

软考A计划-试题模拟含答案解析-卷九

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

【WPF】数据绑定,资源字典

数据绑定 将数据与视图分开,创建MainViewModel .cs 作为数据源的处理 MainViewModel using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading…

机器学习基础知识之多模型性能对比评价方法

文章目录 1、交叉验证t检验2、Friedman检验与Nemenyi后续检验 在进行预测或分类对比实验时,通常需要比较两个或两个以上的模型性能,因此,下面将介绍两个常用的多模型性能对比评价方法,一种是交叉验证t检验,该方法主要用…

如何用二极管实现不同电压的输出?

利用二极管的单向导电性可以设计出好玩、实用的电路。本文分析限幅电路和钳位电路,是如何用二极管来实现的。 限幅电路 如下图所示,当在正半周期,并且VIN大于等于0.7V,二极管正向导通。此时,VOUT会被钳位在0.7V上。 …

Linux网络服务:PXE高效批量网络装机

目录 一、理论 1.PXE批量网络装机概述 2.搭建 PXE 远程安装服务器 3.实现Kickstart无人值守安装 二、实验 1.搭建PXE远程安装服务器 2.安装Kickstart无人值守安装 3.安装图形化界面 三、问题 1.please complete all spokes before continuing 提示 一、理论 1.PXE批…

供应链|供应商库存服务水平对零售商需求的影响

作者:Nathan Craig, Nicole DeHoratius, Ananth Raman 引用:Craig N, DeHoratius N, Raman A. The impact of supplier inventory service level on retailer demand[J]. Manufacturing & Service Operations Management, 2016, 18(4): 461-474. 文…

【JavaSE】Java基础语法(八)

文章目录 🍓1. 类和对象🍹🍹1.1 类和对象的关系🍹🍹1.2 类的定义 🍓2. 对象内存图🍹🍹2.1 单个对象内存图🍹🍹2.2 多个对象内存图2.3 多个对象指向相同内存图…

服务器性能优化方法

文章目录 服务器性能优化方法什么是服务器并发处理能力?什么方法衡量服务器的并发能力?怎么提高服务器的并发处理能力?**1,提高CPU并发计算能力**(1)多进程&多线程(2)减少进程切…

【Unity】实现无缝地图

无缝地图是沙盒游戏的标配,可以极大提升玩家体验和沉浸感。 无缝地图的实现过程还是比较复杂的,在这里做一下实现笔记 1、地图分块: 将地图划分为较小的块,例如瓦片或区块。每个块可以是一个独立的游戏对象或地形块。确定每个块的大小和位置。你可以使用Unity的Tilemap工具…

二次元的登录界面

今天还是继续坚持写博客,然后今天给大家带来比较具有二次元风格的登录界面,也只是用html和css来写的,大家可以来看看! 个人名片: 😊作者简介:一名大一在校生,web前端开发专业 &…

【小程序】封装时间选择组件:用单元格van-cell和插槽slot,包括起始时间和终止时间

效果 可以选择起始时间和终止时间,并显示。 时间选择器放在van-cell的value插槽中。 用的库: https://vant-contrib.gitee.io/vant-weapp/#/home https://dayjs.fenxianglu.cn/category/ 用的组件:Cell单元格、DatetimePicker时间选择、Pop…

Linux——gdb调试器

目录 前言: 二.gdb定义及指令: 如何查看该exe文件是否为Debug版本?两种方法: 三.gdb调试: 调试指令1:l指令(小写L) run指令:运行程序,相当于VS中的直接运行不调试——可简化输入r break指令&#xff1…

解析云盘存储的优缺点:安全靠谱还是存在风险?

云盘是一种基于云计算技术的在线存储服务,用户可以通过互联网将文件上传到云端,并可以随时随地通过网络访问这些文件。 相较于传统的本地存储,云盘具有以下优势: 1.数据安全性更高:云盘使用专业的云计算技术和安全措施…

安装stable-diffusion

安装流程&#xff1a; 下载stable-diffusion源码 <https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.2.1>安装python <https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe>添加host 打开C:\Windows\System32\drivers\etc…

01Redis单线程 VS 多线程

不同版本&#xff0c;情况不同 Redis的版本很多3.x、4.x、6.x&#xff0c;版本不同架构也是不同的&#xff0c;不限定版本问是否单线程也不太严谨。 版本3.x &#xff0c;最早版本&#xff0c;也就是大家口口相传的redis是单线程 数据结构简单避免锁的开销和上下文切换可以有…

chatgpt赋能python:Python中的乘方操作

Python中的乘方操作 作为一种流行的编程语言&#xff0c;Python内置了许多强大的数学运算工具。其中&#xff0c;乘方操作是一个非常常见的数学操作&#xff0c;它可以快速地计算一个数的任意次幂。本文将介绍Python中乘方操作的用法&#xff0c;并提供了一些相关的示例代码。…

论文撰写总结与撰写心得——如何更好的产出几万字的论文

一张图开场&#xff0c;说说为什么会有本篇文章&#xff0c;因为晚上关了灯的屏幕太晃眼睛了&#xff0c;之前好几次不是哥哥我不加班帮小伙伴们搞论文&#xff0c;是当时眼睛顶不住了&#xff0c;所以这篇文章除了说一下论文的码字心得外&#xff0c;哥哥我再说一下如何在夜间…

LeetCode: 二叉树的直径(java)

二叉树的直径 leetcode 543题。原题链接题目描述解题代码二叉树专题 leetcode 543题。原题链接 543题&#xff1a;二叉树的直径 题目描述 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也…