数据库课程设计大作业

发布时间:2024-11-06

自己做的!放心用吧~

《数据库原理》课程设计报告

学 号:姓 名: 班 级:

昆明理工大学信息工程与自动化学院

2010年12月

自己做的!放心用吧~

<一>前言

一、课程设计目的:

1. 加深对讲授内容的理解

《数据库原理及应用》中有关数据库技术的基本理论、基本概念、设计与实现的方法和阶段性知识,光靠课堂讲授既枯燥无味又难以记住,但它们都很重要,要想熟练掌握,必须经过大量实践环节加深对它们的理解。

2. 通过课程设计,掌握数据库系统设计与开发的方法及步骤 数据库是一门应用性很强的学科,开发一个数据库系统需要集理论、系统和应用三方面为一体,以理论为基础,以系统(DBMS)作支柱,以应用为目的,将三者紧密结合起来。同时结合实际需要开发一个真实的数据库系统,对于较大型的系统可多人一起完成,但无论如何都应完成数据库的需求分析、数据的分析与建模、数据库的建立、数据库的开发与运行等全部过程。在此过程中将所学的知识贯穿起来,达到能够纵观全局,分析、设计具有一定规模的题目要求,基本掌握数据库系统设计与开发的基本思路和方法并且做到对知识的全面掌握和运用。

3. 培养学生自学以及主动解决问题的能力 通过本次设计,使同学能够主动查阅与数据库相关资料,掌握一些课堂上老师未曾教授的知识,从而达到培养学生自学以及主动解决问题的能力的目的。

二、课程设计基本要求:

1. 课程设计应由学生本人独立完成,严禁抄袭,如果发现最后的设计基本相同

者(系统需求分析与功能设计、数据库的概念设计、逻辑设计,数据库的实现与运行等内容基本相同),一经验收教师认定其抄袭行为,则成绩均为不及格。

2. 掌握所学的基础理论知识,数据库的基本概念、基本原理、关系数据库的设

计理论、设计方法等。熟悉数据建模工具与数据库管理系统SQLServer软件的使用。

3. 按时上机调试,认真完成课程设计。 4. 认真编写课程设计报告。

三、意义:

数据库技术是近年来计算机科学技术中发展最快的领域之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。《数据库原理及应用》课程设计重视实践环节,对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。

<二>需求分析

工资管理系统包括如下功能:(结构图如下)

自己做的!放心用吧~

工资管理系统功能结构图

(1) 经理室:管理人员; (2) 财务科:财务人员; (3) 技术科:技术人员; (4) 销售科:销售人员。

<三>数据库概念结构设计

工资管理系统:

(1) 在工资管理局部应用中主要涉及的实体的属性: 科室(科室号,科室名)

员工(员工号,员工名,性别,年龄,职称,科室代码)

工资(员工号,基本工资,奖金,福利,住房公积金,失业保险,实

发工资,月份) (2) 实体间的联系:

公司与科室之间是1:m(m≥0)的联系; 科与员工之间是m:n的联系; 管理部门与员工之间是1:n的关系; 员工与工资之间是1:1的联系。 (3) 工资管理系统的E-R图:

自己做的!放心用吧~

<四>数据库逻辑结构设计

(1) 逻辑结构设计图型描述:

表1 KESHI表结构

表1 WORKER表结构

表3 SALARY表结构

自己做的!放心用吧~

4 表KESHI中的数据

表5 表WORKER中的数据

表6 表SALARY中的数据

自己做的!放心用吧~

逻辑结构设计图

<五>数据库实现

/*create database GONGZIGUANLI*/

/*create table KESHI (

Kno char(2) not null, Kname varchar(10) not null, primary key (Kno) );*/

/*create table WORKER (

Wno char(6) not null, Wname varchar(10) not null, Sex char(2) not null, Age int not null, Prof varchar(10) NOT null, Kno char(2) not null, primary key (Wno),

foreign key (Kno) references KESHI(Kno) );*/

