Database 使用“a”有什么意义;“真正的”;数据库建模工具?

Database 使用“a”有什么意义;“真正的”;数据库建模工具?,database,database-design,data-modeling,Database,Database Design,Data Modeling,目前,我们有一个10年历史的讨厌的、意大利面条式代码风格的SQL Server数据库,我们很快就会考虑从头开始重新编写它,作为对大型web应用程序重新编写的一部分。(现有应用程序将作为下一代应用程序的功能要求) 一些人建议我们使用Visio来完成所有的图表设计并生成DDL,但其他人建议我们使用专用的数据库设计工具,而不是能够导出DDL的图表设计工具 使用“真实”数据库设计工具(如ModelRight)比使用Visio等常规工具有什么好处吗?如果是,这些具体好处是什么 编辑:简言之,什么是真正的

目前,我们有一个10年历史的讨厌的、意大利面条式代码风格的SQL Server数据库,我们很快就会考虑从头开始重新编写它,作为对大型web应用程序重新编写的一部分。(现有应用程序将作为下一代应用程序的功能要求)

一些人建议我们使用Visio来完成所有的图表设计并生成DDL,但其他人建议我们使用专用的数据库设计工具,而不是能够导出DDL的图表设计工具

使用“真实”数据库设计工具(如ModelRight)比使用Visio等常规工具有什么好处吗?如果是,这些具体好处是什么



编辑:简言之,什么是真正的/专用的工具可以做到的,而Visio却做不到,这些功能有多重要和/或它们值多少钱?(例如,从最佳实践的角度来看)

有一个Oracle工具-Enterprise Elements
该工具允许您通过输入有关系统的元数据动态创建数据库, 然后为您生成所有UI。您可以动态更改模型,从而自动调整报表和基于web的表单等。
对于想要保持流畅的重新设计来说,这可能是一个很好的选择。我会选择一个包含大量创建模式的廉价尝试和大量示例事务的真实模拟代码的重新设计。如果它不支持往返(即,从模式中重写图表并编写模式以匹配图表中的更改),您将无法继续调整模式,因为要让它们再次匹配需要花费很长时间


所以EnterpriseManager(我认为ManagementStudio)中的数据库图表设计工具将远远优于Visio。

我使用的是MySQL Workbench


从Visual Studio 2008开始,有一个数据库版本具有SQL Server 2005项目类型。有了它,您可以从数据库(SSMS图中的模型)获取模型并为其生成脚本。接下来,您可以对模型的不同版本进行模式比较,并使用生成的脚本将旧版本更新为新版本。数据也可以这样做。

据我所知,专用DB diagraming工具比基本的面向图表的工具(如Visio)有许多优势:

  • 支持从现有数据库生成图表
  • 支持生成alter脚本以将所做的更改应用于图表
  • 支持将图表与现有数据库进行比较

  • 还有很多其他功能,但简单地说,专用工具将具有更多的集成功能,利用现有数据库的模式,这使得管理它们变得更加容易,尤其是在过渡场景中。

    老实说,我认为生成DDL现在几乎是一项卫生功能。如果您的项目是一个“繁重”的数据库项目,并且您有一个DBA和所有这些好东西,那么您几乎肯定会开发一个数据库的项目方法;这种方法可能包括逻辑和物理设计、验证、样本数据、需求的可追溯性以及所有这些好东西。在这种情况下,找一个合适的工具——尽管要知道他们中的许多人有一个相当陡峭的学习曲线,并且希望你以他们独特的方式看待世界。例如,我从来没有掌握过欧文的窍门,但我发现星际设计师更符合我的口味


    如果您的数据库正是业务层存储数据的地方,而数据库不是项目的关键驱动因素(web应用程序通常就是这样),我不会过多地强调这一点——通过研究持续的数据库集成和其他允许数据库在开发中发展的方法,您将获得更大的回报

    一个好问题。第一件事。正如您所暗示的,构建和维护良好的数据模型不需要数据模型工具。但是,如果将其作为工程周期的一部分,它可以加快实施时间,并在产品的整个生命周期内大幅降低维护成本

    为了证明使用工具的合理性,它必须是您开发的一个组成部分。要成为一个整体,它必须易于使用和直观,不应损害您的整体生产力

    如果您只是使用它来创建漂亮的图片,那么图表将很快过时,并且维护它所需的工作将不断与实际工程任务发生冲突

    换句话说,如果Eclipse或Visual Studio所做的只是为了打印目的而美化代码,那么我们仍然会使用记事本

    正确的ER工具必须大大提高您的交付能力,并促进您与技术和非技术人员沟通设计的能力。正确的工具会让你看起来很棒(更棒?)

    除了创建一个初始模型以直观地解释您的设计外,一个优秀的ER工具还应做到以下几点:

    • 直接从模型生成可用的模式脚本
    • 将对实时副本所做的更改合并回模型中
    • 根据模型和实时数据库之间的比较创建更改脚本
    • 允许您维护数据定义并轻松发布它们
    • 将您的设计转换为SQL的任何主要风格
    • 允许您创建具有视觉吸引力的子模型,自动同步到主模型
    • 允许您定义实体模板,因此不必为所有表不断创建相同的系统列(插入日期、插入用户、修改日期…)
    • 为您提供模型的逻辑和物理视图,因此您可以在图表中使用人类可读的列名(名字)和物理列名(名字)。前者最适合非工程师,而