永发信息网

谢谢。帮忙做个数据库设计

答案:1  悬赏:0  手机版
解决时间 2021-05-06 01:08
  • 提问者网友:兔牙战士
  • 2021-05-05 10:38

数据库课程设计

数据库课程设计是在学生系统的学习了数据库原理课程后,按照关系型数据库的基本原理,综合运用所学的知识,以小组为单位,设计开发一个小型的数据库管理系统。通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。

总体设计要求:

四到五人为一个小组,小组成员既要有相互合作的精神,又要分工明确。每个学生都必须充分了解整个设计的全过程。

从开始的系统需求分析到最后的软件测试,都要有详细的计划,设计文档应按照软件工程的要求书写。

系统中的数据表设计应合理、高效,尽量减少数据冗余。

软件界面要友好、安全性高。

软件要易于维护、方便升级。

编程语言可由小组根据自己的情况选择,但一般情况下应该是小组的每个成员都对该语言较熟悉。避免把学习语言的时间放在设计期间。

参考使用的语言有:C、C++、VC++、SQL_Server等。

评分标准:

序号

报告内容

所占

比重

评分原则

不给分

及格

中等

良好

优秀

1

问题描述

5%

没有

不完整

基本正确

描述正确

描述准确

2

设计思想

10%

没有

不完整

基本可行

方案良好

很有说服力

3

具体设计的正确性

70%

不正确

不完整

基本正确

正确,清晰

正确,清晰

4

组内是否前后一致

5%

不一致

有些不一致

基本一致

一致

完全一致

5

其他

10%

包括是否按时完成,报告格式,字迹、语言等等

医院药品进销存系统

一、 设计目的

学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。

二、 设计内容

1. 主要的数据表

药品分类代码表,药品库存表,供货商信息表,采购信息表等。

2. 功能模块

1) 新药品的入库。

2) 过期药品的出库登记、处理记录。

3) 药品库存检索。

4) 供货商信息检索。

5) 药品采购记录管理。

6) 药品用药说明信息管理。

7) 输出相应的数据报表。

8) 具有数据备份和数据恢复功能。

三、 设计要求

具体项目内容去医院进行调研,药品编码也应参考国家统一编码方法。

有一个模板。可以参照着。。。。。

谢谢!先给五十。完了再按照回答情况追加分数。可以发到我的QQ邮箱里。

问题补充 2009-12-12 14:41

这是模板!!!!!!

题目要求:

设计一个教务管理系统。要求管理包括:学生的档案,学生选课的情况,学生每学期的综合测评,教师档案,教师工作量等等。具体考核方法根据自己了解的实际情况处理。

假设此次设计的教务系统是整个学生管理系统数据库中的一部分,整个系统至少还包括学籍管理等其他子系统。

在初期设计时,先关注与教务系统有关的数据。在完成对教务管理系统的建模后再对整个系统进行合并,总终得到整个系统的设计方案。

以下是简单的分析过程,请参考完成!

一、需求分析

1、 根据分析可以画出该教务管理系统的数据流图:

2、 数据字典:

数据结构:学生

含义说明:是教务管理系统的一个核心数据结构,定义了学生的有关信息

组成:学号、姓名

数据项:学号

含义说明:唯一标识每一个学生

别名:学生编号

类型:字符型

长度:9位

取值范围:190000000 – 999999999

取值含义:前四位表明学生所在年级,后五位安顺序编号

数据项:姓名

含义说明:表示学生的姓名

类型:字符型

长度:10位

取值范围:任意字符

数据结构:教师

含义说明:教务管理系统的核心数据结构之一,定义了教师的有关信息

组成:教师号,教师姓名

数据项:教师号

含义说明:教师的编号

类型:字符型

长度:5位

取值范围:10000 – 99999

数据项:教师姓名

含义说明:教师的姓名

类型:字符型

长度:10位

取值范围:任意合法的字符

数据结构:课程

含义说明:教务管理系统的核心数据结构之一,定义了课程的有关信息

组成:课程号,课程名,课程描述,教师,教室,教科书,学分

数据项:课程号

含义说明:课程的编号

类型:字符型

长度:4

取值范围:0001 – 9999

数据项:课序号

含义说明:对于同一课程,由不同老师教授,用课序号来区分

类型:字符型

长度:2

取值范围:01 – 99

数据项:课程名

含义说明:课程的名称

类型:字符型

长度:10

