Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Python 数据库技术第三讲

5,513 views

Published on

Python 技术内训,数据库部分的第三讲
从SQLAlchemy谈面向存储层和数据库的开发

Published in: Education
  • Be the first to comment

Python 数据库技术第三讲

  1. 1. Python 与数据库 刘鑫 <liuxin2@kingsoft.com> 第三讲:从 SQLAlchemy 谈存储层架构 September 1, 2010 . . . . . .
  2. 2. 前情回顾 . . . . . .
  3. 3. Python 访问关系数据库有多种方法 . . . . . .
  4. 4. 基础技能 标准接口 DBAPI . . . . . .
  5. 5. 有争议但值得关注 ORM . . . . . .
  6. 6. 推荐的 ORM SQLAlchemy . . . . . .
  7. 7. 常见的与数据库有关的问题 . . . . . .
  8. 8. 开发效率和代码质量 . . . . . .
  9. 9. 运行效率 . . . . . .
  10. 10. 其实这个不太常见 可移植性 . . . . . .
  11. 11. 可重用性 . . . . . .
  12. 12. 资源管理 . . . . . .
  13. 13. 解决之道? . . . . . .
  14. 14. 良好的抽象 . . . . . .
  15. 15. 适当组件化 . . . . . .
  16. 16. ORM and DAL . . . . . .
  17. 17. Python 数据库访问工具的典范 . . . . . .
  18. 18. SQLAlchemy . . . . . .
  19. 19. SQLAlchemy Figure: SQLAlchemy 组成 . . . . . .
  20. 20. 模型层 . . . . . .
  21. 21. 模型层 { 映射 业务模型, 用户自定义的业务类 Mapping − − −→ Model, 数据模型 . . . . . .
  22. 22. 模型层  Table,  数据表映射   Field, 字段及复合列 数据模型 −→ Query,  允许映射查询   Relation, 各种关系 . . . . . .
  23. 23. 映射工具 Mapping 将业务规则映射到模型 . . . . . .
  24. 24. 映射工具 MetaData 将模型与操作映射到 Engine . . . . . .
  25. 25. 映射工具 MetaData 反射元信息 . . . . . .
  26. 26. 会话层 . . . . . .
  27. 27. 会话层 Session 是 SQLALchemy 体系中的架构核心 . . . . . .
  28. 28. 可以管理多个 Engine . . . . . .
  29. 29. 分布式事务 . . . . . .
  30. 30. 两阶段提交 . . . . . .
  31. 31. 分布式事务 e n g i n e 1 = c r e a t e e n g i n e ( ’ p o s t g r e s q l : / / db1 ’ ) e n g i n e 2 = c r e a t e e n g i n e ( ’ p o s t g r e s q l : / / db2 ’ ) S e s s i o n = s e s s i o n m a k e r ( t w o p h a s e=True ) S e s s i o n . c o n f i g u r e ( b i n d s ={U s e r : e n g i n e 1 , Account : e n g i n session = Session () . . . . . .
  32. 32. SQL Expression . . . . . .
  33. 33. 智能数据对象 . . . . . .
  34. 34. 连接层 . . . . . .
  35. 35. Engine 可以作为会话引擎 . . . . . .
  36. 36. Engine 也可以独立使用 . . . . . .
  37. 37. Engine 连接池 . . . . . .
  38. 38. Engine Connection 管理 . . . . . .
  39. 39. Engine 数据库元信息 . . . . . .
  40. 40. Connection . . . . . .
  41. 41. Connection 强化的 DBAPI Connection+cursor . . . . . .
  42. 42. Connection 参数安全 . . . . . .
  43. 43. Connection 更友好的结果集 . . . . . .
  44. 44. Connection 完整的事务控制 . . . . . .
  45. 45. Connection 可理解模型操作 . . . . . .
  46. 46. 经典示范 . . . . . .
  47. 47. Pylons . . . . . .
  48. 48. turbogears . . . . . .
  49. 49. 怪·力·乱·神 . . . . . .
  50. 50. Socrates http://bitbucket.org/March/socrates . . . . . .
  51. 51. doctest . . . . . .
  52. 52. Storage. init 运行时建模 . . . . . .
  53. 53. Storage.registeType 动态建模 . . . . . .
  54. 54. Subject 自定义容器 . . . . . .
  55. 55. Segment/Subject 业务规则封装 . . . . . .
  56. 56. 一家之言 面向数据库的架构设计 . . . . . .
  57. 57. 有效管理资源 . . . . . .
  58. 58. 合理建模,防止过度设计 . . . . . .
  59. 59. 保持敏捷,不过度优化 . . . . . .
  60. 60. 基于运行时环境设计 . . . . . .
  61. 61. 框架? . . . . . .
  62. 62. 操作系统? . . . . . .
  63. 63. HTTP 服务和加载模式? . . . . . .
  64. 64. 多线程 vs 多进程? . . . . . .
  65. 65. 多进程 尽快完成 . . . . . .
  66. 66. 多进程 保持和控制资源 . . . . . .
  67. 67. 多进程 干净回收 . . . . . .
  68. 68. 多线程 资源池 . . . . . .
  69. 69. 多线程 警惕争用与死锁 . . . . . .
  70. 70. 多线程 防止并发过度 . . . . . .
  71. 71. 如何管好数据,是一门艺术 . . . . . .
  72. 72. 谢谢大家! 再见! . . . . . .

×