《数据库应用系统实践》

编程入门 行业动态 更新时间:2024-10-08 10:51:16

《<a href=https://www.elefans.com/category/jswz/34/1771350.html style=数据库应用系统实践》"/>

《数据库应用系统实践》

系列文章

《数据库应用系统实践》------ 个人作品管理系统


文章目录

  • 系列文章
  • 一、需求分析
    • 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,
作品号          CHAR(20)     NOT NULL
FOREIGN KEY (作品号) REFERENCES 新作品信息(作品号)
)CREATE TABLE 新作品信息(
作品号         CHAR(20)     PRIMARY KEY,
作品名         NCHAR(10)    NOT NULL,
作品类别       NCHAR(10)    NOT NULL,
作品完成时间   DATETIME     NOT NULL,
管理员账号     CHAR(20),
FOREIGN KEY (管理员账号) REFERENCES 管理员(管理员账号)
)CREATE TABLE 管理员(
管理员账号       CHAR(20)      PRIMARY KEY,
密码			 CHAR(20)    NOT NULL
)CREATE TABLE 已有作品信息(
作品号         CHAR(20)     PRIMARY KEY,
作品名         NCHAR(10)     NOT NULL,
作品类别       NCHAR(10)    NOT NULL,
作品完成时间   DATETIME     NOT NULL,
管理员账号     CHAR(20),
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','正楷书法','书法','2021-12-04','001')
INSERT INTO 已有作品信息 VALUES ('002','山水绘画','山水','2021-12-04','002')
INSERT INTO 已有作品信息 VALUES ('003','人物素描','素描','2021-12-04','003')
INSERT INTO 已有作品信息 VALUES ('004','卡通绘画','卡通','2021-12-04','004')
INSERT INTO 已有作品信息 VALUES ('005','沙画','沙土','2021-12-04','005')INSERT INTO 新作品信息 VALUES ('001','手工艺品','手工','2021-12-01','001')
INSERT INTO 新作品信息 VALUES ('002','手工DY','手工','2021-12-01','002')
INSERT INTO 新作品信息 VALUES ('003','雕刻印章','雕刻','2021-12-01','003')
INSERT INTO 新作品信息 VALUES ('004','宝石雕刻','雕刻','2021-12-01','004')
INSERT INTO 新作品信息 VALUES ('005','陶艺制作','手工','2021-12-01','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')

3.数据处理

(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=个人作品管理系统";String userName = "sa";String userPwd = "1";

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);//执行查询pstm2.executeUpdate();JOptionPane.showMessageDialog(frm, "删除成功");}catch(ClassNotFoundException cnfe) {JOptionPane.showMessageDialog(null,"数据源错误", "错误",JOptionPane.ERROR_MESSAGE);	}catch(SQLException sqle) {JOptionPane.showMessageDialog(null,"核心用户不可删除!", "错误",JOptionPane.ERROR_MESSAGE);	}}});frm.add(d1);frm.add(d2);

七、总结

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

从这次试训中让我们更明白了一些知识,表是数据库最重要的一个数据对象,表的创建好坏直接关系到数据库的成败,表的内容是越具体越好,但是也不能太繁琐,以后在实际运用中使用多表,对表的规划和理解就会越深刻。通过这次试训,让我深刻的了解到自己的不足,要想对进行数据库更深的学习,自己得要多看有关的课外书籍,并多做练习,不懂得要多问同学和请教老师,以解决自己遇到的难题,知道更多的知识。实训不仅是让我们在实践中对理论知识的验证,也让我们知道我们多学的知识在社会上的运用,把所学知识和企业商业接轨。

参考文献:

[1]徐人凤, 曾建华. SQLServer数据库及应用[M]. 高等教育出版社, 2013.
[2]邓文艳. SQLServer数据库备份和还原[J]. 山西财经大学学报, 2007(S2):1.
[3]杨立志, 乔春贵, 黄毅梅,等. SqlServer数据库的数据备份[J]. 气象与环境科学, 2006, 000(002):86-87.

八、源代码获取

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

更多推荐

《数据库应用系统实践》

本文发布于:2024-02-26 04:19:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1701329.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据库   系统

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!