实验一 数据库设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一数据库设计

实验名称:数据库设计

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

学生信息管理;

课程信息管理;

教师信息管理;

学生选修课程及成绩信息管理;

教师负责课程和讲授课程信息管理。

实验目的:

通过实践,掌握本章介绍的数据库设计方法。

学会使用PowerDesigner来完成数据库设计过程。

实验方法(或程序源代码):

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

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

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

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

实验数据、结果分析、总结问题:

(1)学生选课系统扥E-R图

(2)概念数据模型图如下

(3)逻辑数据模型图如下(4)物理数据模型图如下

(5)系统生成的代码为:

if exists(select 1 from sys.sysforeignkey where role='FK_教授课程_RELATIONS_学生') then

alter table 教授课程

delete foreign key FK_教授课程_RELATIONS_学生

end if;

if exists(select 1 from sys.sysforeignkey where role='FK_教授课程_RELATIONS_教师') then

alter table 教授课程

delete foreign key FK_教授课程_RELATIONS_教师

end if;

if exists(select 1 from sys.sysforeignkey where role='FK_负责课程_RELATIONS_课程') then

alter table 负责课程

delete foreign key FK_负责课程_RELATIONS_课程

end if;

if exists(select 1 from sys.sysforeignkey where role='FK_负责课程_RELATIONS_教师') then

alter table 负责课程

delete foreign key FK_负责课程_RELATIONS_教师

if exists(select 1 from sys.sysforeignkey where role='FK_选修课程_RELATIONS_学生') then

alter table 选修课程

delete foreign key FK_选修课程_RELATIONS_学生

end if;

if exists(select 1 from sys.sysforeignkey where role='FK_选修课程_RELATIONS_课程') then

alter table 选修课程

delete foreign key FK_选修课程_RELATIONS_课程

end if;

if exists(

select 1 from sys.systable

where table_name='学生'

and table_type in ('BASE', 'GBL TEMP')

) then

drop table 学生

end if;

if exists(

select 1 from sys.systable

where table_name='教师'

and table_type in ('BASE', 'GBL TEMP')

) then

drop table 教师

end if;

if exists(

select 1 from sys.systable

where table_name='教授课程'

and table_type in ('BASE', 'GBL TEMP')

) then

drop table 教授课程

end if;

if exists(

select 1 from sys.systable

where table_name='课程'

and table_type in ('BASE', 'GBL TEMP')

) then

drop table 课程

if exists(

select 1 from sys.systable

where table_name='负责课程'

and table_type in ('BASE', 'GBL TEMP')

) then

drop table 负责课程

end if;

if exists(

select 1 from sys.systable

where table_name='选修课程'

and table_type in ('BASE', 'GBL TEMP')

) then

drop table 选修课程

end if;

create table 学生

(

学号 char(8) not null, 院系 smallint null,

姓名 char(10) null,

性别 char(2) null,

生源 char(6) null,

状态 char(4) null,

constraint PK_学生 primary key (学号)

);

create table 教师

(

教师编号 char(8) not null, 院系 smallint null,

姓名 char(10) null,

性别 char(2) null,

职称 char(6) null,

专业 char(10) null,

constraint PK_教师 primary key (教师编号)

);

create table 教授课程

(

教师编号 char(8) not null, 学号 char(8) not null,

相关文档
最新文档