数据库课程设计报告

发布时间:2024-11-12

仓库管理系统SQLsever,C#

数据库课程设计

班 级 计算机科学与技术0802 学 号 3080602051 姓 名 龚 科 指导老师 王 新 胜

二零一零年 七 月

仓库管理系统SQLsever,C#

一、引言

1.设计目的

课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。课程设计的目的:

1. 加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平; 2. 在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高; 3. 学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力; 4. 为毕业设计和以后工作打下必要基础。

2.设计要求

运用数据库基本理论与应用知识,在微机RDBMS(SQL Server)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。

1. 用E-R图设计选定题目的信息模型; 2. 设计相应的关系模型,确定数据库结构; 3. 分析关系模式各属于第几范式,阐明理由; 4. 设计应用系统的系统结构图,确定系统功能;

5. 通过设计关系的主码约束、外码约束和使用CHECK实现完整性控制; 6. 为参照关系设计插入、删除、修改触发器; 7. 实现应用程序设计、编程、优化功能;

8. 对系统的各个应用程序进行集成和调试,进一步优化系统功能、改善系统用户界面

完成实验内容所指定的各项要求;

9. 分析遇到的问题,总结并写出课程设计报告; 10. 自我评价

3.软件定义:windowsXP系统

4.开发环境:Visual studio 2005 C#,SQL Server 2000

仓库管理系统SQLsever,C#

1.系统功能结构

2.概念模型设计 E-R图

仓库管理系统SQLsever,C#

1.数据库设计 关系图

表:

1.商品表

create table SHANGPIN

仓库管理系统SQLsever,C#

(Sno char(5) primary key, Sname char(20) unique,

Sleibie char(10), --食物,衣物,生活用品,家用电器等等 Sxinghao char(8) unique,

Sdanwei char(2) not null, --件,个等等 Sprice int );

2.仓库表

create table CANGKU (Cno char(5) primary key, Cname char(20) );

3.库存表

create table STORE (Sno char(5), Cno char(5), NUM int,

primary key(Sno,Cno),

foreign key(Sno)references SHANGPIN(Sno), foreign key(Cno)references CANGKU(Cno) )

4.管理员表

仓库管理系统SQLsever,C#

create table MANAGER (Mno char(5) primary key, Mname char(10) not null,

Msex char(2) check(Msex in('男','女')), Mage int check(Mage>=18 and Mage<=60), Mtel char(15) ) 5.客户表

create table KEHU

(KHno char(5) primary key, KHleibie char(10), KHname char(20), KHlxr char(10), KHtel char(15), CITY char(5), ) 6.入库表

仓库管理系统SQLsever,C#

create table RUKU

(RKno char(5) primary key, RKday char(8), Sno char(5), Sname char(20), Cno char(5), RKnum int, RKprice int, RKmoney int, RKyfk int, KHno char(5), KHname char(20), Mno char(5), Mname char(10),

foreign key(Sno)references SHANGPIN(Sno), foreign key(Cno)references CANGKU(Cno), foreign key(Mno)references MANAGER(Mno), foreign key(KHno)references KEHU(KHno) )

7.出库表

8.密码表

create table CUKU

仓库管理系统SQLsever,C#

(CKno char(5) primary key, CKday char(8), Sno char(5), Sname char(20), Cno char(5), CKnum int, CKprice int, CKmoney int, CKyfk int, KHno char(5), KHname char(20), Mno char(5),

Mname char(10) not null,

foreign key(Sno)references SHANGPIN(Sno), foreign key(Cno)references CANGKU(Cno), foreign key(Mno)references MANAGER(Mno), foreign key(KHno)references KEHU(KHno), foreign key(Sno,Cno)references KUCUN(Sno,Cno) )

8.密码表

create table PASSWORDS (Mno char(5), Passwords char(6),

foreign key(Mno)references MANAGER(Mno) )

仓库管理系统SQLsever,C#

视图:

1.仓库信息视图:

2.库存信息视图:

触发器:

1.入库触发器创建:

要求:在添加入库记录时,必须修改库存表,分两种情况,一是(Sno,Cno)在库存表中有记录,修改库存数量即可,二是没有记录时,要添加相关记录。 create trigger WHENRK on RUKU for insert as

仓库管理系统SQLsever,C#

DECLARE @S_no CHAR(5), @C_no char(5),@N_um int SELECT @S_no= Sno, @C_no=Cno,@N_um=RKnum FROM INSERTED

if (EXists(select Sno from STORE WHERE Sno=@S_no AND Cno=@C_no))begin update STORE set NUM=NUM+@N_um

where Sno=@S_no AND Cno=@C_no end

if(not EXists(select Sno from STORE WHERE Sno=@S_no AND Cno=@C_no)) begin

insert into STORE values(@S_no,@C_no,@N_um) end

2.出库触发器创建:

要求:在添加出库记录时,必须满足(Sno,Cno)外码约束,也就是无法添加(Sno,Cno)不在库存表中的记录。满足外码约束后,如果出库数量不大于库存数量,修改库存数量即可,但当出库数量大于库存数量,将无法添加相关记录。 create trigger WHENCK on CUKU for insert as

