admin 管理员组

文章数量: 1086019


2023年12月22日发(作者:多接口测试)

数据库实验报告

【篇一:数据库实验报告】

实验1 数据库设计

实验名称:数据库设计

实验内容:以所在学校选课和课程管理为实际应用背景,设计一个教学管理数据库。假设至少包含以下需求: 学生信息管理; 课程信息管理; 教师信息管理;

学生选修课程及成绩信息管理; 教师负责课程和讲授课程信息管理。

实验目的:

通过实践,掌握本章介绍的数据库设计方法。 学会使用powerdesigner来完成数据库设计过程。 实验方法:

(1)根据实验内容明确要完成的系统功能。

(2)运行powerdesigner创建概念数据模型转换成逻辑数据模型,建立实体、属性和联系。对关键字、空值、域完整性等做出必要的描述,根据实际情况确定联系的类型。

(3)将检查无误的概念数据类型转换成逻辑数据模型,并对生成的逻辑数据模型作必要的修改。

(4)选择一个实际的dbms软件根据逻辑数据模型生成物理数据模型,并对生成的物理数据模型作必要的修改。 实验要求:

使用powerdesiger或其他建模工具完成本实验。

建立满足需求的概念数据模型,逻辑数据模型和物理数据模型。 提交实验报告(含完整的设计文档)。

实验过程、源程序、运行结果及简单分析: 概念数据模型

逻辑数据

物理数据模型

总结:经过对这个实验的制作,信息比较多,做表格有点复杂,涉及的框架知识多,对关键字、空值、域完整性做的描述基本熟练。对概念数据模型、物理数据模型、逻辑数据模型的基本掌握。开始对数据库的设计有了一定的了解。

实验2 建立表和完整性约束

实验名称:建立数据库、架构、表和定义完整性约束

实验内容:参见2.1.7数据库的create database命令首先建立数据库,然后参照图5-1和表5-8建立表并定义完整性约束,可以在此基础上根据自己学校的实际情况增加表、字段和约束等。

实验目的:熟练掌握表的建立和数据完整性约束的定义方法,实践dbms提供的数据完整性功能,加深对数据完整性的理解。

实验方法:用create database命令建立数据库,使用create

schema命令建立架构,用create table命令建立表并定义数据完整性约束,用alter table命令修改表结构。 实验要求:

(1)用create database命令建立数据库(自己命名数据库的名称)。 用create schema命令建立架构(自己命名架构名称)。

在定义的架构下参照图5-1所示的样本数据库和表5-8的具体要求使用create table命令建立表并定义完整性约束。

用alter table命令按如下要求修改表结构:

为学生表增加一个“平均成绩”字段,类型为短整数,默认是空值;

为课程表的“学时”字段重新定义约束:取值为8的倍数,不允许为空值; 将院系表的名称字段的类型修改为varchar(30)。为教师表增加一个工资字段,类型为5位整数、2位小数的数值型。

实验过程、源程序、运行结果及简单分析: 建立数据库

create database 教务信息 on (name = juxx_dat,

filename = c:program filesmicrosoft sql

server90toolsbinnvsshellcommon7林碧娴,

size=10mb, maxsize=50mb, filegrowth=5mb) log on

(name=juxx_log,

filename=c:program filesmicrosoft sql

server90toolsbinnvsshellcommon7lin,size=5mb,

maxsize=25mb,filegrowth=5mb) 建立架构

create schema 教务信息

定义表及完整性约束

create table 教务信息.院系 (编号smallint primary key, 名称char(20)not null, 负责人char(10), 办公地点char(20))

create table 教务信息.学生 (学号char(8)primary key,

院系smallint foreign key references 教务信息.院系(编号), 姓名char(10)not null,

性别char(2)check(性别= 男 or 性别= 女), 生源char(6),

状态char(4)check(状态= 正常 or 状态= 留级 or 状态= 休学 or 状态= 退学))

create table 教务信息.教师 (教师编号char(8)primary key,

院系smallint foreign key references 教务信息.院系(编号), 姓名char(10)not null,

性别char(2)check(性别= 男 or 性别= 女),

职称char(6)check(职称= 教授 or 职称= 副教授 or 职称= 讲师 or

职称= 助教), 专业char(10))

create table 教务信息.课程 (课程编号char(8)primary key, 课程名称char(20)not null,

责任教师char(8)foreign key references 教务信息.教师(教师编号),

学时int not null,

课程性质char(10)check(课程性质= 公共基础 or 课程性质= 专业基础 or 课程性质= 专业选修 or 课程性质= 任意选修))

create table 教务信息.选课

(学号char(8)primary key foreign key references 教务信息.学生(学号), 课程编号char(8)foreign key references 教务信息.课程(课程编号), 成绩int check(成绩=0 and 成绩=100)default null) 修改表结构

alter table 教务信息.学生

add 平均成绩smallint default null

alter table 教务信息.课程

add constraint sb check (学时% 8=0)

alter table 教务信息.院系 alter column 名称varchar(30)

