数据库实验报告

更新时间:2023-12-03 14:17:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验1 数据库设计

实验名称:数据库设计

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

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

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

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

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

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

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

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

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

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

选课课程课程名称Characters (20)课程编号Characters (10)学时Characters (10)学分Characters (10)课程编号...负责授课教师教师编号Characters (20)姓名Characters (20)性别Characters (10)教师编号...学生姓名Characters (10)学号Characters (20)班级Characters (20)性别Characters (4)学院Characters (10)学号... 逻辑数据

选课选课课程编号Characters (10)姓名Characters (10)成绩Identifier_1...选课课程课程名称Characters (20)课程编号Characters (10)教师编号Characters (20)学时Characters (10)学分Characters (10)课程编号...授课授课教师编号Characters (20)课程编号Characters (10)Identifier_1...授课负责学生姓名Characters (10)学号Characters (20)班级Characters (20)性别Characters (4)学院Characters (10)学号...教师教师编号Characters (20)姓名Characters (20)性别Characters (10)教师编号... 物理数据模型

课程课程名称char(20)课程编号char(10)教师编号char(20)学时char(10)学分char(10)...选课课程编号char(10)姓名char(10)成绩character授课教师编号char(20)课程编号char(10)学生姓名学号班级性别学院...char(10)char(20)char(20)char(4)char(10) 总结:经过对这个实验的制作,信息比较多,做表格有点复杂,涉及的框架知识多,对关键字、空值、域完整性做的描述基本熟练。对概念数据模型、物理数据模型、逻辑数据模型的基本掌握。开始对数据库的设计有了一定的了解。

教师教师编号char(20)姓名char(20)性别char(10)

实验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 Files\\Microsoft SQL Server\\90\\Tools\\Binn\\VSShell\\Common7\\林碧娴',

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

(name=juxx_log,

filename='C:\\Program Files\\Microsoft SQL Server\\90\\Tools\\Binn\\VSShell\\Common7\\lin', 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')

本文来源:https://www.bwwdw.com/article/ubxt.html

Top