VB教程第5章数据库项目开发概述_第1页
VB教程第5章数据库项目开发概述_第2页
VB教程第5章数据库项目开发概述_第3页
VB教程第5章数据库项目开发概述_第4页
VB教程第5章数据库项目开发概述_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.1数据库基础知识5.2数据库设计5.3SQL语言简介5.4ODBC与ADO简介第5章数据库应用开发概述1§5.1数据库基础知识数据库技术研究如何科学合理地组织数据、存储数据、如何高效的访问数据应用程序1应用程序2数据库管理系统

数据库2Database,简称DB

数据库是指长期存储在计算机内、有组织、可共享、统一管理的数据的集合。

§5.1.1四个基本概念----数据库3§5.1.1四个基本概念----数据库管理系统DatabaseManagementSystem,简称DBMS数据库管理系统是位于用户与操作系统间的一层数据管理软件,属系统软件的范畴。数据库管理系统负责定义数据和操纵数据,并能够保证数据库中数据的安全性、完整性,以及进行多用户对数据的并发使用及发生故障后的系统恢复。

Access、SQLServer、Oracle、Sybase、Foxpro

是典型的数据库管理系统4§5.1.1四个基本概念----数据库管理员DatabaseAdministrator,简称DBADBA是指全面负责数据库系统的“规划、设计、维护、管理和正常使用的”人员,其职责如下:(1)参与数据库设计的全过程,决定数据库的结构和内容;(2)定义数据的安全性和完整性,负责分配用户对数据库的使用权限和口令管理;(3)监督控制数据库的使用和运行,改进和重新构造数据库系统。当数据库受到破坏时,应负责恢复数据库;当数据库的结构需要改变时,完成对数据结构的修改。DBA不仅要有较高的技术专长和较深的资历,并应具有了解和阐明管理要求的能力。特别对于大型数据库系统,DBA极为重要。对于常见的微机数据库系统,通常只有一个用户,常常不设DBA,DBA的职责由应用程序员或终端用户代替。5§5.1.1四个基本概念----数据库系统数据库系统是指由数据库、数据库管理系统、应用系统、数据库管理员和用户等构成的系统。

广义的讲,数据库系统由下面几部分构成硬件及数据库软件:包括操作系统、DBMS、编译系统及应用开发工具软件等人员:包括数据库管理员、用户等。数据库系统的各类人员对数据库的各种操作请求,都由DBMS完成,DBMS是数据库系统的核心软件。6用户用户用户…...应用系统应用开发工具数据库管理系统操作系统数据库数据库管理员长期储存在计算机内、有组织、可共享的数据集合。负责定义数据和操纵数据,并能够保证数据库中数据的安全性、完整性、并发控制及恢复数据库系统组成7§5.1.2常用数据模型在数据库中是用数据模型这个工具来对现实世界进行抽象的。数据模型是数据库系统中用于提供信息表示和操作手段的形式构架。根据模型应用的目的不同,可将数据模型分为两类。概念模型(信息模型):按照用户的观点对数据和信息建模逻辑模型(层次、网状、关系):按照计算机系统的观点对数据建模。81.概念模型三个世界认识抽象现实世界信息世界概念模型机器世界DBMS支持的数据模型概念模型用于信息世界建模,是现实世界到信息世界的第一层抽象,是用户与数据库设计人员之间进行交流的语言,因此概念模型应强调语义表达能力。要易于用户理解91.概念模型信息世界中的基本概念实体(Entity):客观存在并可相互区别的事物称为实体,如:一个学生、一个部门、一门课、学生的一次选课、部门的一次订货等。实体集(EntitySet):同型实体的集合称为实体集。如:全体学生就是一个实体集。属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如学生实体可以用学号、姓名、性别、出生年月等属性组成。码(Key):唯一标识实体的属性集称为码。如:学号是学生实体的码。101.概念模型联系:事物之间的联系可以分为三类一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。如班级和班长之间的联系一对多联系(1:n):如果对于实体集A中的每一个实体,实体集B中有n个实体与之联系(n>=0),反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系。如班导师和学生之间的联系。111.概念模型联系:多对多联系(m:n):如果对于实体集A中的每一个实体,实体集B中有n个实体与之联系(n>=0),反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m>=0)与之联系,则称实体集A与实体集B具有多对多联系。如:学生和课程之间的关系。多个实体之间也可以存在一对一、一对多、多对多的联系,如学生、课程和教科书之间的联系。同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系,如职工实体集内有领导和被领导的联系。121.概念模型概念模型的表示方法:实体联系方法实体型:用矩形框表示,矩形框内写上实体名。如:属性:用椭圆形表示,并用无向边将其与相应的实体联系起来。如:课程学生学生学号学号学号姓名性别年龄1311.概念模型概念模型的表示方法:实体联系方法联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n,m:n)。如:班级班长管理11班级班长管理n1班级学生组成m班级课程管理n学生选修141.概念模型实体联系参考书教师课程讲授1nm职工领导1n151.概念模型E-R图实例学生班级课程学号姓名性别年龄班级编号所属专业系课程号课程名学分教师参考书课程号姓名性别年龄职称书号书名内容提要价格161.概念模型E-R图实例班级成绩组成领导学生学生人员选修课程讲授教师参考书1nn1nm领导领导1nm172.逻辑模型不同的数据模型具有不同的数据结构形式,目前最常用的数据模型有层次模型、网状模型和关系模型。层次模型和网状模型统称为非关系模型,在非关系模型中,实体用记录表示,实体之间的联系转换成记录之间的两两联系。182.关系模型关系模型中的重要概念关系:一个二维表是一个关系元组:表中的一行即为一个元组属性:表中的一列即为一个属性主码:表中的某个属性组,它可以唯一确定一个元组。域:属性的取值范围分量:元组中的一个属性值。关系模式:对关系的描述。一般表示为:关系名(属性1,属性2,...,属性n)

192.关系模型关系模型的数据结构:二维表学号95001950029500395004。。。95700姓名性别系别年龄籍贯李勇刘晨王名张立杨晓冬男女女男。。。男计算机科学信息数学计算机科学。。。物理20191819。。。21江苏山东北京北京。。。山西整数字符串男女信息数学,...141516171819202122...北京上海山东...学生登记表关系名主键关系域字段名记录行字段(列)20关系模型在关系模型中,实体以及实体间的联系都是用关系来表示的,例如,学生、课程、学生与课程之间的多对多联系在关系模型中可以表示如下:学生(学号,姓名,性别,系别,年龄,籍贯)课程(课程号,课程名,学分)选修(学号,课程号,成绩)关系模型要求关系必须是规范化的,关系的每一分量必须是一个不可分的数据项。

21§5.2数据库设计主要的内容:需求分析概念设计。概念模型和E_R图逻辑设计。关系模型设计物理设计22§5.2数据库设计数据库设计的主要任务针对特定用途,在给定的软、硬件环境下,设计出结构合理、性能良好的数据库,使之能较好地满足客户需求。

数据库的设计一般分为以下四个步骤(于1978年在新奥尔良会议上提出,因此简称新奥尔良法):需求分析、概念设计、逻辑设计、物理设计。23图5–6数据库设计步骤

DBMS特征信息结构(与软件、硬件无关)逻辑数据库结构、应用程序说明书需求分析概念设计逻辑设计物理设计需求说明书总体信息需求处理需求硬件、操作系统特征

24§5.3关系数据库标准语言SQL简介

自结构化查询语言SQL(StructureQueryLanguage)成为国际标准语言后,各个数据库厂家纷纷推出各自支持的SQL软件,SQL已成为关系数据库领域中的一个主流语言。SQL的特点:功能强大使用灵活语言简洁,易学易用25§5.3.1SQL的基本概念SQL功能SQL命令数据定义CREATE,ALTER,DROP数据操纵

INSERT,UPDATE,DELETE数据查询SELECT数据控制GRANT,REVOKE创建表、视图、索引等向数据表中插入指定的纪录在数据库中查找满足条件的记录授予用户一定的访问权限26§5.3.2常用的SQL语句建立数据库的目的是为了查询数据,因此说数据查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询,该语言具有语言灵活的使用方式和丰富的功能。查询语句一般格式为:

SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];27§5.3.2常用SQL数据查询整个SELECT语句的含义是,根据WHERE子句的表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组,每个组产生结果表中的一条记录.如果GROUP子句带HAVING短语,则只有满足指定条件的组才予输出.如果有ORDER子句,则结果表还要按<列名2>的值的升序或降序排序.28“学生-课程”数据库中包括三个表1.“学生信息”表StuInfo由学号、姓名、班级、来源这4个属性组成,可记为:

StuInfo(学号,姓名,班级,来源).其中学号为主码.2.“课程信息”表ClassInfo由课程代号,课程名称,任课教师,学分4个属性组成,可记为:

ClassInfo(课程代号,课程名称,任课教师,学分).其中课程代号为主码.3.“学生成绩”表StuScore由学号,课程代号,成绩3个属性组成,可记为:

StuScore(学号,课程代号,成绩),其中(学号,课程代号)为主码.29例1:查询考试成绩在80分以上的学生学号。

SELECT学号

FROMstuScoreWHERE成绩>=80;或者:

SELECTDISTINCT

学号

FROMstuScoreWHERE成绩>=80;DISTINCT表示将查询结果中的重复信息去掉。

30例2:查询学生信息表中姓张的学生的基本信息。

SELECT*FROMstuInfo

WHERE姓名like'张%';或者:查询学生信息表中姓张的学生且名字为单字的学生的基本信息。

SELECT*FROMstuInfo

WHERE姓名like'张__';“%”:代表零个或多个字符。“_”:代表一个字符。

31例3:查询学生成绩表中成绩在85~90之间的学生成绩信息。

SELECT*FROMstuScoreWHERE成绩BETWEEN85AND90;BETWEEN…AND…指明字段值必须满足的范围

32例4:查询学生信息表中的所有信息并按学号降序排序。

SELECT*FROMstuInfo

ORDERBY学号DESC;在ORDERBY子句中,ASC表示升序,DESC表示降序。

33例5:查询各个班级的总人数。

SELECT班级,COUNT(*)AS人数

FROMstuInfo

GROUPBY班级;COUNT函数用于统计个数,AS用于起别名。

34例6:查询学号为“20050001”的学生的总成绩、最高分、最低分、平均分。

SELECT

SUM(成绩)AS总成绩,AVG(成绩)

AS

平均成绩,MAX(成绩)

AS

最高成绩,MIN(成绩)AS

最低成绩

FROMstuScoreWHERE

学号='20050001';SUM函数用于计算数值型数据的总和AVG函数用于计算数值型数据的平均值MAX函数用于计算数值型数据的最大值MIN函数用于计算数值型数据的最小值

35例7:在成绩表中查询成绩不多于2门的学号和相应门数。

SELECT学号,COUNT(*)AS门数

FROMstuScoreGROUPBY学号

HAVINGCOUNT(*)<=2;

36例8:查询学生的姓名、课程名、成绩。

SELECTstuInfo.姓名,classInfo.课程名称,stuScore.成绩

FROMstuInfo,classInfo,stuScoreWHEREstuInfo.学号=stuScore.学号andclassInfo.课程代号=stuScore.课程代号;本例涉及到三个表之间的关联

37SQL---数据更新之插入语句数据更新有插入、删除、更新三种操作插入语句:一次插入一条记录的格式为:

INSERTINTO表名[(字段名[,字段名]…)]VALUES(常量[,常量]…);

一次插入多条记录的格式为:

INSERT

INTO

表名[(字段名[,字段名]…)]SELECT

查询语句;38例9:将一条记录“1004”、“计算机”、“王海”、2插入到课程信息表中。INSERTINTOclassInfo

VALUES(‘1004’,‘计算机’,‘王海’,2);例10:将成绩表中学号为“20050001”的全部记录插入到scoreBack表中,其中scoreBack是一张新建的表,其表结构与成绩表相同。INSERTINTOscoreBack

SELECT*FROMstuScoreWHERE学号='20050001';39SQL---数据更新之删除语句删除语句指从数据表中删除符合条件的记录。它的格式为:DELETEFROM表名

