第一章 数据库基础
第一节 基本概念
1、表
关系数据库管理系统将数据库存储的数据放在多个位置,每个位置包含特定的数据集。这些位置称为表。一个表包含多行,每行包含多列。行和列也被称为记录和字段。
2、数据库的架构
数据库中表的名称和结构,以及数据库可能包含的其他对象的规格说明及其关系,称为数据库的架构。
3、键
可以对数据行进行唯一标识的字段,称为主键。
4、关系
通过定义表之间的关系,一个表中的记录可以与另一个表中的记录进行关联。
不同表的记录之间的关系可以有以下几种形式:
(1)一对一关系:一个表中的一行与另一个表中的一行相关联,另一个表中的行也与第一个表中的行相关联。
(2)一对多和多对一关系:一个表中的一行与另一个表中的多行相关联。
(3)多对多关系:一个表中的行可以自由地与另一个表中的行关联。
一对多关系是通过在关系的“多”端表中包含一个外键字段来实现的。
多对多关系的实现??
一对多链接用一根线条来表示,线条的“一”端用钥匙表示,“多”端用两个圆圈表示。
第二节、数据库的特性
1、联接
联接是一种在两个表之间指定关系的方法,其目的是从两表内获得相关数据。
2、函数
DBMS都提供大量的函数集用于查看和操作数据。这些函数可能包括数学函数,转换函数,字符串操作函数,日期与时间操作函数等。这些函数可以执行DBMS内的大多数数据处理,减少需要在应用程序与数据库之间来回参数的数据,提高了效率。
DBMS函数形式:
(1)返回一个值的标量函数。
(2)返回多行数据的表值型函数。
(3)对整个数据集而不是对单个值操作的聚合函数。
(4)用户定义函数。
3、视图
有时候可能希望一些数据库操作可以在应用程序中反复进行,可以不必强迫DBMS组合来自多个数据源的数据,而可以在DBMS中存储数据的视图。视图是存储的查询,从数据库的一个或多个表中获取数据。视图并不真正包含数据,而只是提供了一种间接方法来访问存储在数据库中其他位置的数据。
4、存储过程
存储过程允许用户可以编写在数据库中允许的代码,对数据执行高级操作和统计分析。
5、触发器
触发器是存储过程的一种特殊形式,在特定的事件发生时由DBMS自动执行。
6、索引
索引是优化性能的另一种方式。它让DBMS知道用户要如何使用数据。索引是数据库内部维护的表,使得能够快速访问包含特定数据的行。
第三节、ADO.NET
ADO.NET类型实现两个主要的功能:
数据访问:用于访问数据库中数据和操作数据库的类型;
数据表示:用于包含数据库数据的类型。
(1)DbConnection
DbConnection类提供与数据库的连接。创建DbConnection对象时,应提供与DB,S通信所需的所有信息,如数据库的位置,用于认证的用户名和密码以及要访问的DBMS中的数据库。所有其他ADO.NET数据访问类都依靠DbConnection与数据库进行通信。
数据库连接只在传输数据时才打开。创建DbConnection对象时并不自动连接到数据库。
(2)DbCommand
DbCommand类提供与数据库交互的主要方法。可以用DbCommand对象来执行SQL语句、允许存储过程等。
(3)DbDataReader
使用DbDataReader类可以从结果集中读取数据。如从执行存储在命令对象中的命令生成的结果集中读取数据。
(4)DbDataAdapter
DbDataAdapter用于减少存储在数据集对象中的数据与数据库进行数据交换时的干扰。数据适配器既可以将数据库中的数据传递给包含在数据集中的表,也可以将数据集中的数据传递到数据库中。
数据适配器使用4个命令对象。SelectCommand,用于查询数据;InsertCommand,用于添加数据;UpdateCommand,用于编辑数据;DeleteCommand,用于删除数据。
数据适配器使用方法DbDataAdapter.Fill()从数据库中获取数据,使用方法DbDataAdapter.Update()更新数据库中的数据。也可以使用DbDataAdapter.FillSchema()获取架构数据。
(5)DataTable
DataTable类用于存储数据表。以DataTable对象存储的表不一定映射到数据库中的表。DataTable对象可能只包含数据库中的表的一个子集或是组合。
(6)DataRelation
在处理多个DataTable对象时,通常需要表示表数据之间的关系,这由DataRelation类来完成。可以将多个DataRelation对象组合起来,构成一个DataRelationCollecion对象。
(7)DataSet
DataSet可以看作DataTable对象和DataRelation对象的集合。