第1章 程序设计内容及要求

1.1 程序设计题目

(1)创建student_dissertation数据库,在该数据库中创建4张数据表:t_student(学生表)、t_department(专业表)、t_dissertation(课题表)、t_s_dissertation(选题表),它们表结构设计如下:

(2)对各表输入以下数据:


(2)对各表输入以下数据:


1.2程序设计内容及要求

(1)为各表设置主键
(2)查询要求得到所有专业号为1的男生的学生信息
(3)查询得到所有电子系男生的学生信息
(4)创建视图,显示学生所选课题还未通过审批的信息
(5)创建存储过程,通过指定专业,返回该专业所有学生的基本信息
(6)创建触发器,当某课题被删除时,选题表中相关记录也同时被删除
(7)建立数据库相关表之间的参照完整性约束,均设置为级联

1.3程序设计的目的

《数据库原理及应用》课程设计是非常重要的实践环节之一,是学完《数据库原理及应用》课程后的一次全面的综合练习。本课程设计主要在于巩固学生对数据库基本原理和基础理论得理解,掌握数据库应用系统的设计开发的基本方法,进一步提高学生综合运用所学知识的能力。
(1)通过本次设计是了解学生对数据库ˌ表的创建,以及插入数据ˌ存储过程等的掌握情况。
(2)掌握对MySQL的基本操作和使用技能。
(3)复习ˌ巩固本学期所学内容。
(4)通过一个实训提高学生的综合能力,并让学生从中发现自身存在的问题。

第2章程序实现思路

在数据库领域中,通常情况下都会设计E-R图,用来描述现实世界的事物。使用E-R图每一个实体对应一张数据表。
在实体图中,使用矩形表示实体,椭圆表示属性,并且使用无向边将其与实体连接起来。这样就可以很明确的看出实体所带有属性。如下画出四张表的实体图:

(1)学生表E-R图

(2)专业表E-R图

(3)课题表E-R图

(4)选课表E-R图

同时,一个数据库里的表也不是相互独立,它们之间存在着一定的联系,如学生表和专业表中都存在专业号这个属性。在E-R图中,可以使用关系表示实体间的联系。通常使用棱形来表示实体之间的联系。

通过表之间的联系,我们可以实现多表连接查询,通过表之间的关系,可以由一表中的信息查询得到另一表中的信息。理清各表之间的关系之后,再回顾所学知识数据库创建语句create database 创建数据库,再通过create table 创建各个表,之后再完善表里的数据,用insert into values 将数据插入表中。这样一个较完整的数据库就被创建好了。
然后,在由创建好的数据表实现对数据的查询,如提供学生的一个属性信息,可以查询该学生的所有信息。同时,根据题目要求,需要创建相应的视图ˌ存储过程ˌ触发器等。视图作用类似于筛选;触发器相当于给事件发生的前或后装一个触发装置;创建存储过程可以减少数据端和服务端的数据传输。
根据所学知识,通过create view语句创建视图,通过create procedure语句来完成存储过程的创建,通过create trigger来创建触发器。

第3章 程序清单或正文

1.创建数据库
create database student_dissertation;

2.创建t_student表
mysql> create table t_student(-> studentid char(20) not null,#学生学号-> studentname char(8) null,#姓名-> studentsex char(2) null,#性别-> departmentid int(8) null,#专业号-> studentphone char(30) null,#电话-> password char(20) null,#密码-> primary key(studentid)
-> );

