【发布时间】:2009-08-25 08:55:59
【问题描述】:
我是 SQL 新手,在为我的程序创建数据库架构时可以使用一些帮助,该程序为我的家庭网络管理和安装程序。是否有创建数据库模式的指南/教程?
【问题讨论】:
标签: sql creation database-schema
我是 SQL 新手,在为我的程序创建数据库架构时可以使用一些帮助,该程序为我的家庭网络管理和安装程序。是否有创建数据库模式的指南/教程?
【问题讨论】:
标签: sql creation database-schema
在设计架构之前,最重要的概念可能是规范化(稍后您会为此感谢自己,相信我!:-)。 db.grussell.org 的教程看起来并不太寒碜,会给你一个很好的基础。事实上,如果您单击“Up One Level”链接并环顾四周,其他一些信息也可能非常有用。
我的“重要提示”是:在开始编写代码之前,将其写在纸上、记事本或数据库以外的任何东西上。在将其设置为一成不变之前,请先了解您需要架构能够做什么(并且通过“一成不变”,我的意思是,意识到您已经针对架构编写了大量代码,这些代码必须如果您将其更改为执行您刚刚意识到您现在需要的操作,请重新编写)。
【讨论】:
设计数据库是一个独立的研究和专业领域。它不能浓缩为一个答案。由于您对教程感兴趣,请查看任何有关数据库管理系统的教科书中的数据库设计部分。我会推荐 数据库系统概念,5e,Abraham Silberschatz,Henry F.Korth,Sudarshan
在数据库设计中,记住以下几点
1) 您正在识别您的家庭网络中感兴趣的重要对象。尽量避免过度沉迷于流程本身,尽管它们对于识别您需要捕获的重要数据单元很重要
2) 使用 ER/UML 建模技术提出数据模型图/设计。有许多案例工具可以帮助您绘制此图。
3) 使用数据库规范化的原则来微调您的架构以避免数据冗余。冗余数据会导致以下副作用:无法保持冗余数据之间的一致性,无法以优雅的方式存储某些数据
3) 将您的设计前向工程为您选择的数据库的 DDL 语句。大多数案例工具都支持这一点。
案例工具:
还有很多开源工具。你可以试试迪亚。这不支持正向工程
【讨论】: