显示按(1, 2, 3, 4, 5)的顺序输入带有键的记录到一个初始为空的B+-阶m = 3的树的结果。 如果溢出,将节点拆分,不要重新分配邻居的钥匙。是否可以以不同的顺序使用键输入记录以获得较低高度的树?
我不擅长这个但我尝试过吗?左侧和 > 右侧:
直到插入 1,2 :
然后,就我们必须拆分节点而不是将密钥重新分配给邻居(我将其理解为子节点)而言,我只在单元格的右侧插入了 2 :
我在插入 5 时继续做同样的事情:
但这很奇怪,我从未见过这样的空节点......而且我不知道它是否尊重一些非常基本的 B 树属性:
一开始我误解了“顺序”是什么(每个节点的最大子节点数)。所以我认为一个节点可以有三个空间(因此有 4 个孩子。我正在创建一个 4 阶树,我认为:
直到插入 1,2,3 :
插入 4,只要我们必须拆分节点而不是将密钥重新分配给邻居(这似乎是矛盾的),我会让 1,2,3 和 4,5 在 3 之后的右叶上:
晚上好!
我正在从以下 UML 类图(不幸的是法语)设计我的第一个实际数据库:
我正在创建它的关系草图,我是这样创建的:
然而,当试图向数据库询问哪些客户从未订购过第一产品时,它会产生一些问题?
确实,我不知道如何在 SQL 中做到这一点,因为Client,Commande和Produit之间似乎没有关系。它给出了以下sql代码:
CREATE TABLE Client (
IDClient INT NOT NULL,
AdresseClient VARCHAR(255)NOT NULL ,
NomContact VARCHAR(255)NOT NULL,
NumeroSIRET VARCHAR(14) NOT NULL,
CONSTRAINT cclient PRIMARY KEY (IDClient)
);
CREATE TABLE Produit (
IDProduit INT NOT NULL ,
PrixVente INT NOT NULL ,
QuantiteEnStock INT NOT NULL ,
CONSTRAiNT cproduit PRIMARY KEY (IDProduit)
) ;
CREATE TABLE Commande (
IDNumeroCde INT NOT NULL ,
Date DATE …
Run Code Online (Sandbox Code Playgroud) postgresql database-design relational-theory relational-algebra relational-calculus
我正在学习动态树结构组织以及如何设计数据库。
考虑具有以下特征的 DBMS:
二级索引定义在 8 字节的页面上。可以用三级 B 树索引的最大记录数是多少?并且具有三级 B+树?
以下是这些树的两个示例:
我读过那个
B+树比B树浅。因为除了最后一个之外,每个叶节点中只有表示为k的最高键的集合存储在非叶节点中,组织为 B 树。关系 DBMS 内部,第 5 章:动态树结构组织,第 46 页
因此有一个区别,我们存储在 B 树的节点中的东西存储在 B+ 树的叶子中。因此,在我看来,它是(m-1) h(m是顺序,h是高度),因为每个节点最多包含另一个节点的 (m-1) 个键。但这与字节数无关。
然而我在上面提到的书中找到了下表:
因此它会是 20 3.7条记录吗?
对于他们来说,只要有一些值存储在节点中,我就必须除以节点数。而我被困在那里。
让是以下数据库:
Film(Title,Director,Actor)
Produce(Producer,Title)
Run Code Online (Sandbox Code Playgroud)
用关系代数表达以下问题:
哪些演员至少制作了一部电影?
哪些演员制作了他们导演的每部电影?
如果是这样,我会尝试以下方法:
? 演员(电影)?(制片人=演员=导演)?制作人(制作)
但我不确定这是关系代数中真正的连接操作。
对于第二个,我尝试了完全不同的东西:
? 演员(电影)÷? 导演(电影)÷? 制作人(制作)
对评论的回应: