一.几个数据库相关概念
数据库(DataBase)是按照数据结构来组织、存储和管理数据的仓库,是存储在一起的相关数据的集合。其优点主要体现在以下几方面:
- 减少数据的冗余度,节省数据的存储空间
- 具有较高的数据独立性和易扩充性
- 实现数据资源的充分共享
下面介绍一下与数据库相关的几个概念:
(1)数据库系统
数据库系统(DataBase System,简称DBS)是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)和软件平台(软件)五部分构成的运行实体。其中数据库管理员(DataBase Administrator,简称DBA)是对数据库进行规划、设计、维护和监视等的专业管理人员,在数据库系统中起着非常重要的作用。
(2)数据库管理系统
数据库管理系统(DataBase Management System,简称DBMS)是数据库系统的一个重要组成部分,是位于用户与操作之间的一层数据管理软件,负责数据库中的数据组织、数据操纵、数据维护和数据服务等。主要具有如下功能: - 数据存取的物理构建:为数据模式的物理存取与构建提供有效的存取方法与手段。
- 数据操纵功能:为用户使用数据库的数据提供方便,如查询、插入、修改、删除等以及简单的算术运算和统计。
- 数据定义功能:用户可以通过数据库管理系统提供的数据定义语言(Data Definition Language,简称DDL)方便地对数据库中的对象进行定义。
- 数据库的运行管理:数据库管理系统统一管理数据库的运行和维护,以保障数据的安全性、完整性、并发性和故障的系统恢复性。
- 数据库的建立和维护功能:数据库管理系统能够完成初始数据的输入和转换、数据库的转储和恢复、数据库的性能监视和分析等任务。
(3)关系数据库 - 关系数据库是支持关系模型的数据库。关系模型由关系数据结构、关系操作集合和完整性约束三部分组成。
- 关系数据结构:在关系模型中数据结构单一,现实世界的实体以及实体间的联系均用关系来表示,实际上关系模型中数据结构就是一张二维表。
- 关系操作集合:关系操作分为关系代数、关系演算、具有关系代数和关系演算双重特点的语言(SQL语言)。
- 完整性约束:完整性约束包括实体完整性、参照完整性和用户定义的完整性约束。
二.常用数据库对象
在SQL Server 2012的数据库中,表、视图、存储过程和索引等具体存储数据或对数据进行操作的实体都被称为数据库对象。下面介绍几种常用的数据库对象。
(1)表
表是包含数据库中所有数据的数据库对象,是SQL Server数据库中最重要的逻辑对象。它由行和列组成,用于组织和存储数据。
(2)字段
表中每列称为一个字段,字段具有自己的属性,如字段类型、字段大小等,其中字段类型是字段最重要的属性,它决定了字段能够存储哪种数据。
SQL规范支持5种基本字段类型:字符型、文本型、数值型、逻辑型和日期时间型。
(3)索引
索引是一个单独的、物理的数据库结构。它是依赖于表建立的,在数据库中索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需的数据。
(4)视图
视图是从一张或多张表中导出的表(也称虚拟表),是用户查看数据表中数据的一种方式。表中包括几个被定义的数据列与数据行,其结构和数据建立在对表的查询基础之上。视图中保存的不是数据,而是表的查询语句select。
(5)存储过程
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集合(包含查询、插入、删除和更新等操作),经编译后以名称的形式存储在SQL Server服务器端的数据库中,由用户通过指定存储过程的名字来执行。当这个存储过程被调用执行时,这些操作也会同时执行。
三.数据库组成部分
SQL Server 2012数据库主要由文件和文件组组成。数据库中的所有数据和对象(如表、存储过程和触发器)都被存储在文件中。
(1)文件
文件主要分为以下3种类型:
- 主要数据文件:存放数据和数据库的初始化信息。每个数据库有且只有一个主要数据文件,默认扩展名是.mdf。
- 次要数据文件:存放除主要数据文件以外的所有数据文件。有些数据库可能没有次要数据文件,也可能有多个次要数据文件,默认扩展名是.ndf。
- 事务日志文件:存放用于恢复数据库的所有日志信息。每个数据库至少有一个事务日志文件,也可以有多个事务日志文件,默认扩展名是.ldf。
注意:
SQL Server 2012不强制使用.mdf、.ndf 和.ldf文件扩展名,但使用这些扩展名可以帮助标识文件的用途。
(2)文件组
文件组是SQL Server 2012数据文件的一种逻辑管理单位,它将数据库文件分成不同的文件组,方便于对文件的分配和管理。
文件组主要分为以下两种类型: - 主文件组:包含主要数据文件和任何没有明确指派给其它文件组的文件。系统表的所有页都分配在主文件组中。
- 用户定义文件组:主要是在CREATE DATABASE或ALTER DATABASE语句中,使用FILEGROUP关键字指定的文件组。
说明:
每个数据库中都有一个文件组作为默认文件组运行,默认文件组包含在创建时没有指定文件组的所有表和索引的页。在没有指定的情况下,主文件组作为默认文件组。
对文件进行分组时,一定要遵循文件和文件组的设计规则: - 文件只能是一个文件组的成员。
- 文件或文件组不能由一个以上的数据库使用。
- 数据和事务日志信息不能属于同一文件或文件组。
- 日志文件不能作为文件组的一部分。日志空间与数据空间分开管理。
注意:
系统管理员在进行备份操作时,可以备份或恢复个别的文件或文件组,而不用备份或恢复整个数据库
四.创建数据库
在SQL Server创建用户数据库之前,用户必须设计好数据库的名称以及它的所有者、空间大小和存储信息的文件和文件组。
1.以界面方式创建数据库
下面在SQL Server Management Studio中创建数据库“db_database”,具体操作步骤如下。
(1)启动SQL Server Management Studio,并连接到SQL Server 2012中的数据库。
(2)鼠标右键单击“数据库”选项,在弹出的快捷菜单中选择“新建数据库”命令,如图
(3)进入“添加库”对话框,如图所示。在列表框中填写数据库名“db_database”,单击“确定”按钮,添加数据库成功。
- “常规”选项卡:用于设置新建数据库的名称。
- “选项”和“文件组”选项卡:定义数据库的一些选项,显示文件和文件组的统计信息。这里均采用默认设置。
说明:
SQL Server 2012默认创建了一个PRIMARY文件组,用于存放若干个数据文件。但日志文件没有文件组。
(4)单击“所有者”的浏览按钮 ,在弹出的列表框中选择数据库的所有者。数据库所有者是对数据库具有完全操作权限的用户,这里选择“默认值”选项,表示数据库所有者为用户登录Windows操作系统使用的管理员账户,如Administrator。
注意:
SQL Server 2012数据库的数据文件分逻辑名称和物理名称。逻辑名称是在SQL语句中引用文件时所使用的名称;物理名称用于操作系统管理。
(5)在“数据库名称”文本框中输入新建数据库的名称“db_database”,数据库名称设置完成后,系统自动在“数据库文件”列表中产生一个主要数据文件(初始大小为5MB)和一个日志文件(初始大小为1MB),同时显示文件组、自动增长和路径等默认设置,用户可以根据需要自行修改这些默认的设置,也可以单击右下角的“添加”按钮添加数据文件。这里主要数据文件和日志文件均采用默认设置。
2.使用CREATE DATABASE语句创建数据库
语法如下:
参数说明如下。 - database_name:新数据库的名称。数据库名称在 SQL Server 的实例中必须唯一,并且必须符合标识符规则。
- ON:指定显式定义用来存储数据库数据部分的磁盘文件(数据文件)。当后面是以逗号分隔的、用以定义主文件组的数据文件的 <filespec>项列表时,需要使用 ON。主文件组的文件列表可后跟以逗号分隔的、用以定义用户文件组及其文件的 <filegroup>项列表(可选)。
- PRIMARY:指定关联的 <filespec>列表定义主文件。在主文件组的 <filespec>项中指定的第一个文件将成为主文件。一个数据库只能有一个主文件。有关详细信息,请参阅文件和文件组体系结构。
- LOG ON:指定显式定义用来存储数据库日志的磁盘文件(日志文件)。LOG ON 后跟以逗号分隔的用以定义日志文件的 <filespec>项列表。如果没有指定 LOG ON,将自动创建一个日志文件,其大小为该数据库的所有数据文件大小总和的 25% 或 512 KB,取两者之中的较大者。不能对数据库快照指定 LOG ON。
- COLLATE:指明数据库使用的校验方式。collation_name可以是Windows的校验方式名称,也可以是SQL校验方式名称。如果省略此子句,则数据库使用当前的SQL Server校验方式。
- NAME:指定文件在SQL Server中的逻辑名称。当使用FOR ATTACH选项时,就不需要使用NAME选项了。
- FILENAME:指定文件在操作系统中存储的路径和文件名称。
- SIZE:指定数据库的初始容量大小。如果没有指定主文件的大小,则SQL Server默认其与模板数据库中的主文件大小一致,其他数据库文件和事务日志文件则默认为1MB。指定大小的数字SIZE可以使用KB、MB、GB和TB作为后缀,默认的后缀是MB。SIZE中不能使用小数,其最小值为512KB,默认值是1MB。主文件的SIZE不能小于模板数据库中的主文件。
- MAXSIZE:指定文件的最大容量。如果没有指定MAXSIZE,则文件可以不断增长直到充满磁盘。
- UNLIMITED:指明文件无容量限制。
- FILEGROWTH:指定文件每次增容时增加的容量大小。增加量可以用以KB、MB作后缀的字节数或以%作后缀的被增容文件的百分比来表示。默认后缀为MB。如果没有指定FILEGROWTH,则默认值为10%,每次扩容的最小值为64KB。
五.删除数据库
如果用户不再需要某一数据库时,只要满足一定的条件即可将其删除,删除之后,相应的数据库文件及其数据都会被删除,并且不可恢复。
删除数据库时必须满足以下条件:
- 如果数据库涉及日志传送操作,在删除数据库之前必须取消日志传送操作。
- 若要删除为事务复制发布的数据库,或删除为合并复制发布或订阅的数据库,必须首先从数据库中删除复制。如果数据库已损坏,不能删除复制,可以先将数据库设置为脱机状态,然后再删除数据库。
如果数据库上存在数据库快照,必须首先删除数据库快照。
1.以界面方式删除数据库
下面介绍如何删除数据库“MingRi”。具体操作步骤如下:
(1)启动SQL Server Management Studio,并连接到SQL Server 2012中的数据库。在“对象资源管理器”中展开“数据库”节点。
(2)鼠标右键单击要删除的数据库“MingRi”选项,在弹出的快捷菜单中选择“删除”命令。如图
(3)在弹出的“删除对象”对话框中单击“确定”按钮即可删除数据库。如图
注意:
系统数据库(msdb、model、master、tempdb)无法删除。删除数据库后应立即备份master数据库,因为删除数据库将更新master数据库中的信息。
2.使用DROP DATABASE语句删除数据库
语法格式如下:
DROP DATABASE database_name [ ,…n ] --如果有多个要删除的数据库,用逗号隔开
其中database_name是要删除的数据库名称,中括号内为多个数据库的情况。
注意:
使用DROP DATABASE命令删除数据库时,系统中必须存在所要删除的数据库,否则系统将会出现错误
另外,如果删除正在使用的数据库,系统将会出现错误。
浙公网安备 33010602011771号