系列文章
《数据库应用系统实践》------ 零食销售系统
一、需求分析
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 snack
ON PRIMARY
(NAME=YAN,
FILENAME='E:\SQLDate\snack.mdf',
SIZE=5MB,
MAXSIZE=UNLIMITED)
LOG ON
(NAME=YAN_log,
FILENAME='E:\SQLDate\snack.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,
管理员账号 CHAR(20) NOT NULL
FOREIGN KEY (管理员账号) REFERENCES 管理员(管理员账号)
)
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) 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','12345678901','001')
INSERT INTO 用户 VALUES ('002','002','12345678902','002')
INSERT INTO 用户 VALUES ('003','003','12345678903','003')
INSERT INTO 用户 VALUES ('004','004','12345678904','004')
INSERT INTO 用户 VALUES ('005','005','12345678905','005')
INSERT INTO 零食 VALUES ('001','卫龙辣条','5','001')
INSERT INTO 零食 VALUES ('002','棒棒糖','1','002')
INSERT INTO 零食 VALUES ('003','纯牛奶','8','003')
INSERT INTO 零食 VALUES ('004','猪肉脯','45','004')
INSERT INTO 零食 VALUES ('005','可口可乐','3','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.相关界面截图(对每一张截图进行一定的文字说明)
用户登录:
信息查询:
管理员登录:
信息查询:
信息修改:
数据增加:
数据修改:
数据删除:
2.和数据库连接的程序语句
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=snack";
String userName = "sa";
String userPwd = "1";
3.其它代码
{
if (jr1.isSelected())// 简单查询
{
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=snack";
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)建议)
在本次数据库系统实践的课程中,我感觉实验是比较地简单的,除了在开始配置本地环境的过程中出现了一些小的插曲外,别的地方没有什么难点。就个人完成程度而言,完成了老师所要求的所有内容,一些数据库的联系我也做了比较,在对表进行插入操作时,我发现一些数据是不能够成功插入到数据库中的,我一开始不知道这是为什么呢?之后经过不断地思考,知道了数据表之间存在着外键约束关系,所以对数据的插入会有影响,解决了这个问题我也就没有什么问题了。
参考文献:
[1] 姜英华. 用VB实现电子邮件与SQLSERVER数据库的连接[J]. 电脑学习, 2000.
[2] 郭鹏. ASP连接SQLSERVER2000数据库在煤炭销售工作中的应用[C]// 首届煤炭工业信息化论坛. 2004.
[3] 梁效宁, 许超明, 赵飞. 一种基于SQLServer数据库的数据恢复方法:.
八、内容包括
包括有 Java源代码+数据库源码+实践报告+部署教程
九、获取源码
大家 点赞、收藏、关注、评论啦、查看👇🏻 获取联系方式👇🏻
文章👇🏻下方名片👇🏻联系我即可~