SQLServer创建数据库.docx

上传人:b****3 文档编号:3938510 上传时间:2022-11-26 格式:DOCX 页数:34 大小:987.74KB
下载 相关 举报
SQLServer创建数据库.docx_第1页
第1页 / 共34页
SQLServer创建数据库.docx_第2页
第2页 / 共34页
SQLServer创建数据库.docx_第3页
第3页 / 共34页
SQLServer创建数据库.docx_第4页
第4页 / 共34页
SQLServer创建数据库.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

SQLServer创建数据库.docx

《SQLServer创建数据库.docx》由会员分享,可在线阅读,更多相关《SQLServer创建数据库.docx(34页珍藏版)》请在冰豆网上搜索。

SQLServer创建数据库.docx

SQLServer创建数据库

第2章创建数据库

数据库是用来存储数据的空间,它作为存储结构的最高层次是其他一切数据库操作的基础。

用户可以通过创建数据库来存储不同类别或者形式的数据。

因此,在本章用户将详细地学习针对数据库的基本操作和数据库的日常管理操作,即如何创建数据库、对数据/日志文件进行操作、生成数据库快照等日常操作。

本章学习目标:

Ø了解数据库对象及构成

Ø掌握创建数据库的两种方法

Ø掌握管理数据库的方法

Ø了解数据库快照

2.1SQLServer数据库概述

SQLServer中的数据库是由数据表的集合组成的,每个数据表中包含数据以及其他数据库对象,这些对象包括视图、索引、存储过程和触发器等。

数据库系统使用一组操作系统文件来映射数据库管理系统中保存的数据库,数据库中的所有数据和对象都存储在其映射的操作系统文件中。

这些操作系统文件可以是数据文件或日志文件。

要熟练地理解和掌握数据库,必须对数据库的一些基本概念及构成有一个清楚的认识。

2.1.1常见数据库对象

数据库中存储了表、视图、索引、存储过程、触发器等数据库对象,这些数据库对象存储在系统数据库或用户数据库中,用来保存SQLServer数据库的基本信息及用户自定义的数据操作等。

1.表与记录

表是数据库中实际存储数据的对象。

由于数据库中的其他所有对象都依赖于表,因此可以将表理解为数据库的基本组件。

一个数据库可以有多个行和列,并且每列包含特定类型的信息。

列和行也可以称为字段与记录。

字段是表中纵向元素,包含同一类型的信息,例如读者卡号(Rcert)、姓名(name)和性别(Sex)等;字段组成记录,记录是表中的横向元素,包含有单个表内所有字段所保存的信息,例如读者信息表中的一条记录可能包含一个读者的卡号、姓名和性别等。

如图2-1所示为【图书管理系统(BookDateBase)】数据库中【读者信息(Reader)】数据表的内容.

图2-1【读者信息(Reader)】数据表

2.视图

视图是从一个或多个基本(数据)表中导出的表,也被称为虚表。

视图与表非常相似,也是由字段与记录组成。

与表不同的是,视图不包含任何数据,它总是基于表,用来提供一种浏览数据的不同方式。

视图的特点是,其本身并不存储实际数据,因此可以是连接多张数据表的虚表,还可以是使用WHERE子句限制返回行的数据查询的结果。

并且它是专用的,比数据表更直接面向用户。

如图2-2所示是正在创建的视图,它的结果来自【图书管理系统(BookDateBase)】数据库中的【读者信息(Reader)】表、【图书信息(Books)】表和【借阅信息(BorrowOrReturn)】表。

图2-2【读者信息_借阅信息_图书信息表】视图

3.索引

索引是一种无须扫描整个表就能实现对数据快速访问的途径,使用索引可以快速访问数据库表中的特定信息。

索引是对数据库表中一列或多列的值进行排序的一种结构,例如【读者信息(Reader)】数据表中的【员工卡号(Rcert)】列。

如果要查找某一读者姓名,索引会帮助用户更快地获得所查找的信息。

4.约束

约束是SQLServer2008实施数据一致性和完整性的方法,是数据库服务器强制的业务逻辑关系。

约束限制了用户输入到指定列中值的范围,强制了引用完整性。

主键和外键就是约束的一种形式。

当在数据库设计器中创建约束时,约束必须符合创建和更改表的ANSI标准。

5.数据库关系图

在讲述规范化和数据库设计时会详细讲述数据库关系图,这里只要清楚数据库关系图是数据库设计的视觉表示,它包括各种表、每一张表的列名以及表之间的关系。

在一个实体关系(Entity-Relationship,或者叫E-R关系图)中,数据库被分成两部分:

