07 数据库系统设计综合实验 实验报告

这篇实验报告详述了设计和实现一个学生选课信息管理系统的过程,包括需求分析、概念结构设计、逻辑结构设计和物理结构设计。系统使用Oracle数据库,涉及教师、学生和课程三个实体,实现了选课、成绩管理、教师信息统计等功能。实验采用C#作为编程语言,通过VS2013进行开发,强调了权限管理和视图在统计中的应用。

                                     07 数据库系统设计综合实验  实验报告

                                                                              广州大学学生实验报告

                                 开课学院及实验室:计算机科学与工程实验室418B室         2018年06月 14 日

学院

计算机科学与教育软件

年级、专业、班

网络***

姓名

卟咚君

学号

1606100***

实验课程名称

数据库原理实验

成绩

 

实验项目名称

数据库系统设计综合实验

指导老师

***

                 

预备知识

本实验的任务是设计并实现一个数据库系统。数据库设计的一般步骤包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。

(1)  概念结构设计

了解概念结构设计的基本方法,根据需求分析的结果或实验题目给出的要求,能够准确地用实体联系图来描述实体和实体之间的联系。

(2)  逻辑结构设计

理解逻辑结构设计的基本方法,根据实体联系图的设计,转换成合理的关系模式,每个关系模式至少应该满足第三范式的要求。

(3)  物理结构设计

理解物理结构设计的基本方法,选择合理的索引结构和存储结构,优化数据库的存取。

(4)  数据库实施

选择一门熟悉的面向对象程序设计语言,完成应用程序的开发。

实验目的

通过实验,使学生掌握数据库系统设计和开发的一般方法,能够设计并实现简单的数据库系统。

实验要求

熟悉实验室实验环境,掌握实验预备知识,了解实验中故障排除的基本方法。实验中根据实验要求完成相应的任务,并独立完成实验报告。

实验环境

Oracle 10gwindows 2003

实验内容和步骤

假设有“教师”、“学生”、“课程”三个实体,教师的基本信息包括:工号、姓名、职称、工资,课程的基本信息包括:课程号、课程名、学分数,学生的基本信息包括:学号、姓名、性别、年龄。系统必须满足以下要求:

(1)  一门课程只能有一个教师任课,一个教师可以上多门课程;

(2)  一个学生可以选修多门课程,一门课程可以由多个学生来选修,记录不同学生选修不同课程的成绩;

(3)  设置一个管理员,用于维护(添加、删除和修改等基本任务)学生基本信息、教师基本信息和教师所授课程等工作,此外,管理员添加学生时,为其设置初始密码;当学生选修了某门课程,课程成绩由管理员录入;

(4)  学生可以利用学号和密码登录系统,登陆系统后,可以进行选课、修改密码和个人基本信息、查询自己的选课及总学分等操作;

(5)  能够统计不同职称的教师的数量、不同职称的教师的平均工资,可以统计每门课程的平均成绩、最高分、最低分,统计每个学生选修课程的总学分;

根据上述描述,解答下列问题:

  1. 设计并画出E-R图,要求标注连通词(即联系类型);

  1. E-R图转化为关系模型,并指出各关系的主码和外码;

关系模型为:

teacher(tno,tname,tposition,tsalary,pwd),其中,tnoteacher表的主码

course(cno,cname,ccredit,tno),其中,cnocourse表的主码

student(sno,sname,ssex,sage,pwd),其中,snostudent表的主码

sc(sno,con,grade),其中,(sno,cno)sc表的主码,sno为外码,参照student(sno),cno为外码,参照course(cno)

  1. MySqlSQL ServerOracle中选择一个数据库管理系统,并设计数据库的物理结构;

创建用户byd003,密码为byd123

create user byd003 identified by byd123;

grant connect,resource,unlimited tablespace to byd003;

grant create view to byd003;

在用户byd003下创建表sutudentteachercoursesc,视图studentinfocourseinfo

drop table teacher cascade constraints;

drop table student cascade constraints;

drop table course cascade constraints;

drop table sc cascade constraints;

create table Student

(

  sno varchar(10) primary key,/*列级完整性约束条件*/

  sname varchar(20) not null unique,

  ssex char(3) check(ssex in('男','女')),

  sage smallint not null,

  pwd varchar(20) not null

);

select *from student;

create table teacher

(

  tno varchar(7) primary key,/*列级完整性约束条件*/

  tname varchar(20) not null unique,

  tposition varchar(20) not null,

  tsalary smallint not null,

  pwd varchar(20) not null

  );

select *from teacher;

create table course

(

  cno varchar(4) primary key,

  cname varchar(40) not null unique,

  ccredit smallint not null,

  tno varchar(7) not null,

  foreign key (tno) references teacher(tno)

);

select *from course;

create table sc

(

  sno varchar(10) not null,

  cno varchar(4) not null,

  grade smallint not null,

  primary key(sno,cno),

  foreign key (sno) references student(sno),

  foreign key (cno) references course(cno) 

);

select *from sc;

insert into student(sname,ssex,sno, sage, pwd) values('李勇','男','201215121',20,'123456');

insert into student(sname,ssex,sno, sage, pwd) values('刘晨','女','201215122',19,'123456');

insert into student(sname,ssex,sno, sage, pwd) values('王敏','女','201215123',18,'123456');

insert into student(sname,ssex,sno, sage, pwd) values('张立','男','201215125',19,'123456');

