VB.NET 数据库开发专业教程 第一辑

学VB.net ,一直困惑于数据开发那些章节,近日,在超星官网读《VB.NET数据库开发专业教程》一书感觉,对初学者很实用,很具体,本人认为是一本不错的入门教程。



当今世界对数据的需求越来越迫切,数据库技术的发展可谓是一日子里,现代的数据库不仅能够存储传统的文字数据,还可以存储图像,视频、声音等数据。在整个数据库发展过程中,数据库大致包括4种类型:层次模型的数据库、网状模型的数据库、关系模型的数据库和面向对象的数据库。现在用户使用的数据库大多数是关系模型的数据库。无论采用任何软件编写程序访问数据库,都必须事先建好数据库-本章主要以关系型数据库为主,在介绍数据库基本概念和技术的基础上,说明如何才能建立结构合理的数据库,为以后用VB.NET访问数据库打下基础。

1.1  数据库系统的基本概念

1.数据库(DB)和数据库管理系统(DBMS)

数据库是存储在计算机内、有组织。可共享的数据的集合:数据库中的数据按照一定的数据模型组织、描述和存储.其特点是具有较小的冗余度.较高的独立性和可扩展性,并且数据库中的数据可供合法用户使用

数据库管理系统(Database Management System,简称为DBMS)是一个软件系统,主要用来定义和管理数据库.处理应用程序和数据库间的关系,数据库管理系统是数据库系统的核心部分,它建立在操作系统之上,对数据库进行统一管理和控制:说得简单些,DBMS就是帮助用户建立、管理和维护数据库的软件系统。其主要功能如下:

  1/描述数据库

  DBMS能够提供数据描述语言(DDL),描述数据库的逻辑结构。存储结构和保密要求等,使用户能够方便地建立数据库和定义数据库结构:

  2/操作数据

 DBMS能够提供数据操作语言(DML),使用户能够方便地对数据库进行查询.插入。修改和删除等操作。

  3/管理数据库

  DBMS能够提供对数据库的运行和管理功能,保证数据的安全性。完整性和一致性,能够控制用户对数据库的访问以及管理大量数据的存储:

  4/维护数据库

  数据库管理系统能够提供数据的维护功能.如数据的导入、导出、数据转换、备份。故障恢复和性能监视等。

    平时说的会使用某种数据库,实际上指的是会使用该数据库管理系统。

2.数据库系统(DBS)

数据库系统是由文件系统演变而来的,数据库系统中的数据不是针对某个具体的应用程序而设计的,而是面向全局的应用,一个数据库中可以包括表、视图、存储过程、各字段的属性.规则等。数据库系统中数据按其复杂程度分为4个层次,如图1—1所示。

数据库系统的主要特点如下:

1/统一管理的结构化数据

 数据库系统中的数据是有结构的.由DBMS统一管理。在设计数据库结构时,在调查研究的基础上,要充分考虑整个系统的数据结构,不以某个具体的应用程序为依据,既要描述数据,也要描述数据之间的关系。

2/数据冗余度小

合理的数据库系统要尽量减小数据的冗余度。在一个系统中.可能涉及多个用户,不同的用户根据不同的需要访问不同的数据子集。减小冗余度的好处主要有两个:一个是节约数据存储的空间,另一个主要是避免了数据的不一致性。

  3/数据共享

  数据库系统中的数据能够为系统中所有合法的用户共享使用,也可为系统中各类应用程序共享使用。

  4/数据的独立性

  数据的独立性是指在数据库中的数据及数据的组织与应用程序无关,也就是说数据库中的数据发生改变时应用程序不用发生改变  数据的独立性包括逻辑独立性和物理独立性两个方面。

1.2  数据库应用系统的体系结构

数据库应用体系结构主要有集中式结构、客户/服务器结构(C/S)和浏览器;和浏览器/服务器结构(B/S)三种形式。

1.中央集中式结构

中央集中式系统是数据库系统早期的产品,以IBM公司的大型主机为代表。在中央集中式结构中;所有的应用程序都放在大型主机上运行  这些程序包括数据库管理系统和访问数据库的应用程序  终端和主机之间以专线的方式连接;它们本身没有任何处理能力;只是用来显示主机发送过来的数据以及供用户输入数据  中央集中式结构最大的优点是管理员能够以中央控制的方式充分掌握系统的安全。中央集中式结构的缺点是它属于专用系统,价格昂贵,而且必须有专职人员来管理和维护;

    中央集中式系统的结构如图1-2所示

2.C/S结构