自己做的!放心用吧~

/*create table SALARY (

Wno char(6) not null, Wbase dec(6) not null, Wbonus dec(6) NOT NULL , Wwelfare dec(6) NOT NULL , WG dec(6) NOT NULL , WL dec(6) NOT NULL ,

Wfact as (Wbase +Wbonus + Wwelfare - WG - WL) , month int not null, primary key (Wno),

foreign key (Wno) references WORKER(Wno) );*/

/*insert into KESHI(Kno,Kname) values('01','经理室'); insert into KESHI (Kno,Kname) values('02','财务科'); insert into KESHI (Kno,Kname) values('03','技术科'); insert into KESHI (Kno,Kname) values('04','销售科');*/

/*insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000001','罗宏波一','男','21','经理','01'); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000002','罗宏波二','女','22','副经理','01'); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000003','罗宏波三','男','23','工程师','03'); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000004','罗宏波四','女','24','销售员','04'); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000005','罗宏波五','男','25','工程师','03'); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000006','罗宏波六','女','26','会计师','02'); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000007','罗宏波七','男','27','工程师','03'); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000008','罗宏波八','女','28','销售员','04'); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000009','罗宏波九','男','29','工程师','03'); insert into WORKER(Wno,Wname,Sex,Age,Prof,Kno) values('000010','罗宏波十','女','29','工程师','03');*/ /* insert into

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000001','3000','300','100','50','50','1'); insert into

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000002','3000','300','100','50','50','1'); insert into

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000003','2500','200','100','50','50','1'); insert into

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000004','2500','200','100','50','50','1'); insert into

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000005','2500','200','100','50','50','1'); insert into

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000006','2500','200','100','50','50','1'); insert into

自己做的!放心用吧~

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000007','2500','200','100','50','50','1'); insert into

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000008','2500','200','100','50','50','1'); insert into

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000009','2500','200','100','50','50','1'); insert into

SALARY(Wno,Wbase,Wbonus,Wwelfare,WG,WL,month) values('000010','2500','200','100','50','50','1');*/

/*select Kno,count(Wno) FROM WORKER Group by Kno;*/

/*select KESHI.Kno,Kname,sum(Wfact) FROM SALARY,KESHI,WORKER

WHERE KESHI.Kno=WORKER.Kno AND WORKER.Wno=SALARY.Wno Group by KESHI.Kno,Kname;*/

/*select Prof,count(Wno) FROM WORKER Group by Prof;*/

/*select WORKER.Prof,sum(Wfact) FROM KESHI,WORKER,SALARY WHERE WORKER.Wno=SALARY.Wno Group by WORKER.Prof;*/

/*delete from

SALARY where Wno ='000008'; delete from

WORKER where Wno ='000008';*/

/*select Wno,Wname,Sex,Age,Prof,Kno from WORKER;*/ /*select distinct prof from WORKER*/

/*select Wno,Wbase,Wbonus,Wfact,month from SALARY where Wno between '000003'and '000009' order by Wfact asc;*/ /*SELECT *

from WORKER,SALARY

WHERE WORKER.Wno = SALARY.Wno and month=1;*/

<六>运行结果

设计题目:工资管理系统

自己做的!放心用吧~

1) 某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售

人员。

2) 该单位下设4个科室,即经理室、财务科、技术科和销售科。

自己做的!放心用吧~

3) 工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在

工资中扣除。

4) 工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销

售员等)。

5) 每月个人的最高工资不超过3000元。工资按月发放,实际发放的工资金

额为工资减去扣除。

6) 实现按照科室录入个人的基本资料、工资和扣除金额的数据。

7) 计算个人的实际发放工资。

自己做的!放心用吧~

8) 按科室、职业分类统计人数和工资金额。

9) 能够删除辞职人员的数据。

自己做的!放心用吧~

10) 其它

自己做的!放心用吧~

<七>数据库设计经验教训总结