3.创建t_department表
mysql> create table t_department(-> departmentid int(8) not null primary key,#专业号-> departmentname char(50) null,#专业名称-> manager char(8) null #主任名-> );

4.创建t_dissertation表
mysql> create table t_dissertation(-> dissertationid char(20) not null primary key,#课题号-> dissertationname char(30) null,#课题名称-> attachment char(30) null,#附件说明-> teachername char(8) null #指导教师名-> );

5.创建t_s_dissertation表
mysql> create table t_s_dissertation(-> studentid char(20) not null,-> dissertationid char(20) not null,-> introduction text null,-> sendtime datetime null,-> state char(10) null,-> primary key(studentid,dissertationid)-> );

6.给表t_department输入数据
mysql> insert into t_department values
(1,'电子系','杨明'),
(2,'计算机系','李长山'),
(3,'自动化系','顾林');

7.给表t_student输入数据
mysql> insert into t_student values-> ('1000','朱群','男',1,'13759778212','123456'),-> ('1001','王小川','男',1,'13576543233','778899'),-> ('1002','秦悦','女',2,'13767885731','456123'),-> ('1003','陈小飞','男',3,'13755897651','369874'),-> ('1004','胡小丽','女',3,'13567334622','147896'),-> ('1005','张维','女',1,'13854673392','458972'),-> ('1006','李勇','男',1,'13787416711','147896'),-> ('1007','罗青','女',1,'13887914751','146697');


8.给表t_dissertation 输入数据
mysql> insert into t_dissertation values-> ('Z001','基于CRC技术的无线通信模块','资助','沈方'),-> ('Z002','基于ARM的室内环境无线监测系统','资助','罗青'),-> ('D001','基于51单片机的GPS定位仪','资助','郭海'),-> ('J001','基于B/S构架的数字图书馆','资助','赵萍'),-> ('J002','听力训练播放器','非资助','王海');

9.给表t_s_dissertation 输入数据
mysql> insert into t_s_dissertation values-> ('1000','Z001','电子类','2009.10.20','待审批'),-> ('1001','Z002','电子类','2008.8.5','通过'),-> ('1002','J001','计算机类','2009.9.28','待审批'),-> ('1003','D001','电子,自动化类','2009.9.26','待审批'),-> ('1001','D001','电子,自动化类','2009.10.6','待审批'),-> ('1002','J002','计算机类','2008.7.24','通过');


10.查询要求得到所有专业号为1的男生的学生信息
mysql> select *from t_student where departmentid=1;

11.查询得到所有电子系男生的学生信息
select * from t_student where departmentid=1 and studentsex='男';

12.创建视图,显示学生所选课题还未通过审批的信息
mysql> create view v_nopass(studentid,dissertation,introduction,sendtime,state) as select * from t_s_dissertation where state='待审批

13.创建存储过程,通过指定专业,返回该专业所有学生的基本信息
mysql> delimiter //
mysql> create procedure p_department (in name char(50))-> begin-> select studentid,studentname,studentsex,studentphone,password from t_student where-> departmentid in(select departmentid from t_department where departmentname=name);->  end ->//

14.创建触发器,当某课题被删除时,选题表中相关记录也同时被删除
mysql> delimiter //
mysql> create trigger tr_drop after delete-> on t_dissertation for each row-> begin-> delete from t_s_dissertation where t_s_dissertation.dissertationid=old.dissertationid;-> end
-> //

15.建立数据库相关表之间的参照完整性约束,均设置为级联
AFTER TABLE t_student ADD FOREIGN KEY(departmentid) REFERENCES t_department(departmentid) on delete cascade on update cascade;

alter table t_s_dissertation add foreign key(studentid) references t_student(studentid) on delete cascade on update cascade;

alter table t_s_dissertation add foreign key(dissertationid) references t_dissertation(dissertationid) on delete cascade on update cascade;

第3章 课程设计心得

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的。主要收获由以下几点:
(1)回顾了这个学期以来所学的知识,发现了自身的不足和存在的问题。
(2)这是第一次完整的完成整个数据库的创建,懂得我们不仅要掌握理论知识,还更加应该锻炼自己的操作能力,才能更好的学以致用。
(3)在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。
(4)同时,培养了在实践过程中遇到问题后,应该寻找解决的办法的习惯,如借助网络或与同学交流等。
(5)通过这次实训,让我更能体会到数据库的强大与奇妙,以及功能的多样性。
在这次实训中,不仅收获了很多,同时也发现了自身存在的不足,需要改进的地方:
(1)对知识掌握的还不够牢固,上机操作能力还有待于提高。
(2)对数据库的认识仅局限于书本,而没有通过实际生活中去理解。
(3)对于一些查询语句不够熟悉,导致花费的时间较长
(4)对数据库得存储过程理解还不够深入
(5)今后应该多查询资料,把所存在得问题寻找原因并改正,学会学以致用。
(6)平时对遇到的问题没及时解决,导致问题一直存在。

第5章 参考文献

[1] 陈林琳,蒋丽丽,解二虎主编.SQL Server 2008数据库设计教程. 江苏大学出版社,2016年8月
[2]任进军,林海霞 主编 MySQL 数据库管理与开发 人民邮电出版社 2017年6月
[3]百度知道:https://www.unjs.com/fanwenwang/ziliao/590237.html
[4]百度百科:
http://www.360doc.com/content/16/1011/21/15549660_597691151.shtml
[5]百度知道:https://bbs.csdn.net/topics/390822588

致谢

创建student-dissertation数据库相关推荐

  1. 最全使用SQL Server创建、配置数据库的各种方法和注意细节

    文章目录 一.创建.配置数据库 二. 其他数据库设置 三.使用SQL语句创建.更改.删除数据库 四.附加.分离数据库 五.编写数据库脚本 一.创建.配置数据库 1.创建方法 (1)直接在连接后的数据库 ...

  2. 数据库系统概论实验二——创建及管理数据库

    一.实验准备知识 1.数据库相关属性 1)逻辑名称:数据文件和日志文件名称 2)文件类型:数据文件及日志文件 3)文件组:各个数据文件所属的文件组名称 4)初始大小:文件的最原始大小 5)自动增长:文 ...

  3. mysql在test库中创建表stu_数据库mysql练习

    练习1: 在student数据库中创建student表和grade表. student表结构如下 字段名字段描述数据类型主键外键非空唯一自增no 学号int 是否是是否name 姓名varchar(3 ...

  4. 创建学生信息管理数据库

    本文是由YuDrag独家创作的--------作业 如有错误之处,还请各位大佬指正,小弟课下之余将认真修改.感谢各位!!! 下次作业再见!!! 学生信息管理数据库:面对学生和教师信息进行存储和进行相关 ...

  5. mysql建图书馆表_创建学校图书馆数据库 BookDB

    问题描述 创建学校图书馆数据库BookDB 1.创建学校图书馆信息管理系统数据库BookBD 2.学校图书馆借书信息管理系统建立三个表: 学生信息表:student 字段名称 数据类型 说明 stuI ...

  6. Student学员数据库-[学生信息]、[学生成绩]表

    --Create DataBase Student  --创建Student数据库 --go use Student  --选择当前数据库 go CREATE TABLE Class  --创建班级表 ...

  7. 06_MySQL笔记-数据类型-字段属性-存储引擎-字符集-创建新表-数据库建模

    文章目录 数据类型 字段属性 存储引擎 字符集 创建新表 数据库建模 PowerDesigner 建模工具 个人博客 https://blog.csdn.net/cPen_web 数据类型 数据类型 ...

  8. 用Navicat创建student表

    用Navicat创建student表 第一步点击"链接"; 之后输入密码进行链接测试; 然后,点击"确定",创建连接.再然后会出现一个连接图标,点击右键选择&q ...

  9. 阿里云rds for mysql平台介绍_阿里云RDS for MySQL实例创建账号和数据库?

    本文介绍如何为RDS for MySQL实例创建账号和数据库. 账号类型RDS for MySQL实例支持两种数据库账号:高权限账号和普通账号.您可以在控制台管理所有账号和数据库,账号拥有的具体权限请 ...

  10. PHP学习笔记 第八讲 Mysql.简介和创建新的数据库

    八.Mysql.简介和创建新的数据库 1.mysql简介与概要 mysql是一个小型关系型数据管理系统,开发者为瑞典mysqlab公司现在已经被sun公司收购 1.可以处理拥有上千万条记录的大型数据 ...

最新文章

  1. Python3搭建Django框架浅析
  2. 关于ansible 创建目录安装redis、nginx
  3. CGI方式获取RTX中用户的电话和邮箱
  4. 授予数据库账号dba权限_从自建Oracle迁移至云原生数据仓库AnalyticDB PostgreSQL
  5. .net 调用java service 代理类方法
  6. 文件 图片 上传 及少许正则校验
  7. android Sqlite小记
  8. boost::weak_ptr和enable_shared_from_this
  9. java时间加减_java时间加减
  10. java读取邮箱附件_使用javamail获取附件内容
  11. java交换数组元素_交换数组中的元素(Java)
  12. 鱼腥草可以随便吃吗?
  13. python个数计算公式_用python计算1-100的合数的个数
  14. C++继承之菱形继承
  15. HTML+CSS+JavaScript实现植物大战僵尸(附演示地址)
  16. datadog的数据流转
  17. 《国富论》笔记——货币
  18. ip_forward与路由转发
  19. php怎么让日期变成数字形似,excel如何把日期变成纯数字
  20. 360云盘关闭一周后:国家版权局称值得肯定,是榜样

热门文章

  1. Python 爬虫之 Beautifulsoup4,爬网站图片
  2. 自己的服务器进不去显示403,HTTP 403错误:含义和解决方法
  3. 运维:你们 JAVA 服务怎么又又又又出问题了,内存降不下来。
  4. 尽挥洒最终版 思嫣_温州方言歌曲_温州话歌曲
  5. java 实现创建拨号_电话拨号盘的实现
  6. [ERROR] [MY-012576] [InnoDB] Unable to create temporary file; errno: 30
  7. 任务管理器不显示磁盘
  8. PHP 实现爱查快递接口
  9. CSS mask遮罩
  10. 桃源网盘php,桃源居业主自建论坛 - Powered by PHPWind