当前位置:文档之家› (终结版)数据库设计指导书要点

(终结版)数据库设计指导书要点

(终结版)数据库设计指导书要点
(终结版)数据库设计指导书要点

《数据库系统》课程设计指导书

一、课程设计的目的和意义

数据库系统课程设计是实践性教学环节之一,是《数据库系统》课程的辅助教学课程。通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。

二、设计要求

通过设计一个完整的数据库,使学生掌握数据库设计各阶段的输入、输出、设计环境、目标和方法。熟练掌握两个主要环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。集中安排3周进行课程设计,教师讲解数据库的设计方法以及布置题目,要求学生根据题目的需求描述,进行实际调研,提出完整的需求分析报告。

要求如下:

1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。

2、既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。

3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。

4、课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。

5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。

6、如分组,小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。

三、课程设计选题的原则

课程设计题目以选用学生相对比较熟悉的业务模型为宜,要求通过本实践性教学环节,能较好地巩固数据库的基本概念、基本原理、关系数据库的设计理论、设计方法等主要相关知识点,针对实际问题设计概念模型,并应用现有的工具完成小型数据库的设计与实现。具体选题见附录1。

四、课程设计的一般步骤

课程设计大体分五个阶段:

1、选题与搜集资料:根据分组,选择课题,在小组内进行分工,进行系统调查,搜集资料。

2、分析与设计:根据搜集的资料,进行功能与数据分析,并进行数据库、系统功能等设计。

3、程序设计:运用掌握的语言,编写程序,实现所设计的模块功能。

4、调试与测试:自行调试程序,成员交叉测试程序,并记录测试情况。

5、验收与评分:指导教师对每个小组的开发的系统,及每个成员开发的模块进行综合验

收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。

五、本课程设计内容与要求

掌握数据库的设计的每个步骤,以及提交各步骤所需图表和文档。通过使用目前流行的DBMS(SQL Server 2005或2008),建立所设计的数据库,并在此基础上实现数据库查询、连接,视图、游标、存储过程和触发器的创建等数据库的后台操作。

1、需求分析:根据自己的选题,绘制相应的数据流图(DFD)以及书写相关的文字说明。

2、概念结构设计:绘制所选题目详细的E-R图。

3、逻辑结构设计:将E-R图转换成等价的关系模式;按需求对关系模式进行规范化;对规范化后的模式进行评价,调整模式,使其满足性能、存储等方面要求;根据局部应用需要设计外模式。

4、物理结构设计:选定实施环境,存取方法等。

5、数据实施和维护:用SQL Server 2005建立数据库结构,加载数据,实现各种查询、链接应用程序,并能对数据库做简单的维护操作(视图、索引、游标、存储过程和触发器的创建)。

6、设计小结:总结课程设计的过程、体会及建议。

7、其他:参考文献等。

七、课程设计报告格式要求

1、课程设计要求不少于A4纸10页,5号字1.5倍行距。

2、结构要求:一般要求有题目、序言、需求分析(用户需求分析、业务流程分析、信息需求分析、功能需求分析)、概念结构设计(数据库需求分析、设计E-R图)、逻辑结构设计(数据库关系模式、逻辑模型设计)、物理结构设计、数据实施和维护(创建数据库和表、设计表的索引和表间的关系、创建视图和游标、创建存储过程和触发器、数据库的备份还原及数据的导入/导出)、设计小结、参考文献、附录(核心代码)。

附录1:课程设计题目

各选题的功能及数据库的参考关系如下:

一、学生成绩管理系统

学生成绩管理系统数据库总共包含4个数据表:学生表、教师表、课程表、成绩表,其结构和有关数据可参考excel数据表“xscj.xls”或学生成绩管理系统数据库备份文件,要求使用SQL语句完成下列功能:

1、对上述数据库进行需求分析,然后进行概念结构设计和逻辑结构设计,画出详细的E-R 图,并转换成等价的关系模式。

2、对上述4个表分别设定主键、外键,建立彼此的关联。

3、使用SQL语句或用SQL Server Management Studio建立上述学生成绩数据库和它所包含的4个数据表。

4、查询数据库

(1)查询女教师的教师编号、姓名和出生日期。

select教师编号,姓名,出生日期

from教师表

where性别='女';

go

(2)根据教师的年龄,将教师分为:老年(大于等于50岁)、中年(40岁至50岁之间)和青年(小于等于40岁)。

select 教师编号,姓名,

年龄=case

when(2016-year(出生日期))between 40and 50then '中年'

when(2016-year(出生日期))<=40 then '青年'

else '老年'

end

from 教师表

go

(3)查询选修“大学英语”的学生的姓名,并按照分数从高到低输出前3名。

Select top 3 姓名

From学生表,成绩表,课程表

Where学生表.学号=成绩表.学号AND课程表.课程号=成绩表.课程号AND课程表.课程名='大学英语'

Order by分数

desc;

(4)查询体育学院和外语学院,而且在1986年出生的学生信息。

select*

from学生表

where院系名称='体育学院'or

院系名称='外语学院'and year(出生日期)=1986;

go

(5)查询计算机学院姓张,并且姓名是两个字的学生的信息。

select*

from学生表

where院系名称='计算机学院'and len(姓名)=2

and姓名like'张%';

go

(6)查询所有学生的分数信息,如果分数大于等于80,则为“优秀”;大于等于60,则为“及格”;小于60,则为“不及格”。使用CASE函数给每个学生的分数设定等级。

select学号,课程号,分数,等级=case

when分数>=80 then'优秀'

when分数>=60 then'及格'

else'不及格'

end

from成绩表

go

(7)统计选修了5号课程的学生的总分、平均分、最高分和最低分。

select sum(分数),avg(分数),max(分数),min(分数)

from成绩表

where课程号=5;

go

(8)统计每门课程的总分和平均分,并按平均分从高到低排序输出。

select课程号,总分=sum(分数),平均分数=avg(分数)

from成绩表

group by课程号

order by avg(分数)desc;

go

(9)统计每个学院学生的男女生人数。

select院系名称,性别,count(*)

from学生表

group by院系名称,性别;

go

(10)查询选修了“数据库应用”课程的学生的学号和姓名。

USE xscj

GO

SELECT学号,姓名FROM学生表

WHERE学号IN

(SELECT学号FROM成绩表

WHERE课程号IN

(SELECT课程号

FROM课程表

WHERE课程名='数据库应用'))

GO

(11)查询分数都大于王林分数的学生、课程名和分数。

use xscj

go

select姓名,课程名,分数

from学生表,课程表,成绩表

where学生表.学号=成绩表.学号

and课程表.课程号=成绩表.课程号

and分数>all(select成绩表.分数

from学生表,课程表,成绩表

where学生表.学号=成绩表.学号

and课程表.课程号=成绩表.课程号

and学生表.姓名='汤腾飞')

and姓名<>'汤腾飞'

go

(12)定义一个函数,该函数用来查询每个学生每门课程的分数,并返回查询结果。然后调用函数,求出某个学生的学号、姓名、课程名、课程号和分数。

use xscj

go

create view score

as

select 姓名,课程名,分数,课程表.课程号,学生表.学号

from 学生表,课程表,成绩表

where 学生表.学号=成绩表.学号

and 课程表.课程号=成绩表.课程号

go

create function stu_score( @stu_name char(6))

returns table

as

return

(select * from score

where 姓名= @stu_name)

select *

from dbo.stu_score('高黎明')

go

(13)查询年龄最小的学生的学号和姓名。

(14)查询每个学生的平均分。

select姓名,平均分=

(select avg(分数)

from成绩表

where学生表.学号=成绩表.学号)

from学生表;

go

