第3章 需求分析
第4章 系统总体设计
4.1数据库总体设计
数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域.数据库技术不仅应用于事务处理,并且进一步应用到情报检索,人工智能,专家系统,计算机辅助设计等领域。
使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。数据库是通过数据库管理系统(DBMS-DATA BASE MANAGEMENT SYSTEM)软件来实现数据的存储、管理与使用。
数据库技术和计算机网络技术的发展相互渗透,相互促进,已成为当今计算机领域发展迅速,应用广泛的两大领域.数据库技术不仅应用于事务处理,并且进一步应用到情报检索,人工智能,专家系统,计算机辅助设计等领域。
使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。数据库是通过数据库管理系统(DBMS-DATA BASE MANAGEMENT SYSTEM)软件来实现数据的存储、管理与使用。
数据库是一个共享的、集成的计算机结构,它包括最终用户数据和元数据。一个好的数据库并不是随意产生的,其内容结构必须经过精心设计。设计优良的数据库会使数据管理变得容易,并产生有价值的信息;而设计糟糕的数据库则会成为冗余数据的滋生地。冗余数据经常会造成难以跟踪的错误。
关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则被称为规范化形式,即范式。在数据库设计过程中,对数据库进行检查和修改并使它符合范式的过程叫做规范化。
规范化是给实体分配属性的过程。它能够减少数据冗余,有助于进一步消除由于冗余引起的数据异常。规范化不能够消除数据冗余;相反,它通过生成有控制的冗余来连接数据库表。规范化通过一系列称为范式的阶段来完成。
第一范式:设R是一个关系模式。如果R的每个属性的值域都是不可分的简单数据项(成为原子)的集合,则称这个关系模式属于第一范式。第一范式要求每一个数据项都不能拆分成两个或两个以上的数据项。
第二范式(2NF):若关系模式R是1NF,而且每一个非主属性都完全函数依赖于R的候选键,则R称为第二范式。如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主关键字段的数指都依赖于该数据表的主键字段,那么该数据表满足第二范式。
第三范式(3NF):如果关系模式R是1NF,而且它的任何一个非主属性都不传递地依赖于任何候选键,则R称为第三范式。如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数值之间不存在函数依赖关系,那么该数据表满足第三范式。
数据表规范化的程度越高,数据冗余就越少,同时造成人为错误的可能性就越少;同时,规范化的程度越高,在查询检索时需要做的关联等工作就越多,数据库在操作过程中需要访问的数据表以及之间的关联也就越多。因此,在数据库设计的规范化过程中,要根据数据库需求的实际情况,选择一个折中的规范化程度。
4.2 表关系图
表关系图:
图3—1 表关系图
4.3 表结构
4.3.1管理员表(Admin)
英文名 |
中文名 |
类型 |
是否主键 |
id |
编号 |
int |
是 |
Name |
登陆名 |
Varchar(50) |
|
Pass |
登陆密码 |
Varchar(50) |
4.3.2文章表(Blog)
英文名 |
中文名 |
类型 |
是否主键 |
id |
编号 |
int |
是 |
Title |
标题 |
Varchar(50) |
|
Content |
内容 |
text |
|
InTime |
发布时间 |
datetime |
|
BlogTYpe_ID |
类型 |
Int |
BlogType外键 |
4.3.3文章类型表(BlogType)
英文名 |
中文名 |
类型 |
是否主键 |
id |
编号 |
int |
是 |
Type |
类型名称 |
Varchar(50) |
4.3.4订单表(Ding)
英文名 |
中文名 |
类型 |
是否主键 |
ID |
订单编号 |
Int |
是 |
Client_ID |
会员编号 |
Int |
Client外键 |
InTime |
购买日期 |
datetime |
4.3.5订单明细表(DingList)
英文名 |
中文名 |
类型 |
是否主键 |
ID |
编号 |
Int |
是 |
Ding_ID |
订单编号 |
Int |
Ding外键 |
Thing_ID |
物品编号 |
Int |
Thing外键 |
Num |
数量 |
int |
4.3.6会员表(Client)
英文名 |
中文名 |
类型 |
是否主键 |
ID |
编号 |
int |
是 |
Name |
姓名 |
nvarchar |
|
Sex |
性别 |
Nvarchar |
|
Age |
年龄 |
Int |
|
Tel |
电话 |
Nvarchar |
|
Address |
地址 |
Nvarchar |
|
|
邮箱 |
Nvarchar |
|
XueLi |
学历 |
Nvarchar |
|
Login |
登陆名 |
Nvarchar |
|
Pass |
登陆密码 |
nvarchar |
4.3.7商品表(Thing)
英文名 |
中文名 |
类型 |
是否主键 |
id |
编号 |
int |
是 |
Title |
商品名称 |
Nvarchar |
|
Price |
商品价格 |
Float |
|
Img |
图片地址 |
Varchar |
|
Content |
商品介绍 |
Text |
|
ThingType_ID |
商品类型 |
int |
ThingType外键 |
She |
出版社 |
Nvarchar |
|
author |
作者 |
Nvarchar |
|
ISBN |
ISBN |
Nvarchar |
4.3.8介绍表(Introduce)
英文名 |
中文名 |
类型 |
是否主键 |
ID |
编号 |
int |
是 |
Type |
类型名称 |
nvarchar |
|
Content |
内容 |
text |
4.3.9商品类型表(ThingType)
英文名 |
中文名 |
类型 |
是否主键 |
ID |
编号 |
int |
是 |
Type |
类型名称 |
nvarchar |