第一章 SQL Server数据库基础

1)使用数据库的必要性

1.可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。

2.可以有效地保持数据信息的一致性、完整性,降低数据冗余。

3.可以满足应用的共享和安全方面的要求。

4.数据库技术能够方便智能化地分析,产生新的有用的信息。

2DBMS(数据库管理系统)的发展史

萌芽阶段 文件系统

20世纪50-60年代,可以提供简单的数据共享和管理,但无法提供完整统一的管理和数据共享能力。

功能简单,附属于操作系统,并不成为独立的软件

管理较少、较简单的数据,或仅仅用来备份,极少来查询,或者查询功能比较简单的情况下,能满足一定的应用需求。

初级阶段 第一代数据库

20世纪60年代,层次模型与网状模型的数据库系统,为统一管理和共享数据提供了有力的支撑。

脱胎于文件系统,受文件物理结构的影响较大,需要用户对数据的物理结构有详细地了解。

数据库中表示数据模式的结构方式过于繁琐,也影响了数据库应用中越来越多的对数据结构的复杂要求的实现。

层次模型数据库中,IBM公司的IMS(Information Management System,信息管理系统),在特定的领域内还在广泛使用,有强大的生命力。

中级阶段 第二代数据库

20世纪70年代,,随着数学基础方面的成就,关系数据库开始萌芽。

关系数据库系统使用结构化查询语言(Structured Query Language, SQL作为数据库定义语言和数据库操作语言,该语言一经问世,就成为关系数据库的标准语言(如:SQL Server 2005

SQL语言使得关系数据库中的数据库表查询可以用简单的、声明性的方式进行,大大简化了程序员的工作。(如:Oracal)

高级阶段 新一代数据库

关系-对象”型数据库正在持续发展

但在商务应用方面,目前依然是关系数据库的天下。

3)当今常用数据库简介

(暂略)

4)数据库的基本概念

1.实体和记录

实体:(Entity

是所有客观存在的、可以被描述的事物;

描述实体的时候,采用的方法是针对这些事体所具有的“特性”进行表述;

针对同一类实体,描述的“格式”都是一样的在同一格式下,不同的数据体现了不同的实体

记录:(Record)

相同“格式”和类型的数据统一存放在一起,每一“行”(Row)对应一个实体

在数据库中,这样的一行通常称作“一条记录”(Record)
           
每一个输入项,叫做“列”(Col

1.  数据库和数据库表

(table):是实体的集合,用来存储具体的数据。
        
数据库是表的集合

        
不同的记录组织在一起,形成了数据库的“表”。

        
但并不是说每一张表就是一个数据库的“表”

关系表:数据库并不是简单的存储实体数据,还要表达实体间的关系
       
这种关系也需要用数据库中的表来表示,称作关系表。

2.  数据库系统和数据库管理系统

数据库管理系统(DBMS

是一种系统软件,由一个互相关联的数据集合和一组访问数据的程序构成。

其基本目标是提供一个可以方便有效地存取数据库信息的环境

主要功能是维护数据库,并有效访问数据库中的各部分的数据。

数据库系统(DBS

是一个实际可运行的软件系统,可以对系统提供的数据进行存储、维护和应用。

是由存储介质、处理对象、和管理系统共同组成的集合体。

通常由软件、数据库、数据库管理员组成。

数据库管理员(DBA:数据库系统中负责创建、监控和维护整个数据库,使数据能被任何有权限使用的人有效使用。

3.  数据冗余(Redundance)和数据完整性(Integrality

数据冗余

在数据库系统中,数据重复的现象就是数据冗余。

减少数据冗余的最常见的方法是分类存储

数据的完整性:是指数据库中数据的准确性

4.  SQL Server 2005管理器

1)连接SQL Sever数据库是注意以下两点:

在连接SQL Server之前,SQL Server服务必须已经启动

SQL Server Management Studio可以连接和管理多个其它计算机上的SQL Server数据库。

在每一个数据库连接下,都具有该服务器下的数据库
而每一个数据库下,都有“关系图”、“表”、“视图”等数据对象

1)  SQL Server中的数据库的分类

按照用途分类

系统数据库:是管理和维护SQL Server所必需的数据库

1$ Master数据库:

  
记录SQL Server系统的所有系
  
统级别信息,包括如下三点:

A. 所有的登录账户和系统配置设置

B. 所有其他的数据库及数据库文件的位置

C. SQL Server的初始化信息

2$ Tempdb数据库:

       
保存所有的临时表和临时存储过程,以及
   
临时生成的工作表;在每次SQL Server启动时
   
都重新创建。

3$ Model数据库:
       
用在系统上创建的所有数据的模板

4$ Msdb数据库:
       
提供SQL Server代理程序调度警报、作业
   
以及记录操作时使用

用户数据库:是用户自己建立的数据库

2)  登录SQL Server的两种身份验证

Windows身份验证    使用当前登录到操作系统的用户去登录

SQL Server身份验证  使用SQL Server中已建立的用户去登录

登陆验证通过后,就可以像管理本机SQL Server一样来管理远程机上的SQL Server服务。

3)  新建数据库登录名

在“安全性”节点,右击“登录名”,选择“新建登录名”

选择SQL Server身份认证

钩选“强制实施密码策略”,对用户输入的密码提出要求。

4)  设置用户操作权限

固定的服务器角色
   
是指该登陆用户在服务器范围内能够执行那些操作,共8

用户映射设定:

   
指该登录用户对指定的数据库操作权限,共10



   
如:  db_backupoperator 备份数据库
          db_datareader
可以读取数据库中的数据
          db_denydatareader
不允许读取数据

6)数据库相关文件常识

      
一个数据库至少应包含一个数据库文件一个事务日志文件