[WHERE条件表达式];例11:删除学生成绩表中学号为“20050003”的记录。DELETEFROMstuScoreWHERE学号='20050003';40SQL---数据更新之更新语句更新语句指修改数据表中符合指定条件记录的某个或某些字段值。它的格式为:UPDATE表名SET列名=值表达式[,列名=值表达式…][WHERE条件表达式];例12:修改学生信息表中学号为“20050001”同学的来源为“河北”。

UPDATEstuInfoSET来源='河北'WHERE学号='20050001';41例13:将学生成绩表中全部学生的成绩加上五分作为最终成绩。UPDATEstuScoreSET成绩=成绩+5;

42§5.4ODBC与ADO简介开放数据库互连标准(OpenDatabaseConnectivity,简称ODBC)是Microsoft推出的一种客户端连接后台数据库的技术。ODBC把SQL作为访问数据库的标准,实现了用相同的代码访问不同数据库格式的。ODBC体系结构主要由数据库应用程序、ODBC驱动程序管理器、ODBC驱动程序、ODBC数据源四部分组成。

5.4.1ODBC体系结构43

数据库管理系统数据库应用程序ODBC驱动程序管理器ACCESS驱动程序SQLServer驱动程序Oracle驱动程序ACCESS数据源SQLServer数据源Oracle数据源……

ODBC体系结构44§5.4.2配置ODBC数据源ODBC数据源管理器窗口451)在Windows2000环境下,单击“开始”-“设置”-“控制面板”,进入“控制面板”窗口,再双击“管理工具”,进入“管理工具”窗口

462)双击“数据源(ODBC)”,进入“ODBC数据源管理器”对话框,选择“系统DSN”选项卡。473)单击“添加”按钮,进入“创建新数据源”对话框,选择“MicrosoftAccessDriver(*.mdb)”。484)单击“完成”按钮,进入“ODBCMicrosoftAccess安装”对话框,在数据源名后面的文本框内输入一个新名称(班级学生)。495)单击“选择”按钮,进入“选择数据库”对话框,在右边选择数据库所在的目录,左边选择指定的数据库。506)单击两次“确定”按钮,返回“ODBC数据源管理器”对话框,可以看到“班级学生”数据源显示在“系统DSN”选项卡的列表框中。51§5.4.3ADO简介ADO对象模型主要包括连接(Connection)、命令(Command)、记录集(Recordset)、错误(Error)、参数(Parameter)、字段(Field)对象对象描述Connection提供了访问数据源的途经,指定连接的数据库Command将对数据源执行的指定命令Recordset执行查询所得到的记录集Error连接的错误信息Parameter与命令对象相关的参数Field表示记录集中的字段信息Property体现

ADO对象的特性52§5.4.4ADOData控件用ADO控件创建数据库应用程序:1)添加ADO控件到工具箱。创建一个新的VB工程,单击“工程”菜单-“部件”,打开“部件”对话框,选中“MicrosoftADODataControl6.0(OLEDB)”-单击“确定”按钮。532)双击工具箱中的ADO控件将其添加到窗体上并适当调整其位置。3)单击该控件的ConnectionString属性右侧的…按钮,出现“属性页”窗口,选择“使用ODBC数据源名称”,选择“班级学生”数据源,单击“确定”按钮。544)单击该控件RecordSource属性右侧的…按钮,选择相应的数据表。5)至此,ADO控件的配置完毕。在VB窗体上添加标签与文本框控件,文本框的名字从上到下依次为txtNum、txtName、txtClass、txtOrigin

。556)分别设置各文本框的DataSource属性和DataField属性,各文本框的DataSource属性均为Adodc1,DataField属性则分别为学号、姓名、班级、来源。7)单击运行按钮,运行结果如图所示。565.4.5

ADO编程基于ADO的应用程序存取数据源的主要步骤如下:1)连接到指定的数据源;2)打开记录集对象;3)对记录集进行添加、删除、修改、查询记录等操作;4)关闭已打开的连接。两个ADO对象:Connection对象

Recordset对象571)用CONNECTION对象连接到数据源State属性:AdStateClosed(关闭,默认)

AdStateOpen

(打开)Open方法:打开到数据源的连接,如果能成功打开数据源,就可以对它发出命令并且处理结果语法为:Connection.OpenConnectionString,UserID,Password,OptionsClose方法:Connectio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论