基础教程-SQL_Server2008_创建数据库以及数据库基础详解资料

  • 格式:doc
  • 大小:1.07 MB
  • 文档页数:30

第2章创建数据库《转自网上-初学用到得资料,感觉很好,就分享给大家,仅仅是转载》数据库是用来存储数据的空间,它作为存储结构的最高层次是其他一切数据库操作的基础。

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

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

本章学习目标:➢了解数据库对象及构成➢掌握创建数据库的两种方法➢掌握管理数据库的方法➢了解数据库快照2.1 SQL Server数据库概述SQL Server中的数据库是由数据表的集合组成的,每个数据表中包含数据以及其他数据库对象,这些对象包括视图、索引、存储过程和触发器等。

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

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

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

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

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.约束约束是SQL Server 2008实施数据一致性和完整性的方法,是数据库服务器强制的业务逻辑关系。

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

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

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

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

在一个实体关系(Entity-Relationship,或者叫E-R关系图)中,数据库被分成两部分:实体(如“生产企业”和“顾客”)和关系(“提供货物”和“消费”)。

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

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

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

在SQL Server 2008中,有两种使用默认值的方法。

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

如果使用SQL Server Management Studio,则可以在设计表时指定默认值。

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

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

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

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

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

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

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

8.存储过程存储过程与其他编程语言中的过程类似,原因主要有以下几点:●接收输入参数并以输出参数的格式向调用过程或批处理返回多个值●包含用于在数据库中执行操作(包括调用其他过程)的编程语句●向调用过程或批处理的返回状态值,以指明成功或失败(以及失败的原因)●可以使用EXECUTE语句来运行存储过程。

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

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

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

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

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

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

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

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

10.用户和角色用户是指对数据库有存取权限的使用者。

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

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

2.1.2 数据库构成在SQL Server 中,用于数据存储的实用工具是数据库。

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

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

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

1.系统数据库无论SQL Server 的哪一个版本,都存在一组系统数据库。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

让tempdb被来自不好的存储过程(对于创建有太多记录的表没有明确限制)的表中的记录所填满。

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

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

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

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

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

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

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

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

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

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

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

2.1.3 数据库文件和文件组在SQL Server 2008系统中,一个数据库至少有一个数据文件和一个事务日志文件。

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

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

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

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