取值范围:任意合法的字符

数据项:课程描述

含义说明:课程内容的基本描述

类型:字符型

长度:200

取值范围:任意合法字符

数据项:教科书

含义说明:课程所用的教科书

类型:字符型

长度:20

取值范围:任意合法字符

数据项:学分

含义说明:课程的学分

类型:整型

长度:1

取值范围:1-9

数据结构:教室

含义说明:上课所用的教室

组成:教室编号,教室地址,教室容量

数据项:教室编号

含义说明:教室的编号

类型:字符

长度:5

取值范围:00001-99999

数据项:教室地址

含义说明:标明教室的地址

类型:字符

长度:30

取值范围:任意合法的字符

数据项:教室容量

含义说明:教室的容纳学生的数量

类型:整型

取值范围:正整数

数据结构:选课记录

含义说明:纪录学生选课的纪录

组成:学生,课程,成绩

数据项:成绩

含义说明:选课学生本学期的成绩

类型:浮点数

范围:0.0 – 100.0

处理过程:分配教室

说明:为所有课程分配上课教室

输入:课程,教室

输出:教室安排

处理:学期课程决定后,要为每个课程安排上课地点,要求上课的地点不能冲突且上课人数不能超过教室容量。

处理过程:分配考场

说明:在考试日期,为所有课程分配考场

输入:课程,教室

输出:考场安排

处理:为每个课程安排考场,考试时间和地点不能冲突且考试人数不能超过考场容量。

数据存储:成绩单

说明:记录学生本学期所有课程成绩

流入数据流:学生所有的选课记录

流出数据流:学生的成绩单

数据量:由学生的人数决定

存取方式:随机存取

二、概念结构设计

1、根据需求分析画出E-R图:

2、 根据E-R图写出各个实体的属性描述

学生:{学号,姓名}

课程:{课程号,课程名,课程描述,学分}

教师:{教师号,教师名,课程数}

教室:{教室编号,地址,容量}

3、 视图的集成

假设在学生管理系统的学籍管理系统中存在另一个学生实体,其中还包括以下信息:性别,所属专业,所属班级。为了使两个实体保持一致,对两个实体取并集得到新的学生实体:

学生:{学号,姓名,性别,专业,班级}

三、逻辑结构设计

1、 由E-R图向数据模型的转换

一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。所以,E-R图中的属性描述可直接转换为相应的关系模式。

2、 对于剩余的一对多和多对多联系可以如下表示

学生-课程:{学号,课程号,课序号,成绩}

课程-教师:{课程号,课序号,教师号}

课程-教科书:{课程号,课序号,教科书}

教室-课程:{教室号,时间,课程号,课序号}

其中 课程-教师 与 课程-教科书 具有相同的主码,可以合并成一个关系

教学:{课程号,课序号,教师号,教科书}

最后得到的关系模式为

学生:{学号,姓名,性别,专业,班级}

课程:{课程号,课程名,课程描述,学分}

教师:{教师号,教师名,课程数}

教室:{教室号,地址,容量}

学生-课程:{学号,课程号,课序号,成绩}

教学:{课程号,课序号,教师号,教科书}

教室-课程:{教室号,时间,课程号,课序号}

3、 用户外模式

根据需求,为计算综合测评增加一个外模式,因为综合测评只在学期末进行,查询次数不多,所以没有必要用冗余的方法来提高查询效率,只需要建立一个外模式视图即可。

测评{学号,学生姓名,平均成绩}

4、 根据设计写出相应的SQL语句:

CREATE TABLE student

(

Sno VARCHAr(9) CONSTRAINT pk_student PRIMARY KEY,

Sname VARCHAr(10) NOT NULL,

Sex VARCHAr(1) NOT NULL,

Major VARCHAr(10) NOT NULL,

Class VARCHAr(10) NOT NULL,

CHECK (Sex = 'f' OR Sex = 'm')

)

CREATE TABLE course

(

Cno VARCHAr(4) CONSTRAINT pk_course PRIMARY KEY,

Cname VARCHAr(10) NOT NULL,

Describe VARCHAr(200) ,

Mark INTEGER

)

CREATE TABLE teacher

(

Tno VARCHAr(5) CONSTRAINT teacher_pk PRIMARY KEY,

Tname VARCHAr(10) NOT NULL,

Ccnt INTEGER NOT NULL DEFAULT 0

)

CREATE TABLE classroom

