SlideShare une entreprise Scribd logo
1  sur  93
Télécharger pour lire hors ligne
Python 与数据库

刘鑫 <liuxin2@kingsoft.com>

    第一讲:数据库相关知识


     August 31, 2010




                       .    .   .   .   .   .
什么是数据库?




          .   .   .   .   .   .
并非空穴来风




         .   .   .   .   .   .
可用性




      .   .   .   .   .   .
可靠性




      .   .   .   .   .   .
通用性




      .   .   .   .   .   .
常见的数据库有哪些?




         .   .   .   .   .   .
Not Only MySQL!




                  .   .   .   .   .   .
SQL 不是数据库!




             Not Only SQL!




                             .   .   .   .   .   .
数据库领域的主流类型




         关系型数据库




                  .   .   .   .   .   .
强调简单快速




         KV 数据库




                  .   .   .   .   .   .
强调灵活




       文档型数据库




                .   .   .   .   .   .
其实还有很多




         ……




              .   .   .   .   .   .
为什么要用数据库?




            .   .   .   .   .   .
易用




     .   .   .   .   .   .
可靠




     .   .   .   .   .   .
通用




     .   .   .   .   .   .
一致




     .   .   .   .   .   .
事务




     .   .   .   .   .   .
关系型数据库的历史




            .   .   .   .   .   .
二战英雄




       Edgar Frank Codd
         (1923 - 2008)




                          .   .   .   .   .   .
轰炸机机长




        .   .   .   .   .   .
牛津大学数学系




          .   .   .   .   .   .
四十岁!




       密歇根大学计算机科学博士




                 .    .   .   .   .   .
1970




       Relational Model of Data for Large Shared Data Banks
                《大型共享数据库的关系数据模型》




                                           .    .   .   .     .   .
1981




       图灵奖




             .   .   .   .   .   .
1983




       IBM DB2




                 .   .   .   .   .   .
1988




       ACM 软件系统奖(System R)




                       .   .   .   .   .   .
关系型数据库简史




           .   .   .   .   .   .
1970




       Relational Model of Data for Large Shared Data Banks
                《大型共享数据库的关系数据模型》




                                           .    .   .   .     .   .
1975




                              INGRES1




       1
           INGRES 是一种层次型数据库             .   .   .   .   .   .
1977




       Oracle




                .   .   .   .   .   .
1979




                   Unireq2




       2
           这是虾米?             .   .   .   .   .   .
1981




       图灵奖(关系模型)




                   .   .   .   .   .   .
1983




       IBM DB2




                 .   .   .   .   .   .
1984




       Sybase




                .   .   .   .   .   .
1986




       POSTGRES




                  .   .   .   .   .   .
1987




       Microsoft SQL Server




                              .   .   .   .   .   .
1988




       ACM 软件系统奖(System R & Ingres)




                            .   .   .   .   .   .
1992




       SQL-92 标准




                   .   .   .   .   .   .
1995




       PostgreSQL95




                      .   .   .   .   .   .
1996




                           MySQL3




       3
           还记得 Unireq 吗?            .   .   .   .   .   .
1998




         ACM 图灵奖
       SQL 之父 Jim Gray




                         .   .   .   .   .   .
常见的关系型数据库




            .   .   .   .   .   .
卖的最好的




        Oracle




                 .   .   .   .   .   .
这个卖的也很好




          IBM DB2




                    .   .   .   .   .   .
被 Oracle 强娶回家了




                 MySQL




                         .   .   .   .   .   .
别跟前面的弄混了




           Microsoft SQL Server




                                  .   .   .   .   .   .
这个也别跟前面的弄混了




         Sybase SQL Server




                             .   .   .   .   .   .
还有人知道这个杯具吗?




          Infomix




                    .   .   .   .   .   .
又一个嫁错人的杯具




       Borland Interbase/Firebird




                               .    .   .   .   .   .
低调的内嵌之王




          SQLite




                   .   .   .   .   .   .
我最喜欢的




        PostgreSQL




                     .   .   .   .   .   .
一些非关系型数据库




            .   .   .   .   .   .
又一个被 Oracle 强娶的




          KV 经典——Berkeley Database




                              .      .   .   .   .   .
毒霸云查杀




        redis




                .   .   .   .   .   .
文档数据库新星




          MongoDB




                    .   .   .   .   .   .
文档数据库新星




          CouchDB




                    .   .   .   .   .   .
老牌 OA 霸主




           Domino




                    .   .   .   .   .   .
