数据库基本原理#3:一个数据库中有什么?

啦啦啦啦啦啦小情歌 啦啦啦啦啦啦小情歌     2022-09-20     310

关键词:

数据库基本原理# 3:一个数据库中有什么?

值得一提的是很多人将不需要去创建他们自己的数据库。你可能从不会去创建你自己的表格或者是其他的一些数据结构。你可能是安装应用系统为你创建数据库,你也只是做一些备份修复工作以及处理系统安全问题。当然这也是完全能够理解的,毕竟这与很多企业和许多不太重要的数据库应用系统的需求十分的一致。但是,最好能去了解一部分SQL服务器 ,比如它是什么和它是怎么运行的。

数据库其实就是文件

你需要去保存你之后想要能帮你找到的信息。有条理的储存信息是非常必要的。如果你进行一项文字处理程序,你会将不同的文档存储在不同的文件中。你不会将你所有的文档都放进同一个大的文件里。这种做法与SQL服务器功能十分类似。当你有一台服务器,你不能简单的把各种类型的并且对于你企业十分必要的信息全部储存在一个大文件并放进服务器里。相反的,你要去组织好那些信息。SQL服务器起初的组织机制是数据库。数据库允许在不同存储区域保存信息集。此外,它允许你隔离这些不同的信息集以此保证安全性,同时也方便你控制谁可以来查看或修改数据.

在数据库中有称为表的东西。表定义储存关系。你在往数据库中存储的信息将被添加到这些表中。你也能够通过这些表将数据添加到数据库或者从中删除。你还可以从这些表中检索数据库中的信息。 

除了数据库中的表外,还有许多将帮你管理存储在数据库中的信息的不同结构。这包括一些不同类型的对象,这些对象可以帮你处理数据,如视图、存储过程和函数。你还可以得到一组完整的安全对象,如角色和用户。

数据库实际上是由存储在Windows文件系统某处的文件组成。这些文件的格式都是专们的二进制形式,除了通过SQL服务器外,其他软件不能直接读取。向这些文件写入数据是SQL 服务器中最宝贵且耗时的操作之一(尽管在大多数情况下,服务器所涉及的时间是以微秒计算的)。因为这一贡献,对于数据库是由文件定义的和文件被储存在数据库的问题的理解是非常重要的

两种类型的文件

你可以和很多人一样把数据存储在文本文件或者电子表格中。但当你需要多人同时访问,都在同一时间更新一些数据,删除,插入新的信息,其他的存储贮存机制变得很有问题。这就是你为什么要使用数据库。由于SQL Server必须对存储的数据进行大量不同的工作,所以它会产生一些不同的机制来执行这些操作。数据库的结构是以两种不同类型的文件来存储不同类型的信息,当你检查这些类型时你可以参考这些数据。

注:实际上还有几个其他的文件类型可以添加到数据库中,但现在我们在这里讨论的是基本原理,所以现在我们将保持它的简单。

数据文件

定义数据库所需的第一类文件是数据文件。数据文件易理解和解释。你写入数据库的信息就被存储在这种文件中。任何给定的数据库都可以由多个数据文件组成。数据文件可以放在多个硬盘上。如果您有更高级的存储机制,如存储区域网络(SAN),您可能有其他结构,而不是服务器上简单的硬盘驱动器,但它们将作为驱动器映射到Windows操作系统,SQLServer也可以使用这些存储数据文件。

日志文件

创建数据库需要的第二种类型文件是日志文件。日志文件稍微复杂一些,比数据文件难理解。日志文件记录数据库中的每一条事务。当数据在系统中以某种方式被操纵时,就会发生事务。这些操作可以对现有数据进行更新,通过将数据插入表中来添加新数据或删除数据。这些操作导致信息被写入日志文件中,还有许多其他的函数也与日志文件相关。这些文件通常比数据文件小得多,因为日志中的条目只需要被保存,直到数据被成功的写到数据文件中。因为写入数据文件会受到不同类型的故障的限制,一旦数据被写入数据文件,日志就会被删除。清理日志文件的过程将会在另一个帖子中详细讨论。当你最初创建文件时,你可以调整它们的大小。在创建文件之后,你可以调整大小,包括上下调整。每个文件也可以被设置为自动增长,但这很复杂,所以值得花更多时间来理解它的含义。