实体(如“生产企业”和“顾客”)和关系(“提供货物”和“消费”)。

6.默认值

如果在向表中插入新数据时没有指定列的值,则默认值就是指定这些列中所的值。

默认可以是任何取值为常量的对象。

默认值也是SQLServer提供确保数据一致性和完整性的方法。

在SQLServer2008中,有两种使用默认值的方法。

第一种,在创建表时,指定默认值。

如果使用SQLServerManagementStudio,则可以在设计表时指定默认值。

如果使用Transact-SQL语言,则在CREATETABLE语句中使用DEFAULT子句。

第二种,使用CREATEDEFAULT语句创建默认对象,然后使用存储过程sp_binddefault将该默认对象绑定到列上。

7.规则

规则和约束都是限制插入到表中的数据类型的信息。

如果更新或插入记录违反了规则,则插入或更新操作被拒绝。

此外,规则可用于定义自定义数据库类型上的限制条件。

与约束不同,规则不限于特定的表。

它们是独立对象,可绑定到多个表,或者甚至绑定到特定数据类型(从而间接用于表中)。

8.存储过程

存储过程与其他编程语言中的过程类似,原因主要有以下几点:

●接收输入参数并以输出参数的格式向调用过程或批处理返回多个值

●包含用于在数据库中执行操作(包括调用其他过程)的编程语句

●向调用过程或批处理的返回状态值,以指明成功或失败(以及失败的原因)

●可以使用EXECUTE语句来运行存储过程。

但是,存储过程与函数不同,因为存储过程不返回取代其名称的值,也不能直接在表达式中使用。

9.触发器

触发器是一种特殊类型的存储过程,这是因为触发器也包含了一组Transact-SQL语句。

但是,触发器又与存储过程明显不同,例如触发器可以执行。

如果希望系统自动完成某些操作,并且自动维护确定的业务逻辑和相应的数据完整,那么可以通过使用触发器来实现。

触发器可以查询其他表,而且可以包含复杂的Transact-SQL语句。

他们主要用于强制服从复杂的业务规则或要求。

例如,用户可以根据商品当前的库存状态,决定是否需要向供应商进货。

在SQLServer2008中,一个重要的特性是允许用户使用熟悉的CLR语言创建存储过程和触发器。

10.用户和角色

用户是指对数据库有存取权限的使用者。

角色是指一组数据库用户的集合,和Windows中用户组类似。

数据库中的用户组可以根据需要添加,用户如果被加入到某一角色,则将具有该角色的所有权限。

2.1.2数据库构成

在SQLServer中,用于数据存储的实用工具是数据库。

而数据库从大的方面分,包括系统数据库和用户数据库。

每个SQLServer数据库(无论是系统数据库还是用户数据库)在物理上都由至少一个数据文件和至少一个日志文件组成。

出于分配和管理目的,可以将数据库文件分成不同的文件组。

1.系统数据库

无论SQLServer的哪一个版本,都存在一组系统数据库。

系统数据库中保存的系统表用于系统的总体控制。

系统数据库保存了系统运行及对用户数据的操作等基本信息。

这些系统数据分别是Master、Model、Msdb和Tempdb。

这些系统数据库的文件存储在SQLServer的默认安装目录的MMSQL子目录的Data文件夹中。

●master数据库

master数据库是SQLServer是最重要的数据库,它位于SQLServer的核心,如果该数据库被损坏,SQLServer将无法正常工作。

master数据库中包含了所有的登录名或用户ID所属的角色;服务器中的数据库的名称及相关信息;数据库的位置;SQLServer如何初始化四方面的重要信息。

定期备份master数据库非常重要。

确保备份master数据库是备份策略的一部分。

●model数据库

创建数据库时,总是以一套预定义的标准为模型。

例如,若希望所有的数据库都有确定的初始大小,或者都有特定的信息集,那么可以把这些信息放在model数据库中,以model数据库作为其他数据库的模板数据库。

如果想要使所有的数据库都有一个特定的表,可以把该表放在model数据库里。

model数据库是tempdb数据库的基础。

对model数据库的任何改动都将反映在tempdb数据库中,所以,在决定对model数据库有所改变时,必须预先考虑好并多加小心。

●Msdb数据库

msdb给SQLServer代理提供必要的信息来运行作业,因而,他是SQLServer中另一个十分重要的数据库。

SQLServer代理是SQLServer中的一个Windows服务,用以运行任何已创建的计划作业(例如包含备份处理的作业)。

作业是SQLServer中定义的自动运行的一系列操作,他不需要任何手工干预来启动。

