第8章数据库应用开发PPT讲稿.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第8章数据库应用开发PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第8章数据库应用开发PPT讲稿.ppt(108页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8章数据库应用开章数据库应用开发发第1页,共108页,编辑于2022年,星期一8.1.1关系数据库模型关系数据库模型数据库是指以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。例如,把一个学校的教师、学生和课程等数据有序地组织起来,存储在计算机磁盘上,就构成了一个数据库。数据库概念提出后,先后出现了几种数据模型,其中关系模型具有数据结构简单灵活、易学易懂且有雄厚的数学基础等特点,现已成为数据库的标准。关系数据库是以关系模型来组织的。关系模型中数据的逻辑结构是一张二维表,它由行和列组成。例如,表8.1是在学生信息管理系统中使用的一个Students表,用来描述学生的属性。表表8.
2、1Students表表第2页,共108页,编辑于2022年,星期一8.1.1关系数据库模型关系数据库模型一个关系数据库一般由多个表组成,表与表之间可以以不同的方式相互关联。例如,表8.2是在学生信息管理系统中使用的另一个表Courses,用来描述课程的属性。表表8.2Courses表表在这个表中,CourseNo(课程号)字段是Courses表的主键,因为它是唯一的。第3页,共108页,编辑于2022年,星期一8.1.1关系数据库模型关系数据库模型由于一名学生可以选修多门课程,而一门课程又可由多名学生来选修,因此Students和Courses表之间是一种多对多的关系。这个关系可以用一个成绩表
3、Scroe来表示,即学生所学的课程对应成绩信息,该表将学生的学号与课程号进行了关联,表8.3显示了该表的部分记录。表表8.3Score表表Score表的CourseNo字段引用自Courses表,StudentNo字段引用自Students表,这里的CourseNo字段和StudentNo字段又可称之为Score表的外键,分别指向Courses表和Students表的主键。这样,要唯一标识出Score表的一条记录,必须使用StudentNo和CourseNo两个字段的组合。所以Score表的主键就是这两个字段的组合。第4页,共108页,编辑于2022年,星期一8.1.2结构化查询语言(结构化查
4、询语言(SQL)作为用来在DBMS中访问和操作的语言,SQL(结构化查询语言)的语句通常分为四类:一是DDL(Data Definition Language,数据定义语言)语句,用来创建、修改或删除数据库中各种对象,包括表、视图、索引等;二是DML(Data Manipulation Language,数据操作语言)语句,用来对已经存在的数据库进行记录的插入、删除、修改等操作;三是QL(Query Language,查询语言)语句,用来按照指定的组合、条件表达式或排序检索已存在的数据库中数据,但不改变数据库中的数据;四是DCL(Data Control Language,数据控制语言)语句,
5、用来授予或收回访问数据库的某种特权、控制数据操纵事务的发生时间及效果、对数据库进行监视等。下面简单介绍一下SQL常用的语句。1.SELECT语句语句一个典型的SQL查询可以从指定的数据库表中“选择”信息,这时就需要使用SELECT语句来执行。它的最简单形式是:SELECT*FROM tableName第5页,共108页,编辑于2022年,星期一1.SELECT语句语句其中,星号(*)用来指定从数据库的tableName表中选择所有的字段(列)。例如,若要查询Courses表中所有记录,则可用下列语句:SELECT*FROM Courses若要从表中选择指定字段的记录,则将星号(*)用字段列表来
6、代替,多个字段之间用逗号分隔,例如:SELECT CourseNo,Credit,CourseName FROM Courses则执行的结果如表8.4所示,可以看出查询的结果记录集合(简称为“结果集”)中的字段顺序是由SELECT语句中的字段顺序来决定的。表表8.4Courses表执行表执行SELECT的结果的结果第6页,共108页,编辑于2022年,星期一1.SELECT语句语句WHERE子句子句 在数据表查询SELECT语句中,经常还需要通过设定查询的条件来获取特定要求的记录,这是通过WHERE子句来实现的,它的一般形式如下:SELECT column1,column2,FROM tabl
7、eName WHERE condition例如,若将Score表中成绩(score)在80分以上的记录查询出来,则可有下列语句:SELECT StudentNo,Score FROM Scores WHERE Score=80WHERE子句中的条件可以(大于)、=(大于等于)、=(等于)、(不等于)和LIKE等运算符。其中,LIKE用于模糊条件的查询,它可以使用星号(*)和问号(?)等通配符,星号(*)表示可以出现0个或多个字符,问号(?)表示该位置处只能出现1个字符。例如:SELECT*FROM Scores WHERE StudentNo LIKE 21*第7页,共108页,编辑于2022
8、年,星期一WHERE子句则将Score表中所有学号以21打头的记录查询出来。注意,LIKE后面的字符串是以单引号来标识。再如:SELECT*FROM Scores WHERE StudentNo LIKE 210105?则将Scores表中所有学号以210105打头的,且学号为8位的记录查询出来。需要说明的是,在许多DBMS中,LIKE后面字符串中的通配符用“%”来代替“*”,用“_”来代替“?”。WHERE子句中的条件还可用AND(与)、OR(或)以及NOT(非)运算符来构造复合条件查询,例如:若查询Scores表中成绩(score)在70分到80分之间的记录,则可有下列语句:SELECT*
9、FROM Scores WHERE score=70第8页,共108页,编辑于2022年,星期一1.SELECT语句语句ORDERBY子句子句在关系模型中行是没有顺序的,但是用户可能希望查询的结果按某种顺序显示。这就需要在数据表查询SELECT语句中使用ORDER BY子句来按序输出结果集。如下面的形式:SELECT column1,column2,FROM tableName WHERE condition ORDER BY col1,col2,ASC或SELECT column1,column2,FROM tableName WHERE conditionORDER BY col1,col
10、2,DESC其中,ASC表示升序(从低到高),DESC表示降序(从高到低),当在ORDER BY子句中没有指定ASC/DESC时,则按默认的升序进行排列。col1、col2、分别用来指定是按什么字段来排序。当指定多个字段时,则先按col1排序,当有相同col1的记录时,则相同的记录按col2排序,依此类推。例如:SELECT*FROM Scores ORDER BY StudentNo,CourseNo则查询的结果集是按学生号和课程号进行升序排列。第9页,共108页,编辑于2022年,星期一1.SELECT语句语句INNERJOIN语句语句在进行多个数据表查询时,总希望将多个表的某几个字段作为
11、结果集的内容。例如,学生信息管理系统中,常需要将学生成绩按学号、姓名、课程名称、成绩的记录查询出来,这时就需要对Score、Student和Course三个表的数据合并成单个结果集,这种合并称为表的“联接”,我们可以通过在SELECT查询中使用INNER JOIN(内联)操作来实现。INNER JOIN的最简单形式是:SELECT column1,column2,FROM table1INNER JOIN table2 ON table1.columnName=table2.columnName INNER JOIN将table1和table2表进行内联,其联接的条件由ON子句来设定。通过ON
12、子句来指定这两个表中的哪些列进行比较,从而确定最终需要合并的记录。例如:SELECT Scores.StudentNo,Scores.CourseNo,Courses.CourseName,Scores.ScoreFROM Scores INNER JOIN Courses ON Scores.CourseNo=Courses.CourseNoORDER BY StudentNo,CourseNo第10页,共108页,编辑于2022年,星期一8.1.2结构化查询语言(结构化查询语言(SQL)2.INSERT语句语句INSERT语句是用来向表中插入一个新的记录。该语句的常用形式是:INSERT
13、INTO tableName(col1,col2,col3,colN)VALUES(val1,val2,val3,valN)其中,tableName用来指定插入新记录的数据表,tableName后跟一对圆括号,包含一个以逗号分隔的列(字段)名的列表,VALUES后面的圆括号内是一个以逗号分隔的值列表,它与tableName后面的列名列表是一一对应的。需要说明的是,若某个记录的某个字段值是字符串,则需要用单引号来括起来。例如:INSERT INTO Students(StudentNo,StudentName)VALUES(21010503,张小峰)将在Student中插入一个新行,其中Stud
14、entNo(学号)为“21010503”,StudentName(学生姓名)为“张小峰”,对于该记录的其它字段值由于未指定值,其结果由系统决定。第11页,共108页,编辑于2022年,星期一8.1.2结构化查询语言(结构化查询语言(SQL)3.UPDATE语句语句UPDATE语句用于更新表中的数据。该语句的常用形式是:UPDATE tableName SET column1=value1,column2=value2,columnN=valueN WHERE condition该语句可以更新tableName表中一行记录或多行记录的数据,这取决于WHERE后面的条件。关键字SET后面是以逗号分
15、隔的“列名/值”列表。例如:UPDATE Students SET StudentName=王鹏 WHERE StudentNo=21010503将学号为“21010503”的记录中的StudentName字段内容更新为“王鹏”。第12页,共108页,编辑于2022年,星期一8.1.2结构化查询语言(结构化查询语言(SQL)4.DELETE语句语句DELETE语句用来从表中删除记录,其常用形式如下:DELETE FROM tableName WHERE condition该语句可删除tableName表中一行或多行记录,这取决于WHERE后面的条件。例如:DELETE FORM Student
16、s WHERE StudentNo LIKE 210105*则将Student表中所有以210105开头的学号的记录删除。第13页,共108页,编辑于2022年,星期一8.2ADO.NET概述概述8.2.1ADO.NET基本概念与特点基本概念与特点在.NET中数据库的访问是通过ADO.NET完成的。ADO.NET是微软公司ADO(Active Data Object)技术的升级版本。为了保持对ADO技术的兼容性,ADO.NET不但能够访问那些使用新的.NET数据提供程序的数据源,也可访问那些现有的ADO OLEDB数据提供程序。ADO.NET是为基于消息的Web应用程序而设计的,同时也能为其他
17、应用程序结构提供良好的功能。以前ADO操作主要依赖于两层结构并且是基于连接的,连接断开后就只能通过重新新建连接才能实现存取,而在ADO.NET中,数据处理被延伸到三层以上的结构,程序员也需要采用无连接应用模型。通过支持对数据的松耦合访问,ADO.NET减少了与数据库的活动连接数目(即减少了多个用户争用数据库服务器上的有限资源的可能性),从而实现了最大限度的数据共享。下面就介绍一下ADO.NET的主要特点:第14页,共108页,编辑于2022年,星期一8.2.1ADO.NET基本概念与特点基本概念与特点1.ADO.NET不依赖于连续的活动连接不依赖于连续的活动连接在传统的客户端/服务器应用程序中
18、,组件将建立与数据库的连接,并在应用程序运行过程中使连接保持打开状态。该方法在许多应用程序中并不实用,打开的数据库连接将占用宝贵的系统资源。在大多数情况下,数据库只可以维持少量的并发连接,维持这些连接的系统开销将降低应用程序的总体性能。2.使用数据命令执行数据库交互使用数据命令执行数据库交互若要在数据库中执行操作,应执行SQL语句或存储过程(它包括SQL语句)。我们使用SQL语句或存储过程读写行并执行聚合函数,例如添加或求平均值,我们还可使用SQL语句或存储过程创建或修改表或列、执行事务等。在ADO.NET中使用数据命令封装了SQL语句或存储过程。例如,我们想要从数据库读取一组行,则创建一个数
19、据命令并用SQL的SELECT语句的文本,或获取记录的存储过程名称来配置它。在进行数据库交互时一般按以下顺序操作:(1)打开一个连接;(2)执行该命令引用的SQL语句或存储过程;(3)关闭连接。连接保持打开的时间仅足够执行语句或存储过程。第15页,共108页,编辑于2022年,星期一8.2.1ADO.NET基本概念与特点基本概念与特点3.使用数据集缓存数据使用数据集缓存数据虽然使用数据命令可以进行几乎全部数据库的操作,但在处理Windows Forms应用程序时,我们需要做的最常见的数据任务是从数据库检索数据并对数据进行某些操作:显示数据、处理数据或将数据发送给另一个组件。这便是数据集的概念。
20、数据集是从数据源检索的记录的缓存,它的工作方式如同虚拟的数据存储区:数据集包含一个或多个表(这些表可能来自实际数据库中的表),并且它可以包含有关这些表之间的关系和对表可包含数据的约束的信息。4.数据集独立于数据源数据集独立于数据源尽管数据集是作为从数据库获取的数据的缓存,但数据集与数据库之间没有任何实际关系。数据集是容器,它由从数据适配器执行的SQL命令或存储过程填充。5.数据保持为数据保持为XML数据需要从数据存储区移动到数据集以及从数据集移动到各种组件。在ADO.NET中,传输数据的格式是XML。类似地,如果需要保持数据(例如保持到文件中),则将其存储为XML。如果有XML文件,则可以像使
21、用任何数据源一样使用它,并从它创建数据集。第16页,共108页,编辑于2022年,星期一5.数据保持为数据保持为XML使数据协议以XML为基础可提供许多便利之处:XML是工业标准格式。这意味着我们的应用程序数据组件可以与其他任何应用程序中的任何组件交换数据,只要该组件理解XML。许多应用程序被编写为可理解XML,把异类应用程序间的交换提升到了空前高的水平。XML是基于文本的。数据的XML表示形式不使用任何二进制信息,这使它可以通过任何协议(如HTTP)进行发送。大多数防火墙将阻塞二进制信息,但通过将信息格式化为XML,组件仍可以方便地交换信息。对于大多数方案,我们不必知道XML便可以使用ADO
22、.NET中的数据。ADO.NET自动根据需要将数据转换为XML或从XML转换出数据,我们可以使用普通编程方法与数据进行交互。第17页,共108页,编辑于2022年,星期一8.2.1ADO.NET基本概念与特点基本概念与特点6.通过架构定义数据结构通过架构定义数据结构尽管我们不必知道有关XML的任何事情便可以读写数据库和使用数据集,但也有一些情况下我们需要直接与XML打交道,比如不打算访问数据而要进行数据设计时,即需要在ADO.NET中使用元数据时,将直接使用XML。ADO.NET数据集以XML表示,使用基于XML架构定义语言(XSD)的XML架构来定义数据集的结构(如在数据集中有哪些表、列、数
23、据类型、约束等的定义)。就象数据集包含的数据可以从XML加载和序列化为XML一样,数据集的结构也可以从XML架构加载和序列化为XML。对于大部分ADO.NET中的数据操作,Visual Studio.NET工具提供了可视化的设计器来完成,并能根据需要生成和更新架构。第18页,共108页,编辑于2022年,星期一8.2.2ADO.NET与与ADO的比较的比较对于已经使用过ADO技术开发数据库的读者来说,应该了解ADO.NET与ADO的不同之处。1.数据的内存中表示形式数据的内存中表示形式在ADO中,数据的内存中表示形式为记录集:在ADO.NET中,数据的内存中表示形式为数据集。它们之间有重要的差
24、异。表的个数记录集看起来像单个表。如果记录集包含来自多个数据库表的数据,则它必须使用JOIN查询,将来自各个数据库表的数据组合到单个结果表中。数据导航和游标在ADO中,我们使用ADOMoveNext方法顺序扫描记录集的行。在ADO.NET中,行表示为集合,因此我们可以像依次通过任何集合那样依次通过表,或通过序号索引或主键索引访问特定行。DataRelation对象维护有关主记录和详细资料记录的信息,并提供方法使我们可以获取与正在操作的记录相关的记录。“游标”是数据库元素,它控制记录导航、更新数据的能力和其他用户对数据库所做更改的可见性。ADO.NET不具有固有的游标对象,而是包含提供传统游标功
25、能的数据类。例如,在ADO.NET DataReader对象中提供只进、只读游标的功能。第19页,共108页,编辑于2022年,星期一8.2.2ADO.NET与与ADO的比较的比较2.将打开连接的时间降至最低将打开连接的时间降至最低如前所述ADO.NET采用了无连接模型。在ADO.NET中,打开连接的时间仅足够执行数据库操作,例如“选择”(SELECT)或“更新”(UPDATE)。我们可以将行读入数据集中,然后在不保持与数据源的连接的情况下使用它们。在ADO中,记录集可以提供不连接的访问,但ADO主要是为连接的访问设计的。ADO和ADO.NET中的不连接处理之间存在一个显著差异:在ADO中,通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 应用 开发 PPT 讲稿
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内