(15)将学生表中计算机学院的学生的学号、姓名、性别数据添加到student表中。

select学号,姓名,性别

into student

from学生表

where院系名称='计算机学院';

go

5、创建视图

(1)创建“学生_课程_分数”视图,包括计算机学院的学生的学号、姓名,和他们选修的课程号、课程名、分数。

create view学生_课程_分数

as

select学生表.学号,姓名,课程表.课程号,课程名,分数

from学生表,课程表,成绩表

where学生表.学号=成绩表.学号and课程表.课程号=成绩表.课程号and学生表.院系名称='计算机学院'

(2)创建“不及格学生信息”视图,包括全校学生中有不及格成绩的姓名、课程名、分数。use xscj

go

create view不及格学生

as

select姓名,课程名,分数

from学生表,课程表,成绩表

where学生表.学号=成绩表.学号and课程表.课程号=成绩表.课程号and分数<60

go

(3)创建“教师信息”视图,查看教师的所有信息资料。

use xscj

go

create view教师信息

as

select*

from教师表

go

(4)创建“课程信息”视图,包括课程号、课程名、学分、任课教师等信息。

CREATE VIEW课程信息

AS

SELECT课程表.课程号,课程表.课程名,课程表.学分,教师表.姓名,教师表.教师编号

FROM课程表CROSS JOIN教师表

GO

(5)查询“学生_课程_分数”视图,统计“数据库应用”课程的总分和平均分。

select总分=SUM(分数),平均分=AVG(分数)

from学生_课程_分数

where课程名='数据库应用'

go

6、游标的创建和使用

(1)利用T-SQL扩展方式声明一个游标,查询学生表中的学号、姓名、性别和出生日期信息,并读取数据。要求:

1) 读取最后一条记录。FETCH LAST FROM 学生

2) 读取第一条记录。FETCH FIRST FROM 学生

3) 读取第4条记录。FETCH ABSOLUTE 4 FROM 学生

4) 读取当前记录指针位置后第2条记录。FETCH RELATIVE 2 FROM 学生

5) 读取当前记录指针位置前第2条记录。FETCH RELATIVE -2 FROM 学生

use xscj

go

declare学生cursor

scroll

for

select学号,姓名,性别,出生日期

from学生表

open学生

fetch last from学生

fetch first from学生

fetch absolute 4 from学生

fetch relative 2 from学生

fetch relative-2 from学生

go

(2)编写一个程序,采用游标方式输出所有学号、课程号和成绩等级。USE xscj

GO

DECLARE @no1 char(5),@no2 char(6),@fs char(2)

DECLARE fs_cursor CURSOR

FOR SELECT学号,课程号,

CASE

WHEN分数>=90 THEN'A'

WHEN分数>=80 THEN'B'

WHEN分数>=70 THEN'C'

WHEN分数>=60 THEN'D'

WHEN分数<60 THEN'E'

END

FROM成绩表WHERE分数IS NOT NULL

ORDER BY学号

OPEN fs_cursor

FETCH NEXT FROM fs_cursor INTO @no1,@no2,@fs

PRINT'学号课程号等级'

PRINT'-----------------'

WHILE@@FETCH_STATUS= 0

BEGIN

PRINT @no1+' '+@no2+' '+@fs

FETCH NEXT FROM fs_cursor INTO @no1,@no2,@fs

END

CLOSE fs_cursor

DEALLOCATE fs_cursor

GO

(3)使用游标查看数据库XSCJ中“学生表”中计算机学院的记录个数。use xscj

go

declare学生表_计算机cursor

for

select学号,姓名

from学生表

where院系名称='计算机学院'

open学生表_计算机

fetch next from学生表_计算机

while@@fetch_status= 0

begin

fetch next from学生表_计算机

end

7、创建存储过程

(1)用T-SQL语句创建一个存储过程StuScoreInfo,完成的功能是在学生表、课程表和成绩表中查询以下字段:院系、学号、姓名、性别、课程名称、考试分数。

use xscj

go

create procedure StuScoreInfo

as

select院系名称,学生表.学号,姓名,性别,课程表.课程名,成绩表.分数

from学生表,课程表,成绩表

where学生表.学号=成绩表.学号and课程表.课程号=成绩表.课程号

go

(2)创建一个带有参数的存储过程Stu_Info,该存储过程根据输入的学号,在学生表中查询此学生的信息。

create procedure Stu_Info

@s_number char(8)

as

select*from学生表

where学号= @s_number

go

(3)对学生表建立存储过程,在表中插入一条记录。然后执行该存储过程,验证插入一条学生记录的结果。

create procedure Stu_1

as

insert into学生表(学号)

values('10089');

go

(4)对课程表建立存储过程,根据课程号在课程表中删除某个课程记录。(注意,要首先在成绩表中删除相关记录),然后执行存储过程,验证结果。

create procedure Stu_1

as

insert into学生表(学号)

values('10089');

go

(5)对成绩表建立存储过程,根据学号修改某个同学的某门课的成绩,然后执行存储过程。use xscj

go

create procedure gra_1

@number float(8)

as

update分数

set分数= 88

where学号= @number and课程号='5';

go

(6)对教师表创建存储过程,根据年龄划分等级:老年(大于等于50岁)、中年(40岁至50岁之间)和青年(小于等于40岁)。

create procedure tec_1

@birthday datetime

as

select姓名,

年龄等级=case

when(2013-YEAR(出生日期))>=50 then'老年'

when(2013-YEAR(出生日期))<=40 then'青年'

when(2013-YEAR(出生日期))between 40 and 50 then'中年'

end

from教师表

go

(7)创建存储过程,查询所有学生的分数信息,如果分数大于等于80,则为“优秀”;大于等于60,则为“及格”;小于60,则为“不及格”。使用CASE函数给每个学生的分数设定等级。查询出的结果应尽量清晰。

create procedure stu_2

@分数float

as

select姓名,课程号,

成绩等级=case

when分数>= 80 then'优秀'

when分数between 60 and 80 then'及格'

when分数< 60 then'不及格'

end

from成绩表,学生表

where学生表.学号=成绩表.学号

go

8、创建触发器

(1)创建一个AFTER触发器,要求实现以下功能:在成绩表上创建一个插入、更新类型的触发器TR_ScoreCheck,当在成绩表字段中插入或修改考试分数后,触发该触发器,检查分数是否在0-100之间。

use Stud

go

create trigger TR_ScoreCheck on Result

for insert,update

as

if update(result)

print('after 触发器开始执行......')

begin

declare @result char(3)

select @result =(select result from inserted)

if @result > 100 or @result < 0

print('输入的成绩有误,请确认输入的考试分数!')

end

go

(2)创建一个AFTER触发器,要求如下:在学生表上创建一个删除类型的触发器TR_Stu_Delete,当在学生表中删除某一条记录后,触发该触发器,在成绩表中删除与此学号对应的记录。

use Stud

go

create trigger TR_Stu_Delete on Student

for delete

as

declare @StuNum char(10)

select @StuNum = StuID

from deleted

delete from成绩表

where StuID = @StuNum

go

(3)在学生表上创建一个触发器TR_SexCheck,当插入一条记录时,检查性别字段,判断只能是“男”或“女”,否则认为非法,重新输入。

use Stud

go

create trigger TR_SexCheck on Student

for insert

as

begin

declare @xingbie char(2)

select @xingbie=(select Stusex from inserted)

if @xingbie not in('男','女')

rollback transaction

end

9、数据库的备份与还原

对xscj数据库进行备份和还原的操作,并将xscj数据库中的4个数据表与Excel进行数据的导入与导出操作,写出操作步骤。

二、学生管理信息系统

案例如下:学校教务科对学生的所属院系及选课情况等进行管理。学校中设置多个学院,学院下设系,班级。学生以班级为单位。学生选课信息通过系统进行记录,每个同学可以选修多门课程,每门课程可以被多个同学选修。教师以系部为单位进行管理,一名教师可以讲授多门课程,一门课程只能有一个主讲教师。设计任务如下。

1、对上述系统的数据库进行需求分析,然后进行概念结构设计和逻辑结构设计,画出详细的E-R图,并转换成等价的关系模式。

2、对上述物理设计中创建的表分别设定主键、外键,建立彼此的关联。

3、使用SQL语句或用SQL Server Management Studio建立上述学生管理信息系统的数据库和它所包含的数据表。

附:学生管理信息系统的数据库Stud中包含7个表,表的定义结构如下。其结构和有关数据可参考数据库文件Student.mdf和Student.ldf。

表1 学生信息表(Student)结构定义

表2 班级信息表(Class)结构定义

表3 系信息表(Department)结构定义

表4 学院信息表(College)结构定义

表5 教师信息表(Teacher)结构定义

表6 课程信息表(Course)结构定义

表7 成绩信息表(Result)结构定义

4、查询数据库

(1)在学生基本信息表中查询学生的学号、姓名、性别和地址等信息。select StuID,StuName,StuSex,StuAddr from Student

go

(2)从学生基本信息表中查询学生来自哪几个地区。

select StuAddr as地区from Student

group by StuAddr

go

(3)从学生基本信息表中只显示5%的信息。

select top 5 percent*from Student

go

(4)从相关表中查询每一位学生的学号、姓名、课程名称、成绩。select Student.StuID,Student.StuName,CouName,result from Student,Course,Result

where Student.StuID=Course.StuID

and Course.CouID=Result.CouID

go

(5)在课程信息表中查找“C程序设计”课程的任课老师的编号。

select TeaID from Course

where Course.CouName='C程序设计'

go

(6)查询1987年1月1日以后出生的女生基本信息。

select Student.*from Student

where StuBir>'1987-01-01 00:00:00'

go

(7)查询每位同学的课程门数、总成绩、平均成绩

select StuID,

count(StuID)as课程门数,

sum(result)as总成绩,

avg(result)as平均成绩

from Result

group by StuID

go

(8)显示平均成绩大于等于80分以上的学生情况。

select StuID,

avg(result)as平均成绩

from Result

group by StuID

having avg(result)>='80'

go

(9)按学号显示学生成绩,并计算每人的平均成绩和总成绩。

select StuID,

sum(result)as总成绩,

avg(result)as平均成绩

from Result

group by StuID

go

(10)从系部表中检索系部名称,从班级表中检索班级名称。

(11)查询不及格学生成绩信息。

select StuID,result,CouName

from Course,Result

where Course.couID=Result.CouID

and result<='60'

go

(12)查询课程编号为“11001、12001、12006、12011”的课程编号、课程名称、任课教师和学时数。

select couID,CouName,TeaNneme,CouPer

from Course,Dr_Tea

where Course.TeaID=Dr_Tea.TeaID

and Course.couID='11001'

or Course.couID='12001'

or Course.couID='12006'

or Course.couID='12011'

go

(13)查询所有姓“刘”的学生基本信息。

select Student.*from Student

where StuName like'李%'

go

(14)查询包含“设计”两字的课程信息。

select Course.*from Course

where CouName like'%设计%'

go

(15)查询课程信息表中教师未定的课程信息。

select Course.*from Course

where TeaID='NULL'

go

(16)统计成绩表中各门课程的学生人数、总成绩、平均成绩。

use Stud

go

select CouID ,count(StuID) as 学生人数,sum(result) as 总成绩,avg(result) as 平均成绩from Result

group by CouID

go

(17)查找同名同姓的学生信息。

use Stud

go

select *from Student

where StuName in

(select StuName from Student

group by StuName having count(*)>1)

go

(18)查看“数据库原理”和“高等数学”两门课程的成绩。

use Stud

go

select CouPer from Course

where CouName='数据库原理' or CouName='高等数学'

go

(19)查询单科成绩高于全班平均分的学生成绩信息。

select StuID,result from Result

where result>(select avg(result)from Result)

go

(20)查询系部信息和班级信息,要求连接起来的列只显示一次,不能出现重复。select Class.DepID,Claname,MinName,subject,Department.*from Class inner join Department on Class.DepID=Department.DepID

go

5、视图的创建和维护

在数据库Stud中,基于Student、Department和Class表,完成下列操作。

(1)创建一个视图“V_信管系学生”,要求视图中包括StuID、StuName、Department、Claname 四列,并且还要限定视图中返回的行为“信息管理系”的学生。

use Stud

go

create view V_信管系学生

as

select StuID,Student.ClaID,StuName,Depname,Claname

from Student,Department,Class

where Student.ClaID=Class.ClaID and Class.DepID=Department.DepID

(2)修改上面的视图,视图中显示“计算机科学系”的学生。

use Stud

go

alter view V_信管系学生

as

select StuID,Student.ClaID,StuName,Depname,Claname

from Student,Department,Class

where Student.ClaID=Class.ClaID and Class.DepID=Department.DepID

and Depname='计算机科学系'

(3)使用DROP VIEW语句删除上面创建的视图。

use Stud

go

drop view V_信管系学生

go

6、游标和事务的创建和使用

(1)定义一个游标,以实现逐行输出Stud数据库中“Student表”男性学生的记录。

use Stud

go

declare Student cursor

for

SELECT StuID,StuName,Stusex,StuBir,StuAddr,ClaID

FROM Student

WHERE Stusex='男'

(2)在Stud数据库中,对学号为“0502410101”的学生成绩加10分,若其分数高于90分,则事务回滚并输出相应的信息。

use Stud

go

begin transaction

update Result

set result=result+10

where StuID='0502410101'

if(select result from Result where StuID='0502410101')>90

begin

rollback transaction

end

else

begin

commit transaction

end

7、创建存储过程

(1)创建带通配符的输入参数存储过程,返回满足指定条件的学生信息。如果没有提供参数,则返回所有学生的信息。

use Stud

go

create procedure stu_al_proc

@xm varchar(8)='%'

as

select*from Student

where StuName like @xm

go

(2)设计一个存储过程,查询课程学时数在60~70之间的课程名称、学时数和学分。

use Stud

go

create procedure stu_xs_proc

as

select CouName,CouPer,Coucre

from Course

where CouPer>60 and CouPer<70

go

8、创建触发器

(1)创建一触发器,当向Result表插入一记录时,检查该记录的学号是否在Student表中存在,课程号是否在Course中存在,若有一项为否,则不允许插入。

use Stud

go

create trigger res_insert_trigger on Result

for insert

as

begin

declare @xh char(13)

declare @kh char(10)

select @xh= Student.StuID from Student,inserted

select @kh= Course.CouID from Course,inserted

if @xh <>''and @kh<>''

print('插入成功')

else

begin

rollback transaction

end

end

(2)在Student表上创建触发器name_tr,它将被UPDATE操作激活,且不允许修改StuName 字段的值。

use Stud

go

create trigger name_tr on Student

for update

as

begin

if update(StuName)

print('不允许修改')

rollback transaction

end

go

(3)在Course表上建立DELETE触发器del_tr,使得在删除表Course中记录的同时,自动检查表Result中是否有该课程的记录,如果有,则取消删除。

use Stud

go

create trigger del_tr on Course

for delete

as

if exists(select*from Result inner join deleted on

Result.CouID=deleted.CouID)

begin

print('无法删除')

rollback transaction

end

else

print('已删除')

go

