《数据库配置与管理1-图书销售系统》由会员分享,可在线阅读,更多相关《数据库配置与管理1-图书销售系统(6页珍藏版)》请在金锄头文库上搜索。
1、数据库配置与管理课程设计任务书 编号:01 题目图书销售系统设计目标:1要求达到熟练掌握关系数据库的基本知识和技能;2能够利用所学的基本知识和技能,进行简单数据库应用程序的设计。课程设计相关内容:1设计系统的功能框图、数据库设计;2设计管理系统后台数据库,使用T-SQL语句创建数据库中的各种对象;3上机调试;4答辩;5书写课程设计报告。课题背景:某图书销售企业要开发一套图书销售系统,有如下功能:1、基本信息管理2、进货管理3、销售管理4、会员管理5、用户管理现要求对“图书销售系统”进行数据库的设计并实现,数据库保存在C:Book目录下。一、创建数据库创建一个数据库booksale数据库所有文件
2、存放在C盘Book文件夹下,主数据文件初始化大小为2MB,增长方式为2mb每次,最大值为100MB,辅助数据文件初始化大小为2mb,最大值为100MB,增长方式为20%每次,日志文件初始化大小为2mb,不限定最大值,增长方式为10%。任务:Crate database booksaleOnprimary(name=booksale_dataFilename=cbookbooksale_data.mdf,Size=2,Maxsize=100,Filegrowth=2),(name=booksale_data2Filename=cbookbooksale_data2.mdf,Size=2,Maxs
3、ize=100,Fliegrowth=20%),Log on(name=boolsale_logFilename=c:bookbooksale_log.ldfSize=2,Maxsize=0,Fliegrowth=10%),go1)使用T-SQL语句创建数据库二、创建数据表图书表信息如下:图书编号:自动编号(标识列),从1开始,主键书名:必填作者:必填出版社编号:外键单价:必填,不低于1元ISBN:必填出版日期:必填销售状态:0或1,0表示待售,1表示已售,默认0备注:可选create table 图书表( 图书编号 int IDENTITY (1, 1) primary key , 书名 n
4、varchar(40) not null, 作者 nchar(20) Not null, 出版社编号 nachar(20) foreign key references 出版社信息(出版社编号), 单价 decimal(5,2) check 单价=1, ISBN char(20) not null, 出版日期 smalldatetime not null, 销售状态 bool default 0, 备注 memo)出版社信息如下:出版社编号:自动编号(标识列),从1开始,主键出版社名称:必填地址:必填备注:可选create table 出版社信息( 出版社编号 int IDENTITY (1,
5、 1) primary key , 出版社名称 nvarchar(40) not null, 地址 nvarchar(100) not null, 备注 memo)系统用户信息如下:用户编号:主键用户名:必填、唯一密码:必填、默认“”实际姓名:必填性别:只能是“男”或“女”,默认“男”出生年月:必填状态:0或1,0表示正常,1表示该用户被禁用create table 用户信息( 用户编号 int IDENTITY (1, 1) primary key , 用户名 varchar(20) unique,not null, 密码 nchar(20) not null,default , 实际姓名
6、nvarchar(20) not null, 性别 nvarchar(2) ,default 男,check 性别 in (男,女), 出生年月 smalldatetime not null, 状态 bool)会员信息如下:会员编号:6位数字,首位必须是1、2、3,第二位必须是3或8或9、主键姓名:必填联系电话:必填,格式为xxxx-xxxxxxxx(区号3位或4位,号码7-8位,区号、号码之间有分隔线,共13位)或手机号(手机号必须以1开头,第二位为3、5、8,共11位)身份证号:必填,只能是18位,身份证号唯一约束,首位不能为0,末位为0-9或X; 积分值:默认为0会员组编号:外键状态:0
7、或1,0表示正常,1表示挂失create table 会员信息( 会员编号 char(6) primary key ,check(会员编号 between and )and (会员编号 like 123389%), 姓名 nvarchar(10) not null, 联系电话 char(13) not null, 身份证号 char(18) not null, 积分值 int default 0, 会员组编号 tinyint foreign key references 会员组信息(会员组编号), 状态 bool )会员组信息如下:会员组编号:3位数字、主键会员组类型:只能0或1,0表示普通、
8、1表示VIPcreate table 会员组信息( 会员组编号 tinyint check 会员组编号=100 and 会员组编号0, 入库日期 smalldatetime default getdate(), 进货人 int not null,foreign key reference 用户信息(用户编号), 供货商 nvarchar(40) not null任务:1)根据以上实体及其属性创建数据表三、插入测试数据任务:1)向每个数据表中使用insert语句至少添加2-3条记录。四、常规业务操作(一)修改用户密码任务:1)、创建一个存储过程,根据用户编号修改用户密码2)、执行存储过程将其中一
9、个用户的密码修改为“”(二)禁用用户帐号某个员工辞职,将其用户帐号禁用任务:1)、创建一个存储过程,根据用户编号禁用某个用户帐号。2)、执行存储过程将其中一个用户的帐号禁用(三)数据查询任务:1)、创建一个可以根据价格范围查询满足条件的图书信息的存储过程2)、调用存储过程查询价格在1060之间的图书信息3)、创建一个可以根据会员组类型查询满足条件的会员信息的存储过程4)、调用存储过程查询会员信息(四)数据统计任务:1)、创建一个存储过程统计每个出版社所出版的图书总量,结果包含“出版社名称,图书总量”2)、创建一个存储过程统计销售总额高于100的图书信息,结果包含“出版社名称,书名,销售总额”3
10、)、创建一个存储过程,该存储过程能够根据输入的会员编号统计该会员的购书记录。(五)高级应用任务:1)、创建索引:给图书表的“ISBN”字段创建非聚集索引index_ISBN2)、创建3个视图:为了向客户显示信息友好,查询各表要求字段全为中文字段名,分别为图书信息、出版社信息、会员信息创建三个视图3)、分别创建向输入图书信息表中添加数据的存储过程proc_bookinsert,向会员表中添加数据的存储过程proc_hyinsert。4)、调用存储过程proc_bookinsert、proc_hyinsert向图书表、会员表添加数据。5)、创建一个触发器trig_delpub,功能是当删除出版社表
11、中某个出版社信息时,同时删除图书表中的相应数据。6)、创建一个销售图书的存储过程proc_salebook,当图书被销售时,如果购买者是会员,则要修改该会员积分,增加的积分为图书售价的整数部分,同时要修改图书表中的图书销售状态。7)、调用存储过程proc_salebook销售一本图书8)、创建一个图书进货的存储过程proc_in9)、调用该存储过程proc_in进货10)、创建一个存储过程proc_tjhy,统计会员的积分情况,在执行该存储过程时,如果没有输入会员的编号,则统计所有的会员的积分情况,否则统计输入会员的积分情况。11)、创建一个可以返回所有进货入库信息的内嵌表值函数funRK。1
12、2)、为booksale数据库添加2个用户C1、C213)、为booksale数据库添加1个角色R1,R1包含成员C1和C214)、R1可以查询数据库中的所有用户定义的数据表、视图15)、C1可以执行存储过程proc_bookinsert、但被禁止执行存储过程proc_salebook16)、将数据库全库备份到备份设备文件BKbooksale上。重要说明1、所有数据表、其他数据库对象的设计都要按规范执行,如数据表名称、字段名称全部用英文或英文的简写描述,不可以用中文。2、设计时要尽量联系平常所学C#或JAVA知识,如何设计数据库对象才能让软件界面上的操作最简单、最通用。其他要求:1源程序要有适当的注释,使程序容易阅读2写出课程设计报告,具体要求见相关说明文档应提交的材料:1数据库源文件;2课程设计报告;