“数据库技术是近年来计算机科学技术中发展最快的领域之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。《数据库原理及应用》课程设计重视实践环节,对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。”

“数据库是数据管理的最新技术,是计算机科学的重要分支。今天,信息资源已成为各个部门的重要财富和资源。建立一个满足各个部门信息处理要求的行之有效的信息系统也成为一个企业或组织的生存和发展的重要条件。因此,作为信息系统的核心和基础的数据库技术得到越来越广泛的应用,从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理,从一般企业管理到计算机辅助设计与制造,计算机集成制造系统、电子政务、电子商务、地理信息系统等等,越来越多新的应用领域采用数据库技术来存储和处理信息资源。

对于一个国家来说,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量这个国家信息化程度的重要标志。因此,数据库课程不仅是计算机科学与技术专业、信息管理专业的重要课程,也是

自己做的!放心用吧~

许多非计算机专业的选修课程。”

选定题目:工资管理系统。根据数据库实验,完成此次数据库的设计。首先,在实验室里熟悉SQL2000软件的操作环境,并完成数据库上机实验内容,在此基础上,设计“工资管理系统”就更容易啦,创建表,插入员工数据,更新数据,删除数据,只要熟悉操作环境,认真完成实验内容,设计的时候便得心应手;掌握基本理论知识,搞清楚每一个操作的来龙去脉,原因及其结果,出现错误,学会用理论知识分析其原因,并加以改正,了解原因之后,有利于加深对数据库的理解,对设计步骤更加熟悉。

进行需求分析,概念设计,逻辑设计,物理设计,最终实现数据库的设计。工资管理系统:一个公司或企业需要进行员工的工作管理,工资管理系统能够有效地完成管理任务,大大提高了企业或公司的办公效率。一个公司里必定有几个科室,我设计的工资管理系统,此公司下属四个科室,包括经理室、财务科、技术科、销售科,经理室有经理和副经理,财务科有财务人员,技术科有技术人员,销售科有销售人员,不同的科室,不同的人员有不同的职称,包括经理、副经理、工程师、会计师、销售员;员工的资料包括工号、姓名、性别、年龄、职称、科室代码,科室包括科室代码、科室名,员工的工资包括基本工资、奖金、福利、住房公积金、失业保险、实发工资、月份。在设计数据库的时候,先在SQL环境下输入源代码,创建“GONGZIGUANLI”数据库,插入表KEHSI、WORKER、SALARY,打开企业管理器,确认是否已插入三个表,下一步是插入科室的数据,员工的基本信息,员工

自己做的!放心用吧~

的工资信息,执行完插入语句之后,打开企业管理器,确认是否完成插入,确认信息之后,继续操作下一步;初步建好数据库之后,开始测试数据库的功能,按科室、职业分类统计人数和工资金额,能够删除辞职人员的数据,查询员工的信息,查询工资的发放情况。完成这些基本操作之后,一个“工资管理系统”基本成型,就能完成一个公司或企业的工资管理。

再设计数据库的时候,难免会遇到一些问题,例如,插入员工的数据时候,数据插不进去;删除员工的数据的时候,删除错误等等。经过分析,出现这些错误的原因大多数是编写代码出错,插入语句或删除语句的编写错误。解决这些出现的问题,必须充分理解数据库的设计理论知识,知道出错的原因,才能有效地解决问题,就像老师讲的“皮与毛”的关系,对加深对数据库的理解很有帮助,对解决删除时候出现的问题也很有帮助。

完成数据库的设计,总结经验教训,无论设计数据库还是设计其他东西,首先,必须充分理解设计内容理论知识,理论知识是基础;其次,多进行实际操作,比如认真完成上机实验,只有多操作,才能发现问题,解决问题;最后,多问问题,多思考,出现问题,多向老师请教,自己多思考,认真解决。在老师和同学的帮助下,我最终完成了“工资管理系统”数据库的设计,在此,衷心感谢给予我帮助的同学和老师!

数据库课程设计大作业.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219