1* 数据库文件(Database File

   
是存放数据库数据和数据库对象的文件,一个数据库可以有一个或多个数据库文件。

一个数据库文件只属于一个数据库,当有多个数据库文件时,有一个文件被定义为主数据库文件(Primary Database File,其文件扩展名为。mdf

默认情况下,与数据库名相同,并可单击修改。
用来存放数据库的启动信息数据

其他数据库文件称为次数据库文件Secondary Database File)(次要数据库文件扩展名为: ndf

2* 事务日志文件(Transaction Log File

       
用来记录数据库的更新情况,在对数据库进行操作时,
   
数据库中内容的更改操作信息都会记录在此文件中,扩展名
   
为。Ldf

   
默认情况下,与数据库名相同,并可单击修改。
   
一个数据库可以有一个或多个事务日志文件

3* 文件组 (File Group):类似于文件夹

       
主要用于分配磁盘空间并进行管理,每个文件组有一个
   
组名,与数据库文件一样,文件组也分为主文件组(Primary
    File Group
)和次文件组(Secondary File Group)。

注意:事务日志文件不属于任何文件组
  

5)创建和管理SQL Server数据库

1)创建数据库

在“数据库”的右键菜单中选择“新建数据库”选项;

首先在“数据库名称”栏中输入数据库名

建立数据库同时要指定数据库文件和事务日志文件,默认情况下数据库文件和数据库名相同,事务日志文件名需要在数据库名后加“_Log

设置文件大小

默认数据库文件大小为3MB    默认事务日志文件大小为1MB

可单击旁边的“。。。”按钮设置文件增长策略

一般情况下,允许文件自动增长,其次是确定最大文件限制

数据文件不会设置为最大容量,事务日志文件可能会设置为最大容量

设置数据库选项(选项较多,主要关注以下几项):

1* 兼容级别:数据库向以前的版本兼容的级别

2* 数据库为只读:一般该项都设置为False,如果设置为True
                
则该数据库不允许再写入数据。

3* 访问限制:指定哪些用户可以访问该数据库

 Multiple
:数据库的正常状态,允许多个用户同时访问该数据库。
 Single
用于维护操作的状态,一次只允许一用户访问数据库
 Restricted
:只有管理员角色或者特定的成员才能使用该数据库


4* 自动关闭
   True
:最后一个用户退出后,数据库会关闭并且释放资源;
  
注意:如果数据库常用,则不会设置为True

5* 自动收缩
   True
:数据库定期自动收缩,释放没使用的数据库磁盘空间

2)数据库管理和维护

注意:SQL Server启动的时候,数据库文件是不能复制、粘贴的

分离和附加数据

   
删除数据库的操作将同时删除数据库的物理文件,如希望保存物理文件,以便在其它计算机上使用,此时需要使用移动数据库的操作。
   
移动数据库分为两步进行,分离数据库  附加数据库

分离数据库:

   
是从服务器中移去逻辑数据库,但不会删除数据库文件;

在数据库右键菜单中选择“任务”->“分离”

弹出“分离数据库”窗口,确定后该数据库将不再显示在数据库列表中,但其物理文件依然在磁盘中。

此时磁盘文件是可以复制、粘贴的

附加数据库:
   
把磁盘上的数据库文件复制到其它计算机后,通过“附加”
   
操作可以恢复数据库

在数据库右键菜单选择“附加”,弹出附加数据库对话框

在对话框中将显示现有所有数据库主文件存储路径(其中包括已经分离的或刚拷贝的数据库主文件)

单击“添加”按钮,然后确定,就可以把要附加的数据库恢复了。


设置数据库状态

除了分离和附加数据库可以执行数据库移动之外,还可以通过设置数据库的状态来达到文件复制和粘贴的目的

数据库还可以设置为“脱机”状态

处于脱机状态的数据库,其数据文件才是可以复制、粘贴的

要使已脱机的数据库处于正常状态,需要执行右键菜单中的“联机”操作。


收缩数据库


数据库经常会出现使用一段后,因数据删除造成数据库中空闲空间太多的情况,这是需要减少分配给数据库文件和事务日志文件的磁盘空间。

当数据库中没有数据时,通过修改数据库文件大小的属性直接改变其占用的空间。

当数据库中有数据时,修改数据库文件大小就会破坏原有数据,因此需要使用收缩的方式缩减数据库空间


收缩方式(一):直接收缩数据库

数据库文件名单击右键,选择“任务”,选择“收缩”,选择“数据库”,在收缩对话框中修改空间值,单击确定即可。

收缩方式(二):收缩数据库的单个文件(操作类似,可选项三)


仅仅释放未使用的空间;

直接指定数据大小从而直接收缩;

甚至可以把文件迁移到文件组中的其他文件中,该文件直接清空。

删除数据库(暂略)