(

Rno VARCHAr(5) CONSTRAINT pk_classroom PRIMARY KEY,

Locate VARCHAr(30) NOT NULL,

Cap INTEGER

CHECK (Cap > 0)

)

CREATE TABLE tech

(

Cno VARCHAr(4) NOT NULL CONSTRAINT fk_course_cno FOREIGN KEY REFERENCES course(Cno)

ON UPDATe CASCADE --级联更新

ON DELETE CASCADE, --级联删除

SCno VARCHAr(2) NOT NULL,

Tno VARCHAr(5) CONSTRAINT fk_teacher_tno FOREIGN KEY REFERENCES teacher(Tno)

ON UPDATE CASCADE

ON DELETE CASCADE,

Book VARCHAr(20)

CONSTRAINT pk_tech PRIMARY KEY (Cno,SCno)

)

CREATE TABLE SC

(

Sno VARCHAr(9) NOT NULL CONSTRAINT fk_student_sno FOREIGN KEY REFERENCES student(Sno)

ON UPDATE CASCADE

ON DELETE CASCADE,

Cno VARCHAr(4) NOT NULL CONSTRAINT fk_sc_course_cno FOREIGN KEY REFERENCES course(Cno)

ON UPDATE CASCADE

ON DELETE CASCADE,

SCno VARCHAr(2) NOT NULL,

Score FLOAT

CONSTRAINT pk_sc PRIMARY KEY (Sno,Cno,SCno)

)

CREATE TABLE RC

(

Rno VARCHAr(5) CONSTRAINT fk_classroom_rno FOREIGN KEY REFERENCES classroom(Rno)

ON UPDATE CASCADE

ON DELETE CASCADE,

Time DATETIME,

Cno VARCHAr(4) NOT NULL CONSTRAINT fk_rc_course_cno FOREIGN KEY REFERENCES course(Cno)

ON UPDATE CASCADE

ON DELETE CASCADE,

SCno VARCHAr(2) NOT NULL

CONSTRAINT pk_rc PRIMARY KEY (Rno,Time)

)

为进行综合测评增加一个外模式

CREATE VIEW assess AS

SELECT SC.sno, sname, AVG(score) as average FROM SC,Student

where SC.sno = student.sno

GROUP BY SC.sno,sname

为了符合数据的参照完整性约束,避免学生选课的时候选择一个不存在的课程号-课序号组,增加一个外键约束。

ALTER TABLE sc

ADD CONSTRAINT fk_sc_tech FOREIGN KEY (Cno,SCno) REFERENCES tech(Cno,SCno)

ON UPDATe CASCADE

ON DELETE CASCADE

为了在插入一个新课程时能级联更新教师的工作量,增加一个触发器。此任务也可以通过建立一个外模式视图来动态统计,为了练习的目的这里采用了触发器

CREATE TRIGGER workcnter On tech

AFTER INSERT ,UPDATE, DELETE

AS

BEGIN

DECLARE @T VARCHAr(5)

IF EXISTS

(

SELECT TOP 1 Tno FROM INSERTED

)

BEGIN

SET @T = (SELECt TOP 1 Tno FROM INSERTED )

UPDATe teacher SET Ccnt = Ccnt + 1 WHERe Tno = @T

END

IF EXISTS

(

SELECT TOP 1 Tno FROM DELETeD

)

BEGIN

SET @T = (SELECT TOP 1 Tno FROM DELETED)

UPDATE teacher SET Ccnt = Ccnt - 1 WHERe Tno = @T

END

END

关于课程容量:如何保证选课的学生数量不超过教室的容量?

初步解决办法是:在学生选课时建立暂时不考虑容量问题,都加入一个临时的SC表中。然后,在选课结束后将未超额的记录直接加入SC表,超额的课程进行抽签,将命中部分学生的选课记录插入SC表,直到人数符合课程容量的要求为止。

抽签的功能较适合用顶层的高级语言来实现。在选课结束后,选超额课程的学生需登陆选课系统进行抽签,抽签的过程可以使用概率算法,如果抽中,系统再将选课记录插入SC表,否则就从临时表中删除。

所以,在数据库系统中,没有对SC表的插入操作进行约束。

最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-05-05 11:13
你好。
很幸运看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
对于你的问题我爱莫能助!
可能是你问的问题有些专业了。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
快过年了,
最后祝您全家幸福健康快乐每一天!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