数据库设计讲义.docx
- 文档编号:15575099
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:133
- 大小:2.56MB
数据库设计讲义.docx
《数据库设计讲义.docx》由会员分享,可在线阅读,更多相关《数据库设计讲义.docx(133页珍藏版)》请在冰点文库上搜索。
数据库设计讲义
数据库系统设计与开发
讲义
浙江大学城市学院
第1章数据库系统实例剖析
本章以基于Java语言和MySql数据库的图书管理系统为例,分析其功能实现形式,帮助读者建立数据库应用系统基本形式的概念、组成部分、以及DBMS和应用程序在应用系统中的地位的概念;通过分析图书管理系统的开发步骤,引出后续章节的安排:
数据库逻辑结构设计(以数据建模为目的)数据库实施和管理(数据库的设计在MySql数据库中的实施)数据库应用程序设计开发(Java应用程序如何存取数据库中的数据)数据库物理结构优化(以提高系统性能为目的进行数据库优化设计)。
1.1图书管理系统功能剖析
作为教材的第一个例子,旨在向读者介绍数据库系统的一般组成以及开发数据库系统的一般过程;为此,我们选择了读者耳熟能详的图书管理系统。
该系统能完成图书的上架、借阅、归还、下架等基本功能;并实现读者信息的管理功能。
系统的用户包括图书馆工作人员、系统管理员和读者,其中,工作人员和系统管理统称为系统用户,其功能如下图所示。
图1-1图书管理系统功能视图
用户必须登陆后才能使用相关功能,其中系统管理员可以使用“系统管理模块”和“查询统计模块”,图书馆工作人员可以使用“图书借阅模块”和“查询统计模块”,读者可以使用“读者查询模块”。
1.1.1系统管理模块
1.系统用户管理
功能概述:
实现对系统管理员和图书馆工作人员的管理功能。
包括用户的添加、密码重置、用户注销等,其主界面如下图所示。
系统管理员可通过上方的工具栏进行相关操作。
图1-2系统用户管理
功能剖析:
该模块是一个典型的增删改模块,完成系统用户信息的增加(用户的添加)、删除(注销用户)和修改(密码重置)。
该功能反映到数据库中,就是完成系统用户表记录的增加、删除、修改。
2.读者类别管理
功能概述:
读者按类别进行管理,如,某图书馆将读者分为本科生、研究生、教师等。
可以为不同类别的读者设定默认的可借图书数量。
图1-3读者类别管理
功能剖析:
该模块也是一个典型的增、删、改模块,其操作也直接反映为对应数据库表的增删改操作。
同时,这里还体现了数据之间的关联,删除某读者类别时,如果已经存在该类别的读者,系统应如何进行响应?
这是典型的外码违例处理模式,请读者思考。
3.读者信息管理
功能概述:
实现读者的注册、读者信息的修改、读者的注销、密码重置、挂失等功能。
图1-4读者管理
功能剖析:
该模块和系统用户管理模块功能非常类似,也是完成读者信息表的记录增删改;需要注意的是,录入读者信息时,读者类别需要用户选择,而读者类别信息来自读者类别表;另外,选择读者类别后,应自动将读者的可借图书数量设置为读者类别中预定义的数量。
4.出版社管理
功能概述:
所有图书都属于指定的出版社,为简化例子,这里只列出了出版社的一小部分信息。
图1-5出版社管理
功能剖析:
该模块也是一个实现简单增、删、改功能的模块,同样需要注意删除出版社时,如果该出版社下已经存在图书时的系统处理方式。
5.图书信息管理
功能概述:
完成图书的上架(也就是录入图书信息)、图书信息的修改、图书的下架(也就是图书信息的删除)。
我们约定每本图书都是不同的,具有唯一的编号;对于同种书籍,每一本的编号也是不同的。
已经借阅在外的图书不能进行下架。
图书下架后不能进行借阅。
所有的图书信息都不删除(即使已经下架,数据也保留在数据库中),方便后续查询。
图1-6图书管理
功能剖析:
该模块和读者管理模块非常类似,用于完成图书信息表的数据维护。
1.1.2图书借阅模块
图书借阅模块由图书馆工作人员操作,借书和还书工作一般由不同的人进行操作。
因此将借阅和归还操作在两个模块中进行。
1.图书借阅管理
功能概述:
借阅时,首先通过条码扫描枪读取读者证号,系统立即显示该读者的基本信息,包括姓名和状态;并在下方显示该读者已经借阅的图书信息。
然后由工作人员逐本扫描图书条码(图书编号),同时显示相应图书的信息,确认后点击“借阅”按钮完成图书的借阅。
图1-7图书借阅
功能剖析:
图书借阅时,对数据库的操作可以概括为,增加一条借阅记录,修改图书的状态信息。
这些操作将涉及多张表,因此,需要注意采用数据库事务的方式实现功能。
2.图书归还管理
功能概述:
图书的归还操作更为简单,只要扫描或输入图书编号,系统自动显示该图书的信息,以及借阅读者的信息(包括该读者借阅的所有图书信息)。
如果该图书为超期未还图书,则自动计算出滞纳金。
确认后,点击“还书”按钮即可完成还书操作。
图1-8图书归还
功能剖析:
为能在图书归还后能查阅借阅记录,图书归还时,对数据库的操作可以概括为,修改借阅记录(写入归还时间和滞纳金),修改图书的状态信息。
这些操作将涉及多张表,因此,需要注意采用数据库事务的方式实现功能。
1.1.3查询模块
1.图书借阅情况查询
功能概述:
图书借阅情况查询模块提供按图书条码查询图书借阅情况的功能。
图1-9图书查询
功能剖析:
这是一个典型的查询模块,需用程序利用界面中输入的数据,组织SQL语句进行数据库内容查询。
2.读者借阅情况查询
功能概述:
该模块查询读者的历史借阅数据。
图1-10读者借阅记录
功能剖析:
这是也是一个典型的查询模块,需用程序利用界面中输入的数据,组织SQL语句进行数据库内容查询。
1.1.4统计模块
1.图书借阅统计
功能概述:
允许图书馆工作人员和系统管理员按统计所有图书的借阅情况。
图1-11图书借阅情况统计
2.读者借阅统计
功能概述:
允许图书馆工作人员和系统管理员统计读者的借阅情况。
图1-12读者借阅情况统计
功能剖析:
首先组织SQL语句查询相关内容。
1.2图书管理系统的组成
前面一节,我们从用户的角度分析了图书管理系统的基本功能和组成部分。
那么,站在开发者的角度,我们又应该怎么来看待这个系统?
一般认为:
软件=数据+程序
也就是说:
图书管理系统=图书管理系统相关的数据+图书管理系统应用程序
因此,我们可以从程序和数据两个方面来剖析这个系统。
在数据库系统原理课程中,我们已经学习了数据库系统的一般组成,以及通过数据库存储、处理数据的基本方法。
即,通过数据库管理系统(DBMS)统一进行数据的管理。
而应用程序的目的就是为用户提供操作界面、从DBMS中提取数据、将处理后的数据存储到DBMS中。
当然,为实现这些功能,还需要在一定的应用开发环境中完成相关的程序设计。
1.2.1数据库系统开发涉及的知识体系
《数据库系统原理》是第一门数据库系统相关的课程,其侧重点是让读者理解数据库内部的逻辑结构,以及如何通过DBMS进行数据定义、管理,这是建设数据库系统的基础知识。
从上一节的例子中可以看出,几乎所有功能最终都体现为对数据库的操作,即利用SQL语句完成数据库记录的增、删、改等。
“数据库设计”的知识一般也在数据库系统原理课程中进行介绍,其核心目的是设计数据库的逻辑结构。
只有在设计了合理的数据库逻辑结构的基础上,才能通过SQL语句实现各种业务逻辑。
“数据库应用程序设计”是实现数据库系统的一个重要步骤,通常情况下,数据库应用程序负责通过界面采集用户的输入信息,并将这些信息以及业务特点,组织成SQL语句,并递交DBMS执行后实现业务逻辑。
图1-13数据库系统开发涉及的知识体系
1.2.2图书管理系统中的数据库管理系统
数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。
它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和查询数据库。
DBMS提供数据定义语言DDL与数据操作语言DML,供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
目前,典型的数据库管理有甲骨文的Oracle系列、微软的SQLServer系列、IBM公司的DB2系列、开源的MySql等数据库管理系统。
图书管理系统采用MySql作为数据库服务器,下面简单介绍图书管理系统数据库的部署过程。
1.MySql数据库服务器的安装配置,下载最新的MySql数据库服务器安装程序,目前的最新版本为5.6。
读者可自行在MySql官方网站下载。
下面以随书光盘中的32位windows版的MySql安装为例介绍安装配置过程。
第一步:
运行光盘中的mysql-installer-community-5.6.15.0.msi程序,并在下图界面中,点击第一项:
”installmysqlproducts”,并在下一界面中选择同意Licenseterms,并点击“下一步”按钮;再下一界面中,提示用户是否进行新版本提醒,直接点击”Execute”进行数据安装。
图开始安装MySql
第二步:
选择安装选项,如下图所示,选择安装类别(采用默认);安装位置等,请根据自身计算机情况选择。
点击“Next”,并在下一界面中不做任何更改,直接点击“Execute”开始安装。
图Mysql安装选项
图MySql安装
第三步:
MySql基本配置。
安装完成后,点击“Next”按钮显示如下界面进行配置。
一般情况下不需要修改配置。
点击“next”进入MySql用户配置。
图MySql基本配置
第四步:
MySql用户配置,在如下界面中设置数据库用户信息。
其中默认管理员用户为“root”,请在此界面中设置其密码。
如果需要添加其他用户用户,则请读者在界面的下方自行添加。
图MySql用户配置
第五步:
配置MySql的windows服务名。
用户配置完成后,点击下一步,进行windows服务配置,一般采用默认配置即可,如下图所示。
图MySqlWindows服务配置
2.图书管理系统数据库实施
第一步:
MySql数据库安装完成后,可通过“MySqlWorkbench”工具进行数据管理。
在下图中,打开数据库服务器(点击左侧的“LocalinstanceMySql56”后,输入安装时设置的root账户密码)。
第二步:
建立图书管理系统数据库(booklib)。
进入数据库服务器管理界面后,通过创建Schema工具栏建立新数据库。
如下图所示。
图创建booklib数据库
第三步:
执行booklib库的建库脚本,并内建默认用户admin。
打开随书光盘中的booklib.sql文件,如下图所示,并执行该脚本。
图建库脚本
图刷新后数据库表
1.2.3数据库应用系统的基本架构
开发一个数据库应用系统首先要确定系统的总体结构。
目前主要有两大体系结构:
一是基于操作系统平台的客户机/服务器(Client/Server,C/S)结构,二是基于浏览器的浏览器/服务器结构。
1.客户机/服务器结构
C/S模式是20世纪80年代逐渐发展起来的系统模式,该系统模式将与DBMS相关的工作量分为两部分:
服务器和客户机。
客户机和服务器典型地是运行在不同的系统中的。
在客户机和服务器之间如何划分DBMS功能有不同的方案。
大多数关系DBMS产品采用的方案是在服务器中包含集中式DBMS功能,为客户机提供一个SQL服务器,负责管理数据并进行事务管理;每一个客户机必须配置合适的SQL查询,并为用户提供用户接口和编程语言接口功能。
客户机可以引用存在在各种SQL服务器中的包含数据分布信息的数据字典,还可以访问一些功能模块,将一个全局查询分解为若干可以在不同站点上执行的局部查询。
由于系统扩展性、维护成本、安全性等问题,两层客户机/服务器技术正逐步被三层体系结构所取代,尤其在Web应用中。
如图1-14所示,在三层客户机/服务器体系结构中,有以下3个层次:
图1-14三层客户机/服务器体系结构
●表示层(客户层):
这一层提供了用户界面并同用户进行交互。
●应用层(业务逻辑层):
该层对应用逻辑进行编程,也是表示层和数据库服务器层的桥梁,它响应表示层的用户请求,从数据库服务器层抓取数据,执行业务处理,并将必要的数据传送给表示层以展示给用户。
在这一层还可以处理附加的应用功能,例如安全检查、身份验证以及其他功能。
需要时,应用层可以与一个或多个数据库或数据源进行交互。
●数据库服务器层:
这一层负责数据的存储、事务管理、数据完整性控制、故障恢复等,处理来自应用层的查询与更新请求,并发送结果。
2.浏览器/服务器结构
随着Internet和Web的流行,以往的体系结构已无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是出现了浏览器/服务器(Browser/Server,B/S)结构的数据库系统。
如图1-15所示,在该模式下,该结构由客户机、Web服务器和数据库服务器三部分组成。
只是客户机应用程序被浏览器所替代,用户通过浏览器访问服务器,服务器接受相关浏览器的访问,对数据库进行操作,并将结果翻译成页面描述语言返回访问的浏览器。
图1-15浏览器/服务器体系结构
浏览器/服务器结构显示了如下的优点。
●在该结构中,客户端任何计算机只要安装了浏览器就可以访问应用程序。
浏览器的界面是统一的,广大用户容易掌握,从而大大减少了培训时间和费用。
●2.客户端的硬件与操作系统具有更长的使用寿命,因为它们只要能够支持浏览器软件即可。
●3.由于应用系统的维护与升级工作都是在服务器上执行,因此不必安装、维护或升级客户端应用代码,大大减少了系统开发和维护代价。
这种结构能够支持数万甚至更多的用户。
1.2.4应用程序和开发环境
应用程序的目标是完成和DBMS的交互,以及和用户的交互,实现用户角度的业务数据和数据库存储的数据之间的转换。
对于程序员而言,只要掌握和DBMS进行交互的方法、掌握程序设计语言实现数据库的逻辑处理、掌握用户交互界面的设计方法即可完成应用程序开发。
应用程序开发环境为程序员提供源代码撰写工具,完成源代码的编译链接工作。
通常情况下,一个开发环境对应一种编程语言,而一种编程语言会有多种开发环境(如,VisualC++和borlandC++的编程语言都为C++)。
同时,为简化编程,开发环境还会提供一系列类库(如VisualC++的MFC库、Delphi的VCL等等),实现一些常用的功能。
通过这些类库,程序员仅需编写少量代码就可获取相应的功能。
因此,在学习了编程语言的基础上,应用程序开发环境的学习还包括:
①源代码编辑工具的学习;②相关类库的学习。
目前,Java和.Net是两大主流的开发平台。
本教材将以Java平台为例介绍数据库应用系统的开发。
1.Java平台及Eclipse
java最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。
就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。
Java编程语言的风格十分接近C、C++语言,是一个纯面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,舍弃了C++语言中容易引起错误的指针、运算符重载、多重继承等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。
在JavaSE1.5版本中,Java又引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。
它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。
不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。
与传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术,全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
Eclipse附带了一个标准的插件集,包括Java开发工具。
目前大多数Java开发者使用Eclipse作为开发环境。
2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。
Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入目标上。
利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。
Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件。
Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。
2..Net平台及VisualStudio.Net
.NETFramework是一个集成在Windows中的组件,它支持生成和运行下一代应用程序与XMLWebServices。
.NETFramework具有两个主要组件:
公共语言运行时和.NETFramework类库。
公共语言运行时是.NETFramework的基础。
可以将运行时看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。
.NETFramework的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI)应用程序,也包括基于ASP.NET所提供的最新创新的应用程序。
VisualStudio.NET是一套完整的开发工具,用于生成ASPWeb应用程序、XMLWebservices、桌面应用程序和移动应用程序。
VisualBasic.NET、VisualC++.NET、VisualC#.NET和VisualJ#.NET全都使用相同的集成开发环境,该环境允许它们共享工具并有助于创建混合语言解决方案。
另外,这些语言利用了.NETFramework的功能,此框架提供对简化ASPWeb应用程序和XMLWebservices开发的关键技术的访问。
1.2.5图书管理系统开发环境配置
图书管理系统在Eclipse环境下通过java语言开发。
1.JDK安装
读者可以自行下载最新的JDK版本,随书光盘中提供了一个1.6版本,解压缩即可。
注:
JDK有安装版和压缩版两种,安装版的安装过程比较简单,这里不再介绍。
2.Eclipse安装配置
读者可以在Eclipse官方网站下载最新的Eclipse版本,下面我们以随书光盘中的版本为例介绍其安装配置过程。
第一步:
解压缩Eclipse到硬盘目录。
第二步:
运行安装目录下Eclipse.exe,并根据提示选择目录作为workspace。
第三步:
JDK设置。
(安装版的JDK安装后,eclispe应该能自动识别),通过eclipse的windowsperference菜单,启动如下图所示对话框。
如果右侧没有默认Jre,这通过“add”按钮添加即可。
图jre设置
3.图书管理系统工程创建
第一步:
通过eclipse菜单Filenewproject…启动如下对话框。
选择javaproject后,点击下一步。
在下一界面中输入工程名称booklib后点击完成即可。
图创建java工程
4.代码导入。
复制随书光盘的第一章目录下的src目录下的cn目录到工程的src目录即可(可以在Eclipse环境下,选中src后,通过ctrl-v快捷键直接黏贴)。
图导入后代码结构
5.类库导入。
图书管理系统需要连接MySql数据库,需要导入MySql的JDBC类库,类库文件为随书光盘中的mysql-connector-java-5.1.27-bin.jar文件。
通过projectproperties菜单,启动如下对话框。
点击“addexternalJars”按钮选择jar文件即可。
6.修改数据库连接信息,打开cn.edu.zucc.booklib.util.DBUtil类,并修改用户名、密码等信息即可。
7.运行图书管理系统。
右键点击右侧树形结构中的cn.edu.zucc.booklib.BookLibStarter类,选择runrunasapplication运行即可,默认账户和密码都是admin
第2章Jdbc概述
Java是一种可以开发跨平台应用软件的面向对象的程序设计语言,是由Sun公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java技术在数据库应用中,具有显著优势和广阔前景。
本章将介绍java平台开发数据库应用程序的基本方法,为突出数据库应用开发主题,本章仅涉及Java应用开发的一小部分内容,对于Java应用开发感兴趣的读者请参看相关书籍。
2.1开发和运行环境准备
2.1.1安装JDK和Eclipse
JDK现在最新版本是JDK1.7(JavaSE7),可以从java官方网站下载JDK的最新版本以及历史版本。
本教材的例子是基于JDK1.6的,读者可以自行下载安装。
安装JDK很简单,只需要按照安装向导进行即可。
安装完成后,在命令行窗口下,键入java-version命令可以查看到JDK版本信息。
JDK安装完成后,读者可以从Eclispe官方网站“http:
//www.eclipse.org”中选择下载安装最新版本的Eclipse。
本教材采用目前最新的3.7版本,读者可以下载版本:
EclipseIDEforJavaEEDevelopers。
下载完成后,直接解压缩即可使用(运行目录下的eclipse.exe即可)。
第一次启动Eclipse时,需求设置其工作目录(workspace),如下图2-1所示。
图2-1设置Eclipse的工作目录
2.1.2在Eclipse中使用JDBC
Java应用程序通过JDBC连接数据库,完成对数据库的各项操作。
为使Java应用程序能够访问特定的数据库,需要加载相应的JDBC驱动程序。
这里我们以MySql下的图书管理系统数据库为例,介绍在Eclipse中,如何使应用程序能够连接到数据库。
读者可以从MySql官方网站下载到MySql的Java驱动程序(在MySql的下载主页中,选择MySqlConnectors中的Connector/J)。
在Eclipse中,加载JDBC驱动程序的方法有很多,只要在工程的BuildPath中能够找到对应的Jar文件即可。
工程的BuildPath的查看方法是:
菜单Projectproperties,并在弹出菜单中选择JavaBuildPathLibraries,如下图所示。
图2-2工程的BuildPath
在上图中,看到刚刚建立的工程的所有类库,我们需要把jdbc驱动程序的类库加入该工程中。
解压缩下载的MySqlJDBC驱动程序,复制其中的mysql-connector-java-5.1.17-bin.jar文件到磁盘后,点击“addexternaljars…”选中这个文件即可。
最后,可以建一个类进行数据库连接的测试。
im
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 设计 讲义