注:所有要求实现的功能要在实际环境中得出正确结果,并将语句代码写下来,做为课程设计报告的内容之一。

数据库课程设计心得体会精选篇

数据库课程设计心得体会精选篇 课程培训活动,四对于提高专业技能的一个很好的方式,下面由小编为大家带来的数据库课程设计心得体会精选范文,仅供参考~ 数据库课程设计心得体会一 两个星期的时间非常快就过去了,这两个星期不敢说自己有多大的进步,获得了多少知识,但起码是了解了项目开发的部分过程。虽说上过数据库上过管理信息系统等相关的课程,但是没有亲身经历过相关的设计工作细节。这次实习证实提供了一个很好的机会。 通过这次课程设计发现这其中需要的很多知识我们没有接触过,去图书馆查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。 从各种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,

思路非常清晰。但真正需要自己想办法去设计一个系统的时候才发现其中的难度。经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反复中不断完善自己的想法。 我想有这样的问题不止我一个,事后想想是一开始着手做的时候下手过于轻快,或者说是根本不了解自己要做的这个系统是给谁用的。因为没有事先做过仔细的用户调查,不知道整个业务的流程,也不知道用户需要什么功能就忙着开发,这是作为设计开发人员需要特别警惕避免的,不然会给后来的工作带来很大的麻烦,甚至可能会需要全盘推倒重来。所以以后的课程设计要特别注意这一块的设计。 按照要求,我们做的是机票预订系统。说实话,我对这个是一无所知的,没有订过机票,也不知道航空公司是怎么一个流程。盲目开始设计的下场我已经尝过了,结果就是出来一个四不像的设计方案,没有什么实际用处。没有前期的调查,仅从指导书上那几条要求着手是不够的。 在需求分析过程中,我们通过上网查资料,去图书馆查阅相关资料,结合我们的生活经验,根据可行性研究的结果和客户的要求,分析现有情况及问题,采用client/server结构,将机票预定系统划分为两个子系统:客户端子系统,服务器端子系统。在两周的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间遇到很多问题:由于忘记了一

《数据库及信息系统》课程设计指导书

《数据库技术及信息系统》课程设计指导书 一、课程设计的目的 (1)培养学生运用所学课程《数据库及信息系统》的理论知识和技能,深入理解《数据库及信息系统》课程相关的理论知识,学会分析实际问题的能力。(2)培养学生掌握用《数据库及信息系统》的知识和设计计算机应用课题的思想和方法。 (3)培养学生调查研究、查阅技术文献、资料的能力。 (4)通过课程设计的训练,要求学生在教师的指导下,独立完成大作业要求的相关内容。 二、设计内容 完成一个数据库应用系统的设计全过程,包括需求分析、数据库设计、应用系统的设计和开发、用户界面的设计和实现、系统安装和调试等。 三、开发环境与工具: SQL Server / https://www.doczj.com/doc/25423121.html, 四、设计步骤 1、需求分析业务流程分析和功能分析。(应包含所给题目提供的主要要求) 2、概念结构设计生成基本E-R图。(应基本按所给题目提供的表的结构进行设计) 3、逻辑结构设计关系表设计(主键与完整性约束)、范式分析。(应基本按所给题目提供的表的结构进行设计) 4、功能模块实现、集成及调试。 5、报告编写。 五、基本要求 1、接口设计

用户接口是提供给用户的操作界面,全部操作应通过窗口完成,可以使用菜单上或按钮式。 2、功能设计 应用系统功能通常根据实际目标设定,一般应具有基本的增、删、改、查功能。 六、选题与时间 选题:每人选其中一个题目, 课程设计时间:12月1号---1月15号 指导时间:郑义民(每周三下午)黄彩虹(每周三上午); 地点:机电信息实验楼A226。 注:凡有抄袭现象一经发现,课程设计成绩均为不及格。 七、课程设计报告内容 1、概述(设计背景,设计目的,设计内容); 2、需求分析(功能分析、程序流程图) 3、概念模型设计(E-R图); 4、逻辑设计(E-R模型转换为关系模式,指明所满足的范式并给出理由); 5、界面开发、源代码及查询截图、数据库链接方法; 6、总结(设计过程中遇到的问题以及解决方法;课程学习及课程设计的体会)。 八、课程设计报告格式 1、报告一律A4纸双面打印打印,每人1份。 2、全班刻录在一张光盘上,每人一个文件夹。文件夹命名方式为“学号+姓名”, 内含课程设计报告、源文件、说明文件。

数据库表结构设计参考

数据库表结构设计参考

表名外部单位表(DeptOut) 列名数据类型(精度范围)空/非空约束条件 外部单位ID 变长字符串(50) N 主键 类型变长字符串(50) N 单位名称变长字符串(255) N 单位简称变长字符串(50) 单位全称变长字符串(255) 交换类型变长字符串(50) N 交换、市机、直送、邮局单位邮编变长字符串(6) 单位标识(英文) 变长字符串(50) 排序号整型(4) 交换号变长字符串(50) 单位领导变长字符串(50) 单位电话变长字符串(50) 所属城市变长字符串(50) 单位地址变长字符串(255) 备注变长字符串(255) 补充说明该表记录数约3000条左右,一般不做修改。初始化记录。 表名外部单位子表(DeptOutSub) 列名数据类型(精度范围)空/非空约束条件 外部子单位ID 变长字符串(50) N 父ID 变长字符串(50) N 外键 单位名称变长字符串(255) N 单位编码变长字符串(50) 补充说明该表记录数一般很少 表名内部单位表(DeptIn) 列名数据类型(精度范围)空/非空约束条件 内部单位ID 变长字符串(50) N 主键 类型变长字符串(50) N 单位名称变长字符串(255) N 单位简称变长字符串(50) 单位全称变长字符串(255) 工作职责 排序号整型(4) 单位领导变长字符串(50) 单位电话(分机)变长字符串(50) 备注变长字符串(255)

补充说明该表记录数较小(100条以内),一般不做修改。维护一次后很少修改 表名内部单位子表(DeptInSub) 列名数据类型(精度范围)空/非空约束条件内部子单位ID 变长字符串(50) N 父ID 变长字符串(50) N 外键 单位名称变长字符串(255) N 单位编码变长字符串(50) 单位类型变长字符串(50) 领导、部门 排序号Int 补充说明该表记录数一般很少 表名省、直辖市表(Province) 列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 名称变长字符串(50) N 外键 投递号变长字符串(255) N 补充说明该表记录数固定 表名急件电话语音记录表(TelCall) 列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 发送部门变长字符串(50) N 接收部门变长字符串(50) N 拨打电话号码变长字符串(50) 拨打内容变长字符串(50) 呼叫次数Int 呼叫时间Datetime 补充说明该表对应功能不完善,最后考虑此表 表名摄像头图像记录表(ScreenShot) 列名数据类型(精度范围)空/非空约束条件ID 变长字符串(50) N 拍照时间Datetime N 取件人所属部门变长字符串(50) N 取件人用户名变长字符串(50) 取件人卡号变长字符串(50) 图片文件BLOB/Image

数据库课程设计完整版

数据库课程设计完 整版

HUNAN CITY UNIVERSITY 数据库系统课程设计 设计题目:宿舍管理信息系统姓名: 学号: 专业:信息与计算科学指导教师:

20年 12月1日 目录 引言3 一、人员分配 4 二、课程设计目的和要求 4 三、课程设计过程 1.需求分析阶段 1.1应用背景 5 1.2需求分析目标5 1.3系统设计概要5 1.4软件处理对象 6 1.5系统可行性分析6 1.6系统设计目标及意义7 1.7系统业务流程及具体功能 7