Python 名星




            ZODB




                   .   .   .   .   .   .
Python 如何访问数据库?




             .    .   .   .   .   .
通常……




       Database SDK




                      .   .   .   .   .   .
非关系型数据库,仍普遍使用此方法




            .   .   .   .   .   .
好在是 Python




             Ctypes




                      .   .   .   .   .   .
内置 BDB 访问库




             .   .   .   .   .   .
bsddb/BsdDbShelf




                   .   .   .   .   .   .
标准库,内嵌使用




           sqlite 3




                      .   .   .   .   .   .
关系型数据库




         DBAPI 标准




                    .   .   .   .   .   .
DBAPI 标准




           .   .   .   .   .   .
DBAPI 标准




           简单




                .   .   .   .   .   .
DBAPI 标准




           实用




                .   .   .   .   .   .
DBAPI 标准




           允许扩展




                  .   .   .   .   .   .
MySQLdb




          .   .   .   .   .   .
psycopg2




           .   .   .   .   .   .
sqlite3




          .   .   .   .   .   .
KInterbasDB




              .   .   .   .   .   .
ORM 介绍




         .   .   .   .   .   .
对象关系模型




         ORM -> Object Relation Model




                                .   .   .   .   .   .
优点




     降低编程难度




              .   .   .   .   .   .
优点




     提高开发速度




              .   .   .   .   .   .
优点




     提高移植性




             .   .   .   .   .   .
争议




     效率




          .   .   .   .   .   .
争议




     阻抗不匹配




             .   .   .   .   .   .
只会选工具是不够的!




         .   .   .   .   .   .
业务建模




       .   .   .   .   .   .
容量规划




       .   .   .   .   .   .
分布组织




       .   .   .   .   .   .
架构设计




       .   .   .   .   .   .
应用层并发模式




          .   .   .   .   .   .
数据库连接管理




          .   .   .   .   .   .
OLAP 与数据挖掘




             .   .   .   .   .   .
如何管好数据,是一门艺术




          .    .   .   .   .   .
谢谢大家!




        再见!




              .   .   .   .   .   .

Contenu connexe

Plus de March Liu

PostgreSQL 9 1 新特性
PostgreSQL 9 1 新特性PostgreSQL 9 1 新特性
PostgreSQL 9 1 新特性
March Liu
 
Perl 6 news at 2010-06
Perl 6 news at 2010-06Perl 6 news at 2010-06
Perl 6 news at 2010-06
March Liu
 

Plus de March Liu (17)

奇点与未来
奇点与未来奇点与未来
奇点与未来
 
尼尔盖曼的美国众神
尼尔盖曼的美国众神尼尔盖曼的美国众神
尼尔盖曼的美国众神
 
创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务创业项目中常见的技术和管理债务
创业项目中常见的技术和管理债务
 
It工程师的职业成长
It工程师的职业成长It工程师的职业成长
It工程师的职业成长
 
Xcode tutorial
Xcode tutorialXcode tutorial
Xcode tutorial
 
Socrates Used PostgreSQL and SQLAlchemy
Socrates Used PostgreSQL and SQLAlchemySocrates Used PostgreSQL and SQLAlchemy
Socrates Used PostgreSQL and SQLAlchemy
 
PostgreSQL 9 1 新特性
PostgreSQL 9 1 新特性PostgreSQL 9 1 新特性
PostgreSQL 9 1 新特性
 
Emacs Introduction
Emacs IntroductionEmacs Introduction
Emacs Introduction
 
软件开发工程化的个人体验
软件开发工程化的个人体验软件开发工程化的个人体验
软件开发工程化的个人体验
 
Python速成指南
Python速成指南Python速成指南
Python速成指南
 
Python 数据库技术
Python 数据库技术Python 数据库技术
Python 数据库技术
 
PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践PostgreSQL 9 的 standby 集群实践
PostgreSQL 9 的 standby 集群实践
 
基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案基于 PostgreSQL 的关系型数据库方案
基于 PostgreSQL 的关系型数据库方案
 
About Me
About MeAbout Me
About Me
 
3 Python开发风格与建议
3 Python开发风格与建议3 Python开发风格与建议
3 Python开发风格与建议
 
Postgre sql intro 0
Postgre sql intro 0Postgre sql intro 0
Postgre sql intro 0
 
Perl 6 news at 2010-06
Perl 6 news at 2010-06Perl 6 news at 2010-06
Perl 6 news at 2010-06
 

Python 数据库技术讲座(一)