自动增长设置

如果你有大量的数据库,那么管理数据库中的文件会有很大的工作量。你需要检查可用空间,当空间足够时将文件的大小增大。所有这些手动工作的一种方法是使用数据库的自动增长设置。

警告:要小心使用这个设置,你可以填满一个驱动器,让你的服务器离线。将数据库设置为自动增长,这意味着数据库将在开始耗尽空间是自动调整文件大小。许多人在使用这种设置,还有许多应用程序在安装是将其设置为on。为了避免这个问题,你应该在文件中设置一个较高的增长限制。你可以将这些文件设置为数据库或固定大小的百分比。对于规模较小的数据库,按百分比增长是可以工作的,但随着数据规模的不断扩大,按百分比增长的过程就会变的越来越长。最好的做法就是将增长设置为一个特定的值,而不是一个百分比。当数据库被创建,关于如何设置这些的详细信息将被覆盖。

放置文件的位置

当你安装SQL Server 时,你有选择来定义你的数据库文件放置的位置。你也可以通过服务器属性窗口来调整。当你在创建一个数据库时,为了确保在运行是有足够的空间,最后有知道你放置文件的位置 。为了看到文件放置的位置,连接到你的服务器上,在数据库基础2上有相关的要点概述。一旦连接,在“对象资源管理器”窗口中,右键单击服务器名称本身。这将产生一个上下文菜单。在菜单底部选择“属性”菜单选项。这将打开服务器属性窗口,您将处于默认的“常规”,tab。选择“数据库设置”选项卡,您将看到与此非常类似的内容:

查看这里的有趣区域是标题为“数据库默认位置”部分的窗口底部。你将看到三个不同的目录,其中一个用于数据、日志和备份。通过单击条目右侧的省略号,可以调出默认的“文件浏览器”窗口,以更改日志或数据文件的默认位置。你也可以修改输入直接在文本框中任何一个物理路径如上图所示,使用通用命名约定(UNC)路径。

放置文件的目标应该是尽可能地分离功能。如果你有能力,最好将操作系统文件与数据和日志文件分离。这意味着,如果可能的话,进一步,至少应该考虑将数据和日志文件存储在完全独立的驱动器上。这允许对驱动器上的文件进行数据的最大吞吐量。

一旦你决定了储存的位置是恰当的,如果你已经做了改变,就单机确定按钮保存这些改变,如果你没有做任何的改变,或是你不希望保存所做的修改,就单击取消按钮。这些点击中的任何一个都将关闭服务器属性窗口。

这两种文件的类型都有几个属性,除了当你创建数据库时的重要物理位置,物理位置的一部分将是文件名和扩展名。这些都能是有效的窗口操作系统名和扩展名,默认情况下,扩展名通常是mdf的数据文件和idf的日志文件,你可以改变这些,如果你想。但是它可能会导致一系列的困惑,因为大多数人用默认作为最佳的练习。有一个逻辑文件名,允许您在数据库中引用该文件进行操作,而无需返回完整的文件位置,包括驱动器。逻辑名一点也没有必要匹配物理名称,但是他们通常会这样做。

结论

以上介绍了数据库文件存储的本质,下一章我们将在服务器上实际创建一个数据库,那将会比这章要简单。        

*文章来自:

https://www.scarydba.com/2017/06/20/database-fundamentals-3-whats-database/

*原文引用: Inside SQL Server T-SQL Querying – Itzik Ben Gan

SQL Server 2008 Transact-SQL Recipes – Joseph Sack

数据驱动的基本原理是什么?

...试等,关于数据驱动的应用的讨论很多,但关于数据驱动基本原理的讨论较少,本文试图追根溯源,谈一谈数据驱动的基本原理:数据如何驱动?能够驱动什么?谈原理之前,先说一个我个人的经历。有一次我老婆从首都机场T3... 查看详情

爬虫基本原理(代码片段)

...送请求->下载网页代码->只提取有用的数据->存放于数据库或文件中 #3.1与3.2的区别在于:我们的爬虫程序只提取网页代码中对我们有用的数据#4、总结爬虫#4.1爬虫的比喻:如果我们把互联网比作一张大的蜘蛛网,那一台计... 查看详情

