网上图书销售系统的数据库设计班级:2012级电气与自动化工程学院自动化4班组成员及所完成的工作:XX所完成的工作:系统需求,E-R图,关系模式XX所完成的工作:物理设计,系统实现系统名称:网上图书销售系统一.系统需求(系统简介及功能需求)A.该“网上图书销售系统”只是对数据库应用技术的一个样本数据库的实例,重在对数据库一些方法的熟悉与掌握,其中包括从数据库的概念模型到E-R图的绘制,再到数据库关系模式的建立,然后是物理模型的建立,最后完成一些简单的关系运算表达式的表达和相关的Select查询语句的使用。B.系统结构简述:本系统包括:订购人信息管理模块,书籍信息管理模块,供应商信息管理模块,管理者信息管理模块和付款接收银行管理模块5个部分根据网上图书销售系统分析和设计,确定数据库的实体主要有管理员、书、供应商、订单、客户、银行。实体之间的关系转换为其他三个表:管理(多对多),供应(多对多),付款(多对多),订单生成(一对多)注:各个基本表中关键字已在关系模式中说明C.系统功能简述:该系统开发设计的总目标是实现网上图书销售包括图书的购进、管理、购买、付款过程的系统化、自动化。系统主要实现的功能有书籍出入库,书目检索,统计供应商信息,订单功能和管理者信息等。系统数据库可对以下信息作出处理:订购人信息管理:浏览订购人的信息,对订购人信息进行维护。书籍信息管理:浏览书籍的信息,对书籍信息进行维护。供应商信息管理:显示当前数据库中供应商的供应情况。管理者信息管理:显示数据库中管理者的情况,对管理者信息进行维护。付款接收银行管理:根据不同的付款银行建立管理表。二.E-R图(1)客户与图书E-R图(2)管理员和银行的E-R图(2)供应商和订单的E-R图图2网上图书销售系统E-R图客户客户名邮箱密码客户号地址电话身份证号书名单价书籍书号书籍类型出版日期作者出版社管理员姓名登陆密码管理员ID银行电话名称银行编码地址负责人供应商厂号厂名联系人电话地址订单订单号订单状态数量订单日期总价订单客户三、关系模式实体主要有:管理员、书、供应商、订单、客户、银行。关系模式如下:客户(客户号,客户名,密码,邮箱,地址,电话,身份证号)书籍(书号,书名,定价,作者,出版社,出版日期,书籍类型,管理员ID)供应商(厂名,厂号,联系人,电话,地址)银行(地址,负责人,名称,银行编号,电话)订单(付款数,订单号,总价,订单状态,订单日期,订单客户ID,银行编号)管理员(姓名,登录密码,管理员ID)系统中的联系有:管理(管理员ID,管理书号,管理厂号,管理编号)供应(供应书号,供应厂号,单价,供应总数,供应ID)付款(付款日期,订单客户,截止日期,供应厂号,银行编号,付款数,订单号)订单生成(订购日期,订单总价,订单状态,订单客户,订单号,订单书名)总价订购日期付款日期付款总数订单号订单状态截止日期订单编号客户订单客户银行编号银行供应厂号付款订单管理书号管理厂号管理编号管理员订单生成总数供应商书号单价供应厂名管理员ID供应ID管理书籍供应销售供应管理员表1管理员字段名称数据类型长度备注管理员IDchar10主键姓名varchar8notnull登录密码char12notnull表2书籍字段名称数据类型长度备注书号char8主键作者varchar20notnull书名varchar20notnull出版社char20notnull书籍类型char8notnull出版日期datetime默认定价int10notnull管理员IDchar10外键表3供应商字段名数据类型长度备注厂号char4主键厂名varchar20notnull联系人varchar6notnull电话char11notnull地址char20notnull表4客户字段名数据类型长度备注客户号char10主键客户名varchar6notnull密码char10notnull电话char11notnull联系地址char20notnull身份证号char20Notnull表5订单字段名数据类型长度备注订单号char4主键订单状态char3notnull订购日期datetime默认notnull付款数int4notnull客户号char10外键银行编号char10外键表6银行字段名数据类型长度备注银行编号char10主键名称varchar20notnull负责人varchar6notnull电话char11notnull地址char20notnull表7付款字段名类型长度备注订单号int8主键,标识订单客户varchar8外键截止日期datetime默认notnull银行编号int8外键供应厂号int8外键付款总数int4notnull付款日期datetime默认notnull表8供应字段名类型长度备注供应IDint4主键,标识供应书号int8外键供应厂号int4外键供应总数int4notnull表9订单生成字段名类型长度备注订单号char4主键,标识订单客户varchar8外键订单状态char4订购日期datetime默认notnull订购总价int4notnull订单书名char20Notnull表10管理字段名类型长度备注管理编号int4主键,标识管理员IDint8外键管理书号int8外键管理厂号int8notnull五.系统实现数据库的建立用企业管理器,基本表的建立用T-SQL语言:数据库名称:网上图书销售系统1.建立数据库createdatabase网上图书销售系统on(name='网上图书销售系统dat',filename='E:\数据库作业\网上图书销售系统的数据库设计.mdf',size=15,maxsize=120,filegrowth=3)logon(name='网上图书销售系统log',filename='E:\数据库作业\网上图书销售系统的数据库设计.ldf',size=8MB,maxsize=60MB,filegrowth=3MB)2.建立基本表use网上图书销售系统createtable管理员(管理员IDchar(10)primarykey,登录密码char(12)notnull,姓名varchar(8)notnull)createtable书籍(书号char(8)primarykey,管理员IDchar(10)references管理员(管理员ID),书名varchar(20)notnull,作者varchar(20)notnull,出版社char(20)notnull,书籍种类char(8)notnull,出版日期datetime,定价char(10)notnull)createtable供应商(厂号char(4)primarykey,厂名varchar(20)notnull,联系人varchar(6)notnull,电话char(11)notnull,地址char(20)notnull)createtable客户(客户号char(10)primarykey,客户名varchar(6)notnull,密码char(10)notnull,电话char(11)notnull,联系地址char(20)notnull,身份证号char(20)notnull)createtable银行(银行编号char(10)primarykey,名称varchar(20)notnull,负责人varchar(10)notnull,电话char(11)notnull,地址char(20)notnull)createtable订单(订单号char(4)primarykey,客户号char(10)references客户(客户号),银行编号char(10)references银行(银行编号),订单状态char(3)notnull,订购日期datetimenotnull,付款数intnotnull,付款日期datetimenotnull)createtable订单生成(订单号char(4)references订单(订单号),primarykey(订单号),订单客户char(10)references客户(客户号),订单状态char(4)notnull,订购日期datetimenotnull,订购总价intnotnull,订单书名char(20)notnull)createtable供应(供应IDintprimarykey,供应书号char(8)references书籍(书号),供应厂号char(4)references供应商(厂号),供应总数intnotnull)createtable付款(订单号intprimarykey,订单客户char(10)references客户(客户号),截止日期datetimenotnull,银行编号char(10)references银行(银行编号),供应厂号char(4)references供应商(厂号),付款总数intnotnull,付款日期datetimenotnull)createtable管理(管理编号intprimarykey,管理员IDchar(10)references管理员(管理员ID),管理书号intreferences书籍(书号),管理厂号intnotnull)3.输入数据以管理员表输入为例:Insertinto管理员Values(‘3012203096’‘111111’‘管岱’)其他表格输入数据略4.创建索引createnonclusteredindex查询作者on书籍(作者)createnonclusteredindex查询出版社on书籍(出版社)4.创建视图createview客户的订单asselect订单号,付款日期,客户名,电话from客户join订单on客户.客户号=订单.客户号gocreateview客户银行asselect客户名,负责人from客户join订单on客户.客户号=订单.客户号join银行on订单.银行编号=银行.银行编号6.创建存储过程以执行查询和插入功能、修改功能①输入书名,从书籍表中返回书号、出版社、定价的信息。createprocedure书籍信息@CIDvarchar(20)asselect书号,书名,出版社,定价from书籍where书名=@CIDgo②插入客户信息。createprocedure插入客户信息@客户号char(10),@客户名varchar(6),@密码char(10),@电话char(11),@地址char(20),@身份证号cahr(20)asinsertinto客户values(@客户号,@客户名,@密码,@电话,@地址,@身份证号)③查询客户的信息createprocedure客户信息@namevarchar(6)asbeginselect客户号,密码,电话,联系地址,身份证号from客户where客户名=@nameend④修改客户电话号码Createprocedure修改客户电话@客户号char(10),@电话char(11),@电话char(11)asUpdate客户Set电话=@电话Where客户号=@客户号and电话=@电话