数据库课程设计 完整的 可以直接交的

更新时间:2024-05-12 01:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计报告

学生姓名:专业班级:课程名称:学年学期:指导教师: 学 号: 2 0 1 —2 01 学年第 学期

2 0 1 年 月

课程设计成绩评定表

学生姓名 专业班级 设计题目 指 导 教 师 评 语 指导教师: 年 月 日 学 号 起止时间 成绩

一. 实验目的:

加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;

在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;

学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;

为毕业设计和以后工作打下必要基础。 二. 课程设计任务

设计一个管客户关系信息管理的管理系统。涉及客户信息管理、客户职员管理、客户合同管理、系统用户管理、客户商业往来管理及生日提醒。

1、系统功能包括:

? 客户信息管理:增加、修改、删除; ? 客户职员管理:增加、删除、修改; ? 客户合同管理:增加、删除、修改; ? 客户商业往来管理:增加、删除、修改 ? 系统用户管理:增加、删除、修改 ? 生日提醒:查询

? 查询:客户信息管理和客户商业往来进行嵌套查询;将客户等级输出合并查询;客户商业往来表和客户信息表进行自然连接 ? 触发器功能

2、实现内容 ? 创建数据库的结构 ? 创建各基本表的结构

? 编制系统各功能模块,完成数据的管理(增、删、改)及查询。 三. 数据库系统设计 1.设计E-R图

客户信息管理用户管理 客户职员管理客户合同管理客户商业往来管理 2. 设计相应的关系模型,确定数据库结构

根据基础数据建立名为“ClientMagSys”的数据库,并建立六个关系表:客户表:Client;客户职员表:ClientStaffer;客户合同表:contractMag;客户商业往来表:ContactHistory;生日提醒表:Staffer;用户管理表:SystUser。

生日提醒

3. 数据库范式分析

由于此数据库不存在传递依赖和部分依赖,所以该数据库系统属

于第三范式。

4.设计应用系统的系统结构图,确定系统功能:

流程图如下:

用户登录界面 失败 连结数据库 成功 初始化图形界面 功能选择 系统管理 客户管理 客户商业往来管理 客户职员管理客户合同管理客户信息管理 生日提醒 退出程序

5.设计关系的主码约束、外码约束和使用CHECK实现完整性控制: 见附录 图1

四. 系统实施

Client:

ClientStaffer:

contractMag:

ContactHistory:

Staffer:

SystUser:

功能代码: 添加:

CREATE PROCEDURE [insert_Staffer_1]

(@ClientStafferID_1 [char](10), @ClientStafferName_2 [char](10), @Birthday_3 [smalldatetime])

AS INSERT INTO [ClientMagSys].[dbo].[Staffer]

( [ClientStafferID], [ClientStafferName], [Birthday])

VALUES

( @ClientStafferID_1, @ClientStafferName_2,

@Birthday_3)

GO 删除:

CREATE PROCEDURE [delete_Client_1]

(@ClientID_1 [char])

AS DELETE [ClientMagSys].[dbo].[Client] WHERE

( [ClientID] = @ClientID_1)

GO 查询:

客户信息管理和客户商业往来进行嵌套查询 CREATE PROCEDURE [dbo].[select] AS SELECT ContactHistoryId from ContactHistory WHERE ClientID = (Select ClientID from Client

where ClientName = ' ' ) GO

将客户等级输出合并查询 CREATE

PROCEDURE

[dbo].[union]

AS

SELECT

ClientID,ClientName FROM Client where ClientLevel = '重要客户' union

SELECT ClientID,ClientName FROM Client where

ClientLevel = '优质客户' GO

客户商业往来表和客户信息表进行内连接

CREATE PROCEDURE [dbo].[inner_select] AS SELECT a.ClientLevel,b.*

from Client a INNER JOIN

ContactHistory b ON b.ClientID = a.ClientID GO 生日查询:

CREATE PROCEDURE [dbo].[selectbirthday] AS SELECT * FROM Staffer WHERE Birthday

BETWEEN GETDATE() AND DATEADD(day, 3, GETDATE()) GO

触发器功能:

当某个表更新信息时候一些表跟着更新相关信息:

SET QUOTED_IDENTIFIER OFF GO

SET ANSI_NULLS ON GO

ALTER TRIGGER [truClientStafferID] ON [dbo].[ClientStaffer] FOR INSERT, UPDATE, DELETE AS

if Update(ClientStafferID) begin

Update Staffer

Set ClientStafferID=i.ClientStafferID

From Staffer br , Deleted d ,Inserted i Where br.ClientStafferID=d.ClientStafferID end GO

SET QUOTED_IDENTIFIER OFF GO

SET ANSI_NULLS ON GO

五. 课程设计总结:

通过这次课程设计,我明白了数据库的重要性,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。理论知识与实际的相结合让我体会到数据库是非常奇妙的东西,随便连接几根线就能把一些看起来没多大关系的东西联系了起来,然后在程序的前台展示给我们看。

平时上课的时候尤其是触发器很不理解,经常这次课程设计明白了触发器是怎么一回事了,经过自己到处找资料,不断地修改自己的错误,经过一周的努力终于让自己的数据库建立起来了,虽然不是很完美,但是自己做出来就是一个进步。

附录:

图1

本文来源:https://www.bwwdw.com/article/6j6g.html

Top