小编MDC*_*CCL的帖子

数据库是否具有关系表/图是否重要?

有一个问题,想获得最佳实践或想法。

我有一个使用 SQL Server 后端开发的应用程序(站点是实体框架、vb.net、asp.net)。原始设计在 db 本身中没有数据库图表/模式/关系表。

该网站运行良好,但遭到了另一个团体的反对,该团体说它必须有一个关系表才能正常工作。

那么这是个人喜好还是什么?我不是 DB 专家,我试图找出这是否是两种开发方式,并且有人试图将个人偏好置于标准或最佳实践之上。

database-design sql-server database-diagrams

7
推荐指数
2
解决办法
2217
查看次数

在我的第一个 ER 图上需要帮助

我刚刚开始了我的第一个在线数据库课程,我有一个家庭作业,从规范列表中创建实体关系图 (ERD)。

规格如下:

  1. 公司按部门组织。每个部门都有一个名称、一个唯一编号和管理该部门的特定员工。我们跟踪员工开始管理部门的开始日期。一个部门可能有多个位置。

  2. 一个部门控制多个项目,每个项目都有一个名称、唯一编号和一个位置。

  3. 我们存储每个员工的姓名、SSN、地址、薪水、性别和 DOB。一名员工被分配到一个部门,但可能从事多个项目,这些项目不一定受同一部门控制。我们会跟踪员工每周为每个项目工作的小时数。我们还跟踪每位员工的直接主管。

  4. 为了保险起见,我们希望跟踪每个员工的家属。我们保留每个受抚养人的姓名性别、出生日期以及与员工的关系。

ER图

erd database-design

7
推荐指数
2
解决办法
7597
查看次数

关系演算的实际用途是什么?

在我的数据库设计课程中,我们学习了关系代数和关系微积分。我可以看到关系代数在哪里有用,因为它与 SQL 密切相关。

我们的教授说,在一些 RDMBS 中,关系微积分被用作 SQL 的替代品,其中大部分已不再存在。关系微积分还有实际用途,还是大部分是理论性的?

database-theory relational-theory relational-calculus

7
推荐指数
2
解决办法
740
查看次数

为什么 MySQL 不识别任何 sql_mode(s)?

尝试使用终端从终端启动 MySQL 时,mysql -u <username> -p<password>出现以下错误:

mysql: [错误] 未知变量 'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