●Tempdb数据库

Tempdb数据库用作系统的临时存储空间,其主要作用是存储用户建立的临时表和临时存储过程,存储用户说明的全局变量值,为数据排序创建临时表,存储用户利用游标说明所筛选出来的数据。

因为tempdb的大小是有限的,所以在使用他时必须当心,不要让tempdb被来自不好的存储过程(对于创建有太多记录的表没有明确限制)的表中的记录所填满。

如果发生了这种情况,不仅当前的处理不能继续,整个服务器都可能无法工作,从而将影响到在该服务器上的所有用户。

使用数据库的时候要记住一点,SQLServer2008的设计是可以在必要时自动扩展数据库的。

这意味着master、model、tempdb、msdb和其他关键的数据库将不会在正常的情况下缺少空间的。

如表2-1中列出了这些系统数据库在SQLServer2008系统中的主文件、逻辑名称、物理和文件增长比例。

表2-1系统数据库

系统数据库

主文件

逻辑名称

物理名称

文件增长

master

主数据

master

master.mdf

按10%自动增长,直到磁盘已满

Log

mastlog

mastlog.ldf

按10%自动增长,直到达到最大值2TB

msdb

主数据

MSDBData

MSDBData.mdf

按256KB自动增长,直到磁盘已满

Log

MSDBLog

MSDBLog.ldf

按256KB自动增长,直到达到最大值2TB

model

主数据

modeldev

model.mdf

按10%自动增长,直到磁盘已满

Log

modellog

modellog.ldf

按10%自动增长,直到达到最大值2TB

tempdb

主数据

tempdev

tempdb.mdf

按10%自动增长,直到磁盘已满

Log

templog

templog.ldf

按10%自动增长,直到达到最大值2TB

2.示例数据库

示例数据库是Microsoft给出的用于用户使用的数据库。

示例数据库中包含了各种数据库对象,使用户可以自由地对其中的数据或者表结构进行查询、修改等操作。

在安装SQLServer2008的过程中,可以在安装组件窗口中选择安装示例数据库,默认的示例数据库有AdventureWorks和AdventureWorksDW两个。

AdventureWorks数据库相对于以前SQLServer版本的示例数据库更加健壮。

虽然他对于初学者有一定的复杂性,但是该数据库具有相当完成的实例,及更接近实际的数据容量、复杂的结构和部件。

AdventureWorksDW数据库是AnalysisServices(分析服务)的示例数据库。

Microsoft将分析示例数据库与事务示例数据库联系在一起,以提供展示两者协同运行的完成示例数据库。

2.1.3数据库文件和文件组

在SQLServer2008系统中,一个数据库至少有一个数据文件和一个事务日志文件。

当然,该数据库也可以有多个数据文件和多个事务日志文件。

数据文件用于存放数据库的数据和各种对象,事务日志文件用于存放事务日志。

数据文件又可以分成主数据文件和辅助数据文件两种形式。

主数据文件是数据库的起点,每一个数据库都有且仅有一个主数据文件。

主数据文件名称的默认后缀是.mdf。

辅助数据文件是可选的,用来存放不在主数据文件中的其他数据和对象。

数据库可以没有辅助数据文件,也可以有多个辅助数据文件,默认后缀是.ndf。

事务是一个单元的工作,该单元的工作要么全部完成,要么全部不完成。

SQLServer2008系统具有事务功能,可以保证数据库操作的一致性和完整性。

SQLServer2008系统使用数据库的事务日志来实现事务的功能。

通常情况下,事务日志记录了对数据库的所有修改操作。

事务日志记录了每一个事务的开始、对数据的改变和取消修改等信息。

随着对数据库的持续不断地操作,日志是连续增加的。

对于一些大型操作,例如创建索引,日志只是记录该操作的事实,而不是记录所发生的数据。

事务日志还记录了数据页的分配和释放,以及每一个事务的提交和回滚等信息。

这样就允许SQLServer系统恢复和取消事务。

当事务没有完成时,则取消该事务。

事务日志以操作系统文件的形式存在,在数据库中被称为日志文件。

每一个数据库都至少有一个日志文件。

日志文件名称的默认后缀是.ldf。

在操作系统中,数据库是作为数据文件和日志文件而存在的,明确地指明了这些文件的位置和名称。

但是,在SQLServer系统内部,例如在Transact-SQL语言中,由于物理文件名称比较长,使用起来非常不方便。

为此,数据库又有逻辑文件的概念。

每一个物理文件都对应一个逻辑文件。

