




已阅读5页,还剩102页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章网站数据库设计及实现 6 1网站数据库概述 网站数据库是实现动态网站的一个有力的工具 目前具有一定规模的网站建设都离不开数据库的使用 网络数据库 Web数据库 系统数据库系统是网络数据库系统的重要组成部分 那么 让我们来看看什么是网站数据库 6 1 1什么是网站数据库我们把能够为网站提供后台数据支持 网站后台服务程序能够根据访问者提供的资料 到网站的后台数据库搜索数据 并将搜索的结果或数据经整理返回给访问者的后台数据库称为网站数据库 6 1网站数据库概述 6 1网站数据库概述 网站数据库是整个网站的数据中心 所有网站的数据 特别是那些需要经常更新的数据 都可以存放在网站数据库中 网站数据库的更新是通过网页程序实现的 网站的后台服务器端程序通常具有数据库访问的功能 通过访问数据输入界面 通过页面向数据库输入所需的数据 用户浏览器还可以作为数据查询的输入界面 通过页面传递查询条件 网页后台服务器程序部分可以查询数据库 然后把查询结果返回到浏览器 通过用户浏览器把结果显示出来 同时用户浏览器还可以发出数据操作指令 网站后台服务器程序收到这些数据库指令后 可以对数据库进行更新 删除等操作 操作完成后 再在浏览器上显示操作结果 这些网站数据库的访问控制过程如图 6 1网站数据库概述 6 1 2网站数据库的开发环境设计开发一个网站数据库是有许多种解决方案的 不同的操作系统平台使用的数据库管理系统可能也不同 通常某种网站操作系统及建设技术和某种数据库管理软件 是一一对应的 6 1网站数据库概述 6 2 1Web数据库技术发展背景网站程序设计技术主要应用于对网页进行动态的控制 实现和网站页面与用户之间的交互 实时访问网站的后台数据库 以及实现一些网页特效等作用 其中 HTML语言是基础中的基础 6 2网站后台数据库技术 6 2网站后台数据库技术 访问Web数据库的一般过程 6 2 2Web数据库访问技术1 访问Web数据库的一般过程 6 2网站后台数据库技术 2 常用的Web数据库接口技术以下简单介绍几种常用的Web数据库接口技术 1 CGICGI是最早使用的Web数据库链接技术 一般运用VB C Perl等语言编写CGI程序 并通过编译成为可执行程序 CGI程序的优点是 容易上手 易于掌握 CGI程序的缺点是 难以修改 每次修改都需要重新编译 不仅调试困难 而且难以查错 运行效率较低 用户的每一表单 form 都需要执行一个可执行程序文件 当多个用户同时发出请求时 必然使多个可执行程序文件同时在内存上运行 在服务器上形成 瓶颈 大大降低服务器的执行速度 另外CGI协议适应性较差 缺乏与用户的访问交互 CGI是早期的较为成熟的Web数据库技术 已在大量的网站上使用 尤其在UNIX平台上 6 2网站后台数据库技术 2 ADCMicrosoftADC advanceddataconnector 具有一个访问数据库的ActiveX控件 与普通的Web数据库处理不同 它并不在服务器端运行 而是在客户端的浏览器上实现访问数据库的操作 可访问支持ODBC的数据库 因而要求客户端上使用支持ActiveX的浏览器 如IE5 0及Netscape等 ADC可从服务器上自动下载并被安装到客户端 可以使用脚本语言 如VBScript及JavaScript等 编程 ADC的缺点是仅在客户端访问数据库 因此大量的数据需驻留在客户端 在浏览器访问数据时 虽然减少了与服务器端之间的频繁数据交换 提高运行效率 但访问数据库应用程序的性能会受到一定的限制 6 2网站后台数据库技术 3 ASP与ADOASP采用ADO ActiveXDataObject ActiveX数据对象组件 实现对数据库的访问 它是 个无需进行编译的应用程序环境 支持OpenScript接口 可以使用这个标准的任一种脚本语言 如VBScript及JavaScript等 这些语言能够调用相应的组件完成某种功能 ASP可以用多线程方式在服务器的进程中运行 可对多用户程序进行并行优化处理 可以建立动态性强和功能齐全的网站 与CGI相比 ASP具有以下特点 易于掌握 功能齐全 便于高效开发出Web应用软件 运行效率较高 CGI以磁盘文件方式进行数据交换 因为ASP是以数据流方式与浏览器进行数据交换 采用多线程的工作方式 更节省系统资源 可以将HTML文本与程序文本组合 无需编译 易于编程与调试 6 2网站后台数据库技术 4 ODBCODBC 开放式数据库连接 是一种用C语言编制 适用于不同的DBMS 数据库管理系统 数据存取标准的应用程序接口 它包含4个组件 即应用程序 驱动程序管理器 drivermanager 驱动程序和数据源 其驱动程序管理器可以将多种平台的数据库相连接 每种数据库引擎均需要向驱动程序管理器登录自己的ODBC驱动程序 以进行相应的数据访问 ODBC向应用程序提供统一的标准接口 这为ODBC的开放性奠定了基础 6 2网站后台数据库技术 5 JDBCJDBC是Java应用程序接口 用于执行SQL语句 是API ApplicationProgrammingInterface应用程序编程接口 集合 JDBC中设置了多种Java程序连接数据库的框架 由一组Java语言编写的类和接口组成 其目标是让多种数据库用户用Java程序或Java的脚本语言实现对数据库的访问 JDBC保持了ODBC的基本特征 也独立于特定的数据库 使用相同源代码的应用程序通过动态加载不同的JDBC驱动程序访问不同的DBMS 在连接不同的DBMS时各个数据库管理系统通过不同的URL 统一资源定位器 来标识 JDBC的总体结构类似于ODBC 也具有相应的组件 应用程序 驱动程序管理器 驱动程序和数据源 JDBC的使用方法主要有3种 即通过ODBC与数据库连接 直接用JDBC与数据库连接及通过中间层完成计算 运用JDBC驱动程序连接数据库 6 2网站后台数据库技术 6 大型数据库专用接口许多著名的数据库厂商都为自己的数据库系统提供高性能的接口 如SybaseWeb sql是由Sybase公司开发的网络数据库软件 需要与网络服务器配合 它使用标准和扩充的HTML PerlScript与SQL可以访问数据库 Oracle公司也提供了OracleWebApplicationServer 可实现访问数据库的各种功能服务 执行PL SQL可以对Oracle9i进行访问 6 2 3建立网站如何选择合适的数据库目前常用的建立中小型数据库工具一般有Access MySQL SQLServer等 那么 当你想做一个网站时 到底哪一种数据库是适合自己的呢 以下分别介绍一下这几种数据库的特点及功能 1 Access是一种桌面数库 适合数据量少的应用 在处理少量数据和单机访问的数据库时是很好的 效率也很高 但是它的同时访问客户端不能多于4个 早期的Access数据库有一定的极限 如果数据达到100M左右 很容易造成服务器IIS假死 或者消耗掉服务器的内存导致服务器崩溃 在Access2003以后的 如果服务器的配置的合理 中小型公司的企业20以上的客户端也收到不错的效果 可以同时使用 包括查询 输入数据等 出错现象较少 6 2网站后台数据库技术 6 2网站后台数据库技术 2 SQLServer是基于服务器端的中型的数据库 可以适合大容量数据的应用 在功能上管理上也要比Access要强得多 在处理海量数据的效率 后台开发的灵活性 可扩展性等方面强大 因为现在数据库都使用标准的SQL语言对数据库进行管理 所以如果是标准SQL语言 两者基本上都可以通用的 SQLServer特点 真正的客户机 服务器体系结构 图形化用户界面 使系统管理和数据库管理更加直观 简单 丰富的编程接口工具 为用户进行程序设计提供了更大的选择余地 SQLServer与WindowsNT完全集成 利用了NT的许多功能 如发送和接受消息 管理登录安全性等 具有很好的伸缩性 可跨越从运行Windows95 98的膝上型电脑到运行Windows2000的大型多处理器等多种平台使用 对Web技术的支持 使用户能够很容易地将数据库中的数据发布到Web页面上 SQLServer提供数据仓库功能 这个功能只在Oracle和其他更昂贵的DBMS中才有 3 MySQL是一个开放源码的小型关系型数据库管理系统 目前MySQL被广泛地应用在Internet上的中小型网站中 由于其体积小 速度快 总体拥有成本低 尤其是开放源码这一特点 使许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库MySQL特点 MySql的核心程序采用完全的多线程编程 线程是轻量级的进程 可灵活地为用户提供服务 而不过多的占用系统资源 MySql可运行在不同的操作系统下 MySql有一个非常灵活而且安全的权限和口令系统 当客户与MySql服务器连接时 所有的口令传送被加密 而且MySql支持主机认证 MySql支持ODBCforWindows MySql支持所有的ODBC2 5函数和其他许多函数 这样就可以用Access连接MySql服务器 从而使得MySql的应用被大大扩展 MySql支持大型的数据库 MySql拥有一个快速而且稳定的基于线程的内存分配系统 稳定性好具有强大的查询功能 6 2网站后台数据库技术 6 3 1分析网站的数据内容1 分析数据内容的原则分析网站数据内容 实质上是将现实世界中的事物表示在计算机之中 在这里我们首先介绍一下实体和属性的概念 实体 entity 客观存在且可以相互区别的事物 实体既可以是 个具体的事物 例如一个学生 一辆汽车 一篇新闻等等 也可以是一个抽象的事物 例如一场球赛 一次活动等等 属性 attribute 实体有若干特性 每一个特性称为属性 每个属性有一个值域 值域的类型可以是整型 实型或字符串型 例如学生有学号 姓名 年龄 性别等属性 新闻有发表时间 出版社 新闻主题 新闻关键字等属性 6 3数据库设计 6 3数据库设计 确定网站数据的内容就是把现实世界中的各种实体表现在计算机中 主要是要把实体的属性准确地在计算机中反映出来 属性的表示对于实体的表示是至关重要的 实体的存在其实是一组属性的集合 而属性当前值的不同组合就反映了实体的不同状态 因此 分析网站数据的内容就是要准确地找出实体的属性集 并把它们描述在计算机当中 确定实体的属性集的原则是被确定的属性对于该实体是必要的 有用的 并且 应该是可区别的 有明确定义的 必要的是指该属性在表示实体时是必须的 没有了该属性所得到的实体状态是不完整和不确定的 例如 对于一个学生实体 姓名是最显然的必要属性 没有了这个属性就无法知道这个实体具体表示哪个学生了 也就是不确定了 2 分析数据内容的例子下面我们以一个商业网站IT营销网的实例来分析网站的数据内容 在本例网站中 我们要完成的任务是如何将新闻浏览功能 发表评论功能 社区讨论功能所要操作的对象表示在网站数据库中 也就是找出它们操作的对象 以及这些对象实体的属性集 对于新闻浏览功能 我们的操作对象是新闻 新闻文章的一些主要属性如下 6 3数据库设计 6 3数据库设计 6 3数据库设计 6 3 2分析网站的数据内容之间的联系1 各种联系模式两个不同的实体集之间的联系有以下三种情况 1 1 1联系如果实体集E1中每个实体 即一个值 至多和实体集E2中一个实体有联系 反之亦然 那么实体集E1和E2的联系称为 一对一联系 记为 1 1联系 例如飞机的座位和乘客之间 学校与校长之间都是1 1联系 如图6 3所示 图6 3实体之间一对一联系示意图 2 1 联系如果实体集E1中每个实体与实体集E2中任意个 零个或多个 实体有联系 而E2实体集中每个实体至多与E1中一个实体有联系 那么称E1和E2的联系为 一对多联系 记为 1 联系 例如 在学校里 系和学生之间 工厂里车间和职工之间都是1 M联系 如图6 4所示 6 3数据库设计 3 M N联系如果实体集E1中每个实体与实体集E2中任意个 零个或多个 实体有联系 反之亦然 那么称E1和E2的联系为 多对多联系 记为 M N联系 例如 学生与课程之间 商店与顾客之间都是M N联系 上面3种联系是实体集之间最基本的联系 类似地也可以定义多个实体集 三个或三个以上 之间的各种联系 也可以定义同一个实体集的实体间联系 另外 M N联系在计算机中表示起来是十分复杂的 但是我们可以引入两个1 M的联系来表示一个M N的联系 只要在中间加入一个抽象出来的实体集 例如 我们要表示学生与课程的关系 我们在原来学生和课程两个实体集的基础上引入了 学生v课程 这样一个实体集 就可以形成 学生 与 学生v课程 之间是1 M的关系和 课程 与 学生V课程 之间也是1 M的关系了 6 3数据库设计 数据库设计是对一个给定的应用环境 构造最优的数据库模式 建立数据库及其应用系统 使之能够有效地存储数据 满足各种用户的应用需求 即信息要求和处理要求 大型数据库设计既是涉及多学科的综合性技术 又是一项庞大的工程项目 它要求从事数据库设计的专业人员应具备多方面的技术和知识 除要了解计算科学的基础知识和软件工程的原理和方法 掌握程序设计的方法和技巧 具备数据库的基本知识和数据库设计技术外 还应充分了解应用领域的业务知识 才能设计出符合具体领域要求的数据库应用系统 本节主要介绍关系数据库设计的基本概念 步骤和方法 并通过实例设计进行说明 通过本节学习 可以了解 数据库设计的基本步骤 关系数据库设计方法 基于E R模型的数据库设计方法和用户视图法 6 3数据库设计 6 3 3数据库设计的基本步骤按照规范设计的方法 考虑数据库及其应用系统开发全过程 将数据库设计分为以下六个阶段 如图所示 数据库设计步骤 6 3数据库设计 1 需求分析阶段2 概念模型设计阶段3 逻辑模型设计阶段4 数据库物理设计阶段物理设计可分五步完成 前三步涉及到物理结构设计 后两步涉及到约束和具体的程序设计 1 存储记录结构设计 包括记录的组成 数据项的类型 长度 以及逻辑记录到存储记录的映射 2 确定数据存放位置 可以把经常同时被访问的数据组合在一起 记录聚簇 cluster 技术能满足这个要求 3 存取方法的设计 存取路径分为主存取路径及辅存取路径 前者用于主键检索 后者用于辅助键检索 4 完整性和安全性考虑 设计者应在完整性 安全性 有效性和效率方面进行分析 做出权衡 5 程序设计 6 3数据库设计 5 数据库实施阶段根据逻辑设计和物理设计的结果 在计算机系统上建立起实际数据库结构 装入数据 测试和试运行的过程称为数据库的实施阶段 实施阶段主要有三项工作 1 建立实际数据库结构 对描述逻辑设计和物理设计结果的程序即 源模式 经DBMS编译成目标模式并执行后 便建立了实际的数据库结构 2 装入试验数据对应用程序进行调试 试验数据可以是实际数据 也可由手工生成或用随机数发生器生成 应使测试数据尽可能覆盖现实世界的各种情况 3 装入实际数据 进入试运行状态 测量系统的性能指标 看是否符合设计目标 如果不符 则返回到前面 修改数据库的物理模型设计甚至逻辑模型设计 6 3数据库设计 6 数据库运行和维护阶段数据库系统正式运行 标志着数据库设计与应用开发工作的结束和维护阶段的开始 运行维护阶段的主要任务有四项 1 维护数据库的安全性与完整性 检查系统安全性是否受到侵犯 及时调整授权和密码 实施系统转储与备份 发生故障后及时恢复 2 监测并改善数据库运行性能 对数据库的存储空间状况及响应时间进行分析评价 结合用户反应确定改进措施 3 根据用户要求对数据库现有功能进行扩充 4 及时改正运行中发现的系统错误 2 4确定网站的主题 6 3 4关系数据库基本概念1 关系数据库关系模型把世界看作是由实体和联系构成 所谓实体就是指现实世界中具有区分与其他事物的特征或属性并与其他实体有联系的对象 在关系模型中 实体通常以表的形式来表现 表是由行和列组成的 行表示数据的记录 列表示记录中的域 表的每一行描述实体的一个实例 表的每一列描述实体的一个特征或属性 所谓联系就是实体之间的关系 联系分为三种 一对一 一对多和多对一 通过联系就可以用一个实体的信息来查找另 个实体的信息 关系模型把所有的数据都组织在表中 表反映了现实世界中的事实和值 6 3数据库设计 2 常见的数据库对象 1 表表是包含数据库中所有数据的数据库对象 表定义为列的集合 与电子表格相似 数据在表中是按行和列的格式组织排列的 每行代表唯一的一条记录 而每列代表记录中的一个域 每个表代表某类对用户有意义的对象 例如 可在一个学校数据库内找到班级表 教师表和学生表 表有两个主要组件 列 每列代表由表建模的对象的某种特性 每列又称一个字段 列的标题称为字段名 行 每行代表由表建模的对象的个别事件 6 3数据库设计 2 索引索引是对数据库表中一个或多个列的值进行排序的结构 可以利用索引快速访问数据库表中的特定信息 如果想按特定职员的 姓 来查找 与在表中搜索所有的行相比 索引有助于更快地获取信息 索引提供指针以指向存储在表中指定列的数据值 然后根据指定的排序次序排列这些指针 数据库使用索引的方式与使用书的目录很相似 通过搜索索引找到特定的值 然后跟随指针到达包含该值的行 在数据库关系图中 可以为选定的表创建 编辑或删除索引 键属性页中的每个索引类型 当保存附加在此索引上的表或包含此表的数据库关系图时 索引同时被保存 通常情况下 只有当经常查询索引列中的数据时 才需要在表上创建索引 索引将占用磁盘空间 并且降低添加 删除和更新行的速度 不过在多数情况下 索引所带来的数据检索速度的优势大大超过它的不足之处 然而 如果应用程序非常频繁地更新数据 或磁盘空间有限 那么最好限制索引的数量 6 3数据库设计 3 视图视图可以被看成是虚拟表或存储查询 可通过视图访问的数据不作为独特的对象存储在数据库内 数据库内存储的是SELECT语句 SELECT语句的结果是构成视图所返回的虚拟表 用户可以用引用表时所使用的方法 在Transact SQL语句中通过引用视图名称来使用虚拟表 使用视图可以实现下列其一或所有功能 将用户限定在表中的特定行上 例如 只允许雇员看见工作跟踪表内记录其工作的行 将用户限定在特定列上 例如 对于那些不负责处理工资单的雇员 只允许他们看见雇员表中的姓名列 办公室列 工作电话列和部门列 而不能看见任何包含工资信息或个人信息的列 将多个表中的列联接起来 使它们看起来像一个表 聚合信息而非提供详细信息 例如 显示一个列的和 或列的最大值和最小值 6 3数据库设计 4 关系图关系图实际上是数据库表之间的关系示意图 利用它可以编辑表与表之间的关系 5 CHECK约束CHECK约束通过限制输入到列中的值来强制域的完整性 这与FOREIGNKEY 外键 约束控制列中数值相似 区别在于它们如何判断哪些值有效 FOREIGNKEY约束从另一个表中获得有效数值列表 CHECK约束从逻辑表达式判断而非基于其他列的数据 例如 通过创建CHECK约束可将age列的取值范围限制在20 30之间 从而防止输入的年龄超出正常的年龄范围 6 3数据库设计 可以通过任何基于逻辑运算符返回结果true或false的逻辑表达式来创建CHECK约束 例如 age 20ANDage 30对单独一列可使用多个CHECK约束 按约束创建的顺序对其取值 通过在表一级上创建CHECK约束 可以将该约束应用到多列上 例如 多列CHECK约束可以用来判明 性别 列值为 男 且name列值为四个字母值所对应的行 这样就允许在一处同时检查多个条件 6 规则规则是一个向后兼容的功能 用于执行一些与CHECK约束相同的功能 CHECK约束是用来限制列值的首选标准方法 CHECK约束比规则更简明 一个列只能应用一个规则 但是却可以应用多个CHECK约束 CHECK约束作为CREATETABLE语句的一部分进行指定 而规则以单独的对象创建 然后绑定到列上 6 3数据库设计 7 存储过程存储过程可以使得对数据库的管理及显示关于数据库及其用户信息的工作容易得多 存储过程是SQL语句和可选控制流语句的预编译集合 以一个名称存储并作为一个单元处理 存储过程存储在数据库内 可由应用程序通过一个调用执行 而且允许用户声明变量 有条件执行及实现其他强大的编程功能 8 触发器触发器是一种特殊类型的存储过程 当使用UPDATE INSERT或DELETE中的一种或多种数据修改操作在指定表中对数据进行修改时 触发器会生效 触发器可以查询其他表 而且可以包含复杂的SQL语句 它们主要用于强制复杂的业务规则或要求 例如 可以控制是否允许基于顾客的当前账户状态插入定单 6 3数据库设计 6 3 5关系数据库设计方法1 基于E R模型的数据库设计方法 1 E R模型的设计步骤a 设计局部E R模式设计E R模式可以采用三种不同的次序进行设计 自顶向下 该方法首先从抽象级别高 普遍性强的类开始 然后逐步细分 例如 物资管理中 物资是最高级别的抽象 它可分为五金类 燃料类 钢材类 劳保类等 由底向上 该方法首先从具体对象开始 逐步抽象形成类 同样以物资为例 先查看仓库有哪些物资 再分析每种具体的物资属于哪个门类 由内向外 该方法首先从最中心的对象开始 逐步扩展到与它相关的其他对象 仍以物资管理为例 先从最中心的管理对象物资开始 逐步扩展到存放物资的仓库 仓库的管理者 物资的使用者 物资的采购入库 库存情况等 6 3数据库设计 区分实体与属性 实体是E R模式中的基本单位 每个实体应包括的属性 并不是固定不变的 而是根据需要选定并进行区分 也即实体与属性是相对的 区分联系 嵌套与继承 继承是实体间的分类与包含关系 例如物资实体包含了五金类 燃料类 钢材类 劳保类实体 而这些子类实体继承了物资实体的基本属性 嵌套是实体对属性的依赖关系 它反应了实体间的集合与分类关系 联系反映实体间的内在逻辑关联 例如仓库存放物资 就是反映仓库实体与物资实体的逻辑关系 联系的详细描述 实体间联系的对应关系有1 1 1 N M N三种 用这三种联系可检查需求中的联系是否有遗漏 继承的详细描述 若子实体继承父实体的全部属性 则称全继承 若继承部分属性 则称部分继承 6 3数据库设计 b 将各个局部E R模式 综合成全局E R模式合并过程主要解决各E R图之间的冲突 其冲突主要有三类 属性冲突 命名冲突和结构冲突 属性冲突 即属性值的类型 取值范围或取值集合不同 例如 有的E R图将日期作为日期型 有的定义为字符型 属性冲突问题可通过统一规范的工程化管理来解决 命名冲突 不同意义的对象在不同的局部应用中具有相同的名字 或同一意义的对象在不同的局部应用中具有不同的名字 结构冲突 同一对象在不同应用中具有不同的抽象 在某一局部应用中被当作实体 而在另一局部应用中当作属性 或同一实体在不同局部E R图中所包含的属性个数不同 造成此问题的原因是各局部应用所关心的侧重点不同 解决的办法是取各分E R图中实体属性的并集 6 3数据库设计 c 全局E R模式的优化进行相关实体类型的合并 以减少实体类型的个数 尽可能消除实体中的冗余属性 尽可能消除冗余的联系类型 使用上述步骤得到的全局E R模式能准确 全面地反映用户的功能需求 2 E R图向关系模型的转换E R图向关系模型转换 要解决的问题是如何将实体和实体间的联系转换为关系模式 以及如何确定这些关系模式的属性和码 关系模型的逻辑结构是一组关系模式的集合 E R图则由实体 实体的属性和实体之间的联系三个要素组成 所以将E R图转换为关系模型实际上就是将实体 实体的属性和实体之间的联系转换成为关系模式 这种转换一般遵循如下原则 一个实体型转换为一个关系模式 实体的属性就是关系的属性 实体的码就是关系的码 6 3数据库设计 一个l 1联系可以转换为一个独立的关系模式 也可以与任意 端对应的关系模式合并 如果转换为一个独立的关系模式 则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性 每个实体的码均是该关系的候选码 如果与某一端实体对应的关系模式合并 则需要在该关系模式的属性中加入另 个关系模式的码和联系本身的属性 一个1 N联系可以转换为一个独立的关系模式 也可以与N端对应的关系模式合并 如果转换为一个独立的关系模式 则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性 而关系的码为N端实体的码 一个M N联系转换为一个关系根式 与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性 而关系的码为各实体码的组合 6 3数据库设计 通过上述方法 将仓库管理系统E R图转化为如下的关系模式仓库 仓库编码 仓库名称 物资 物资编码 物资名称 型号规格 计量单位 价格 用料单位 单位编码 单位名称 入库单 入库单号 入库日期 仓库编码 物资编码 采购数量 实收数量 购买价格 验收人价格 验收人 出库单 出库单号 出库日期 仓库编码 物资编码 领料单位 请领数量 实发数量 价格 库存 物资编码 日期 仓库编码 价格 库存量 6 3数据库设计 小结 数据库结构设计的不同阶段可形成数据库的各级模式 需求分析阶段 综合各个用户的应用需求 在概念设计阶段形成独立于机器特点 独立于各个DBMS产品的概念模式 即E R图 在逻辑设计阶段将E R图转换成具体数据库产品支持的数据模型 如关系模型 形成数据库逻辑模式 然后根据用户处理的要求及安全性的考虑 可在基本表的基础上再建立必须的视图 形成数据的外模式 在物理设计阶段 根据DBMS特点和处理需要 进行物理存储安排 建立索引 形成数据库内模式 6 4 1Access2003基础知识1 认识Access2003MicrosoftAccess是MicrosoftOffice套件中的一个组成部分 随着MicrosoftOffice由MicrosoftOffice95升级到MicrosoftOffice2003 包含其间的Access也从MicrosoftAccess95升级到MicrosoftAccess2003 每一次版本的更新升级 都必须意味着功能的增强 相比较MicrosoftAccess2002而言 MicrosoftAccess2003具有更加强大的功能 2 Access2003的运行 1 Access2003的运行环境由于Access2003作为Office2003的组件提供 因此 Access2003的运行环境要求也就是Office2003的运行环境要求 Office2003各个版本均要求WindowsXP或WindowsNT 2003Server Workstation操作系统所提供的运行环境 6 4Access数据库 6 4Access数据库 2 Access2003的启动运行如同Microsoft公司的其他各种类型软件一样 Access2003的安装程序也会自动修改Windows操作系统的注册表和 开始 菜单 运行启动Access2003的方法应该是顺序单击 开始 所有程序 MicrosoftOffice MicrosoftOfficeAccess2003 即可进入Access2003 如图6 7所示 为了方便使用 也可将Access2003执行程序拖曳至Windows桌面 以形成快捷方式 这样 双击位于Windows桌面上的快捷图标即可进入Access2003 这也是一种经常使用的方式 启动Access2003后 即可看到Access2003的启动窗口 如图6 8所示 图6 7启动运行Access2003菜单图6 8Access2003启动窗口在Access2003启动窗口的右侧放置有一个名为 开始工作 的对话框 在其中进行操作可以完成如下工作 a 打开最近使用过的Access数据库 在 开始工作 对话框下端的 打开 标题栏内 列有最近使用过的Access数据库名称 单击需要打开的数据库名称 即可打开这个数据库 6 4Access数据库 6 4Access数据库 6 4Access数据库 b 打开其他Access数据库 如果当前需要打开的数据库不在 打开 标题栏内 可以单击 打开 标题栏内的 其他 选项 启动 打开 对话框 然后在其中选定需要打开的数据库名称 即可打开这个数据库 c 新建Access数据库 在 打开 标题栏的下端 有一个标记为 新建文件 的按钮 单击此按钮 可以改变 开始工作 对话框为 新建文件 对话框 在 新建文件 对话框中 可以选择 新建空数据库 新建数据访问页 等等 从而完成新建Access数据库的工作 d OfficeOnline 在 开始工作 对话框的顶部 放置了提供Access2003应用帮助的4个超级链接 从而构成了Access2003提供的外部帮助接口 图6 9数据库设计视图 6 4Access数据库 6 4Access数据库 2 利用Access2003数据库模板创建Access数据库AccessDBMS的设计者充分考虑到二次应用开发者的利益 为绝大多数Access对象的创建提供设计向导 这些向导的使用简化了某些Access对象的创建与设计过程 对象设计向导的使用是一个对话过程 在一般情况下 利用设计向导可以快速地完成一个Access对象的初步设计操作 Access2003数据库模板属于数据库对象设计向导 2 打开已有的Access2003数据库方法 1 利用 开始工作 对话框 进入Access2003后 出现图6 11所示 开始工作 对话框 其中列表中有最近打开过的Access2003数据库名称 此时只需单击你需要打开的数据库名称 即可打开这个数据库 如果所需打开的数据库不在此列中 应该单击名为 其他 的列表项 然后在 打开 对话框中选择需要打开的数据库文件 如图6 12所示 6 4Access数据库 图6 11 打开 对话框示例 6 4Access数据库 图6 11 打开 对话框示例 2 利用 打开 工具按钮在Access2003数据库设计视图窗口的工具栏中 有一个 打开 工具按钮 单击这个工具按钮 即可出现 打开 对话框 当然 调出 打开 对话框的方式还可以在窗口菜单中选择 文件 打开 在 打开 对话框中的 查找范围 组合框中 可以选择需打开数据库文件所在的逻辑磁盘及其文件夹 3 直接选择打开Access2003数据库在Windows操作系统中 打开数据库所在的文件夹 鼠标左键双击Access2003数据库图标 即可打开指定的Access2003数据库 6 4Access数据库 6 4 4创建Access2003数据表对象数据表对象是数据库中最基本的对象 是数据库中所有数据的载体 换句话说 数据库中的数据都是存储在数据表中 并在数据表中接受各种操作与维护 数据库中其他对象对数据库中数据的任何操作都是基于数据表对象进行的 Access2003数据表对象由两个部分构成 表对象的结构和表对象的数据 数据表对象的结构是指数据表的框架 也称为数据表对象的属性 主要包括以下内容 字段名称用于标识表中的一列 即数据表中的一列称为一个字段 而每一个字段均具有唯一的名字 被称为字段名称 字段是数据表对象中的子对象 数据类型根据关系数据库理论 一个数据表中的同一列数据必须具有共同的数据特征 称为字段的数据类型 6 4Access数据库 字段大小一个数据表中的一列所能容纳的字符或数字的个数被称为列宽 在Access2003中被称为字段大小 采用字节数予以表示 字段的其他属性上述三个属性是字段对象的最基本属性 此外 数据表中的字段对象还具有其他一些属性 包括 索引 格式 等等 这些属性值的设置将决定各个字段对象在被操作时的特性 创建新的数据表对象以 库存数据记录表为例 进行数据表的设计 6 4Access数据库 表6 2库存数据记录表结构 6 4Access数据库 字段名类型说明News ID自动编号新闻编号Title文本新闻标题Keywords文本关键字Content备注新闻内容From文本新闻来源Datetime日期 时间发布日期图6 12新建表 对话框在数据库设计视图中选择 表 对象卡 如图6 17所示 然后单击 新建 按钮 出现 新建表 对话框 如图6 12所示 在 新建表 对话框中 Access2003提供五种创建新表的不同方法 其中 如果选定 导入表 Access2003将启动一个对话操作过程 使得我们可以将其他数据库中的表复制到本数据库中 从而实现创建新表的操作 如果选定 链接表 Access2003也将启动一个对话操作过程 使得我们可以将其他数据库中的表映射到本数据库中 成为本数据库中可操作的表 如果选定 表向导 Access2003仍然会启动一个对话操作过程 使得我们可以通过一系列的对话操作创建一个新的数据表对象 6 4Access数据库 图6 12新建表 对话框 6 4Access数据库 2 在设计视图设计表对象在图6 13所示的 新建表 对话框中 选择 设计视图 选项 然后单击 确定 按钮 即进入数据表对象设计的操作窗口 称为Access2003数据表设计视图 如图6 14所示 Access2003数据表设计视图所在的窗口是一个标准的Windows窗口 窗口顶部一栏为数据表操作窗口菜单 下面的第二栏为表对象设计视图窗口的工具栏 窗口的主体部分即为数据表对象的设计视图 可以在数据表对象设计视图所提供的表格中 通过逐栏填写数据表对象的各个字段子对象及其子对象的相关属性值 来实现创建或者设计数据表对象结构的操作 下面对数据表操作窗口常用工具栏进行介绍 主键 用于指定当前字段为关键字段 6 4Access数据库 图6 14 库存数据记录 的数据表设计视图 6 4Access数据库 索引 用于打开创建索引对话框插入行 在当前字段前插入一个新的字段行删除行 删除当前字段行属性 打开表属性对话框生成器 显示选定项目或属性的生成器 在数据表设计视图中 可以逐一输入所建数据表对象的各个字段名称 数据类型 字段大小等相关基本属性值 随着光标在不同的字段属性处移动 表设计视图右下端出现对于该属性取值的上下文帮助说明 每输入一个字段名称 接着应该确定该字段的数据类型 这时 ACCESS2003即会在表设计视图的常规选项卡上列出与该字段数据类型对应的其他属性栏目 如有必要 则在这些属性栏目中填入需要的属性值 6 4Access数据库 逐一设定数据表中的各个字段 并确定各个字段的相应属性值 也就完成了数据表对象结构的设计操作 以设计 tblNews 数据表对象为例 应该逐一设定6个字段及其各个字段的相关属性 参考表6 2中的设计参数 设计完成的 tblNews 数据表对象如图6 23所示 完成表结构设计操作后 单击设计视图窗口右上角的 关闭 按钮 弹出询问是否保存的对话框 如图6 15所示单击 是 按钮 弹出 另存为 对话框 如图6 15所示 此时需输入新建表的名称 为了创建 tblNews 表对象 必须输入表名称如图6 16所示 然后单击 确定 按钮 完成 库存数据记录 表对象的创建设计操作 图6 15是否保存新建表对话框图6 16 tblNews 表命名对话框 6 4Access数据库 6 4Access数据库 对于任意一个数据表对象 Access一般都要求定义唯一的一个主关键字段 这是必要的 主关键字段的含义是 在一个数据表中不允许任两条记录的主关键字段值相同 若未定义主关键字段 则在退出表结构设计并要求保存本次设计操作时 Acccss2003会询问并在得到认可的情况下自行增加一个取名为ID的 数据类型为 长整型 的自动编号字段 在本例的 库存数据记录 数据表中 需要设定 News ID 字段为主关键字 在作为主关键字的 News ID 字段左部标记列上标记着 个 钥匙 图标 这就表明将 货号 字段设置成为主关键字了 6 4Access数据库 3 在数据表视图中创建表对象图6 17新建表视图在 新建表 对话框 如图6 17所示 中 如果选择 数据表视图 并单击 确定 按钮 即进入创建新表的数据表视图 如图6 17所示 实际上 数据表视图是数据表操作窗体主体部分显示的一个表格 如果选定一个已经存在的数据表对象 则数据表视图中将显示该数据表的数据以供查阅并修改 如果选中的是创建一个新的数据表对象 数据表视图会显示一个空的表格 等待填入数据 在数据表视图中创建表结构的方法是 直接在数据表视图中输入数据 输入了多少列的数据 所创建的表就有多少个字段 各字段名称分别为 字段l 字段2 等等 各字段的数据类型则由Access根据所输入的数据做出判断 如若某列输入的是字符 则被认作为 文本 如若某列输入的是数值 则被认作为 数字 等等 各字段大小则根据Access默认值取定 如 文本 大小为50 整数为 长整型 等等 6 4Access数据库 图6 17新建表视图 6 5网络数据库系统DSN的配置 6 5 1ODBC简介ODBC OpenDatabaseConnectivity 开放式数据库互连 是微软推出的一种工业标准 它是一种开放的独立于厂商的API应用程序接口 可以跨平台访问各种个人计算机 小型机以及主机系统 ODBC作为一个工业标准 绝大多数数据库厂商 大多数应用软件和工具软件厂商都为自己的产品提供了ODBC接口或提供了ODBC支持 这其中就包括常用的SQLServer Oracle Informix等 当然也包括了Access 数据库驱动程序使用DSN DataSourceName 定位和标识特定的ODBC兼容数据库 将信息从Web应用程序传递给数据库 典型情况下 DSN包含数据库配置 用户安全性和定位信息 且可以获取WindowsNT注册表项或文本文件中的表格 通过ODBC 可以选择要创建的DSN的类型 用户DNS 系统DNS或文件DNS 6 5网络数据库系统DSN的配置 1 DSN 根据Microsoft的官方文档 DSN的意思是 应用程序用于请求一个连到ODBC数据源的连接的名字 换句话说 它是个代表ODBC连接的符号 它隐藏了诸如数据库文件名 所在目录 数据库驱动程序 用户ID 密码等细节 因此 当建立一个连接时 你不用去考虑数据库文件名 存放位置等 只要给出它在ODBC中的DSN即可 2 文件DSN 这种DSN用于用户选择自己创建的DSN文件 3 系统DSN 这种DSN可以被任何登录到系统中的用户使用 4 用户DSN 这是为特定用户建立的DSN 只有建立这个DSN的用户才能看到并使用它 在上面的两种情况中 DSN的细节都存储在系统的注册表中 6 5网络数据库系统DSN的配置 6 5 2ADO实现访问数据库我们已经介绍了ADO的概念 那么如何使用ADO来实现对数据库的访问 首先 让我们来看一下在服务器端所需要的ADO执行环境 1 安装WindowsNT Serverwindows2000Server或PersonalWebServer 2 安装IIS30 含 以下版本 3 在用户 端所需要的ADO执行环境 只需要一般的浏览器即可 接下来讲述ADO包括的7个对象 1 Command 定义对数据源进行操作的命令 2 Connection 建一个数据源的连接 3 Error 提供数据访问错误的细节 4 Field 表示一般数据类型的字段 5 Parameter 表示Command对象的参数 6 Property 表示由数据源定义ADO对象的动态特性 7 Recordset 数据库命令结果集对象 6 5网络数据库系统DSN的配置 灵活运用上述对象的属性 方法可以达到许多很好的效果 通过ADO访问数据库的基本步骤通常都是以下5步 1 创建数据库源名 2 创建数据库链接 图6 18配置系统DSN界面 3 创建数据对象 4 操作数据库 5 关闭数据对象和链接 下面 我们来看一个用ADO访问数据库实例1 Access数据库系统DSN的配置首先在Windows的 开始 菜单打开 控制面板 双击ODBC图标 然后单击 系统DSN 标签 单击 添加 按钮 如图6 18所示 接下来因为要配置的数据库系统的不同而有不同的操作 下面讲述Access数据库系统DSN的配置方法 6 5网络数据库系统DSN的配置 图6 18配置系统DSN界面 6 5网络数据库系统DSN的配置 1 单击 添加 按钮后弹出如图6 19所示的对话框 选择数据源的驱动程序为 DriverdoMicrosoftAccess mdb 单击 完成 按钮 2 这时弹出 ODBCMicrosoftAccess安装 的对话框 在对话框的 数据源名 文本输入框中输入要配置的DSN文件名 例如 news dsn 然后单击 选择 按钮 如图6 20所示 图6 19选择配置Access数据库的DSN图6 20 ODBCMicrosoftAccess安装 对话框图6 21选择Access数据库 3 这时将弹出一个如图6 21所示的对话框 在对话框的 数据库名 中输入数据库名 或是从右边的目录浏览器中选择 e myweb db mdb 选择数据库完成后 单击 确定 按钮回到图6 21所示的界面 4 单击 确定 按钮 这时出现的界面如图6 18所示 注意在 系统数据源 列表框中出现了 new dsn 项 这表明Access数据库系统DSN配置完成 6 5网络数据库系统DSN的配置 图6 19选择配置Access数据库的DSN图6 20 ODBCMicrosoftAccess安装 对话框 6 5网络数据库系统DSN的配置 2 用ADO实现访问数据库在本节前面知识中已经介绍了通过ADO访问数据库的基本步骤通常分为五步 下面逐一介绍具体操作步骤 1 创建数据库源名 即创建和配置ODBC数据源 该步骤在前面已详细讲述 2 创建数据库链接 ASP文件中如果要访问数据 必须首先创建与数据库的链接 其语法如下 SetConnServerCreateObject ADODBCONNECTION 这条语句创建了链接对象Conn 接下来 ConnOpen dsnname username password 这条语句打开链接 用到了DSN名为 dsn name 其后的两个参数分别是访问数据库的用户名和口令 为可选参数 6 5网络数据库系统DSN的配置 根据前面对系统DSN的设置 这一段代码可以写成以下形式 访问Access数据库系统DSN SetConn ServerCreateObject ADODBCONNECTION ConnOpen test dsn 在ADO中还可以不通过ODBC而直接与Access数据库相连 这种方法在个人主页中使用较多 因为其用户无法进行服务器ODBC设置操作 这里只简单提一下方法 Connection Open driver MicrosoftAccessDriver mdb dbq C test mdb 3 创建数据对象 RecordSet保存的是数据库命令结果集 并标有一个当前记录标识 以下是它的创建方法 SetRecordSet Conn Execute SqlStr 6 5网络数据库系统DSN的配置 这条语句创建并打开了对象RecordSet 其中Conn是先前创建的链接对象 SqlStr是一个串 代表一条标准的SQL语句
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版绿色建筑土建工程承包合作协议
- 2025年度制造业短期生产线操作人员劳务派遣合同
- 2025聘请全职律师合同范本
- 红酒柜知识培训课件
- 红酒基本知识培训内容
- 语文知识书籍培训课件
- 红茶品鉴培训课件
- 2025年租车服务免责合同协议书
- 2025年劳动合同法实践:员工擅自解约公司有权提起劳动仲裁
- 生产流程标准化操作指南
- 砍树 栽树劳务合同范本
- 避免车祸安全知识培训课件
- 胸腰椎压缩骨折课件
- 音乐课简谱教学课件
- 2025年放射工作人员培训考试试题及答案
- 2025-2026学年统编版(2024)小学语文一年级上册教学计划及进度表
- 中小学教师中高级职称答辩备考试题及答案(50题)
- 剖析我国公立医院管理体制:问题洞察与改革路径探究
- 胰腺超声标准切面
- 2025年法院书记员招聘考试笔试试题附答案
- 未成年人违法犯罪警示教育
评论
0/150
提交评论