实验三 SJK数据库设计

实验题目

实验三 SJK数据库设计

实验时间

2023.3.22

实验地点

软件工程基础实验室

实验课时

2

实验目的

​掌握数据库设计基本方法及数据库设计工具。

实验要求

​ 掌握数据库设计基本步骤,包括数据库概念结构设计、逻辑结构设计,物理结构设计,数据库模式SQL语句生成。能够使用数据库设计工具进行数据库设计。

实验步骤

及内容

 设计一个教务信息系统的数据库。数据库包含院系信息,学生信息,教师信息,课程信息,学生选课信息,考试信息。其中,一个学生属于一个院系,可以选修多门课程。一个教师属于一个院系,可以任教多门课程,一门课程也可以有多个老师任教。一门课程有多个课程安排,可以有多场考试安排。

(1)数据库概念结构设计

​ 识别出学生,教师,院系,课程,考试,课程安排六个实体。每个实体的属性、码如下:

学生Student:学号sno,姓名sname,性别ssex,年龄sage,班级class,院系编号dno。主码:学号sno。

教师teacher:编号tno,姓名tname,性别tsex,年龄tage,院系dno,职称title。主码:编号tno。

院系department:院系名depart_name,院系编号dno,院长编号dean_tno。主码:院系编号dno。

课程course:课程号cno,课程名course_name,学时数hours,学分credit,类型type,开设院系dno。主码:课程号。

课程安排course_arrangement:课程号cno,周次week,节次course_time,教室classroom。主码:课程号cno,周次week,节次course_time

考试安排exam_arrangement:课程号cno,考试时间exam_time,考试时长hours,考试地点classroom。主码:课程号,考试地点。

​ 根据语义,分析实体之间的联系,确定实体之间一对一,一对多和多对多联系。

SQL语句生成

​ 由PowerDesigner生成的SQL语句如下:

if exists(select 1 from sys.sysforeignkey where role='fk_sc_s') then

    alter table sc

       delete foreign key fk_sc_s

end if;

if exists(select 1 from sys.sysforeignkey where role='fk_sd') then

    alter table student

       delete foreign key fk_sd

end if;

if exists(

   select 1 from sys.systable

   where table_name='student'

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

) then

    drop table student

end if;

/*==============================================================*/

/* Table: student                                               */

/*==============================================================*/

create table student

(

   sno                  char(12)                       not null,

   sname                char(25)                       null,

   ssex                 char(2)                        null,

   sage                 small int                       null,

   class                char(8)                        null,

   dno                  char(2)                        null,

   constraint PK_STUDENT primary key clustered (sno)

);

alter table student

   add constraint fk_sd foreign key (dno)

      references department (dno)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值