alter table 教务信息.教师 add 工资numeric (7,2) 总结:

通过此次的实验,让我对使用create database命令建立数据库有了更加熟练的认识,

对create schema命令建立架构的基本掌握,学会了使用create

table命令建立表并定义数据完整性约束,也alter table命令修改表架构。学到了更多,懂得了更多。

实验3 数据操作及完整性约束体验

实验名称:数据操作及完整性约束体验

实验内容:在实验2的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操作中体会数据完整性约束的作用。

实验目的:熟练掌握sql的insert、update和delete命令,深刻理解数据完整性约束的作用以及约束时机。

实验方法:在实验2的基础上首先用insert命令插入各个表的记录,然后使用update和delete命令对部分记录进行修改和删除操作。

实验要求:

(1)读者自行设计各个表的记录,记录院系表至少10条记录、学生表至少30条记录、课程表至少10条记录、教师表至少10条记录、选课表至少50条记录。

(2)使用insert命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户完整性约束的插入操作,并分析原因。

(3)设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除、和级联删除等不同的处理方式)。

(4)设计若干更新操作,体会执行更新操作时检查实体完整性规则、参照完整性规则和定义完整性规则的效果。

(5)在实验报告中要给出具体的记录和设计的操作,并针对各种数据完整性检查给出具体的分析和讨论。

实验过程、源程序、运行结果及简单分析: 插入数据

insert into 教务信息.院系values(01,理学院,e1,二教) insert into

教务信息.院系values(02,财经学院,e2,三教) insert into 教务信息.院系values(03,电气学院,e3,四教) insert into 教务信息.院系values(04,土建学院,e4,四教) insert into 教务信息.院系values(05,医学院,e5,三教) insert into 教务信息.院系values(06,外语学院,e6,三教) insert into 教务信息.院系values(07,管理学院,e7,三教)

insert into 教务信息.院系values(08,麓山学院,e8,五教) insert into

教务信息.院系values(09,汽车学院,e9,六教) insert into 教务信息.院系values(10,生化学院,e10,三教)

insert into 教务信息.学生values(2012001,01,林一,女,南宁,正常,80) insert into 教务信息.学生values(2012002,02,雷一,女,崇左,正常,90) insert into 教务信息.学生values(2012003,01,莫一,女,河池,正常,80) insert into 教务信息.学生values(2012004,05,曹一,女,北海,正常,80) insert into 教务信息.学生values(2012005,04,董一,女,百色,正常,80) insert into 教务信息.学生values(2012006,07,封一,女,南宁,正常,80)

【篇二:数据库实验报告】

数据库技术i 实验报告

系别:计算机科学与技术 班级:计11-2班 姓名:xxx 学号:

成绩: 评语:

指导教师签字:日期:

《数据库技术i》实验报告

一、 实验题目

掌握sql server 2005的启动及sql server management studio集成管理器的使用。熟悉如何在sql server 2005环境下如何建立数据库和基本表、视图、索引。了解sql查询编辑器的启动,学会如何在sql查询编辑器中调试及执行sql语句

二、 实验环境及要求

sql server 2005

sql server management studio

三、 实验步骤及结果

1.在sql server 2005下创建一个数据库s,数据库下新建3个表,s,c,sc,分别存放学生基本信息,课程基本信息,成绩信息。

s表:

c表:

sc表:

2.按照要求完成各项查询要求。

1)查询每个学生的学号、姓名、选修的课程名及成绩。 代码

select sno,sname,cname,grade from s,c,sc

where = and =

2)查询与“刘晨”在同一个系学习的学生信息。 代码

select * from s

where sdept=(select sdept

from s

where sname=’刘晨’)

3)求每门课程的选课人数。并按选课人数的降序排列。 代码

select ,count(sno) from sc

group by cno

order by count(sno) desc;

4)对每一个系,求学生的平均年龄,并把结果存入一个新的表avgage中。

在数据库中先新建一个表avgage 代码

insert

into avgage(sdept,savg) select sdept,avg(sage) from s

group by sdept;

5)将学生的学号及他的平均成绩定义为一个视图sg,并在sg视图中查询平均成绩在90分以上的学生学号和平均成绩。

创建视图代码

create view sg(sno,gavg) as

select sno,avg(grade) from sc

group by sno; 查询代码 select * from sg

where gavg=90;

因为数据是修改之前的,所以没有平均成绩大于90的

6)对每个同学求出他所获得最高成绩的信息。结果显示:学号、课程名、最高成绩。

代码

select sno,cno,gradefrom sc s1where grade=(select

max(grade)from sc s2

where =

);

7)将计算机系的所有同学的数据库课程成绩提高5分。

代码

update sc

set grade=grade+5

where =1 and cs= (

select sdept from s

where =

);

四、 实验中的问题及解决方法

在创建表的时候没有设置主键,输入数据运行时才检查到错误,但是列的唯一行不会设

【篇三:数据库实验报告】

洛阳理工学院实验报告


本文标签: 数据库 信息 实验 完整性 课程