在 MySQL 正在寻找 .cnf 文件(通过运行找到它们sudo /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options")的三个可能的位置中,只/etc/mysql/my.cnf存在。其中只有一个目录,包括!includedir /etc/mysql/conf.d/. 在那里,/etc/mysql/conf.d/mysql.cnf有以下几行:

 [mysql]
 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Run Code Online (Sandbox Code Playgroud)

四处寻找答案,找不到任何答案。一一尝试从模式列表中排除特定的“坏模式”,它们都无法识别。

只有完全注释掉这一行,我才能登录并启动 MySQL。

有谁知道问题可能是什么?


平台和操作系统方面:

  • 我使用的 MySQL 版本是5.7.17
  • 操作系统为 Lubuntu 16.04,4.7.3-generic,x86_64

mysql mysql-5.7

7
推荐指数
1
解决办法
2万
查看次数

有什么办法可以防止 PostgreSQL 用户更改自己的密码?

我正在管理 PotsgreSQL 服务器,最近我意识到我的“非超级用户”用户有可能更改我为不安全密码分配的安全密码。

我在REVOKE文档中进行了搜索,但找不到阻止这种情况的方法。有可能的?

提前致谢!

postgresql security permissions users password

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

执行查询时出现“无效对象名称”错误

我将数据库与 Visual Studio 2017 连接。当我尝试执行查询时,它显示以下错误:

在此处输入图片说明

我使用的连接字符串是:

SqlConnection con = new SqlConnection("Data Source=ANUPAM-DESKTOP\ANUPAM;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"); 
Run Code Online (Sandbox Code Playgroud)

我的代码:

public void exicuteDatabaseQuery(String query)
    {

        con.Open();
        SqlDataAdapter sda = new SqlDataAdapter(query, con);
        sda.SelectCommand.ExecuteNonQuery();
        con.Close();
        MessageBox.Show("Successfull");


    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        int id = Convert.ToInt32(___Id_.Text);
        int number = Convert.ToInt32(___Number_.Text);
        String InsertQuery = "INSERT INTO Member (id, number) 
        values('"+id+"','"+number+"')";

        exicuteDatabaseQuery(InsertQuery);
    }
Run Code Online (Sandbox Code Playgroud)

数据库浏览器图像:

在此处输入图片说明

sql-server visual-studio errors

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

虚拟机上的单核 SQL Server

最近我们学区已经将多台服务器从2005版升级到2016版,从物理服务器升级到VM服务器。

我们的基础架构团队展示了用于 SQL Server 安装的单核 VM 服务器。

我试图向该部门的负责人解释 SQL Server“讨厌”在单核上,而他希望看到“证据”。我提供的数据都不能满足他的证明需要,因此他要求提供一些关于为什么 VM SQL Server 不能在单核上有效运行的文章。

你用什么文章来做这件事?

任何对我的案件的帮助将不胜感激!

sql-server vmware sql-server-2016

7
推荐指数
2
解决办法
1479
查看次数

Always On 故障转移群集与 Always On 可用性组

我对 SQL Server Always On 的理解有些担忧。请您在需要时纠正我(概念上):

  1. Always On 集群和 Always On 可用性组是 2 个独立的概念。集群是一种 HA 解决方案,而 AG 是一种 DR 解决方案。Always On 群集是否与 Windows 服务器群集相同?

  2. 要创建 Always On 群集 - 我们必须启动安装程序并选择“新 SQL Server 故障转移群集安装”,然后在每个新节点上我们需要启动安装程序并选择“添加节点”。集群(有多个节点)在IP地址方面作为一个单元运行,因此应用程序只指向一个IP,如果发生实例崩溃,则故障转移由集群技术处理,不需要更改应用程序IP。此外,用户/登录名是同步的,并且在故障转移的情况下将继续工作。这不能防止磁盘故障,因为所有节点共享同一个磁盘。

  3. 假设我们已经有一个 SQL Server 实例(比如服务器 A),那么要为此创建 Always On Clustering,我们需要执行与上述相同的步骤(创建新的故障转移集群安装),然后将服务器 A 添加为节点。对?

  4. 假设我们有一个新的 SQL Server 实例(没有 HA/DR)并且计划只配置 AG,那么我们首先需要确保在每个参与节点上启用“故障转移群集”窗口功能。然后右键单击 SQL Server 服务并启用“Always on Availability Groups”。然后在服务器实例上,我们创建 AG 并将数据库配置到组中。这确保了数据库级别的可用性,但是如果发生故障转移,则登录将不再起作用(孤立)。没有共享磁盘,因此主服务器的磁盘崩溃不会导致辅助服务器数据库出现任何问题。此外,客户端应用程序将指向侦听器 IP,侦听器将确保应用程序使用适当的工作服务器。对?

  5. 在上述场景中,启用了“故障转移群集”窗口功能,因此群集是 AG 的先决条件吗?Point 2 和 Point 4 中聚类的概念是否相同。

  6. 如果我希望使用 Always On (AG) 和故障转移群集配置 HA/DR,那么最佳做法是遵循第 2 点然后是第 4 点还是相反的方式?另外,我们是否应该同时使用虚拟集群名称和监听器,或者如果足够,我们应该使用其中之一吗?

  7. “SQL Server 故障转移群集安装”和 Windows …

sql-server clustering failover availability-groups

7
推荐指数
1
解决办法
2万
查看次数

DBCC CHECKTABLE 在空表上运行需要 15 分钟以上

我有一个数据库,其中 DBCC CHECKTABLE 在许多小表或空表上运行需要超过 15 分钟。当它完成时,没有失败或错误。服务器上其他所有内容的性能都处于非常可接受的状态。同时没有其他东西在运行。

我还尝试了 DBCC CLEANTABLE 并使用全扫描更新了统计信息。

我使用的是 SQL Server 2016 企业版 (13.0.5201.2)

示例表:

CREATE TABLE [Schema1].[Table1](
    [col1] [int] NOT NULL,
    [col2] [nvarchar](100) NOT NULL,
    [col3] [xml] NOT NULL,
 CONSTRAINT [PK_1] PRIMARY KEY CLUSTERED 
(
    [col1] ASC,
    [col2] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)

sql-server dbcc sql-server-2016 dbcc-checktable

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

Nested-Loop-Join:有多少比较和多少页面访问?

假设您有两个关系RS,其中R有 1000 个元组和 100 个页面访问,而S有 50 个元组和 25 个页面访问。

假设R是外部关系,那么完成了多少元组比较和页面访问?

如果R是内部关系,那么有多少页面访问?

for each tuple r in R do
   for each tuple s in S do
      if r and s satisfy the join condition
         then output the tuple (r,s)
Run Code Online (Sandbox Code Playgroud)

因此,为了找出完成了多少元组比较,我需要执行 1000 * 50 = 50000 因为算法正在“针对每个”元组执行此操作,并且我们总共有 1000 个元组R和 50 个元组S,因此总共 50000 次比较。

但是现在如何知道页面访问?如果R在外部,我们有 (1000 个元组) * ( S 的25 个页面访问) + ( …

mysql join sql-server

7
推荐指数
2
解决办法
415
查看次数