insert into student(sname,ssex,sno, sage, pwd) values('卟咚君','男','1606100236',19,'123456');

select *from student;

insert into teacher(tno,tname, tposition, tsalary, pwd) values('t001','张三','教授',30000,'123456');

insert into teacher(tno,tname, tposition, tsalary, pwd) values('t002','李四','副教授',35000,'123456');

insert into teacher(tno,tname, tposition, tsalary, pwd) values('t003','熊猫','教授',45000,'123456');

insert into teacher(tno,tname, tposition, tsalary, pwd) values('t004','王小二','副教授',38000,'123456');

insert into teacher(tno,tname, tposition, tsalary, pwd) values('t005','李小小','副教授',42000,'123456');

insert into teacher(tno,tname, tposition, tsalary, pwd) values('t006','李小龙','教授',60000,'123456');

select *from teacher;

insert into course values('6','数据处理',2,'t001');

insert into course values('2','数学',2,'t002');

insert into course values('7','PASCAL语言',4,'t003');

insert into course values('5','数据结构',4,'t002');

insert into course values('1','数据库',4,'t003');

insert into course values('3','信息系统',4,'t004');

本文档为数据库上机实验报告,是自己认认真真一步一步写的,报告包含试验中的具体步骤,过程以及代码和实验结果截图,和实验总结。 实验实验题目: 数据库管理系统的使用 实验目的: 掌握SQL SERVER2005的使用和数据库设计的一般方法。 实验内容: (1)SQL SERVER2005的使用 (2)数据库设计过程并利用SQL SERVER2005建立数据库实验实验题目: 数据库的定义 实验目的:掌握数据表建立、修改、删除、索引的SQL语句。 实验内容: (1)数据表的建立 (2)数据表的修改 (3)数据表的删除 (4)数据表的索引建立 为S表的DEPT建立唯一索引 (5)视图的建立与删除 建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE) 查询1983年以后出生的计算机系学生基本信息。 建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。 查询计算机系学生选课多于3门的学生学号。 查询计算机系学生2号课不及格的学生学号和成绩。 实验实验题目: 数据表的操作 实验目的: 掌握数据表数据操作的SQL语句。 实验内容: SQL语句插入数据操作 SQL语句修改数据操作 SQL语句删除数据操作 SQL语句查询数据操作 维护数据SQL语句: (1)在学生表中插入一新生信息(‘200213808’,’HUJING’,’女’,22,’计算机’) (2)删除数据库中学号为’200213801’的退学学生有关信息。 (3)将计算机系学生2号课成绩全部提高5%。 查询数据SQL语句: (4)统计有学生选修的课程门数。 (5)统计HU老师所授每门课程的学生平均成绩。 (6)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。 (7)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。 (8)检索‘OS’课成绩高于该课平均成绩的同学学号。 (1) 检索计算机系女生的学号和姓名。 (2) 检索全体学生姓名、出生年份和所在系。 (3) 检索未选修任何课程的学生学号。 (4) 检索WANG老师所授课程号、课程名。 (5) 检索所有姓LI同学的基本信息。 (6) 检索选修‘DATABASE’课程的学生学号。 (7) 检索年龄介于LIPING同学年龄和28岁之间的学生基本信息。 (8) 检索选修TIAN老师所授全部课程的学生学号。 实验实验题目: T-SQL编程 实验目的: 掌握T-SQL语句的使用。 实验内容: 1.定义一个表变量,用来存储两名学生的学号,姓名,所在系。 2.编写一个自定义的函数,该函数接受一个学生姓名,返回其学生表中基本信息及选课情况。 3.试用CASE语句输出学生表中各年龄段的学生人数。 4.编写存储过程,以系别作为参数,统计指定系别的人数,并作为存储过程的输出。 实验题目: 数据库的完整性 实验目的: 掌握数据库的完整性约束定义,完整性检查及违约处理方式。 掌握触发器的定义及使用。 实验内容: 1. 定义S, C表的完整性约束 2. 定义SC表的完整性约束,要求当其被参照表发生删除操作时,违约处理的方式为级联,当其被参照表发生修改操作时,违约处理的方式为拒绝。 3. 触发器 ☆ 建立一DML触发器,每当学生的成绩发生更新时,将更新的学号,成绩存入g-log表内 ☆ 建立一个INSTEAD OF触发器,每当修改课程表中记录时,利用触发器动作替代修改操作。 ☆ 建立一个DDL 触发器,不允许删除数据库中表,并作出响应。 实验实验题目: 数据库的安全性 实验目的: 掌握SQL SERVER 2005的安全控制机制 实验内容: 1. 创建登录 创建lg1,lg2,并设定口令 2. 定义用户 定义user1,user2,user1以lg1登录,user2以lg2登录,user1定义角色ddl_admin,datareader,datawriter 3. 掌握SQL SERVER 2005架构和用户分离的概念 为user1创建架构u1,并建立test表,通过授权模式的方法,授权给user2表访问test的权限 4. 数据库的授权、收权语句 ☆ 将查询SC表和修改GRADE属性的权限授予用户user1。 ☆ 将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。 ☆ 收回所有用户对表S的插入权限。 实验实验题目: 数据库设计 实验目的: 掌握数据库的概念结构设计和逻辑结构与设计,掌握ER图的表示方法即如何将ER模型转化为关系模型 1.学校有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中有教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课有若干学生选修。 2.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料组成,不同零件所用的材料可以相同。有些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值