C/S结构即客户/服务器Client/Server)结构,此结构的体系组成要素为服务器、客户机和网络。它将一个大的任务分成许多个子任务;用多台计算机分别完成各自的任务。客户机主要处理用户与系统的交互工作;而存储、操作和管理数据库则在服务器上运行。当用户在客户机上提出请求时,请求被送到服务器上,服务器上的数据库引擎处理该请求,完成对服务器上数据的操作后,服务器将处理后的结果传送到客户机,由客户机输出。C/S结构将输入、输出等需要用户较多干预的操作集中在客户端的个人机上。查询等数据处理工作在服务器上运行,从而充分发挥了服务器和个人计算机的能力,降低了网络拥挤程度,提高了系统的性能。

C/S结构系统如图1-3所示。

 

从图1-3可以看出,C/S结构与中央集中式结构的差异有以下几点:

(1)客户/服务器结构可以针对不同的需要,在网络上安装各种服务器。

(2)客户机不再是终端,而是具有处理能力的个人计算机。

(3)客户机与服务器之间是以共享的网络相连接。

(4)客户机/服务器之间可以通过网络进行交互操作或资源共享。

在客户机/服务器系统中,用户是请求的发起者,服务器是请求的处理者和响应者,而且客户机可以向不同的服务器请求服务。

在客户/服务器结构中,服务器和客户机都是利用网络来发送请求和应答。客户机将数据存取的请求利用网络送往服务器,服务器在接收到客户机的请求后,分析并运行,再将运行后的结果发送给客户机。客户机接收到运行结果后,利用个人计算机的资源进行数据处理。

3.B/S结构

所谓B/S结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browser)运行软件,即浏览器/服务器结构。服务器端包含Web服务器和数据库服务器,Web服务器的主要工作是处理来自浏览器用户的请求,启动有关的脚本或应用程序。数据库服务器的主要工作是保存系统的数据,支持用户对数据的操作。服务器响应完成用户的请求后,将处理的结果以标准的HTML格式返回给客户端的浏览器。

4.C/S结构和B/S结构的区别

B/S结构的优点是维护方便,能够降低总体拥有成本。客户端运行软件,就像平时上网浏览网页一样,有个浏览器即可,不用安装其他软件,而且通过电话线也可以运行软件:B/S结构软件所有的维护、升级工作只要在服务器上进行,客户端就可获得最新版本的软件。

C/S结构相对于更早的文件服务器来说,有了很大的进步,但与B/S相比,缺点和不足是很明显的。

首先,B/S比C/S的维护工作量大大减少了,C/S结构的每一个客户端都必须安装和配置软件。假如一个企业共有50个客户站点使用一套C/S结构的软件,则当这套软件进行了哪怕很微小的改动后(比如增加某个功能),系统维护员都必须进行这样的维护:将服务器更新到最新版本;将客户端原有的软件卸载,再安装新的版本,然后进行设置,最为可怕的是客户端的维护工作必须不折不扣的进行50次。若其中有部分客户端是在另外一个地方,则系统维护员还必须跑到该地方再进行卸载、安装、设置的工作。若某个客户端忘记进行这样的维护,则该客户端将会碰到版本不一致的问题而无法工作。而采用B/S结构,客户端就不必安装和维护。如果将前面企业的C/S结构的软件换成B/S结构,软件升级后,系统维护员只要将服务器的软件升级到最新版本即可。其他客户端只要重新登录系统,使用的即为最新版本的软件。

其次,B/S相对C/S能够降低总体拥有成本;C/S软件一般是采用两层结构的,而B/S采用的是三层结构。两层结构中,客户端接受用户的请求,客户端向数据库服务提出请求,数据库服务将数据提交给客户端,客户端将数据进行计算(可能涉及到运算、汇总、统计等)并将结果呈现给用户。

在三层结构中,客户端接受用户的请求,向应用服务提出请求,应用服务从数据库服务中获得数据,将数据进行计算并将结果提交给客户端,客户端将结果呈现给用户。

这两种结构的不同点是,两层结构中客户端参与运算,而三层结构中客户端并不参与运算,只是简单地接收用户的请求,显示最后的结果。由于三层结构中的客户端并不需要参与计算,所以对客户端的计算机配置要求是比较低的。

另外,由于从应用服务到客户端只传递最终的结果,数据量较少,使用电话线也能够胜任。而采用C/S两层结构,使用电话线作为传输线路可能因为速度太慢而不能接受。采用三层结构的B/S的配置可以采取提高服务器的配置,降低客户端的配置的方式。这样增加的只是一台服务器(应用服务和数据库服务可以放在同一台计算机中)的价格,而降低的却是几十台客户端机器的价格,从而起到了降低总体拥有成本的作用。

5.VB.NET中开发C/S和B/S程序

在VB.NET中可以同时开发这两种模式下的数据库应用程序。在新建项目时.在“模板”中选择“Windows应用程序”,可开发C/S模式的应用程序;在“模板”中选择“ASP.NET Web应用程序”,可开发B/S模式下的应用程序。