在使用Transact-SQL语句的过程中,引用逻辑文件非常快捷和方便。

文件组就是文件的逻辑集合。

文件组可以把一些指定的文件组合在一起,以方便管理和分配数据。

例如,在某个数据库中,3个文件(如data1.ndf、data2.ndf和data3.ndf)分别创建在3个不同的磁盘驱动器中,并且为他们指定了一个文件组group1。

以后,所创建的表可以明确指定存放在文件组group1中。

对该表中数据的查询将分布在这3个磁盘上同时进行,因此可以通过执行并行访问而提高查询性能。

在创建表时,不能指定将表放在某个文件中,只能指定将表放在某个文件组中。

因此,如果希望将某个表放在特定的文件中,必须通过创建文件组来实现。

使用文件和文件组时,应该考虑下列因素:

●一个文件或者文件组只能用于一个数据库,不能用于多个数据库。

●一个文件只能是某一个文件组的成员,不能是多个文件组的成员。

●数据库的数据信息和日志信息不能放在同一个文件或文件组中,数据文件和日志文件总是分开的。

●日志文件永远也不能是任何文件组的一部分。

在SQLServer2008系统中,可管理的最小物理空间以页为单位,每一个页的大小是8KB,即8192字节。

在表中,每一行数据都不能跨页存储。

这样,表中每一行的字节数不能超过8192个字节。

在每一个页上,由于系统占用了一部分空间用来记录与该页有关的系统信息,所以每一个页可用的空间是8060个字节。

但是,包含了varhcar、nvarchar、varbinary等数据类型的列的表则不受这种规则限制。

每8个连续页称为一个区,即区的大小是64KB。

这意味着1MB的数据库有16个区。

区用于控制表、索引的存储。

通过理解数据库的空间管理,可以估算数据库的设计尺寸。

数据库的大小等于所有表大小与索引大小之和。

假设某个数据库只有一个表,该表的数据行字节是800Byte。

这时,一个数据页上最多只能放10行数据。

如果该表大约有100万行的数据,那么该表占用10万个数据页的空间。

因此,该数据库的大小估计为:

100000×8KB=800000KB=781.25MB。

根据数据库大小的估计值,再考虑其他的因素,就可以得到数据库的设计值。

SQLServer不强制这主数据文件、辅助数据文件和日志文件类型的文件必须带mdf、ndf和ldf扩展名,但使用扩展名指出文件类型是个良好的文件命名习惯。

2.2创建数据库

创建数据库就是为数据库确定名称、大小、存放位置、文件名和所在文件组的过程。

在一个SQLServer2008实例中,最多可以创建32767个数据库,数据库的名称必须满足系统的标识符规则。

在命名数据库时,一定要使数据库名称简短并有一定的含义。

在SQLServer2008中创建数据库的方法主要有两种:

一是在SQLServerManagementStudio窗口中使用现有命令和功能,通过方便的图形化向导创建;二是通过编写Transact-SQL语句创建。

2.2.1使用图形化向导创建

SQLServerManagementStudio是SQLServer系统运行的核心窗口,它提供了用于数据库管理的图形工具和功能丰富的开发环境,方便数据库管理员及用户进行操作。

首先来介绍如何使用SQLServerManagementStudio来创建自己的用户数据库。

在SQLServer2008中,通过SQLServerManagementStudio创建数据库是最容易的方法,对初学者来说简单易用。

下面以创建本书的示例数据库【图书管理系统(BookDateBase)】数据库为例,对这种方法作详细介绍。

具体的操作步骤如下所示:

(1)从【开始】菜单中选择【程序】|MicrosoftSQLServer2008|SQLServerManagementStudio命令,打开MicrosoftSQLServerManagementStudio窗口,并使用Windows或SQLServer身份验证建立连接。

如图2-3所示。

图2-3连接服务器身份验证

(2)在【对象资源管理器】窗格中展开服务器,然后选择【数据库】节点。

(3)在【数据库】节点上右击,从弹出的快捷菜单中选择【新建数据库】命令,如图2-4所示。

图2-4选择【新建数据库】命令

(4)执行上述操作后,会弹出【新建数据库】对话框,如图2-5所示。

在这个对话框中有三个页,分别是【常规】、【选项】和【文件组】页。

完成这三个选项中的内容之后,就完成了数据库的创建工作。

图2-5【新建数据库】对话框

(5)在【数据库名称】文本框中输入要新建数据库的名称,例如这里输入“工资管理系统”。

(6)在【所有者】文本框中输入新建数据库的所有者,如sa。

根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。

(7)在【数据库文件】列表中,包括两行:

一行是数据文件,而另一行是日志文件。

通过单击下面相应按钮,可以添加或者删除相应的数据文件。

该列表中各字段值的含义如下:

●逻辑名称指定该文件的文件名,其中数据文件与SQLServer2000不同,在默认情况下不再为用户输入的文件名添加下划线和Data字样,相应的文件扩展名并未改变。

●文件类型用于区别当前文件是数据文件还是日志文件。

●文件组显示当前数据库文件所属的文件组。

一个数据库文件只能存在于一个文件组里。

在创建数据库时,系统自动将model数据库中的所有用户自定义的对象都复制到新建的数据库中。

用户可以在model系统数据库中创建希望自动添加到所有新建数据库中的对象,例如表、视图、数据类型、存储过程等。

●初始大小制定该文件的初始容量,在SQLServer2008中数据文件的默认值为3MB,日志文件的默认值为1MB.

●自动增长用于设置在文件的容量不够用时,文件根据何种增长方式自动增长。

通过单击【自动增长】列中的省略号按钮,打开【更改自动增长设置】窗口进行设置。

如图2-6和图2-7所示分别为数据文件、日志文件的自动增长设置窗口。

图2-6数据文件自动增长设置图2-7日志文件自动增长设置

●路径指定存放该文件的目录。

在默认情况下,SQLServer2008将存放路径设置为SQLServer2008安装目录下的data子目录。

单击该列中的按钮可以打开【定位文件夹】对话框更改数据库的存放路径。

(8)单击【选项】按钮,设置数据库的排序规则、恢复模式、兼容级别和其他需要设置的内容,如图2-8所示。

图2-8新建数据库【选项】页

(9)单击【文件组】可以设置数据库文件所属的文件组,还可以通过【添加】或者【删除】按钮更改数据库文件所属的文件组。

如图2-9所示。

图2-9新建数据库【文件组】页

(10)完成以上操作后,就可以单击【确定】关闭【新建数据库】对话框。

至此,成功创建了一个数据库,可以通过【对象资源管理器】窗格查看新建的数据库。

在SQLServer2008中创建新的对象时,他可能不会立即出现在【对象资源管理器】窗格中,可右击对象所在位置的上一层,并选择【刷新】命令,即可强制SQLServer2008重新读取系统表并显示数据中的所有新对象。

2.2.2使用Transact-SQL语句创建

使用SQLServerManagementStudio创建数据库可以方便应用程序对数据的直接调用。

但是,有些情况下,不能使用图形化方式创建数据库。

比如,在设计一个应用程序时,开发人员会直接使用Transact-SQL在程序代码中创建数据库及其他数据库对象,而不用在制作应用程序安装包时再放置数据库或让用户自行创建。

SQLServer2008使用的Transact-SQL是标准SQL(结构化查询语言)的增强版本,使用他提供的CREATEDATABASE语句同样可以完成新建数据库操作。

下面同样以创建【图书管理系统(BookDateBase)】数据库为例来介绍如何使用Transact-SQL语句创建一个数据库。

使用CREATEDATABASE语句创建数据库最简单的方式如下所示:

CREATEDATABASEdatabaseName

按照方式只需指定databaseName参数即可,他表示要创建的数据库的名称,其他与数据库有关的选项都采用系统的默认值。

例如,创建【图书管理系统(BookDateBase)】数据库,则语句为:

CREATEDATABASEBookDateBase

1.CREATEDATABASE语法格式

如果希望在创建数据库时明确的指定数据库的文件和这些文件的大小以及增长的方式。

首先就需要了解CREATEDATABASE语句的语法,其完整的格式如下:

CREATEDATABASEdatabase_name

[ON[PRIMARY]

[[1,…n]]

[,[1,…n]]

]

[

[LOGON{[1,…n]}]

[COLLATEcollation_name]

[FOR{ATTACH[WITH]|ATTACH_REBUILD_LOG}]

[WITH]

]

[;]

:

:

=

{

[PRIMARY]

[NAME=logical_file_name,]

FILENAME='os_file_name'

[,SIZE=size[KB|MB|GB|TB]]

[,MAXSIZE={max_size[KB|MB|GB|TB]|UNLIMITED}]

[,FILEGROWTH=growth_increment[KB|MB|%]]

)[1,…n]

}

:

:

=

{

FILEGROUPfilegroup_name

[1,…n]

}

:

:

=

{

DB_CHAINING{ON|OFF}|TRUSTWORTHY{ON|OFF}

}

:

:

=

{

ENABLE_BROKE|NEW_BR

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1