DECLARE @S_no CHAR(5), @C_no char(5),@N_um int,@CK_no CHAR(5) SELECT @S_no= Sno, @C_no=Cno,@N_um=CKnum,@CK_no=CKno FROM INSERTED

if (EXists(select Sno from STORE WHERE Sno=@S_no AND Cno=@C_no and NUM>=@N_um))begin update STORE set NUM=NUM-@N_um

where Sno=@S_no AND Cno=@C_no

仓库管理系统SQLsever,C#

end

if (EXists(select Sno from STORE WHERE Sno=@S_no AND Cno=@C_no and NUM<@N_um))begin

delete from CUKU where CKno=@CK_no end

2.完整性设计

实体完整性:在商品表中定义商品号Sno为主码;在仓库表中定义仓库号Cno为主码;在库存表中定义商品号和仓库号(Sno,Cno)为主码;在管理员表中定义管理员编号Mno为主码;在客户表中定义客户编号KHno为主码;在入库表中定义入库号RKno为主码;在出库表中定义出库号CKno为主码;在密码表中定义管理员编号Mno为主码;

实体完整性检查和违约处理:

1.检查主码值是否唯一,如果不唯一则拒绝插入或修改

2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改;

参照完整性:在库存表中定义商品号和仓库号为建立在商品表和仓库表上的外码;在入库表中定义商品号为建立在商品表上的外码,仓库号为建立在仓库表上的外码,客户号为建立在客户表上的外码,管理员编号为建立在管理员表上的外码;在出库表中定义商品号为建立在商品表上的外码,仓库号为建立在仓库表上的外码,客户号为建立在客户表上的外码,管理员编号为建立在管理员表上的外码;在密码表中定义管理员编号为建立在管理员表上的外码。

参照完整性的检查和违约处理:

1.拒绝执行:不允许该操作执行。该策略一般设置为默认策略; 2. 级联操作:当删除或修改被参照表的一个元组造成了与参照表的不一致,则删除或修改参照表中的所有造成不一致的元组;

3. 设置为空值:当删除或修改被参照表的一个元组时造成了不一致,则将参照表中的所有造成不一致的元组的对应属性设置为空值;

用户自定义完整性:在管理员表中,添加完整性约束条件,年龄在18—60之间;性别只能在‘男’‘女’两个选项中取值;姓名不能为空;否则,无

仓库管理系统SQLsever,C#

法插入;

2.主要功能模块设计 A登录模块设计:

private void button1_Click(object sender, EventArgs e) { try {

string Mycon = "Data Source = PC-200902091503 ;Integrated Security = SSPI; Initial Catalog = mysql";

SqlConnection conn = new SqlConnection(Mycon); conn.Open();

SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

http://mandText = "select Mno from PASSWORDS where Mno='" + textBox1.Text + "'and Passwords='" + textBox2.Text + "'";

http://mandType = CommandType.Text; SqlDataReader str = cmd.ExecuteReader(); if (str.Read()) {

this.Visible = false; Form2 f1 = new Form2(); f1.Owner = this; f1.ShowDialog(); this.Close(); } else {

MessageBox.Show("用户名和密码错误");

仓库管理系统SQLsever,C#

} }

catch (Exception e1) {

MessageBox.Show("数据库连接错误"); } }

B主菜单设计:

private void button1_Click(object sender, EventArgs e) {

this.Visible = false; Form3 f1 = new Form3(); f1.Owner = this; f1.ShowDialog(); this.Close(); }

private void button2_Click(object sender, EventArgs e) {

this.Visible = false; Form4 f1 = new Form4(); f1.Owner = this; f1.ShowDialog(); this.Close(); }

仓库管理系统SQLsever,C#

此模块设计主要是添加两个连接其他窗口的按钮。以后出现类似模块设计将不再列出有关设计代码。 C查询功能主菜单设计

E查询信息显示模块设计

该模块设计主要是在窗体内添加report viewer控件,并添加相关设计的报

仓库管理系统SQLsever,C#

表。相关代码不再列出。其他查询信息模块完全相同,不再赘述。

F仓库管理菜单设计

G商品信息管理菜单设计

仓库管理系统SQLsever,C#

有关代码:

private void button1_Click(object sender, EventArgs e) {

string Snof = textBox1.Text; string Snamef = textBox2.Text; string Sleibief = textBox3.Text; string Sxinhaof = textBox4.Text; string Sdanweif = textBox5.Text;

int Sprice = Convert.ToInt16(textBox6.Text);

SqlConnection connection = new SqlConnection("Data Source = PC-200902091503 ;Integrated Security = SSPI; Initial Catalog = mysql"); try {

connection.Open();

SqlCommand command = new SqlCommand("insert into SHANGPIN values ('" + Snof + "','" + Snamef + "','" + Sleibief + "','" + Sxinhaof + "','" + Sdanweif + "'," + Sprice + ")", connection);

command.ExecuteNonQuery(); MessageBox.Show("添加成功");

}

catch (Exception ex) {

MessageBox.Show(ex.Message); }

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

    精彩图片

    热门精选

    大家正在看

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

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

    支付方式:

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

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