1.8.1数据流程图8 2.系统的数据字典11 3.概念结构设计阶段 13 4.逻辑结构设计阶段 15 5.物理结构设计阶段 18 6.数据库实施 18 7.数据库的运行和维护 18 7.1 解决问题方法 19 7.2 系统维护 19 7.3 数据库性能评价 19 四、课程设计心得. 20参考文献 20 引言

学生宿舍管理系统对于一个学校来说是必不可少的组成部分。当前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强能够接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条一条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。我们针对如此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。本系统具有运行速度快、安全性高、稳定性好的优点,而且具备修改功能,能够快速的查询学校所需的住宿信息。 面对当前学校发展的实际状况,我们经过实地调研之后,对宿舍管理系统的设计开发做了一个详细的概述。

数据库课程设计心得体会

数据库课程设计心得体会 数据库课程设计心得体会 数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。 首先,让我的记忆追溯到大二暑假,在老大的指引下(老大劝我学https://www.doczj.com/doc/25423121.html,),我接触到microsoft 公司的.net产品。那个时候我已经学过vc 和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.net是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。 通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。 来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml 建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。 开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just do it!前期工作准备好后,那么我就得把我暑假学的.net加以实践。这个时候我更加深入的了解了利用https://www.doczj.com/doc/25423121.html,操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,我完成了我的数据库课程设计--基于.net数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。 与其临渊羡鱼,不如退而结网。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年.net 的核心技术就是xml[至少微软是这么宣传的],我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just do it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊! 我很庆幸我参加了这次数据库大赛,让我确实打开了眼界。 (最后,很感激学校给了我们这次动手实践的机会,让我们学生有了一个共同学习,增长

数据库课程设计指导书

数据库课程设计指导书 一、设计方法 本次设计,提供一次在实际环境中,使用数据库工具获取实践经验的机会。完成设计任务,你将对设计实际有用的数据库应用程序,有更深入的理解。 先导课程为:《数据库系统概论》。 设计环境和开发工具: 操作系统, Windows98(或更高版本)。 数据库管理系统,选用Sybase 公司的Adaptive Server Anywhere。 开发工具,选用PowerBuilder 7.0(或更高版本)。 : 1、数据库设计 1)需求分析,根据设计任务书给出的背景资料,查找相关资料,结合自己的生活经 验,对数据进行分析,编写详细的数据词典。 2)概念结构设计:在需求分析的基础上,设计E-R模型,详细描述实体的属性和实 体之间的联系,消除不必要的冗余。 3)逻辑结构设计:实现E-R图向关系模型的转换,特别注意实体的1:n联系,优化 数据模型。详细说明实体、实体属性和实体之间的关系。 2、创建数据库:(详细内容请阅读Help文件) 创建数据库时,缺省的user ID为DBA , password为sql。 ●使用Sybase Central创建数据库 1)在Sybase Adaptive Server Anywhere 文件夹中,打开Utilities 。 2)双击 Create Database。 3)按照向导(wizard)提示,完成数据库创建。 ●使用PowerBuilder创建数据库 1)运行PowerBuilder,选择Databsae画板。 2)打开Utilities。 3)双击Create ASA Database。 ●使用SQL语句创建数据库 例如,在C:\ex\文件夹下创建数据库。 CREATE DATABASE 'C:\\ex\\mydb' TRANSACTION LOG ON PAGE SIZE 1024 COLLATION '437' ENCRYPTED OFF BLANK PADDING OFF JAVA ON JCONNECT OFF 3、创建表 ●使用PowerBuilder创建表 2)连接数据库 3)打开Tables文件夹。

数据库课程设计完整版

HUNAN CITY UNIVERSITY 数据库系统课程设计设计题目:宿舍管理信息系统 姓名: 学号: 专业:信息与计算科学 指导教师: 20年 12月1日 目录 引言 3 一、人员分配 4 二、课程设计目的和要求 4 三、课程设计过程 1.需求分析阶段 1.1应用背景 5 1.2需求分析目标5 1.3系统设计概要 5 1.4软件处理对象 6 1.5系统可行性分析 6 1.6系统设计目标及意义7

1.7系统业务流程及具体功能 7 8 2.系统的数据字典11 3.概念结构设计阶段 13 4.逻辑结构设计阶段 15 5.物理结构设计阶段 18 6.数据库实施 18 7.数据库的运行和维护 18 7.1 解决问题方法 19 7.2 系统维护 19 7.3 数据库性能评价 19 四、课程设计心得. 20 参考文献 20 引言 学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条一条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。我们针对如此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了

数据库设计心得体会(精选多篇)

数据库设计心得体会(精选多篇) 跟老板做了两个算是比较大的项目,数据库主体都是我设计的。第一个感觉很失败;第二个现在正在用,虽然总结了第一个的教训,但感觉还是有些遗憾。把这过程中的一些心得记在这里,以便日后用到时来查阅。若以后还有机会再设计数据库——现在倒还有些期待,呵呵,再有新的体会,也全部补充到这里。 1.尽量使用数据冗余。 随着磁盘容量的大幅飙升,这一点已经不会产生什么问题。当然冗余归冗余,不能把数据的关联弄的乱七八糟的。 本科数据库课程中学的知识直接拿来,在实际中会出大问题。满足三级范式的数据库结构会让你面对大量的连表查询,应用程序中会用到大量的数据库访问,既繁琐(烦死你)又使程序运行速度减慢。 2.尽量不要使用varchar(max)类型 这一点主要是用动软代码生成器自动生成代码时,如果varchar 的最大长度指定为max,在自动生成代码时,它无法生成这一最大长度,需要手动补进去。 现在感觉用个varchar(1000)就够了。 3.使用预留字段。 数据库表(尤其是动态表格),在你把所有字段都设计好了之后,再添加几个备注字段和预留字段。 之前我觉得这样做没多大意义,因为预留字段的列名是没有实际意义的。这样程序中使用的时候就会让人费解。但现在觉得还是有必

要的,很有必要的,即便在用到时需要自己十分清楚之前预留的无意义字段现在表示什么意义。不过我的第二个数据库中还是没采用,这也是遗憾之处啊。 个人感觉用note1、note2、r1(r表示reserve)、r2、r3,2个备注字段和3个预留字段就足够了,再多的话就不容易记住哪个字段具体表示什么意义了,容易晕。类型就都用varchar(200)吧。 数据库设计心得体会(2): 在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业化处理的要求。通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。 当我们这组决定做大学生就业咨询系统时,我们并没有着手写程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们进行模块的分工。每个人都有自己的模块设计,而且写出来的代码要求可以实现相应模块的功能,得到理想的效果。当每个人都把自己的分工做好了,最后会由一个人把这些全部组合搭建在一起。我们使用的是html和php相互嵌套使用,当一个系统做好了之后,我会好好地把程序都看一遍,理会其中的奥秘。 我所负责的是数据库的备份和还原还有一些界面的实现。还记得自己刚接触html的时候,觉得很感兴趣,所以有一段时间几乎到了

数据库课程设计指导书讲解

《数据库原理与应用》课程设计指导书 制订教师:张娟 城市学院 2015年12月