(2021-3-13)elasticsearch学习之基本原理概述(代码片段)

...近实时1.1.2高度的可伸缩性1.1.3开箱即用、搭建简单1.1.4和数据库互补1.2ES中数据的结构注意:在5版本及之前,一个索引中可以定义多个类型。6版本也可以使用,但是不推荐。在7-8版本中会彻底删除一个索引可以创建... 查看详情

爬虫基本原理(转)(代码片段)

...送请求->下载网页代码->只提取有用的数据->存放于数据库或文件中 #3.1与3.2的区别在于:我们的爬虫程序只提取网页代码中对我们有用的数据#4、总结爬虫#4.1爬虫的比喻:如果我们把互联网比作一张大的蜘蛛网,那一台计... 查看详情

爬虫基本原理

一什么是爬虫#1、什么是互联网?互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样。#2、互联网建立的目的?互联网的核心价值在于数据的共享/传递:数据是存放于一台台计... 查看详情

zookeeper基本原理

zookeeper基本原理基本原理server很多,有主从之分,不过有一个leader,其他是follower,每个server,在内存中存有一份数据,启动时,将选举出一个leader,根据poxos协议选举leader负责处理数据更新操作,用到zab协议一个更新操作成功的标... 查看详情

mysql(23)—数据库主从复制的基本原理和步骤(代码片段)

...好的解决的单点故障,并且可以进行读写分离来减轻数据库的压力。很多情况下主服务器仅作为写入数据服务 查看详情

爬虫基本原理(代码片段)

一、爬虫是什么  1、什么是互联网  互联网是网络设备(网络、路由器、交换机、防火墙等等)和一台台计算机连接而成,像一张网一样。  2、互联网建立的目的  互联网的核心价值在于数据的共享/传递:数据是存放... 查看详情

sqoop基本原理

...o-Hadoop)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系型数据库... 查看详情

memcached原理及详细配置

memcached:数据结构模型:结构化数据:关系型数据库;遵循前3个范式是最基本的条件;在各种场景中都是瓶颈;半结构化数据:xml,json,…(NoSQL是非关系型的数据库统称)等格式的数据;需要半结构化数据存储;非结构化数... 查看详情

数据库原理-事务基本概念

2018-1-9byAtlas数据库访问read(X):把数据X,从磁盘的数据库中读到内存的缓冲区中。write(X):把数据X,从内存的缓存区写回磁盘的数据库。ACID性质1、原子性(Atomicity)一个事务对数据的所有操作,是一个不可分割的工作单元... 查看详情

探索五大机器学习技术及其应用(代码片段)

...简要介绍。对于每种算法,我将介绍以下内容:基本原理。示例代码。应该什么时候使用。优点和缺点。文章目录一、线性回归1.1基本原理1.2示例代码1.3应该什么时候使用1.4优缺点二、逻辑回归2.1基本原理2.2示例代码2.3... 查看详情

storm基本原理概念及基本使用

1.背景介绍1.1离线计算是什么离线计算:批量获取数据、批量传输数据、周期性批量计算数据、数据展示;代表技术:Sqoop批量导入数据、HDFS批量存储数据、MapReduce批量计算数据、Hive批量计算数据1.2流式计算是什么流式计算:数... 查看详情

what'sthe爬虫之基本原理

what‘sthe爬虫?了解爬虫之前,我们首先要知道什么是互联网1、什么是互联网?  互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,总体上像一张网一样。2、互联网建立的目的?  互... 查看详情

mybatis总结(代码片段)

...理十三、#和$区别十四、.Mybatis执行批量插入,能返回数据库主键列表吗十五、不 查看详情

mybatis总结(代码片段)

...理十三、#和$区别十四、.Mybatis执行批量插入,能返回数据库主键列表吗十五、不同xml 查看详情

clickhouse系列-第二节-基本原理

...准,我们来做个实验看一下。实验我们写一段代码来模拟数据库执行SELECTmax(id)Fr 查看详情

rac基本原理

RAC基本原理 什么是RAC?  多个实例跑在多个服务器上  一个数据库存放在共享的存储上,所有实例都可以访问  实例之间通过内联网络交换数据和信息   共享存储内容:数据文件、REDO、UNDO、控制文件  参数文... 查看详情