羇学生管理系统数据库设计报告肅一:实验小组成员:蚁组长:葿主要工作:设计关系模式图,设计存储过程和检测脚本螆组员:膅主要工作:设计ER图,触发器肂 羇主要工作:设计表,视图,并完成系统测试薅芄二:数据库设计要求艿建立关于系、学生、班级、学会等诸信息的一个关系数据库。一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。描述各个实体的属性(加下划线者为主码)如下:虿学生:学号、姓名、年龄、系名、班号,性别,宿舍区。芄班级:班号、专业名、入校年份、系名、人数。莄系:系号、系名、系办公室地点、人数。蚀学会:学会号、学会名、成立年份、地点。肇莇三:ER图设计蒄1:学生实体的ER图肁蝿2:班级实体的ER图肆蒄3:系实体的ER图蒂芇4:学会实体的ER图袅 薄5:实体及联系ER图蕿 羈6:完整的ER图蚃 蚄罿蒆蚆四:关系模式螄1:由ER图直接得到的关系模型莀学生(学号,姓名,年龄,系名,班号,性别,宿舍区)膈班级(班号,专业名,人数,系名,入校年份)蒅系(系号,系名,人数,系办公室地点)袄学会(学会号,学会名,地点,成立年份)螁参加学会(学号,学会号,入会年份)薆2:关系模型的合并和分解膄学生模型中的系名属性是冗余的,可以由学生所在的班级查到该同学所在的系。羃班级中的专业名属性是冗余的,由于一个专业可以有多名学生,如果专业名发生变化,则要求改很多的学生信息,不符合数据库的规范化原理,所以分解这个模型为两个模型。膂班级(班号,专业号,人数,系名,入校年份)莈专业(专业号,系号,专业名)芇经过2的分解后,班级关系中的系名是冗余项,可以由专业查到,删除。肃经过以上的分解合并后的关系模型如下:荿学生(学号,班号,姓名,年龄,性别,宿舍区)肀班级(班号,专业号,人数,入校年份)羆专业(专业号,系号,专业名)肃系(系号,系名,人数,系办公室地点)螀学会(学会号,学会名,地点,成立年份)蒈参加学会(记录号,学号,学会号,入会年份)螅五:建表膃1:代码如下膁膀CREATETABLE`class`(薄`class_id`varchar(8)collateutf8_unicode_ciNOTNULL,芃`major_id`varchar(8)collateutf8_unicode_ciNOTNULL,薂`class_count`int(11)default'0',蚇`year_in`dateNOTNULL,薇PRIMARYKEY(`class_id`),莃KEY`major_id`(`major_id`),蚈FOREIGNKEY(`major_id`)REFERENCES`major`(`major_id`)ON DELETECASCADEONUPDATECASCADE荿)莅蒃聿CREATETABLE`dept`(袇`dept_id`varchar(8)collateutf8_unicode_ciNOTNULL,膄`dept_name`varchar(20)collateutf8_unicode_ciNOTNULL,薃`dept_count`int(11)default'0',蒀`dept_dest`varchar(20)collateutf8_unicode_ciNOTNULL,蕿PRIMARYKEY(`dept_id`)膇)蚂袁羇CREATETABLE`major`(羆`major_id`varchar(8)collateutf8_unicode_ciNOTNULL,蚂`dept_id`varchar(8)collateutf8_unicode_ciNOTNULL,节`major_name`varchar(20)collateutf8_unicode_ciNOTNULL,蝿PRIMARYKEY(`major_id`),蚅KEY`dept_id`(`dept_id`),螂FOREIGNKEY(`dept_id`)REFERENCES`dept`(`dept_id`)ONDELETE CASCADEONUPDATECASCADE荿)`(_id`varchar(8)collateutf8_unicode_ciNOTNULL,_name`varchar(20)collateutf8_unicode_ciNOTNULL,_des`varchar(20)collateutf8_unicode_ciNOTNULL,_year`dateNOTNULL,芁PRIMARYKEY(`org_id`)莆)_stu`(_stu_id`varchar(8)collateutf8_unicode_ciNOTNULL,肄`s_id`varchar(8)collateutf8_uni
数据库实验报告供参习 来自淘豆网m.daumloan.com转载请标明出处.