数据库课程设计指导书 模块01 “教学管理系统”数据库设计 1、设计步骤 工作任务 任务1:“学分制教学管理系统”需求分析 任务2:“学分制教学管理系统”概念设计 任务3:“学分制教学管理系统”逻辑设计 任务4:“学分制教学管理系统”逻辑设计 学习目标 理解关系型数据库基本概念 熟悉数据库设计的主要阶段和步骤 掌握数据库概念设计中绘制E-R 图的方法 掌握将E-R 图转换为数据表逻辑形式的方法 理解并掌握数据库设计规范化方法 2、设计内容 任务1-1 “学分制教学管理系统”需求分析 ● 数据库设计 ● 数据库系统的分析与设计一般分为需求分析、概念设计、逻辑设计、物理设计四个阶段。在数据库系统设计的整个过程中,需求分析和概念设计可以独立于任何的数据库管理系统(DBMS ),而逻辑设计和物理设计则与具体的数据库管理系统密切相关。 需求分析 概念设计 逻辑设计 物理设计 需求分析说明书 独立于数据库管理系统 相关于数据库管理系统 DBMS 的特征 硬件和操作系统的特征 数据库概念模式 数据库逻辑模式 数据库物理模式 需求分析 分析用户的要求。需求分析是数据库系统设计的基础,通过调查和分析,了解用户的信息需求和处理需求,并以数据流图、数据字典等形式加以描述。 概念设计 主要是把需求分析阶段得到的用户需求抽象化为概念模型。概念设计是数据库系统设计的关键,我们将使用E-R 模型作为概念模式设计的工具。 逻辑设计 就是将概念设计阶段产生的概念模式转换为逻辑模式。因为逻辑设计与数据库管理系统(DBMS )密切相关,本书以关系模型和关系数据库管理系统为基础讨论逻辑设计。

学习数据库的心得

学习数据库的心得各位读友大家好,此文档由网络收集而来,欢迎您下载,谢谢 篇一:SQL学习心得 SQL数据库学习心得 经过一个学期的数据库课程的学习,我基本上掌握了创建数据库以及对数据库的操作的基础知识。学习了SQL 数据库中的增、删、改、查等功能,数据库这门课涉及到以前的知识不多,是一门从头学起的课程,即使基础不是很好,只要认真听讲、复习功课,还是一门比较容易掌握的课。 正是由于这门课和以前关系不大,很多知识也从未接触过,因此对于这门课的学习方法就是:理论课上认真听老师讲理论知识,上机课上仔细看老师的演示过程、在电脑上按照老师的演示步骤自己做,遇到自己无法做出来的过程(步骤)请教老师或者同学。 在第一章基础篇里:开篇任务一是

对通讯录程序的主要功能做一个简单的介绍,并根据这些功能使用SQL Server2005设计了对应的数据库AddressList及数据表,并建立数据表之间的关系;了解了通讯录程序数据库AddressList包含的三个表以及表的相关属性。由于我在本学期初参加数学建模竞赛,耽误了几节课程,导致任务一的内容不会做。而C#数据库中的内容一环扣一环,后面的任务往往是在前面的任务基础上做的,所以一步跟不上,步步跟不上。在老师讲后面的任务时而我前面的任务既不太会做,又没有做完,导致在学习上很吃力。之后的任务都是在任务一的基础上的延伸,学习数据库的编写、功能等。在学习数据库和数据表创建和修改时,了解到表是建立关系数据库的基本结构,用来存储数据具有已定义的属性,在表的操作过程中,有查看表信息、查看表属性、修改表中的数据、删除表中 的数据及修改表和删除表的操作。

进销存数据库表结构设计

1.帐类表(KIND) 无索引 序号中文名称英文名称类型备注 1 帐类编号K_SERIAL byte 2 帐类名称K_NAME text*10 本表系统自动建立,共划分为15种帐类,不可增删 帐类编号帐类名称备注 0 上期结存进货,不参加进货统计 1 购入进货,购入时必需输入供货单位名称 2 自制进货 3 投资转入进货 4 盘盈进货 5 领料出库,领料必需输入领料部门名称 6 调拨出库 7 报损出库 8 盘亏出库 9 退库对低值易耗品,在用品退为在用库存 10 直接报废对于低值易耗品,在用品转报废 11 领用对于低值易耗品,在用库存转在用 12 调拨对于低值易耗品,在用库存减少 13 报废对于低值易耗品,在用库存报废 14 直进直出进出库,购入与领料对库存无影响 2.物品表(GOODS) 序号索引名称索引域唯一? 主索引? 1 G_CODING +G_CODING Y N 2 G_SERIAL +G_SERIAL Y Y 序号中文名称英文名称类型备注 1 物品内部编号G_SERIAL INT->long 系统内部唯一标识该物品 2 物品编号G_CODING TEXT * 10 用户使用此编号访问物品 &3 物品名称G_NAME TEXT*40 非空 &4 物品单位G_UNIT TEXT*8 非空 &5 物品规格G_STATE TEXT*20

6 物品类别G_CLASS INT 取自表CLASS 7 备注G_REMARKS MEMO 8 最小库存量G_MIN CURRENCY 为零,即无最小库存 9 最大库存量G_MAX CURRENCY 为零,即无最大库存 10 库存数量G_QUANT CURRENCY 控制出库数量 11 虚拟库存数量G_VQUANT CURRENCY 出库时用 12 库存金额G_AMOUNT CURRENCY 3.类别表(CLASS) 序号索引名称索引域唯一? 主索引? 1 C_CODING +C_CODING Y N 2 C_SERIAL +C_SERIAL Y Y 序号中文名称英文名称类型备注 1 类别内部序号C_SERIAL INT 系统内部唯一标识该物品 2 类别编号C_CODING TEXT *10 用户使用该编号访问类别信息 3 类别名称C_NAME TEXT*20 非空 4 出库类型C_KIND BYTE 1.移动平均 2..先进先出 3.后进先出 4.实际计价 *5.月末平均 5 备注C_REMARKS MEMO *6 底标志C_BOTTOM BOOLEAN *7 类别级别C_LEVEL BYTE 4.供货单位、使用部门(DEPART) 序号索引名称索引域唯一? 主索引? 1 D_CODING +D_CODING Y N 2 D_SERIAL +D_SERIAL Y Y 序号中文名称英文名称类型备注 1 内部序号D_SERIAL INT 系统内部唯一标识该部门 >0 供货单位 =0 库房 <0 使用部门 2 单位编号D_CODING TEXT*10

完整word版,数据库课程设计总结,推荐文档

数据库课程设计总结 数据库课程设计个人总结 姓名:邢王秀学号:201624101215 班级:09计本班 一个月的时间非常快就过去了,这一个月我不敢说自 己有多大的进步,获得了多少知识,但起码是了解了项目开 发的部分过程。虽说上过数据库相关的课程,但是没有亲身 经历过相关的设计工作细节。这次课程设计给我提供了一个 很好的机会。 通过这次课程设计发现这其中需要的很多知识我们没 有接触过,上网查找资料的时候发现我们以前所学到的仅仅 是皮毛,还有很多需要我们掌握的东西我们根本不知道。同 时也发现有很多已经学过的东西我们没有理解到位,不能灵 活运用于实际,不能很好的用来解决问题,这就需要自己不 断的大量的实践,通过不断的自学,不断地发现问题,思考 问题,进而解决问题。在这个过程中我们将深刻理解所学知 识,同时也可以学到不少很实用的东西。 这次的数据库课程设计,我们组负责的企业信息文档 管理系统的设计。这课题是自拟的。我们组实行的分工合作。我主要是负责数据库功能模块设计这部分。 从各种文档的阅读到需求分析、概要设计、数据库总 体设计、代码编写与调试,我们都准备了好长时间。组内分

