代码之家  ›  专栏  ›  技术社区  ›  Hannes Ovrén

高级数据库概念[关闭]

  •  7
  • Hannes Ovrén  · 技术社区  · 18 年前

    我已经同意成为一个数据库课程的教师助理,并且还被要求对课程进行修改。

    这门课程被称为“高级数据库”,但它的名字有点欺骗性。学生不是计算机科学专业的学生,而是某种“IT管理”的学生,因此缺乏计算机科学专业所需要的基本概念(高等数学等)。

    他们已经在数据库中开设了入门课程,应该已经知道以下内容:

    • 电流变模型
    • 归一化
    • SQL

    所以,我的问题是: 本课程还可以教授哪些概念?

    本课程主要针对数据库的“高级使用”,因此我很乐意接受一些与“数据库的高级使用”相关的概念,这些概念并不完全是高级数据库概念。 简单的数据挖掘或使用外部Web服务(如Amazon)已经作为可能的主题进行了讨论。

    本课程将包含一个项目,要求学生对他们的数据库(mysql)做某种前端(用php或其他方式),因此他们必须做一些编程。

    编辑: 请记住,学生不是计算机科学专业的学生,因此查询计划、查询优化等高科技或低水平的东西不在本课程的范围内。

    20 回复  |  直到 13 年前
        1
  •  11
  •   Bill the Lizard    18 年前
    • 正确使用索引(强调不要过度使用)。
    • 触发器
    • 存储过程
        2
  •  14
  •   Mladen    18 年前

    教他们基于设定的思维。这是在使用数据库进行任何工作时要学习的最基本的东西。

        3
  •  10
  •   Robert Gould    18 年前

    安全性。这是我们真正需要的。我们需要新的人来避免感染。

    性能,你需要向他们解释操作的成本,当一些看起来有用的东西可能会使你的应用程序陷入瘫痪,比如某些连接操作(你也应该解释为什么很难为这些操作制定好的算法,但不需要引入数学,只需使用蜜蜂和花之类的东西)

        4
  •  6
  •   Cade Roux    18 年前

    阅读/理解查询计划

    如果他们已经知道建模、规范化和SQL,那么至少了解优化的基础知识是最好的下一步。没有这一点,他们所有的其他技能都是无用的。在前三个主题之后,这就是轮胎与道路的交汇点。

        5
  •  3
  •   Darren    18 年前

    优化查询的索引策略。

        6
  •  3
  •   Tom H zenazn    18 年前

    可能要覆盖的区域可能是:

    1. 不同类型的模式(星型模式等),如果基础课程中没有全部介绍的话。
    2. 数据仓库、多维数据集等。
    3. ETL,合并数据,复制
    4. 企业架构 数据库透视图
        7
  •  3
  •   David Aldridge    18 年前

    并发性、锁定和读取一致性

        8
  •  3
  •   Bob Gettys    18 年前

    优化查询。这几乎是所有管理层关心的关于我们周围的DBMS的问题。数据库工作正常,或者由于查询正在连接未索引的列而工作缓慢,或者我们的非标准数据库设置导致执行计划忽略了一个完美的索引。这些都是真正导致管理者失眠的原因(因为他们的管理者在凌晨3点打电话给他们),然后再打电话给DBA,导致他们失眠。

    编辑:还有,如何避免风险。需要在具有大量I/O的表上重新构建索引吗?它是生产服务器吗?在维护窗口期间执行此操作。更改操作系统级TCP堆栈设置?不要在生产服务器上执行此操作。在一台毫无价值的机器上进行测试,并在维护期内进行生产。另一个避免风险的部分是有一个正在运行的备份。备份数据文件是很好的,但是具有冗余性更好。我们有一个DataGuard(Oracle)运行到一台本地机器和一台异地机器上,这样当这台机器停机时,我们可以立即切换到一台。它确实会下降,将来还会再次下降。当它关闭时,首先发生的事情是,我的经理、他的经理和他的经理经理经理都聚集在DBA的多维数据集周围,询问站点何时会恢复。通过我们的DataGuard设置,他请求经理同意切换,voila完成。站点备份。

        9
  •  2
  •   cagcowboy    18 年前

    OLTP与OLAP

        10
  •  2
  •   cagcowboy    18 年前

    索引是如何工作的,什么时候做+都无济于事。

        11
  •  2
  •   Ben Hoffstein    18 年前

    关于构建数据仓库的信息,比如非规范化(有意的)、事实表和公共维度如何?

        12
  •  2
  •   cagcowboy    18 年前
    • 数据挖掘

    • 复制

    • 交易是否已经涵盖?重要的,重要的

        13
  •  1
  •   GavinCattell    18 年前

    XML数据库是我学习的高级数据库课程的一个特性。 不过,现在可能不好吃了?

        14
  •  1
  •   ThatBloke    18 年前

    存储过程。

        15
  •  1
  •   Ben Hoffstein    18 年前

    我喜欢你教他们建立前端的概念。这显然是关键。如何覆盖对象关系映射:它是什么,为什么使用它,以及一个或多个流行的框架。

        16
  •  1
  •   Panos    18 年前
    • 已知RDBMS的主要区别(Oracle、Sybase、DB2、SQL Server、开源…)
    • RDBMS管理所涉及的成本
        17
  •  1
  •   John Nilsson    17 年前

    如果将来有人和我一起工作,我希望他们尊重关系数据模型以及它如何正确地建模业务规则和业务约束。

    试着让他们带着一种坚定的信念离开课程,即良好的数据模型和严格的约束对于获取DBMS的好处至关重要。

    太多人将数据库视为数据持久性的另一个平面文件API。

        18
  •  0
  •   hunterjrj    18 年前

    定义主键/外键以保持引用完整性。级联删除等。

        19
  •  0
  •   Aaron Fischer    18 年前
    • 备份
    • 聚类
    • 共定位
    • 负载均衡
    • 重构
        20
  •  0
  •   David Medinets doug    18 年前

    我遇到的许多DBA对应用程序开发知之甚少。因此,它们忽略了模式版本控制、测试数据和数据版本控制等问题。您还可以考虑讨论数据建模(例如, http://www.agiledata.org/essays/dataModeling101.html )层次模型(即父子关系)、商业智能数据挖掘或数据仓库如何?如何创建虚拟机以支持更多测试?