330 likes | 618 Views
任务 2 SQL Server 数据库概念. 学习目的和要求 本任务讲解 SQL Server 数据库的概念,内容的理论性较强。 ① 需要了解: SQL Server 的 7 个系统表。 ② 需要牢固掌握: 数据库的类别及数据库结构; SQL Server 2000 的数据库对象; SQL Server 系统数据库的概念及作用。 ③ 难点: SQL Server 2000 的数据库对象。. 任务 2 SQL Server 数据库概念. 1. SQL Server 2000 的数据库及数据库对象 2. SQL Server 2000 的系统数据库
E N D
任务2 SQL Server数据库概念 • 学习目的和要求 本任务讲解SQL Server数据库的概念,内容的理论性较强。 ① 需要了解: SQL Server 的7个系统表。 ② 需要牢固掌握:数据库的类别及数据库结构; SQL Server 2000的数据库对象; SQL Server 系统数据库的概念及作用。 ③ 难点: SQL Server 2000的数据库对象。
任务2 SQL Server数据库概念 1. SQL Server 2000的数据库及数据库对象 2. SQL Server 2000的系统数据库 3. SQL Server系统表简介
任务2 SQL Server数据库概念 SQL Server是采用SQL语言的关系数据库管理系统,了解它的数据组织结构和存储方式,对管理和使用该数据库是十分重要的。
2.1 SQL Server 的数据库及数据库对象 数据库是SQL Server 2000存储数据的地方。只有把与数据库相关的概念弄清楚,才能很好地建立数据库,并对数据库进行操作。
2.1 SQL Server 的数据库及数据库对象 1. 数据库的类别 数据库按模式级别分类,可以分为物理数据库和逻辑数据库。数据库按创建对象来分,则可以分为系统数据库和用户数据库。
2.1 SQL Server 的数据库及数据库对象 1. 数据库的类别 (1) 物理数据库和逻辑数据库 物理数据库由构成数据库的物理文件构成。SQL Server 2000的物理数据库由两个或多个物理文件组成,一个物理数据库中至少有一个数据库信息文件和一个数据库事务日志文件。物理数据库由DBA(数据库管理员)负责创建和管理。 逻辑数据库是数据库中用户可视的表或视图,用户利用逻辑数据库的数据库对象,存储或读取数据库中的数据。
2.1 SQL Server 的数据库及数据库对象 1. 数据库的类别 (2) 系统数据库和用户数据库 SQL Server 2000的系统数据库是由系统创建和维护的数据库。系统数据库中记录着SQL Server 2000的配置情况、任务情况和用户数据库的情况等系统管理的信息,它实际上就是我们常说的数据字典。 用户数据库是根据管理对象要求创建的数据库,用户数据库中保存着用户直接需要的数据信息。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (1)数据库文件分类 在默认方式下,创建的数据库都包含一个主数据文件和一个事务日志文件,如果需要,可以包含多个辅助文件和多个事务日志文件。这些文件的默认存储位置为C:\program files\Microsoft SQL Server\Mssql\data文件夹,当然,不同的SQL Server实例存放在对应的默认文件夹,用户创建的数据库或添加新的文件时,可以更改数据文件和日志文件的路径。 下面分别介绍SQL Server数据库的3类文件:
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (1)数据库文件分类 下面分别介绍SQL Server数据库的3类文件: 1)主数据文件(Primary File) 主数据文件是数据库的起点,指向数据库中文件的其他部分,同时也用来存放用户数据。每个数据库都有一个且仅有一个主数据文件,推荐的文件扩展名为.mdf。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (1)数据库文件分类 下面分别介绍SQL Server数据库的3类文件: 2)辅助数据文件(Secondary File) 辅助数据文件专门用来存放数据。有些数据库可能没有辅助数据文件,而有些数据库可能有多个辅助数据文件。辅助数据文件的扩展名为.ndf。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (1)数据库文件分类 下面分别介绍SQL Server数据库的3类文件: 3)事务日志文件(Transaction Log File) 事务日志文件存放所有事务和每个事务对数据库的修改。凡是对数据库中的数据进行的修改操作,如INSERT、UPDATE、DELETE等SQL语句,都会记录在事务日志文件中。当数据库遭到破坏时,可以利用事务日志文件恢复数据库的内容。每个数据库至少有一个事务日志文件,也可以有多个事务日志文件,其扩展名为.ldf。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (1)数据库文件分类 使用辅助数据库文件可以扩大数据库的存储空间,如果数据库只有主数据文件,那么,该文件的最大容量受磁盘空间的限制,若数据库使用了辅助数据文件,就可以将文件建立在不同的磁盘上,这样数据库的容量就不再受一个磁盘空间的限制了。 在SQL Server中,一个数据库的所有文件的位置都记录在系统数据库master中,用户可以通过查看 master.dbo.sysdatabases表获得当前实例的数据库注册信息,使用系统存储过程sp_helpdb 获得当前数据库的名称、大小、创建日期等属性。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (2)数据库的两种组件 每一种数据库文件都有两个组件:页(Page)和扩展盘区(Extent)。 1) 页 页是SQL Server 2000使用的最小数据单元,一页可以容纳8k的数据。这就意味着,数据库中每1MB有128页。数据库中的每个页中只能存储一种数据库对象的数据,当然,许多数据库对象会占多个页。页中的前96个字符称为页首,页首用于存储诸如页的类型、可用空间及ID等系统信息。一个页可存放多条记录,但一条记录不能跨页存放,即SQL Server 2000中一条记录不能超过8060个字节(不计text、ntext、image三种数据类型的数据)。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (2)数据库的两种组件 每一种数据库文件都有两个组件:页(Page)和扩展盘区(Extent)。 1) 页 SQL Server 2000中共有8种页:数据页、索引页、文本/图像页、全局分配映射表页、页空闲空间、索引分配映射表页、大容量更改映射表页和差异更改映射表页。其中,日志文件中不包含页,仅含有一系列的日志记录。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (2)数据库的两种组件 每一种数据库文件都有两个组件:页(Page)和扩展盘区(Extent)。 2) 扩展盘区 扩展盘区是扩建表和索引的基本单位,一个扩展盘区由8个相邻页的构成。扩展盘区可分为统一扩展盘区和混合扩展盘区:统一扩展盘区由一个数据库对象所有;混合扩展盘区可以为多个数据库所有,即其中最多可以存放8种数据库对象。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (3)文件组 SQL Server的多个文件可以归纳成为一个文件组(Filegroup)。文件组有以下3种类型: 1) 主要文件组 主要文件组(Primary Filegroup)中包含着主数据文件及相关内容。在创建数据库时,系统自动创建了主要文件组,并将主数据文件及系统表的所有页都分配到主要文件组中。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (3)文件组 SQL Server的多个文件可以归纳成为一个文件组(Filegroup)。文件组有以下3种类型: 2) 用户定义文件组 由用户通过SQL Server企业管理器创建的文件组称为用户定义文件组(User-Defined Filegroup),该组中包含逻辑上一体的数据文件和相关信息。大多数数据库只需要一个文件组和一个日志文件就可很好的运行,但如果库中的文件很多,就要创建用户定义文件组,以便管理。使用时,可以通过企业管理器或Transact-SQL语句中的FILEGROUP子句指定需要的用户定义文件组。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (3)文件组 SQL Server的多个文件可以归纳成为一个文件组(Filegroup)。文件组有以下3种类型: 3) 默认文件组 在每个数据库中,同一时间只能有一个文件组是默认文件组(Default Filegroup)。当进行数据操作时,如果不指定文件组,则系统自动选择默认文件组。使用Transact-SQL的ALTER DATABASE语句可以指定数据库的默认文件组。在不特别指定的情况下,系统将主要文件组认定为默认文件组。
2.1 SQL Server 的数据库及数据库对象 2. 数据库结构 (3)文件组 图4-18 数据库的文件及其组的关系
2.1 SQL Server 的数据库及数据库对象 3. 数据库对象 数据库对象是数据库的逻辑文件。SQL Server 2000的数据库对象包括表、视图、角色、索引、数据类型、默认值、存储过程、触发器和约束等。下面介绍几个重要的数据库对象。 (1) 表和视图 表,即基本表,它是在数据库中存放的实际关系。一个数据库中的表可多达20亿个,每个表中可以有1024个列(字段)和无数个行(记录)。 视图是为了用户查询方便或根据数据安全的需要而建立的虚表。视图既可以是一个表中数据的子集,也可以由多个表连接而成。
2.1 SQL Server 的数据库及数据库对象 3. 数据库对象 数据库对象是数据库的逻辑文件。SQL Server 2000的数据库对象包括表、视图、角色、索引、数据类型、默认值、存储过程、触发器和约束等。下面介绍几个重要的数据库对象。 (2) 角色 角色是由一个或多个用户组成的单元,角色也称职能组。一个用户可以成为多个角色中的成员。角色是针对数据库而言的,一个数据库可以定义多个角色,并对各个角色定义不同权限。当数据库的角色获得某种数据库操作权时,角色中的每个用户都具有这种数据操作权。
2.1 SQL Server 的数据库及数据库对象 3. 数据库对象 数据库对象是数据库的逻辑文件。SQL Server 2000的数据库对象包括表、视图、角色、索引、数据类型、默认值、存储过程、触发器和约束等。下面介绍几个重要的数据库对象。 (3) 索引 索引是用来加速数据访问和保证表的实体完整性的数据库对象。SQL Server 2000中的索引有群聚和非群聚索引两种。群聚索引会使表的物理顺序与索引顺序一致,一个表只能有一个群聚索引;非群聚索引与表的物理顺序无关,一个表可以建立多个非群聚索引。
2.1 SQL Server 的数据库及数据库对象 3. 数据库对象 数据库对象是数据库的逻辑文件。SQL Server 2000的数据库对象包括表、视图、角色、索引、数据类型、默认值、存储过程、触发器和约束等。下面介绍几个重要的数据库对象。 (4) 存储过程 存储过程是通过Transact-SQL编写的程序。存储过程包括系统存储过程和用户存储过程:系统存储过程是由SQL Server 2000提供的,其过程名均以SP开头;用户过程是由用户编写的,它可以自动执行过程中安排的任务。
2.1 SQL Server 的数据库及数据库对象 3. 数据库对象 数据库对象是数据库的逻辑文件。SQL Server 2000的数据库对象包括表、视图、角色、索引、数据类型、默认值、存储过程、触发器和约束等。下面介绍几个重要的数据库对象。 (5) 触发器 触发器是一种特殊类型的存储过程,当表中发生特殊事件时执行。例如,可为表的插入、更新或删除操作设计触发器,当执行这些操作时,相应的触发器会自动启动。触发器主要用于保证数据的完整性。
2.1 SQL Server 的数据库及数据库对象 3. 数据库对象 数据库对象是数据库的逻辑文件。SQL Server 2000的数据库对象包括表、视图、角色、索引、数据类型、默认值、存储过程、触发器和约束等。下面介绍几个重要的数据库对象。 (6) 约束 约束规则用于加强数据完整性。SQL Server 2000的基本表可以定义5种类型的约束,即Primary Key(主码约束)、Foreign Key(外码约束)、Unique(惟一性约束)、Check(条件约束)和Not Null(非空值约束)。
2.2 SQL Server 的系统数据库 SQL Server 2000内部创建和提供的一组(6个)数据库。其中,pubs和Northwind是两个示例数据库,Master、Msdb、Model和Tempdb是4个系统数据库。
2.2 SQL Server 的系统数据库 1.Master数据库 Master数据库的主文件名为Master.mdf,日志文件为Masterlog.ldf。Master数据库中内含许多系统表,用来跟踪和记录SQL Server相关信息。Master数据库用于记录所有SQL Server 2000系统级别的信息,这些信息用于控制用户数据库和数据操作。例如,Master中存放了用户数据库及系统信息、分配给每个数据库的空间大小、正在进行的进程、用户帐号、有效锁定、系统错误消息和环境变量等信息。 Master数据库是SQL Server 2000最重要的系统数据库,在进行数据备份时,一定要将Master数据库的内容备份和用户数据库一起作备份处理,否则,系统不能正常工作。
2.2 SQL Server 的系统数据库 2. Msdb数据库 Msdb数据库的主文件名为Msdb.dbf,日志文件名为Msdb.ldf。Msdb数据库主要由SQL Server企业管理器和代理服务器使用。Msdb数据库中记录着任务计划信息、事件处理信息、数据备份及恢复信息和警告及异常信息。
2.2 SQL Server 的系统数据库 3. Model数据库 Model数据库的主文件是model.mdf,日志文件为model.ldf。Model数据库是SQL Server 2000为用户数据库提供的样板,新的用户数据库都以model数据库为基础。每次创建一个新数据库时,SQL Server 2000先制作一个model数据库的拷贝,然后再将这个拷贝扩展成要求的规模。
2.2 SQL Server 的系统数据库 4. tempdb数据库 tempdb数据库的主文件名和日志文件名分别为tempdb.dbf和tempdb.ldf。tempdb数据库是一个共享的工作空间,SQL Server 2000中的所有数据库都可以使用它,它为临时表和其他临时工作提供了一个存储区。当用户脱离tempdb数据库时,用户的所有临时表都从tempdb数据库中卸下。当关闭一个数据库服务时,该SQL服务器上的tempdb数据库中的内容将全部被清空。
2.3 SQL Server 系统表简介 系统目录是由描述SQL Server 系统的数据库、基表、视图和索引等对象的结构的系统表组成。SQL Server 经常访问系统目录,检索系统正常运行所需的必要信息。 下面介绍几个最重要的系统表 : 1. Sysobjects表 SQL Server 的主系统表sysobjects出现在每个数据库中,它对每个数据库对象含有一行记录。 2. Syscolumns表 系统表syscolumns出现在master数据库和每个用户自定义的数据库中,它对基表或者视图的每个列和存储过程中的每个参数含有一行记录。
2.3 SQL Server 系统表简介 系统目录是由描述SQL Server 系统的数据库、基表、视图和索引等对象的结构的系统表组成。SQL Server 经常访问系统目录,检索系统正常运行所需的必要信息。 下面介绍几个最重要的系统表 : 3. Sysindexes表 系统表sysindexes出现在master数据库和每个用户自定义的数据库中,它对每个索引和没有聚簇索引的每个表含有一行记录,它还对包括文本/图像数据的每个表含有一行记录。 4. Sysusers表 系统表sysusers出现在master数据库和每个用户自定义的数据库中,它对整个数据库中的每个Windows NT用户、Windows NT用户组、SQL Server 用户或者SQL Server 角色含有一行记录。
2.3 SQL Server 系统表简介 5. Sysdatabases表 系统表sysdatabases对SQL Server 系统上的每个系统数据库和用户自定义的数据库含有一行记录,它只出现在master数据库中。 6. Sysdepends表 系统表Sysdepends对表、视图和存储过程之间的每个依赖关系含有一行记录,它出现在master数据库和每个用户自定义的数据库中。 7. Sysconstraints表 系统表sysconstraints对使用CREATE TABLE或者ALTER TABLE语句为数据库对象定义的每个完整性约束含有一行记录,它出现在master数据库和每个用户自定义的数据库中。