物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。
概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。
逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。
数据库不同层次之间的联系是通过映射进行转换的。数据库具有以下主要特点: 实现数据共享。数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
减少数据的冗余度。同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。 数据的独立性。数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。
数据实现集中控制。文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
数据一致性和可维护性,以确保数据的安全性和可靠性。主要包括:安全性控制:以防止数据丢失、错误更新和越权使用;完整性控制:保证数据的正确性、有效性和相容性;并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。
4.2.2数据库的选择
本网站使用MySQL实现关系型数据库。
MySQL是一个多用户、多线程的支持标准 SQL语句的关系型数据库。它支持大文件及图像的存储,并且提供一个丰富和极其有用的功能集。它的特点是速度快, 易用,稳定性能好,它由一个服务器守护程序MySQL和很多不同的客户程序和库组成。MySQL支持标准的ANSI SQL语句,支持多种平台,在Unix系统上该软件支持多线程运行方式,从而能获得相当好的性能。
第 15 页 共 28 页
15
大访问量查询加上修改时很容易阻塞,不支持事务处理使MySQL无法胜任关键的企业业务,不支持外键约束等等,使得数据的完整性只能靠开发人员自己保证.然而MySQL结构简单,又不包含一些复杂的高级的数据库功能,因此查询极快.这也是本系统选择MySQL的主要原因。 4.2.3数据库表的描述
图书表book的定义如表4-1所示:
表4-1 图书表book的定义
字段 类型 id int(11) 书名 varchar(40) 作者 int(11) 图书类别 varchar(25) 出版社 int(11) 图书价格 varchar(100) Book数据表的图片如下: Key PRI Foreign Key bookClass publisher Null 否 否 否 是 是 是 默认 0 NULL NULL NULL 字段含义 主键,递增 书名 作者 图书类别 出版社 图片价格
管理员表admin的定义如表4-3所示:
表4-3 管理员表admin的定义 字段 Id User password 类型 varchar(50) varchar(50) varchar(50) Key PRI Null 是 是 是 默认 NULL NULL NULL 字段含义 管理编号 用户名 密码 16
第 16 页 共 28 页
管理员admin的数据表的图 如下:
第五章 网上书店系统后台模块的设计
这个网上书店系统的后台模块可以对系统的注册会员进行管理,以及对订单进行管理回复,同时对主页公告、美文、新闻、图书展示进行及时更新。这个后台管理模块的基本流程图如下:
第 17 页 共 28 页 17
图4-1 系统模块流程图
5.1数据库连接
网上书店采用Microsoft Access 2002作为后台的数据库。我们建立了一个名为 Shop的数据库用于存放数据,
数据库的连接(conn.asp):
<% request.setCharacterEncoding(\ String txtuser,txtpswd,dbpswd; boolean flag=false; txtuser=request.getParameter(\获取用户填写的账号 txtpswd=request.getParameter(\获取用户填写的密码 dm.setDbdriver(\ dm.setSourcename(\ Statement stmt=dm.getCon().createStatement %> 数据表设计
各表的名称和功能如表1所示。
第 18 页 共 28 页
18
表1 BookShop数据库中的表及其功能说明 字段 类型 Key Foreign Key Null id int(11) PRI 否 书名 varchar(40) 否 作者 int(11) bookClass 否 图书类别 varchar(25) 是 出版社 int(11) publisher 是 图书价格 varchar(100) 是 下面将详细介绍各表的数据结构。
5.2图书入库管理模块
默认 0 NULL NULL NULL 字段含义 主键,递增 书名 作者 图书类别 出版社 图片价格 这个功能是让管理员及时添加图书的品种,以满足市场需求。其主要代码如下:
<% try{
Statement
ResultSet rs=stmt.executeQuery(\ //计算记录的个数 rs.last();
int len=rs.getRow()+1; //------------------ rs.beforeFirst(); rs.moveToInsertRow(); rs.updateInt(\
rs.updateString(\书名\ rs.updateString(\作者\ rs.updateString(\图书类别\ rs.updateString(\出版社\ rs.updateString(\价格\ rs.updateString(\图书简介\rs.insertRow(); rs.beforeFirst(); }
catch(Exception e) {
e.printStackTrace(); }
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
第 19 页 共 28 页 19