翻译《数据库基础#3》:数据库是什么?
原文链接:https://www.scarydba.com/2017/06/20/database-fundamentals-3-whats-database/
原文作者信息:GRANT FRITCHEY
翻译如下:
家庭/数据库基础/数据库基础# 3:数据库中有什么?
值得注意的是,很多人都不需要创建自己的数据库。您可能也不会创建自己的表或其他数据结构。您可能只需要运行备份和重新存储并操作系统上的安全性,并让应用程序安装为您创建数据库。这完全可以理解,完全符合许多企业和许多意外dba的需求。然而,了解这些东西是什么以及它如何作为理解SQL Server的一部分是一个好主意。
数据库实际上就是文件
您需要存储您希望稍后可以检索的信息。你必须组织这些信息。如果你使用一个字处理程序,你可以在不同的文件中存储不同的文档。你不会把所有文档都放到一个大文件中。SQL Server的功能非常类似。虽然您有一个服务器,但您不会简单地存储所有需要的各种类型的信息,以在服务器内的一个大范围内运行您的业务。相反,你要组织这些信息。SQL Server的初始组织机制是数据库。数据库允许您在单独的存储区域中保存一组信息。此外,它还允许您隔离这些不同信息集的安全性,以便您能够控制谁可以查看或修改这些数据。在一个数据库中有些东西叫做表。表是关系存储的定义方式。您在给定数据库中组织存储的信息将被添加到这些表中。您将能够通过这些表向数据库添加或删除数据。您还可以从这些表中检索来自数据库的信息。
除了数据库中的表之外,还有许多不同的构造可以帮助您管理数据库中的信息,这些信息也存储在数据库中。其中包括许多不同类型的对象,这些对象可以帮助您操作诸如视图、存储过程和函数等数据。您还可以得到一组完整的安全对象,如角色和用户。
数据库实际上是由存储在Windows文件系统上的文件组成的。这些文件是专有的二进制格式,除了通过SQL Server,不能直接读取。将数据写入这些文件是SQL Server中最昂贵和耗时的操作之一(尽管在大多数情况下,涉及的时间以微秒计)。由于这种花费,很重要的一点是要理解您的数据库是由文件定义的,而这些数据库是作为您对数据库的理解的一部分而存储的。
两种类型的文件
你可以轻松地将你的数据存储在一个文本文件或一个电子数据表中,许多人都采用了这样的做法。但是有时你会需要使多个人可以同时访问它,更新其中的一些日期,删除数据或插入新的信息。要使这些其他的存储机制都能同时进行,通过上述方式就会很难实现。这就是你为什么要使用数据库的原因。由于SQL Server必须对它存储的数据做很多不同的工作,所以它是由不同的机制组成的,用以执行那些工作操作。数据库是围绕两种不同类型的文件进行结构化的,这些文件存储不同类型的信息。当我们执行这两种类型时,,你可以参考下图。
【注意】:注意:实际上还有一些其他的文件类型可以添加到数据库中,但是我们这里讨论的是基本原理,所以我们现在保持它足够简单和直截了当。
数据文件
定义数据库所需要的第一个文件类型就是数据文件。数据文件易于解释和理解。存储在数据库中的信息都存储在这种文件中。任何已给定的数据库都可以由多个数据文件构成。数据文件可以放在系统上的多个硬盘驱动器上。如果你有更先进的存储机制,如存储区域网络(SAN),你可能不止拥有简单的服务器上的硬盘,而且拥有其他的一些设备构件。但他们将会作为驱动器映射到Windows操作系统,并且SQL服务器也可以使用他们存储数据。
日志文件
创建数据库所需的第二种文件类型是日志文件。日志文件比数据文件稍微复杂一些。日志文件记录数据库中每一次发生的事务。当数据在系统中以某种方式被操纵时,就会发生事务。这些操作可以是对现有数据的更新,通过将数据插入表来添加新数据,或是从表中删除数据。所有操作的相关信息都将被写入到日志文件中。还有许多其他的函数也与日志文件相关联。这些文件通常比数据文件小得多,因为日志文件中的条目只需要被保存,直到所有的数据都被成功地写到数据文件中。由于写入数据文件时会受到不同类型的故障的限制,所以日志文件被保存以帮助处理这些故障。一旦将信息写入数据文件,就可以删除日志条目。有关清理日志文件的过程将在另一个帖子中详细讨论。
当你最初创建文件时,你可以调整它们的大小。你也可以在创建文件后,上下调整他们的大小。每个文件的大小也可以被设置为自动增长,当然这很复杂,因此它值得我们花费更多的时间来理解它的含义。
自动增长设置
如果您有大量的数据库,那么管理数据库上的文件可能有很大的工作量。您必须检查可用空间,然后有足够的空间时,将文件设置为更大的大小。使用数据库上的自动增长属性设置是设置所有手动工作的一种方法。
注意:在使用这个设置时要非常小心。你可以填满一个驱动器,让你的服务器离线。
将数据库设置为自动增长,这意味着数据库将在开始耗尽空间时自动调整文件大小。许多人使用这种设置,许多应用程序在安装时将其设置为开。为了避免这个问题,您应该在文件上设置一个上限。您可以将这些文件设置为百分比增长或固定大小的数据。对于较小的数据库,按百分比增长是可行的,但是随着数据库的规模不断扩大,按百分比增长的过程就会变得越来越长。最好的做法是将增长设置为一个特定的值,而不是一个百分比。当数据库被创建时,关于如何设置所有这些的详细信息将放置文件的地方将被覆盖。
当您安装SQL Server时,您可以选择定义数据库文件的位置。您还可以通过服务器属性窗口进行调整。当您创建一个数据库时,最好知道您将在哪里放置文件,以确保您在该驱动器上有足够的空间。要查看此位置,请与您的服务器连接,如数据库基础2所述。在对象资源管理器窗口中连接后,右键单击服务器名称本身。这将弹出一个上下文菜单。在菜单的底部选择“Properties”菜单选项。这将打开服务器属性窗口,您将处于默认的“General”选项卡中。选择“Database Settings”选项卡,您将看到与此类似的东西:
这里有一个有趣的区域,在这个名为数据库默认位置的区域的窗口底部。您将看到三个不同的目录,分别用于数据、日志和备份。通过单击条目右侧的省略,您可以打开一个默认的文件浏览器窗口,以更改您的日志或数据文件的默认位置。您还可以通过直接输入文本框来修改它们,如上面所示的物理路径或使用通用命名约定(UNC)路径。
放置文件的地方
安装SQL Server时,可以选择将数据库文件放在何处。您还可以通过服务器属性窗口调整。在创建数据库时,最好总是知道您将文件放在哪里,以确您在该保驱动器上有足够的空间。要查看此位置,请与您的服务器连接,如数据库基础2所述。一旦连接上,在“对象资源管理器”窗口中,右键单击服务器名称本身。这将弹出一个上下文菜单。在菜单底部选择“属性”菜单选项。这将打开服务器属性窗口,您将处于默认的“常规”选项卡中。选择“数据库设置”选项卡,您将看到与此非常类似的内容:
这里有一个有趣的区域,在这个名为数据库默认位置的区域的窗口底部,您将看到三个不同的目录,其中一个用于数据、日志和备份。通过单击条目右侧的省略号,可以打开默认的“文件浏览器”窗口,以便更改日志或数据文件的默认位置。您还可以通过直接输入文本框来修改它们,如上面所示的物理路径或使用通用命名约定(UNC)路径。
放置文件的目标应该是尽可能地分门别类。如果有能力,最好将操作系统文件从数据和日志文件中分离出来。这意味着,如果可能的话,将数据和日志文件放在C驱动器之外的某个地方。此外,您至少应该考虑将数据和日志文件存储在完全独立的驱动器上。这允许数据最大吞吐量地传输到驱动器上的文件。
一旦您确定存储位置是合适的,如果您已经更改完毕,请单击OK按钮保存这些更改。如果您没有做任何更改,或者您不希望保存所做的更改,请单击“取消”按钮。这两种单击都将关闭服务器属性窗口。
在创建数据库时,除了物理位置之外,这两个文件类型中的每个都具有多个属性。物理位置的一部分是文件名和扩展名。这些可以是任何有效的Windows操作系统名称和扩展名。默认情况下,扩展名通常是用于数据文件的.mdf和用于日志文件的ldf。如果您愿意,您可以更改这些设置,但这可能会导致混淆,因为大多数人将默认设置作为最佳方法。有一个逻辑文件名称,允许您在数据库中引用该文件,而不需要引用包括驱动器在内的完整文件位置。逻辑名称不必与物理名称匹配,但通常他们都是这么做的。
结论
这篇文章介绍了数据库文件存储的核心。下一篇文章,我们将在服务器上实际创建一个数据库,这比这篇文章要简单得多。