小编phi*_*pxy的帖子

SQL 概念顺序评估

有人可以解释一下 SELECT 语句的概念执行顺序是什么,并提供一个示例吗?

我在谷歌上搜索过,但他们似乎都使用相同的例子,但没有彻底的解释。

sql select

1
推荐指数
1
解决办法
2628
查看次数

关系可以有不同长度的候选键吗?

在一个关系中我们可以有多个候选键。但是我们可以在长度不同的关系中拥有两个候选键吗?

假设我有一个关系 R(A,B,C,D,E),并且我们只有两组唯一标识该关系中的元组的属性:{A,B,C} 和 {D,E}。

那么我们可以说 {A,B,C} 和 {D,E} 都是候选键吗?

database relational unique-key candidate-key

1
推荐指数
1
解决办法
2681
查看次数

DBMS - 数据库中的音乐流派规范化

所以我试图围绕整个"规范化"的事情.为了更好地理解它,我想出了一个存储歌曲的案例

假设我有以下数据库:

专辑表:

album_name| genre           
   album_1| genre_1, genre_2
   album_2| genre_1
   album_3| genre_2
Run Code Online (Sandbox Code Playgroud)

为了规范化,我想到了以下方法

专辑表:

album_name| genre_id          
   album_1|        3
   album_2|        1
   album_3|        2
Run Code Online (Sandbox Code Playgroud)

流派表:

genre_id| genre_1| genre_2
       0|   false|   false
       1|    true|   false
       2|   false|    true
       3|    true|    true 
Run Code Online (Sandbox Code Playgroud)

因此,如果弹出一个新类型,我需要做的就是在流派表中创建一个新列,并且genre_id可以分配新的相应列.那么,这将需要填写所有可能的组合,但这只会针对每个引入的新类型发生一次.

另外,我想到的是,这会被认为是"正常化"吗?从我看过的例子中,我还没有看到创建包含原始数据列的表.

database rdbms database-normalization

1
推荐指数
1
解决办法
76
查看次数

规范化和主键

在给定的表中,如果没有主键甚至不可能创建复合主键,那么该表的正常形式是什么?

如果它的零(0NF)添加一个新列并使其成为主键会将这个表转换为 1NF ?

database database-design relational-database database-normalization

1
推荐指数
1
解决办法
1749
查看次数

编写 IEnumerable 扩展方法来连接字符串集合

我对 C# 还很陌生,我正在尝试编写一个扩展方法来使用自定义引号连接对象/字符串的集合。我有两种实现它的方法,试图找出哪种方法是标准方法。

第一种方法,为我需要的每种类型定义一个方法:

public static string JoinToString(this IEnumerable<string> stringEnumerable, string delimiter = ",", char quote = '\'');
{
    return string.Join(delimiter, stringEnumerable.Select(item => quote + item + quote));
}
Run Code Online (Sandbox Code Playgroud)
public static string JoinToString(this IEnumerable<int> intEnumerable, string delimiter = ",", char quote = '\'')
{
    return string.Join(delimiter, intEnumerable.Select(item => quote + item.ToString() + quote));
}
Run Code Online (Sandbox Code Playgroud)

ETC...


第二种方法:仅定义对象参数,因此它可以与任何类型一起使用(就像 Console.WriteLine(object) 一样)

