第4章数据库的创建与管理 本章导读 在 SQL Server系统中,数据库是最基本的对象, 从体系结构上说,它有逻辑结构和物理结构之分, 其中,逻辑数据库相当于一个容器,用于存储表 视图等数据库对象;物理数据库是对应于操作系统 的文件系统,由一系列数据文件和事务日志文件组 成的。 知识要点: ●数据库体系结构 1数据库结构既然。数据库的创建 构,那么究竟有·数据库的修改 什么不一样的结·数据库的删除 构? ●数据库的压缩 2不同于一般文件。数据库的附加和分离 结构的数据库在 创建时究竟有什 么要注意的事项 呢
第4章 数据库的创建与管理 本章导读: 在SQL Server 系统中,数据库是最基本的对象, 从体系结构上说,它有逻辑结构和物理结构之分, 其中,逻辑数据库相当于一个容器,用于存储表、 视图等数据库对象;物理数据库是对应于操作系统 的文件系统,由一系列数据文件和事务日志文件组 成的。 知识要点: ⚫数据库体系结构 ⚫数据库的创建 ⚫数据库的修改 ⚫数据库的删除 ⚫数据库的压缩 ⚫数据库的附加和分离 1.数据库结构既然 不同一般文件结 构,那么究竟有 什么不一样的结 构? 2.不同于一般文件 结构的数据库在 创建时究竟有什 么要注意的事项 呢?
4.1数据库的体系结构 在 SQL Server中,数据库由两部分组成:物理数据库 和逻辑数据库。物理数据库是数据库面向操作系统的物理 文件部分,由一系列文件组成,如数据文件和事物日志文 件;逻辑数据库是数据库面向用户的可视部分,由一系列 数据库对象组成,如表、视图、存储过程、扩展存储过程 用户自定义函数、用户自定义数据类型、用户、角色、规 则、默认值等。 4.1.1文件名 4.1.2数据库文件 4.1.3数据库文件组
4.1 数据库的体系结构 在SQL Server中,数据库由两部分组成:物理数据库 和逻辑数据库。物理数据库是数据库面向操作系统的物理 文件部分,由一系列文件组成,如数据文件和事物日志文 件;逻辑数据库是数据库面向用户的可视部分,由一系列 数据库对象组成,如表、视图、存储过程、扩展存储过程、 用户自定义函数、用户自定义数据类型、用户、角色、规 则、默认值等。 4.1.1 文件名 4.1.2 数据库文件 4.1.3 数据库文件组
4.1.1文件名 在 SQL Server中,每个文件都有两种名称,分别称为逻辑(文件) 名和物理(文件)名。 1.逻辑文件名:逻辑文件名是指在所有T-SQL语句中引用文件时必须使 用的名称。逻辑文件名必须遵守 SQL Server标识符的命名规则,且对数据 库必须是唯一的。 2.物理文件名:也称物理存储文件名,是指数据库的文件在物理磁盘上 的存储路径及文件系统名称的统称,物理文件名遵从操作系统文件名的命 注意:以符号@、#开头的标识符具有特殊的含义, SQL Server中标识符规则 以@开头的标识符表示局部变量,以@@开头的标 识符表示全局变量;以#开头的标识符表示临时表或 过程,以#排开头的标识符表示全局临时对象 (1)长度不超过128个字符 (2)开头字母为a~z或AZ、#、、@以及来自其它语言的字母字符 (3)后续字母可以是a~z或A~Z、#、_、@以及来自其它语言的字母字符 0~9、$: (4)不允许嵌入空格或其它特殊字符 (5)不允许与保留字同名 (6)在TSQL语句使用标识符时,必须用双引号或方括号封装不符合规 则的标识符;
4.1.1 文件名 在SQL Server中,每个文件都有两种名称,分别称为逻辑(文件) 名和物理(文件)名。 1.逻辑文件名:逻辑文件名是指在所有T-SQL语句中引用文件时必须使 用的名称。逻辑文件名必须遵守SQL Server标识符的命名规则,且对数据 库必须是唯一的。 2.物理文件名:也称物理存储文件名,是指数据库的文件在物理磁盘上 的存储路径及文件系统名称的统称,物理文件名遵从操作系统文件名的命 名规则。 SQL Server中标识符规则: (1)长度不超过128个字符; (2)开头字母为a~z或A~Z、#、_、@以及来自其它语言的字母字符; (3)后续字母可以是a~z或A~Z、#、_、@以及来自其它语言的字母字符、 0~9、$; (4)不允许嵌入空格或其它特殊字符; (5)不允许与保留字同名; (6)在T-SQL语句使用标识符时,必须用双引号或方括号封装不符合规 则的标识符; 注意:以符号@、#开头的标识符具有特殊的含义, 以@开头的标识符表示局部变量,以@@开头的标 识符表示全局变量;以#开头的标识符表示临时表或 过程,以##开头的标识符表示全局临时对象
41.2数据库文件 在 SQL Server中,每个数据库都由一系列文件组成,包括数据文件和事物日 志文件两类,而数据文件又可分为主数据文件和辅数据文件两大类 1.主数据文件:简称主文件,用来存储数据库的启动信息和部分或全部数据, 每个数据库有且仅有一个主数据文件。主数据文件总是位于主文件组( primary 中,它代表数据库的起点,并且提供指针指向数据库中的其它文件。使用时,主 数据文件包含两种名称:逻辑文件名和物理文件名,其中逻辑文件名无扩展名, 物理存储文件名的扩展名默认为mdf。 2.辅数据文件:简称辅文件,用于存储主数据文件中未存储的剩余数据和数据 库对象。一个数据库既可以没有辅数据文件,也可以有若干个辅数据文件。辅数 据文件既可以位于主文件组,也可以位于辅文件组中。使用时,辅数据文件也包 含两种名称:逻辑文件名和物理文件名,其中逻辑文件名无扩展名,物理存储文 件名的扩展名默认为ndf。 3.事务日志文件:简称日志文件,用于存储对数据库任何操作过程的事务日志, 以保证数据的一致性和完整性,有利于数据库的恢复。每个数据库都必须至少含 有一个事务日志文件,也可以含有多个事务日志文件。事物日志文件不属于任何 文件组。使用时,事务日志文件也包含两种名称:逻辑文件名和物理文件名,其 中逻辑文件名无扩展名,物理存储文件名的扩展名默认为.Jdf 注意:在 SQL Server中,一个数据库可以包含多个文件,不同文件也可以分别存 储在不同分区磁盘上,但是一个文件只能存储于一个数据库内
4.1.2 数据库文件 在SQL Server中,每个数据库都由一系列文件组成,包括数据文件和事物日 志文件两类,而数据文件又可分为主数据文件和辅数据文件两大类。 1.主数据文件:简称主文件,用来存储数据库的启动信息和部分或全部数据, 每个数据库有且仅有一个主数据文件。主数据文件总是位于主文件组(primary) 中,它代表数据库的起点,并且提供指针指向数据库中的其它文件。使用时,主 数据文件包含两种名称:逻辑文件名和物理文件名,其中逻辑文件名无扩展名, 物理存储文件名的扩展名默认为.mdf。 2.辅数据文件:简称辅文件,用于存储主数据文件中未存储的剩余数据和数据 库对象。一个数据库既可以没有辅数据文件,也可以有若干个辅数据文件。辅数 据文件既可以位于主文件组,也可以位于辅文件组中。使用时,辅数据文件也包 含两种名称:逻辑文件名和物理文件名,其中逻辑文件名无扩展名,物理存储文 件名的扩展名默认为.ndf。 3.事务日志文件:简称日志文件,用于存储对数据库任何操作过程的事务日志, 以保证数据的一致性和完整性,有利于数据库的恢复。每个数据库都必须至少含 有一个事务日志文件,也可以含有多个事务日志文件。事物日志文件不属于任何 文件组。使用时,事务日志文件也包含两种名称:逻辑文件名和物理文件名,其 中逻辑文件名无扩展名,物理存储文件名的扩展名默认为.ldf。 注意:在SQL Server中,一个数据库可以包含多个文件,不同文件也可以分别存 储在不同分区磁盘上,但是一个文件只能存储于一个数据库内
4.1.3数据库文件组 文件组是一组相关数据文件的逻辑分组(有点类似于文件夹,文件 夹是磁盘上的实际位 组。一个数据文件只能属 另处,文件组也分为主文件和辅助文供 文件组也只能属于一个 数据库。事务日志文仵独立存在的,不属于任何文件组。 1.主文件组:主文件组( prImary)是数据库系统自身提供的,每个 数据库有且仅有一个主文件组,主文件组中包含了所有系统表、主数 据文件和耒指定文件组的其它数据文 2.辅文件组:辅文件组是用户自行定义的文件组,每个数据库既可以 没有铺文件组,也可以包含若干个辅文件组,辅文件组可以存储用户 指定的辅数据文件。 3.默认文件组:默认文件组是没有分配文件组的数据文件的首选文件 组(默认逻辑文组),其中包含在创建时没有分配文件组的所有表和 索引的页。每个数据库只能有一个默认文件组。 注;黔谈文件组和主文件组不是同,概念:数据库建立初始时,主 0 owner固疋 用户定义的文件组指定为后续数据文件的默认文件组
4.1.3 数据库文件组 文件组是一组相关数据文件的逻辑分组(有点类似于文件夹,文件 夹是磁盘上的实际位置)。另外,文件组也分为主文件组和辅助文件 组。一个数据文件只能属于一个文件组,一个文件组也只能属于一个 数据库。事务日志文件独立存在的,不属于任何文件组。 1.主文件组:主文件组(primary)是数据库系统自身提供的,每个 数据库有且仅有一个主文件组,主文件组中包含了所有系统表、主数 据文件和未指定文件组的其它数据文件。 2.辅文件组:辅文件组是用户自行定义的文件组,每个数据库既可以 没有辅文件组,也可以包含若干个辅文件组,辅文件组可以存储用户 指定的辅数据文件。 3.默认文件组:默认文件组是没有分配文件组的数据文件的首选文件 组(默认逻辑文组),其中包含在创建时没有分配文件组的所有表和 索引的页。每个数据库只能有一个默认文件组。 注意:默认文件组和主文件组不是同一概念,数据库建立初始时,主 文件组是默认文件组,db_owner固定数据库角色成员可以通过命令将 用户定义的文件组指定为后续数据文件的默认文件组