数据库

来源:互联网 发布:php msgpack unpack 编辑:程序博客网 时间:2024/06/03 14:27
可以将数据库认为是各种对象的容器,这些对象可以是表(table)、视图(view)、存储过程(stored procedure),等等。每个SQL Server实例可以包含多个数据库。当安装SQL Server时,安装程序会创建几个系统数据库,用于保存系统数据和服务于内部目的。安装好之后,就可以创建自己的用户数据库,以保存应用程序的数据。
  安装程序创建的系统数据库包括master、Resource、model、tempdb,以及msdb。它们各自的作用分别描述如下:
master  master数据库保存SQL Server实例范围内的元数据信息、服务器配置、实例中所有数据库的信息,以及初始化信息。
Resource  Resource数据库是SQL Server 2005中增加的,用于保存所有系统对象。当查询数据库中的元数据信息时,这种信息表面上是位于数据库中,但实际上是保存在Resource数据库中的。
model  model数据库是新数据库的模版。每个新创建的数据库最初都是model的一个副本(copy)。所以,如果想在所有新创建的数据库中包含特定的对象(比如数据类型),或者是在所有新创建的数据库中都以特定的方式来配置某些数据库属性,就可以先把这些对象或配置属性放在model数据库中。注意:对model数据库做出的修改不会影响现有的数据库,只影响此后新创建的数据库。
tempdb  tempdb数据库是SQL Server保存临时数据的地方,这些临时数据包括工作表(work table)、排序空间(sort space)、行版本控制(row versioning)信息,等等。SQL Server允许用户为自己的使用而创建临时表,这些临时表的物理保存位置就是tempdb。注意:每次重新启动SQL Server实例时,会删除这个数据库的内容,并将其重新创建为model的一个副本。因此,当需要为测试目的而创建一些对象,而且在测试完成后不想将这些对象继续保存在数据库中时,通常可以在tempdb中创建它们。即使忘记清除这些对象,在重新启动后也会自动清除它们。
msdb  msdb是称为SQL Server Agent的一种服务保存其数据的地方。SQL Server Agent负责自动化处理,包括记录有关作业(job)、计划(schedule)和警报等实体的信息。SQL Server Agent也是负责复制(replication)的服务。msdb还用于保存一些有关其他SQL Server功能的信息,例如Database Mail和Service Broker。
  在SQL Server实例中可以创建需要的任意数量的用户数据库。大主宰用户数据库内可以保存应用程序需要的各种对象和数据。
  可以在数据库级上定义一个称为collation(排序规则)的属性,由它确定数据库中字符数据使用的排序规则信息(包括支持的语言、区别大小写和排序顺序)。如果在创建数据库时不为其指定collation属性,将使用实例默认的排序规则设置。
  为了对数据库运行T-SQL代码,客户端应用程序须连接到SQL Server实例,要位于相关数据库的上下文(context)中,或者能够使用相关数据库。
  在安全性方面,为了能够连接到SQL Server实例,必须让DBA(数据库管理员)为用户创建一个登录帐号。登录帐号可以关联到Windows凭据(credentials),在这种情况下,它会调用Windows凭据进行身份验证。使用Windows验证的登录,当连接到SQL Server时就无须提供登录用户名和密码信息,因为当登录到Windows时已经提供了这些信息。登录帐号可以关联到Windows凭据(credentials),需要时,它会调用Windows凭据进行身份验证。当使用SQL Server验证登录来连接SQL Server时,就必须提供登录的用户名和密码。
  DBA要将你的登录帐号映射到有权访问的任何数据库中的数据库用户。数据库用户(database user)是将被授权访问数据库对象的实体。
  数据库在物理上由数据文件和事务日志文件组成。当创建数据库时,能够定义每个文件的各种属性,包括文件名、保存位置,以及文件自动扩展的增量(autogrowth属性)。在SQL Server默认情况下,每个数据库必须至少有一个数据文件和一个日志文件(Log Data File),扩展名为.ldf。数据文件用于保存数据库对象数据,日志文件则保存SQL Server为了维护事务而需要的信息。
  虽然SQL Server可以同时写多个数据库文件,但某一时刻只能以顺序方式写一个日志文件。因此,与数据文件不同,使用多个日志文件并不能提升系统的性能。如果原来的日志文件所在的磁盘空间耗尽了,就可能要增加新的日志文件。

  多个数据文件在逻辑上按照文件组(filegroup)的形式进行分组管理。创建数据库对象(例如表或索引)时,就会将其保存在目标文件组中。对象数据库可能会保存在属于目标文件组的多个文件中。通过文件组可以控制数据库对象的物理存储位置。数据库必须至少要有一个主文件组(PRIMARY),而用户定义的文件组则是可选的。PRIMARY文件组包含主数据文件(Master Data File),扩展名为.mdf,以及数据库的系统目录(catalog)。可以选择性地为PRIMARY增加多个辅助数据文件(Secondary Data File),扩展名为.ndf。用户定义的文件组只能包含辅助数据文件。可以指定将哪个文件组作为默认文件组。当对象创建语句没有明确指定目标文件组时,就将它创建在默认文件组中。

  转载自:http://www.dzznews.com

原创粉丝点击