学生信息管理系统数据库设计与实现。
系统需求。1、该“学生信息管理系统”是对数据库应用技术的一个样本数据库的实例,其中包括从数据库的概念模型到er图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),学生信息管理系统数据库设计与实现。
1、该“学生信息管理系统”是对数据库应用技术的一个样本数据库的实例,其中包括从数据库的概念模型到er图的绘制,再到数据库模式的建立(即为数据库及其基本表的建立),而后数据的录入(在此从略),最后完成一些简单的关系运算表达式的表达和相关的select 查询语句的使用。
2、系统结构简述:
本系统包括三个实体:院系;学生档案;课程;
实体之间的关系转换为其他表的有:选修;
实体“院系”与“学生档案”之间有一对多的关系,把院系表的主码转放到表“学生档案”中;
实体“学生档案”与“课程”之间有多对多的关系,因此独立形成一个表并共同存储“学生档案”与“课程”表的主码和一些自己的属性列;
3、该数据库需要进行如下数据处理:
从选修表中查询成绩的函数:
输入:学号和课程编号。
输出:对应的学号和课程编号的分数即成绩;
从学生档案表中查询学生基本信息的函数:
输入:学号。
输出:对应的学号的基本信息,即学号,姓名,性别,专业,****,联系地址,院系编号;
从学生档案表中删除对应的学生记录:
输入:学号。
输出:删除对应的学生记录,若没有对应的学号则输出“没有该学生!”的提示;
向学生档案表插入数据的函数:
输入:学生档案表的基本信息,包括所有属性列;即学号,姓名,性别,专业,****,联系地址,院系编号;
级联更新(从院系表到学生档案表、课程表):
输入:院系编号,院系名称。
成绩表上的触发器,当删除某一个学生的成绩时触发:
当从学生档案表中删除学生记录时,若该学号的学生记录在选修表中也有的话,则提示。
表1.实体间的相互联系。
学生信息管理系统的e-r模型。
系统中的实体有:学生档案;课程;院系;
关系模式如下:
学生档案(学号#,姓名,性别,专业,****,联系地址)
pk=学号,not null
课程(课程编号#,课程名称,学时,院系编号)
pk=课程编号,not null
fk=院系编号,参照院系表。
选修(学号#,课程编号#,分数)
pk=< 学号,课程编号 >,not null
fk=学号,参照学生档案表。
fk=课程编号,参照课程表。
院系(院系编号#,院系名称)
pk=院系编号,not null
表1 学生档案表结构。
表2 院系表结构。
表3 课程表结构。
表4 选修表结构。
1、create database 学生信息管理。
create table 院系。
院系编号 smallint,院系名称 char(16),primary key(院系编号)
2、create table 学生档案。
学号 char(12),姓名 char(22),性别 char(2)check(性别 in ('男','女'))专业 char(16),**** char(12),联系地址 char(40),院系编号 smallint,primary key(学号),foreign key(院系编号)references 院系(院系编号)on update cascade
3、create table 课程。
课程编号 char(10),课程名称 char(20),学时 smallint,院系编号 smallint,primary key(课程编号),foreign key(院系编号)references 院系(院系编号)on update cascade
4、create table 选修。
学号 char(12),课程编号 char(10),分数 numeric(4,1)check(分数<='100.0' and 分数 >=0'),primary key(学号,课程编号),foreign key(学号)references 学生档案(学号) on update no action,foreign key(课程编号)references 课程(课程编号) on update no action
5、从选修表中查询成绩的函数。
if exists(select name from sysobjects where name='成绩查询'and type='p')
drop procedure 成绩查询。
gocreate procedure 成绩查询 @sno char(12),@cno char(10)
asif exists(select 学号,课程编号 from 选修 where 学号=@sno and 课程编号=@cno)
select 学号,课程编号,分数。
from 选修。
where 学号=@sno and 课程编号=@cno
elseprint '没有该学号的学生或课程'
goexecute 成绩查询 '08080605227','06232023'
6、从学生档案表中查询学生基本信息的函数。
if exists(select name from sysobjects where name='学生基本信息查询' and type='p')
drop procedure 学生基本信息查询。
gocreate procedure 学生基本信息查询 @sno char(12)
asif exists(select 学号 from 学生档案 where 学号=@sno)
select *
from 学生档案。
where 学号=@sno
elseprint '不存在这样的学生!'
goexecute 学生基本信息查询 '08080605227'
7、从学生档案表中删除对应的学生。
if exists(select name from sysobjects where name='删除学生记录'and type='p')
drop procedure 删除学生记录。
gocreate procedure 删除学生记录 @sno char(12)
asif exists(select * from 学生档案 where 学号=@sno)
delete from 学生档案。
where 学号=@sno
elseprint '没有该学生!'
goexecute 删除学生记录 '12345678910'
execute 删除学生记录 '0908***
8、向学生档案表插入数据的函数。
if exists(select name from sysobjects where name='向学生档案表输入'and type='p')
drop procedure 向学生档案表输入。
gocreate procedure 向学生档案表输入 @sno char(12),@sname char(22),@ssex char(2),@szhuanye char(16),@scontact char(12),@saddress char(40),@dno smallint
asinsert into 学生档案 values(@sno,@sname,@ssex,@szhuanye,@scontact,@saddress,@dno)
goexecute 向学生档案表输入 '0908jack','男','计算机','150abbbb','1010'
SQL数据库作业
1 分别用ssms方式和t sql方式,在 教学成绩管理数据库 中创建 教师信息表 其表结构如下 use 教育成绩管理数据库。go create table 教师信息表。编号 char 6 not null,登录名 char 10 not null,姓名 nchar 4 not null,密码 ch...
SQL数据库作业
svse程序员上机考试。注意 考试结束试卷必须交回,否则按零分处理。一 语言和环境。a 实现语言 c b 环境要求 vs2005或更高版本 sql server2005二 数据库设计。数据库名称 empdb 数据库表信息 三 要求。利用c 和数据库编程,编写员工信息管理系统。要求实现员工信息的添加 ...
数据库原理 数据库管理系统复习
数据库 access 复习要点 数据库access基础 数据库管理系统 数据库原理 数据库原理及应用 以下为重点复习内容,请同学们务必背出下列重点概念,考试为闭卷笔试。复习教材 access数据库应用基础与实训教程 1.数据库管理系统的英文缩写 dbms 2.access 数据库文件的扩展名是什么?...