public static string JoinToString(this IEnumerable<object> enumerable, string delimiter = ",", char quote = '\'')
{
    return string.Join(delimiter, enumerable.Select(item => quote + item.ToString() …
Run Code Online (Sandbox Code Playgroud)

c# string ienumerable extension-methods

1
推荐指数
1
解决办法
350
查看次数

如何找到关系代数,域关系演算和元组关系演算的最高/最大的东西

这是家庭作业的一部分.我有几个问题要求找到薪水最高或薪水最高的员工.找到经过大多数飞机认证的飞行员.我对如何做到这一点一无所知.本章中没有任何示例,谷歌证明不那么有用.如果有人能告诉我如何做其中之一,那将会有很大帮助.

这是表格:


飞机(援助:整数,aname:string,cruisingrange:整数)

认证(eid:整数,辅助:整数)

员工(eid:integer,ename:string,salary:int)


tuples relational tuple-relational-calculus domain-calculus

0
推荐指数
1
解决办法
4911
查看次数

EER 和 UML 之间的差异

我已经下载了 MySQL Workbench 并且可以创建 EER 图。

这和 UML 图有什么区别?

ERD 从何而来?

mysql database erd uml eer-model

0
推荐指数
1
解决办法
7093
查看次数

同一个表中的多对多关系?

我对设计数据库相对较新,我想知道在同一个表中的行之间实现多对多关系的规范方法是什么。

就我而言,我有一个公式表,我想说表中的两个公式是相关的:

公式表:

formula_id SERIAL PRIMARY KEY
name TEXT NOT NULL
formula TEXT NOT NULL
Run Code Online (Sandbox Code Playgroud)

我假设我会创建一个名为 related_formulas 的新表,然后执行以下操作:

formula_relation_id SERIAL PRIMARY KEY
formula_id INT REFERENCES formulas (formula_id) ON DELETE CASCADE
formula_id2 INT REFERENCES formulas (formula_id) ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)

但后来我预见到了一些问题,例如阻止同一行中的两个 id 具有相同的值。我确信由于我自己的经验不足,还有其他潜在的问题我没有看到。

有人能指出我正确的方向吗?

database postgresql database-design many-to-many

0
推荐指数
1
解决办法
3893
查看次数

在进行数据库规范化时,将重复的行信息集组合成新的实体是什么?

我对某些数据库规范化有些困惑,并认为我会问StackOverflow:

想象一下,您具有以下将产品与颜色相关联的关系。请注意,产品1和产品2都使用相同的颜色集(蓝色和绿色)。

Product_Color                         Color
+-------------+-------------+     +-------------+-------------+
| Product*    | Color*      |     | ColorId*    | Name        |
+-------------+-------------+     +-------------+-------------+
| 1           | 1           |     | 1           | Blue        |
| 1           | 2           |     | 2           | Green       |
| 2           | 1           |     +-------------+-------------+
| 2           | 2           |
+-------------+-------------+
Run Code Online (Sandbox Code Playgroud)

如果创建两个新的关系ColorSet和ColorSet_Color,则可以通过将这4个关系连接在一起来显示相同​​的信息。

Product_ColorSet:                 ColorSet_Color:             
+-------------+-------------+     +-------------+-------------+
| Product*    | ColorSetId* |     | ColorSetId* | ColorId*    |
+---------------------------+     +-------------+-------------+
| 1           | 1           |     | 1           | 1           |
| 2           | …
Run Code Online (Sandbox Code Playgroud)

database-design database-normalization

0
推荐指数
1
解决办法
127
查看次数

第三范式 (3NF)

我有这两张桌子。

桌子

如果我确定它们位于 3NF 中,这是正确的方法吗?我的答案:

StaffDetails( StaffID , SName, DOB, DivisionNo*)
Division( DivisionNo , DivName, DivSupervisorID)
StaffProject( StaffId *, ProjectNo *, SName, ProjectName, HoursAssigned)
项目(项目编号, 项目名称)

主键是粗体的,但是星号后面的原因是什么?

database database-design third-normal-form database-normalization

0
推荐指数
1
解决办法
1489
查看次数

如何修改内部联接,使其每个项目仅返回 1 行?

我有一个表,hs_book其中有一列名为GENRE_ID

我从一个名为的表中获取该类型的描述GENRE

我的列子查询Genre

SELECT *,
    Genre = (
        SELECT DESCRIPTION
        FROM GENRE
        WHERE GENRE_ID = (
            SELECT TOP 1 GENRE_ID 
            FROM BOOK_GENRES
            WHERE BOOK_ID = hs_book.BOOK_ID
            )
    )
FROM hs_book
Run Code Online (Sandbox Code Playgroud)

当我执行此查询时,我得到 525 本书(这是正确的)。

应高级 DBA 的要求,我尝试将其转换为 JOIN,这样我就不需要子查询,所以我这样做了:

SELECT * FROM hs_book hsb
INNER JOIN BOOK_GENRES bg ON hsb.BOOK_ID = bg.BOOK_ID
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到了 541 个结果,比子查询多了 16 个结果。

经过查资料,我发现有些书有多个GENRE_IDs.

有没有办法修改我的加入,以便我只为每本书返回一种类型?

t-sql sql-server join

-1
推荐指数
1
解决办法
59
查看次数

数据库管理系统规范化

我如何使这种关系正常化?

Emp_project(SSN,PNum,Hours,Ename,PName,Plocs)
Run Code Online (Sandbox Code Playgroud)

database rdbms database-normalization

-4
推荐指数
1
解决办法
1328
查看次数