工合作的整个过程,我亲身体验了一回系统的设计开发过 程,分工合作的好处。很多东西书上写的很清楚,貌似看着 也很简单,思路非常清晰。但真正需要自己想办法去设计一 个系统的时候才发现其中的难度。经常做到后面突 然就发现自己一开始的设计有问题,然后又回去翻工, 在各种反复中不断完善自己的想法。 我想有这样的问题不止我一个,事后想想是一开始着 手做的时候下手过于轻快,或者说是根本不了解自己要做的 这个系统是给谁用的。因为没有事先做过仔细的用户调查, 不知道整个业务的流程,也不知道用户需要什么功能就忙着 开发,这是作为设计开发人员需要特别警惕避免的,不然会 给后来的工作带来很大的麻烦,甚至可能会需要全盘推倒重 来。所以以后的课程设计要特别注意这一块的设计。 经过组内讨论,我们确定的课题是企业信息文档管理 系统。说实话,我对这个系统不是很了解。通过上网查找资 料、相关文献的阅读,我对该系统有了大体的了解。 在需求分析过程中,我们通过上网查资料,去图书馆 查阅相关资料,结合我们的生活经验,根据可行性研究的结 果和用户的需要,分析现有情况及问题。在一个月的时间里,不断地对程序及各模块进行修改、编译、调试、运行,其间 遇到很多问题,经过组内讨论。最终把它解决了。通过这次 课程设计,我对数据库的设计更加熟练了。

数据库设计实践总结

数据库设计实践总结 数据库设计的优劣和体现性能的高低对整个系统软件的生命周期长短具有重要的影响意义,其中辅助数据库设计程序是软件开发和应用最有效的辅助设计工具。以下是的数据库设计实践总结,欢迎阅读。 1.尽量使用数据冗余。 随着磁盘容量的大幅飙升,这一点已经不会产生什么问题。当然冗余归冗余,不能把数据的关联弄的乱七八糟的。 本科数据库课程中学的知识直接拿来,在实际中会出大问题。满足三级范式的数据库结构会让你面对大量的连表查询,应用程序中会用到大量的数据库访问,既繁琐(烦死你)又使程序运行速度减慢。 2.尽量不要使用varmax)类型 这一点主要是用动软代码生成器自动生成代码时,如果varchar 的最大长度指定为max,在自动生成代码时,它无法生成这一最大长度,需要手动补进去。 现在感觉用个var1000)就够了。 3.使用预留字段。 数据库表(尤其是动态表格),在你把所有字段都设计好了之后,再添加几个备注字段和预留字段。 之前我觉得这样做没多大意义,因为预留字段的列名是没有实际意义的。这样程序中使用的时候就会让人费解。但现在觉得还是有必要的,很有必要的,即便在用到时需要自己十分清楚之前预留的无

意义字段现在表示什么意义。不过我的第二个数据库中还是没采用,这也是遗憾之处埃 个人感觉用note1、note2、r1(r表示reserve)、r2、r3,2个备注字段和3个预留字段就足够了,再多的话就不容易记住哪个字段 具体表示什么意义了,容易晕。类型就都用var200)吧。 在我看来,数据库课程设计主要的目标是利用课程中学到的数 据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。 当我们这组决定做大学生就业咨询系统时,我们并没有着手写 程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。当这些都准备好了之后,我们进行模块的分工。每个人都有自己的模块设计,而且写出来的代码要求可以实现相应模块的功能,得到理想的效果。当每个人都把自己的分工做好了,最后会由一个人把这些全部组合搭建在一起。我们使用的是html和php相互嵌套使用,当一个系统做好了之后,我会好好 地把程序都看一遍,理会其中的奥秘。 我所负责的是数据库的备份和还原还有一些界面的实现。还记 得自己刚接触html的时候,觉得很感兴趣,所以有一段时间几乎到 了痴迷的程度。然而php是我刚接触不久的一种编程语言。不过觉得它的功能真的很强大,可以开发出很多大型的系统。但是在做备份和

《数据库原理及应用》课程设计指导书

《数据库原理及应用》课程设计指导书 一、课程设计教学目的及基本要求: 1. 课程设计教学目的 数据库原理及应用课程设计周是在学生系统的学习了数据库原理课程后,按照关系型数据库的基本原理,综合运用所学的知识,以小组为单位,设计开发一个小型的数据库管理系统。通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。 2. 课程设计基本要求: 四人为一个小组,小组成员既要有相互合作的精神,又要分工明确。每个学生都必须充分了解整个设计的全过程。 从开始的系统需求分析到最后的软件测试,都要有详细的计划,设计文档应按照软件工程的要求书写。 系统中的数据表设计应合理、高效,尽量减少数据冗余。 软件界面要友好、安全性高。 软件要易于维护、方便升级。 编程语言可由小组根据自己的情况选择,但一般情况下应该是小组的每个成员都对该语言较熟悉。避免把学习语言的时间放在设计期间。 参考使用的语言有:C#。 二、课程设计的时间安排 周一:需求分析,总体设计 周二:详细设计 周三-周四:上机调试 周五:应用程序打包并撰写实验报告,做好答辩准备。

三、课程设计的考核方法及成绩评定 学生完成一个管理系统的设计方案和程序设计,以此作为考核依据。本课程设计成绩分为:优秀、良好、中等、及格、不及格五个等级。本课程设计成绩由集中指导出勤情况、完成设计质量、答辩效果、综合表现等方面综合评定。 具体考核时间与考核方法: 周五晚上7点-9点(地点五教204(暂定)):考核。 1)每组派一个代表(其它成员在下面随时准备回答问题)做PPT,汇报本组工作流程与系统运行情况,并要演示。 2)针对具体问题作答(提问,至少两位老师在场提问)。 四、课程设计的内容(每组限选一项,且各组不能重复,请各位同学抓紧时间自行分组, 周一把分组名单报老师) 题目一学生学籍管理系统 1、实验内容: (1)主要的数据表 学生基本情况数据表,学生成绩数据表,课程表等等。 (2)主要功能模块 1)实现学生基本情况的录入、修改、删除等基本操作。 2)对学生基本信息提供灵活的查询方式。 3)完成一个班级的学期选课功能。 4)实现学生成绩的录入、修改、删除等基本操作。 5)能方便的对学生的学期成绩进行查询。 6)具有成绩统计、排名等功能。

数据库课程设计的个人总结

数据库课程设计的个人总结 在开学的第一周,我参加了院里组织的数据库课程设计,这项任务是分组分工完成的,我们组有五名成员,分别是我们班学号的后五位同学,很荣幸地我被推荐为我们组的组长,在组长的“英明”指导下,全体组员团结奋斗,使得任务完成地比我们预期的要稍早一些,也比预期要漂亮一些,这一点我们都感到很高兴也很自豪。 王婆卖瓜时间过了,言归正传吧。凡是都要有个总结,以下便是我在这个课程设计中的一点心得。 首先我分析一下我们组任务顺利完成的成功之处并总结一些经验,供以后反省参考用。 凡事预则备,不预则废。这是我的座右铭,也是我深有感悟的几句古语之一。在这个项目的开始阶段,老师便让我们做了个进度安排表,我很好的利用了这次机会,花了较多心思作出了一个很详细的进度安排表,之后我们组任务的完成也是严格按照这个进度表进行的。当然我后来去了解了一下别的组的情况,有些组的进度安排表没我们组做完善的一个很重要的原因就是他们对这一周的数据库课程设计到底还没什么概念。导致这种现象的原因有很多方面,一个是基础太差不能理解老师安排的任务(当然这种人比较少),一种是缺乏交流,这个交流包括组内的交流,也包括组间的,更包括与老师之间的,这也就引出了我的第二个心得。

多交流,这是我这次项目的第二个心得。对于这种分工完成的项目,组员之间的交流是极其必要的。如果组员之间不能很好的沟通,不仅会做很多无用功,而且也会做很多重复的工作。组员之间很好点,我们每天都会在qq上或者见面相互交流,并及时修改进度安排表;除此之外,我们还相互帮助解决问题,或者共同解决问题,比如说这次的概念模型的设计,我们组负责设计概念数据模型的同学(赵##)和负责数据需求分析的同学(左##)就经常沟通(因为两者的任务联系比较紧密),共同解决问题,才会做出令我们组员都比较满意的数据概念模型和漂亮的数据需求分析文档;当然最重要的是我们也常会去与老师沟通,老师也在关键的设计地方也给了很多很多的宝贵意见。当然不得不作出检讨的地方是组长这次与老师交流的比较少,反而不及组员,希望在接下来的项目中能有所改观,起好带头作用。我同样也有观察别的组完成情况,发现有些组出现了组长包干或者组长与个别组员的包干的现象,我觉得导致出现这种可怕现象的主要责任在于组长,组长的任务不仅仅参与部分任务的完成,更重要的是分配任务并协调组间关系,是沟通交流的一根主要管道。通俗的讲就是组长上要联系老师,中要与他组交流,下要与组员积极沟通,我觉得这也是组长这个角色的设置的必要所在吧。我真心地希望在我们下一个创新课程j2ee的训练中我们班不要再出现这种现象,每个人都有平等得到锻

数据库课程设计设计指导书New

计算机科学与技术专业 数据库原理及应用 课 程 设 计 教学实验指导书

《数据库原理及应用》课程设计教学指导 一.设计目的及要求 本课程是为了配合数据库原理及应用课程开设的,是将数据库理论知识转化为实践能力的重要环节。其主要目的是:通过设计操作,加深对数据库系统理论知识的理解;通过使用具体的DBMS,了解一种实际的数据库管理系统并掌握其操作技术。重点掌握如下环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。 要求如下 1.要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。 2.既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。 3.独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。 4.学生如有事不能上课要履行正常的请假手续,并且请假时间原则上不允许超过课程设计时间的三分之一。课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者(按照缺勤次数/考核次数比值计算),其成绩按不及格处理。 5.在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。 二.适用专业 适用计算机科学与技术专业。 三.课程设计的一般步骤 本课程设计分五个阶段: 1)选题与搜集资料:选择课程设计题目,进行系统调查,搜集资料。 2)分析与设计:根据搜集的资料,进行功能与数据分析,并进行数据库、系统功能等设计。 3)程序设计:在具体的DBMS环境下,创建数据库、建立表及必要的其它部分(如视图、存储过程、触发器等);运用掌握的语言,编写程序,实现所设计的模块功能(可选)。 4)调试与测试:自行调试程序,成员交叉测试程序,并记录测试情况。 5)验收与评分:指导教师对每个小组的开发的系统,及每个成员开发的模块进行综合验收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。 四.本课程设计内容与要求 掌握数据库的设计的每个步骤,以及提交各步骤所需图表和文档。通过使用目前流行的DBMS(首选SQL SERVER 2000,不得使用ACCESS),建立所设计的数据库,并在此基础上实现数据库查询、连接等操作和触发器、存储过程等对象设计。 1.应用系统需求分析 学生自选由指导教师给定的多个课程设计的题目,进行应用系统需求分析工作,绘制操作流程图、DFD、DD图表以及书写相关的文字说明。 2.概念结构设计 绘制详细的E-R图,由指导教师师检查数据结构是否合理。 3.逻辑结构设计

数据库结构设计

一、数据库结构设计步骤 二、需求分析 三、概念结构设计 四、逻辑结构设计 五、数据库物理设计 数据库结构设计 一、数据库结构设计步骤 一般可将数据库结构设计分为四个阶段,即需求分析、概念结构设计、逻辑结构设计和物理设计。 下面各节分别介绍各阶段设计内容和具体方法。 二、需求分析 需求分析的任务是具体了解应用环境,了解与分析用户对数据和数据处理的需求,对应用系统的性能的要求,提出新系统的目标,为第二阶段、第三阶段的设计奠定基础。一般需求分析的操作步骤如下所述。 1.了解组织、人员的构成 子系统的划分常常以现有组织系统为基础,再进行整合,而新系统首先必须达到的目的是尽可能地完成当前系统中有关信息方面的工作,在原有系统中,信息处理总是由具体人来实施的。我们要了解组织结构情况、相互之间信息沟通关系、数据(包括各种报告、报表、凭证、单据)往来联系情况。 具体弄清各个数据的名称,产生的时间与传递所需时间与周期,数据量的大小,所涉及(传送)的范围,使用数据的权限要求,数据处理过程中容易发生的问题及其影响,各个部门所希望获得的数据的情况等。 然后了解每个人对每一具体数据处理的过程,基本数据元素来源于哪些地方、获取的途径、处理的要求、数据的用途,进而弄清数据的构成、数据元素的类型、性质、算法、取值范围、相互关系。 在上述调查基础上,首先画出组织机构及工作职能图。我们以一个学校的基层单位——某大学一个系的管理为例来简要说明。 系的组织机构及工作职能如图7.1所示。

图7.1 系管理体系结构图 作为管理层经常需要的信息和工作有: .查询老师个人基本情况及打印相应内容 .查询与统计科研项目情况及相关报表 .查询与统计论文著作情况及相关报表 .上级部门及其他部门来文管理与查询(要求能全文检索) .系部发文管理 .任务下达、检查及管理 .信件、通知的收发及管理 .日程安排调度及管理 .设备仪器计划及管理 .设备入库与库存情况管理与查询 .设备借还领用管理及相应报表 .耗材计划与领发管理及相应统计报表 .图书管理及借还情况查询 .学生毕业设计文档管理 .专业与班组编制与查询 .教学文档管理及查询(安排与检查,包括课表、考试日程安排、监考安排等).学生成绩管理与查询和统计 .教师、学生、实验室课表管理及查询 .学生基本情况管理与查询(包括社会活动、奖惩、家庭情况及学校校友管理)

数据库课程设计 教务管理系统

洛阳理工学院 课程设计报告 课程名称数据库课程设计 设计题目教务管理系统 专业计算机科学与技术 班级B120505 学号 姓名 完成日期2015-1-4

课程设计任务书 设计题目:教务管理系统 设计内容与要求: 设计教务管理系统,类似于我校教务管理系统,有四类用户:教务员、学生、教师、管理员教务员可以输入学生、教师、班级、课程信息。一个班级只属于一个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。教师可以查看学习该课程的学生名单。课程结束后,教师可以录入课程成绩。一个教师可以教授多个班的多门课程,每门课由多位老师讲授。课程分两类,必修课和选修课。系统要记录每个学生学习各门必修课的成绩,还要记录学生选修了哪些选修课以及课程成绩。学生可以查看自己各门课程的成绩。学生还可以进行评教,给老师打分。管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。 要求: 1.完成本系统的需求分析,写出功能需求和数据需求描述; 2.完成数据库的概念结构设计、逻辑结构设计、物理结构设计; 3.完成本系统的部分功能模块的程序界面设计。 指导教师:高春玲 2014 年12 月28 日 课程设计评语 成绩: 指导教师:_______________ 年月日

目录 一、概述 2 1.1、本设计的目的与意义 2 1.2、数据库开发工具和应用程序开发工具 2 二、需求分析 2 2.1功能需求 2 2.2数据需求 2 三、概念结构设计 2 3.1、E-R模型设计 2 3.2、总体E-R图描述 4 四、逻辑结构设计 4 4.1、关系模型 4 4.2、关系模式的优化与说明 4 五、物理结构设计 5 5.1建立数据库 5 5.2表与表结构 5 六、应用程序设计 6 6.1、系统总体结构 6 6.2、系统界面与源代码7 6.2.1、界面7 6.2.2、功能描述9 6.2.3、程序源代码9 七、设计总结23 八、体会与收获24 九、参考文献24

相关主题
文本预览
相关文档 最新文档