先进的数据库概念
我同意担任数据库课程的助教,并被要求研究可以对课程进行的更改。
该课程称为"高级数据库",但它的名称具有欺骗性。这些学生不是计算机科学专业的学生,而是某种" IT管理"的学生,因此缺少计算机科学专业需要的许多基本概念(高级数学等)。
他们已经在数据库中开设了入门课程,应该已经了解以下内容:
- ER模型
- 正常化
- 的SQL
因此,我对大家的问题是:这门课程还能教什么其他概念?
本课程主要针对数据库的"高级使用",因此我很乐意接受一些答案,这些概念并非完全是高级数据库概念,而是与某种"数据库的高级使用"有关。
简单的数据挖掘或者使用像Amazon这样的外部Web服务已被讨论为可能的主题。
本课程将包含一个项目,要求学生对数据库(MySQL)进行某种前端(用PHP或者其他方式),因此他们必须进行一些编程。
<B>编辑:请记住,这些学生不是计算机科学专业的学生,因此高科技或者低水平的知识(如查询计划,查询优化等)不在本课程的范围之内。
解决方案
阅读/理解查询计划
如果他们已经了解建模,规范化和SQL,那么至少了解优化基础是最好的下一步。没有这些,他们所有的其他技能都将毫无用处。在前三个主题之后,这就是轮胎遇到的问题。
安全。那就是我们真正需要的。我们需要新的人不要制作感染友好的应用程序
在性能方面,我们需要向他们解释操作成本,以及何时某些有用的事情可能会使应用程序无法抓取,例如某些加入操作(我们还应解释为什么同样难以为这些操作制定良好的算法,但无需进行数学运算,只需使用蜜蜂和花朵之类的东西)
OLTP与OLAP
索引如何工作以及何时起作用+无济于事
XML数据库是我参加的高级数据库课程的一项功能。
现在可能会变味了吗?
- 复写
- 交易已经涵盖了吗? v。重要
我喜欢我们教他们构建前端的概念。这显然是关键。如何覆盖对象关系映射:它是什么,为什么使用它,以及一个或者多个流行的框架。
- 已知RDBMS的主要区别(Oracle,Sybase,DB2,SQL Server,开源等)
- RDBMS管理中涉及的成本
定义主键/外键,以保持引用完整性。级联删除等
可能涉及的领域可能是:
- 如果基础课程未涵盖所有不同类型的模式(星型模式等)
- 数据仓库,多维数据集等
- ETL,合并数据,复制
- 从数据库角度看企业架构
- 后备
- 聚类
- 共同位置
- 负载均衡
- 重构
我遇到的许多DBA都不了解应用程序开发。因此,他们忽略了诸如模式版本控制,测试数据和数据版本控制之类的问题。我们也可以考虑讨论数据建模(例如,http://www.agiledata.org/essays/dataModeling101.html)。层次模型(即父子关系),商业智能数据挖掘或者数据仓库如何?如何创建虚拟机以进行更多测试?
并发,锁定和读取一致性
如果将来有其他人与我一起工作,我希望他们尊重关系数据模型以及它如何正确地建模业务规则和业务约束。
试图让他们坚定地相信,好的数据模型和严格的约束对于获得dbms的好处至关重要。
太多的人将数据库视为另一个用于数据持久化的平面文件api。