第4章数据库的建立与管理
2013-12-26
安徽工业经济职业技术学院计算机科学技术系
12
4.2 创建数据库
4.使用T-SQL语言创建数据库 1)T-SQL语言 查询语言是数据库的重要组成部分。许多关系数据库系统拥 有 作 为 高 级 查 询 语 言 的 结 构 化 查 询 语 言 ( Structure Query Language,简称SQL)。交互式 SQL(Transact SQL,简称T-SQL)是SQL Server 的查询语言,它与 ANSI92 SQL 标准兼容,并对其进行了扩张。 T-SQL 提供如下的命令: (1)创建和管理数据库对象。 (2)访问和修改数据。 (3)数据聚合。 (4)管理安全性和权限。 说明:在Transact-SQL语言的命令格式中,用[ ]括起来的内 容表示是可选的;[,…n]表示重复前面的内容;用< >括 起来表示在实际编写语句时,用相应的内容替代;用{ }括 起来表示是必选的;类似A|B的格式,表示A和B只能选择 一个,不能同时都选。
2013-12-26
安徽工业经济职业技术学院计算机科学技术系
ห้องสมุดไป่ตู้
7
4.1.3 系统数据库与用户数据库
系统数据库
master model tempdb msdb
pubs
Northwind
User1
用户数据库
2013-12-26
安徽工业经济职业技术学院计算机科学技术系
8
4.1.3 系统数据库与用户数据库
2013-12-26
安徽工业经济职业技术学院计算机科学技术系
9
4.1.3 系统数据库与用户数据库
Msdb数据库:是代理服务数据库。支持 SQL Server代理、安排作业、报警等。 Tempdb数据库:是一个临时数据库。为临时表 和其它临时存储需求提供存储空间,Tempdb 数据库由整个系统的所有数据库使用。SQL Server每次启动时,tempdb数据库被重新建 立。当用户与SQL Server断开连接时,其临 时表和存储过程被自动删除。 用户数据库:一般指用户创建的数据库。
2013-12-26 安徽工业经济职业技术学院计算机科学技术系 14
4.2 创建数据库
database_name:新数据库的名称。数据库名称 在服务器中必须唯一,最长为128个字符,并且要 符合标识符的命名规则。每个服务器管理的数据库 最多为32767个。 ON : 指 定 存 放 数 据 库 的 数 据 文 件 信 息 。 <filespec>列表用于定义主文件组的数据文件, <filegroup>列表用于定义用户文件组及其中的文 件。 PRIMARY:用于指定主文件组中的文件。主文件 组的第一个由<filespec>指定的文件是主文件。如 果不指定PRIMARY关键字,则在命令中列出的第 一个文件将被默认为主文件。
创建数据库举例
例3-2-1:使用CREATE DATABASE创建一 个student数据库,所有参数均取默认值。 例3-2-2:创建一个Student1数据库,该数据 库的主文件逻辑名称为Student1_data, 物理文件名为Student1.mdf,初始大小为 10MB,最大尺寸为无限大,增长速度为 10%;数据库的日志文件逻辑名称为 Student1_log,物理文件名为 Student1.ldf,初始大小为1MB,最大尺 寸为5MB,增长速度为1MB。
5
4.1.2 数据库文件组
文件组:数据库文件的逻辑组织单位。 当有多个磁盘,希望把文件分布在这些磁盘上以提高性 能,使用文件组(也便于对数据库的维护与管理)。 主文件组( Primary )中包含了所有的系统表,当建立 数据库时,主文件组包括主数据库文件和未指定组的其 他文件。 用户定义文件组中可以指定一个缺省文件组,那么在创 建数据库对象时如果没有指定将其放在哪一个文件组中, 就会将它放在缺省文件组中。如果没有指定缺省文件组, 则主文件组为缺省文件组。 一个文件只能存在于一个文件组中,一个文件组也只能 被一个数据库使用;日志文件是独立的,它不能作为任 何文件组的成员。
2013-12-26 安徽工业经济职业技术学院计算机科学技术系 17
创建数据库举例
例3-2-3:创建一个指定多个数据文件和日志文件的 数据库。该数据库名称为students,有1个 10MB和1个20MB的数据文件和2个10MB的事务 日志文件。数据文件逻辑名称为student1和 student2,物理文件名为student1.mdf和 student4.mdf。主文件是student1,由primary 指定,两个数据文件的最大尺寸分别为无限大和 100MB,增长速度分别为10%和1MB。事务日 志文件的逻辑名为studentlog1和studentlog2, 物理文件名为studentlog1.ldf和studentlog4.ldf, 最大尺寸均为50MB,文件增长速度为1MB。 例3-2-4:创建一个具有三个文件组的数据库.
2013-12-26 安徽工业经济职业技术学院计算机科学技术系 10
4.2 创建数据库
4.4.1 创建数据库 创建数据库需要一定许可,在默认情况 下,只有系统管理员和数据库拥有者 可以创建数据库。数据库被创建后, 创建数据库的用户自动成为该数据库 的所有者。 创建数据库的过程实际上就是为数据库 设计名称、设计所占用的存储空间和 存放文件位置的过程等。
第4章 数据库的创建与管理
了解数据库基本概念 掌握数据库的建立 熟悉数据库的管理与维护
掌握数据库的迁移
2013-12-26
安徽工业经济职业技术学院计算机科学技术系
1
4.1 SQL SERVER数据库和概念
数据库是数据的容器,是数据与规则的集合. 数据库的存储结构分为逻辑结构和物理存储结构两 种。 数据库的逻辑结构指的是数据库是由哪些性质的信 息所组成 。实际上,SQL Server的数据库是由 诸如表、视图、索引等各种不同的数据库逻辑对 象所组成。 数据库的物理存储结构是讨论数据库文件是如何在 磁盘上存储的,数据库在磁盘上是以文件为单位 存储的,由数据库文件和事务日志文件组成,一 个数据库至少应该包含一个数据库文件和一个事 务日志文件。
2013-12-26 安徽工业经济职业技术学院计算机科学技术系 13
4.2 创建数据库
3)用CREATE DATABASE语句建立数据库 CREATE DATABASE database_name [ON [PRIMARY] [<filespec> [,…n] [,<filegroupspec> [,…n]] ] [LOG ON {<filespec> [,…n]}]
2013-12-26
安徽工业经济职业技术学院计算机科学技术系
6
4.1.2 数据库文件组(作用)
建立文件组的目的是为了扩展存储空间,提高数据的查 找速度,便于数据库的维护。当对数据库对象写操作时, 数据库会根据组内数据库文件的大小,按比例写入组内 所有数据库文件中;当查询数据时,SQL Server系统 会创建多个单独的线程来并行读取分配在不同物理硬盘 上的每个文件,从而在一定程度上提高了查询速度。 通过文件组可以简化数据库的维护工作。 (1)备份和恢复单独的文件和文件组,而并非数据库, 可以提高效率。 (2)将可维护性要求相近的表和索引分配到相同的文件 组中。 (3)为自己的文件组指定高可维护性的表。
2013-12-26 安徽工业经济职业技术学院计算机科学技术系 2
4.1.1 数据库文件
1.主数据库文件(Primary Database File) 一个数据库可以有一个或多个数据库文件,一个数据库文 件只能属于一个数据库。当有多个数据库文件时,有一 个文件被定义为主数据库文件(简称为主文件),其扩 展名为mdf。 主数据库文件用来存储数据库的启动信息以及部分或者全 部数据,是所有数据库文件的起点,包含指向其它数据 库文件的指针。一个数据库只能有一个主数据库文件。 4.辅助数据库文件(Secondary Database File) 用于存储主数据库文件中未存储的剩余数据和数据库对象, 一个数据库可以没有辅助数据库文件,但也可以同时拥 有多个辅助数据库文件。 辅助数据库文件的扩展名为.ndf(简称为辅助文件)。
SIZE:指定数据库的初始容量大小。 MAXSIZE:指定操作系统文件可以增长到的 最大尺寸。如果没有指定,则文件可以不断增 长直到充满磁盘。 FILEGROWTH:指定文件每次增加容量的大 小,当指定数据为0时,表示文件不增长。
安徽工业经济职业技术学院计算机科学技术系 16
2013-12-26
2013-12-26 安徽工业经济职业技术学院计算机科学技术系 11
4.2 创建数据库
4.4.1 创建数据库 1.使用管理器图形工具创建数据库 右击“数据库”/新建数据库 例:创建一个student数据库取默认值。 例:创建一个Student1数据库,该数据库的主文件逻辑名称 为Student1_data,物理文件名为Student1.mdf,初始 大小为10MB,最大尺寸为无限大,增长速度为10%;数 据库的日志文件逻辑名称为Student1_log,物理文件名 为Student1.ldf,初始大小为1MB,最大尺寸为5MB,增 长速度为1MB。
2013-12-26
安徽工业经济职业技术学院计算机科学技术系
4
4.1.1 数据库文件
事务日志的工作过程
1 应用程序发出数据修改 请求 缓存 3 修改记录在磁盘上的事务 日志 磁盘
2
在缓存中定位数据页, 或者将数据页读入缓存, 并修改
磁盘 4 检查点将已提交的 事务写入数据库中
2013-12-26
安徽工业经济职业技术学院计算机科学技术系
<filespec>::= ([NAME=logical_file_name,] FILENAME=‘os_file_name’ [,SIZE=size] [,MAXSIZE={max_size|UNLIMITED}] [,FILEGROWTH=growth_increment] ) [,…n] <filegroupspec>::= FILEGROUP filegroup_name <filespec> [,…n]