1.3关系数据库

目前大多数数据库管理系统都是基于关系模型的关系数据库。由于关系数据库建立在严格的数学基础上,并且结构简单,使用方便,因而得到了广泛的应用。关系数据库中数据的基本结构是表,即数据是按行.列有规则的排列,组织。

1.关系数据库中涉及的主要概念

(1)关系  一个关系在逻辑上对应一个按行、列排列的二维表。关系对应于图1—1中的文件。

(2)属性  属性也称为宇段,表中的一列称为表的一个属性,其反映的是研究对象某一方面的特性。对应于图1—1中的数据项。

(3)元组  又称为记录,是表中的每一行。

(4)主键  在表中能惟一地标识元组的一个属性或属性的集合。

(5)外键  表A中的某一字段,在该表中虽然不是主键.或是作为主键的一部分,但该字段在表B中是主键,那么这个字段在表A中称为外键。

(6)关系模式 关系名及关系中属性的集合构成关系模式。

明白上述基本概念后.就要着手建立数据库了,那么如何建立一个合理的数据库呢?

例如,要开发一个学生管理信息系统,其中涉及学生基本信息和学生成绩的信息,可以使用某种DBMS,如Access或SQLServer建立数据库,经过系统调查,总结出系统中涉及的信息有:学号、姓名、性别、籍贯、电话、课程名、成绩。根据实际情况,至少可以考虑以下两种数据库的选择方案:

A 关系模式一

学生(学号,姓名.性别,籍贯,电话,课程名,成绩)

B关系模式二

学生(学号,姓名,性别,籍贯,电话)

成绩(学号,课程名,成绩)

建立数据库中的表时,如果采用关系模式一,由于一个学生不仅仅学习一门课程。这样势必会造成严重的数据冗余。其后果可从表1—1中看到。

表1-1  不合理的数据表

  学  号     姓  名   性  别    籍  贯    电  话      课程名     成  绩

  9801001      张三      男       北京     8233444     英语        80

9801001      张三      男       北京     8233444      政治        78

  9801001      张三      男       北京     8233444      历史        78

  9801002      李四      女       上海     6578432      英语        50

 数据冗余最可怕的后果是造成数据的不一致。在表1—1中输入历史成绩时,电话号码输入错误,这样在查询张三的电话号码时.发现有两个。

 注意:在用VB.NET编制程序前.一定要先建立好数据库,合理的建立数据库,是在对项目充分调查研究和分析的基础上进行的。在完成一个项目时.切忌没有进行系统分析就编写程序。如果等程序快开发完毕时,再修改数据库结构,已编好的程序大都要进行修改.这将大大影响开发效率。

如果采用关系模式二,在一个数据库中建立两个表,一个表是“学生”,如表1-2所示:另一个是“成绩”,如表1-3所示。二者可通过“学号”相联系。“学生”中的“学号”是主键。因为知道“学号”,就能确定惟一记录。“成绩”中的“学号”和“课程名”合起来是主键,二者中的任何一个都不能确定惟一记录,但合起来可以确定惟一记录。将一个大的表分解成两个小表后,明显地减小了数据冗余。


2.关系规范化

下面采用关系数据库的规范化理论,针对上边的例子进一步加以阐述。这些理论是设计数据库时用来进行数据分析的一种方法,有助于建好数据库;标准化的过程是一系列渐近的规则集,一般称为范式(Normal Form)。由于范式是渐近的规则集,所以应该先用第一范式,再用第二范式,以此类推。在实际程序开发中,设计数据库时一般满足第三范式即可。

    1 /第一范式 (1NF,即First Normal Form)

    通俗地讲.就是表中的各字段是最小单位,不可分割。

    很显然表1—1满足1NF。对于表1-4,就无法满足1NF。


由于“电话”不是最小单位,可进一步拆分。建立数据库时,要将“电话”宇段改为“家庭电话”和“办公室电话”,这样就满足了1NF。

2/第二范式(2NF)

某关系在满足1NF的前提下,非主键(除主键外的字段)是由主键的全部而不是部分决定的,则此关系满足2NF。

关系模式-满足1NF,但不能满足2NF。原因是关系模式一中主键是“学号”+“课程名”,其余的都是非主键。在非主键中,“姓名”、“性别”等可由主键的一部分即“学号”确定,

通过分析可知:关系模式二能够满足2NF:

3/第三范式(3NF)

某关系如果能够满足2NF,并且在非主关键字段中,各字段间互不依赖,即任何字段都决定不了其他字段,则此关系满足3NF。

通过分析可知:关系模式二能够满足3NF:


(未完待续)


  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值