📝 DBMS
116篇技术文档📅  最后修改于: 2020-12-12 07:50:26        🧑  作者: Mango
通过并发交易进行恢复每当执行多个事务时,就会发生日志交错。在恢复过程中,恢复系统很难回溯所有日志然后开始恢复。为了缓解这种情况,大多数DBMS使用“检查点”概念。正如我们在本教程的“事务处理概念”中讨论检查点一样,因此您可以再次遍历这些概念以使事情更清楚。...
📅  最后修改于: 2020-12-12 07:51:18        🧑  作者: Mango
文件组织文件是记录的集合。使用主键,我们可以访问记录。访问的类型和频率可以由用于给定记录集的文件组织类型来确定。文件组织是各种记录之间的逻辑关系。此方法定义文件记录如何映射到磁盘块上。文件组织用于以块的形式描述记录的存储方式,并将这些块放置在存储介质上。将数据库映射到文件的第一种方法是使用多个文件,并且在任何给定文件中仅存储一个固定长度的记录。另一种方法是构建文件结构,以便我们可以包含多个记录长度...
📅  最后修改于: 2020-12-12 07:52:10        🧑  作者: Mango
顺序文件组织此方法是最简单的文件组织方法。用这种方法,文件被顺序存储。该方法可以通过两种方式实现:1.桩文件方法:这是一个非常简单的方法。在这种方法中,我们将记录按顺序存储,即一个接一个地存储。在这里,记录将按照插入表的顺序插入。在更新或删除任何记录的情况下,将在存储块中搜索该记录。找到后,它将被标记为删除,并插入新记录。插入新记录:假设我们有四个记录R1,R3,依此类推,直到R9和R8。因此,记...
📅  最后修改于: 2020-12-12 07:53:02        🧑  作者: Mango
堆文件组织它是最简单,最基础的组织类型。它适用于数据块。在堆文件组织中,记录将插入文件的末尾。插入记录时,不需要对记录进行排序和排序。当数据块已满时,新记录将存储在其他某个块中。这个新数据块不必是下一个数据块,但是它可以选择内存中的任何数据块来存储新记录。堆文件也称为无序文件。在文件中,每个记录都有唯一的ID,并且文件中的每个页面都具有相同的大小。 DBMS负责存储和管理新记录。插入新记录假设我们...
📅  最后修改于: 2020-12-12 07:53:52        🧑  作者: Mango
哈希文件组织哈希文件组织在记录的某些字段上使用哈希函数的计算。散列函数的输出确定要放置记录的磁盘块的位置。当必须使用哈希键列接收记录时,将生成地址,并使用该地址检索整个记录。同样,当必须插入新记录时,则使用哈希键生成地址,然后直接插入记录。删除和更新的过程相同。在这种方法中,无需进行搜索和排序整个文件。用这种方法,每条记录将随机存储在内存中。...
📅  最后修改于: 2020-12-12 07:54:44        🧑  作者: Mango
B +文件组织B +树文件组织是索引顺序访问方法的高级方法。它使用树状结构将记录存储在File中。它使用相同的键索引概念,其中主键用于对记录进行排序。对于每个主键,将生成索引值并将其与记录映射。B +树类似于二叉搜索树(BST),但是可以有两个以上的子树。在这种方法中,所有记录仅存储在叶节点上。中间节点充当叶节点的指针。它们不包含任何记录。上面的B +树显示:树的根节点为25。有一个带有节点的中间...
📅  最后修改于: 2020-12-12 07:55:35        🧑  作者: Mango
索引顺序访问方法(ISAM)ISAM方法是一种高级的顺序文件组织。在这种方法中,使用主键将记录存储在文件中。为每个主键生成一个索引值,并将其与记录映射。该索引包含文件中记录的地址。如果必须根据其索引值检索任何记录,则将获取数据块的地址,并从内存中检索记录。ISAM的优点:用这种方法,每条记录都有其数据块的地址,因此在庞大的数据库中搜索一条记录既快捷又容易。此方法支持范围检索和记录的部分检索。由于索...
📅  最后修改于: 2020-12-12 07:56:27        🧑  作者: Mango
集群文件组织当两个或多个记录存储在同一文件中时,称为集群。这些文件在同一数据块中将具有两个或多个表,并且用于将这些表映射在一起的键属性仅存储一次。此方法降低了搜索不同文件中各种记录的成本。当频繁需要以相同条件连接表时,将使用集群文件组织。这些联接将仅给出两个表中的一些记录。在给定的示例中,我们仅检索特定部门的记录。此方法不能用于检索整个部门的记录。使用这种方法,我们可以直接插入,更新或删除任何记录...
📅  最后修改于: 2020-12-12 07:57:20        🧑  作者: Mango
DBMS中的索引索引用于通过最小化查询处理时所需的磁盘访问次数来优化数据库的性能。索引是一种数据结构。它用于快速查找和访问数据库表中的数据。索引结构:可以使用一些数据库列来创建索引。数据库的第一列是搜索键,其中包含表的主键或候选键的副本。主键的值按排序顺序存储,以便可以轻松访问相应的数据。数据库的第二列是数据引用。它包含一组指针,这些指针保存磁盘块的地址,可以在其中找到特定键的值。索引方法有序索引...
📅  最后修改于: 2020-12-12 07:58:13        🧑  作者: Mango
B +树B +树是平衡的二进制搜索树。它遵循多级索引格式。在B +树中,叶节点表示实际数据指针。 B +树确保所有叶节点保持相同的高度。在B +树中,叶节点使用链接列表链接。因此,B +树可以支持随机访问以及顺序访问。B +树的结构在B +树中,每个叶节点与根节点的距离相等。 B +树的顺序为n,其中每个B +树的n都是固定的。它包含一个内部节点和叶节点。内部节点B +树的内部节点可以包含除根节点...
📅  最后修改于: 2020-12-12 07:59:05        🧑  作者: Mango
散列在庞大的数据库结构中,搜索所有索引值并到达所需数据的效率非常低。散列技术用于计算数据记录在磁盘上的直接位置,而无需使用索引结构。在这种技术中,数据存储在地址是通过使用哈希函数生成的数据块中。这些记录的存储位置称为数据存储桶或数据块。在这种情况下,哈希函数可以选择任何列值来生成地址。在大多数情况下,哈希函数使用主键来生成数据块的地址。哈希函数是一个简单的数学函数,任何复杂的数学函数。我们甚至可以...
📅  最后修改于: 2020-12-12 07:59:58        🧑  作者: Mango
静态散列在静态哈希中,结果数据存储区地址将始终相同。这意味着,如果我们使用散列函数mod(5)为EMP_ID = 103生成地址,则它将始终导致相同的存储桶地址3。在这里,存储桶地址将保持不变。因此,在此静态哈希中,内存中数据桶的数量始终保持恒定。在此示例中,我们将在用于存储数据的内存中有五个数据桶。静态哈希操作搜索记录当需要搜索记录时,相同的哈希函数检索存储数据的存储桶的地址。插入记录当将新记录...
📅  最后修改于: 2020-12-12 08:00:51        🧑  作者: Mango
动态散列动态散列方法用于克服静态散列(例如存储桶溢出)的问题。在这种方法中,数据桶随着记录的增加或减少而增长或收缩。此方法也称为可扩展哈希方法。此方法使散列动态化,即,它允许插入或删除而不会导致性能下降。如何搜寻钥匙首先,计算密钥的哈希地址。检查目录中使用了多少位,这些位称为i。取哈希地址的最低有效i位。这给出了目录的索引。现在使用索引,进入目录并找到记录可能所在的存储桶地址。如何插入新记录首先,...
📅  最后修改于: 2020-12-12 08:01:52        🧑  作者: Mango
袭击RAID是指独立磁盘的冗余阵列。它是一种用于连接多个辅助存储设备以提高性能和/或提高数据冗余性的技术。根据所使用的RAID级别,它使您能够承受一个或多个驱动器故障。它由一组磁盘组成,其中连接了多个磁盘以实现不同的目标。RAID技术RAID方案有7个级别。这些架构为RAID 0,RAID 1,…,RAID 6。这些级别包含以下特征:它包含一组物理磁盘驱动器。在这种技术中,操作系统将这些单独的磁盘...
📅  最后修改于: 2020-12-12 08:02:46        🧑  作者: Mango
分解算法在上一节中,我们借助小示例讨论了分解及其类型。在现实世界中,数据库架构太大而无法处理。因此,它需要可以生成适当数据库的算法。在这里,我们将了解针对两种不同范式的函数依赖关系的分解算法:分解为BCNF分解为3NF使用功能依赖项进行分解的目的在于保留依赖项和进行无损分解。让我们详细讨论一下。分解为BCNF在将BCNF分解算法应用于给定关系之前,有必要测试该关系是否为Boyce-Codd范式。测...