Python 数据库技术讲座(一)

93
. . . . . . Python 与数据库 刘鑫 <[email protected]> 第一讲:数据库相关知识 August 31, 2010

description

Python 数据库技术讲座 第一讲,数据库基础知识

Transcript of Python 数据库技术讲座(一)

Page 1: Python 数据库技术讲座(一)

. . . . . .

Python 与数据库

刘鑫 <[email protected]>

第一讲:数据库相关知识

August 31, 2010

Page 2: Python 数据库技术讲座(一)

. . . . . .

什么是数据库?

Page 3: Python 数据库技术讲座(一)

. . . . . .

并非空穴来风

Page 4: Python 数据库技术讲座(一)

. . . . . .

可用性

Page 5: Python 数据库技术讲座(一)

. . . . . .

可靠性

Page 6: Python 数据库技术讲座(一)

. . . . . .

通用性

Page 7: Python 数据库技术讲座(一)

. . . . . .

常见的数据库有哪些?

Page 8: Python 数据库技术讲座(一)

. . . . . .

Not Only MySQL!

Page 9: Python 数据库技术讲座(一)

. . . . . .

SQL 不是数据库!

Not Only SQL!

Page 10: Python 数据库技术讲座(一)

. . . . . .

数据库领域的主流类型

关系型数据库

Page 11: Python 数据库技术讲座(一)

. . . . . .

强调简单快速

KV 数据库

Page 12: Python 数据库技术讲座(一)

. . . . . .

强调灵活

文档型数据库

Page 13: Python 数据库技术讲座(一)

. . . . . .

其实还有很多

……

Page 14: Python 数据库技术讲座(一)

. . . . . .

为什么要用数据库?

Page 15: Python 数据库技术讲座(一)

. . . . . .

易用

Page 16: Python 数据库技术讲座(一)

. . . . . .

可靠

Page 17: Python 数据库技术讲座(一)

. . . . . .

通用

Page 18: Python 数据库技术讲座(一)

. . . . . .

一致

Page 19: Python 数据库技术讲座(一)

. . . . . .

事务

Page 20: Python 数据库技术讲座(一)

. . . . . .

关系型数据库的历史

Page 21: Python 数据库技术讲座(一)

. . . . . .

二战英雄

Edgar Frank Codd(1923 - 2008)

Page 22: Python 数据库技术讲座(一)

. . . . . .

轰炸机机长

Page 23: Python 数据库技术讲座(一)

. . . . . .

牛津大学数学系

Page 24: Python 数据库技术讲座(一)

. . . . . .

四十岁!

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

Page 25: Python 数据库技术讲座(一)

. . . . . .

1970

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

Page 26: Python 数据库技术讲座(一)

. . . . . .

1981

图灵奖

Page 27: Python 数据库技术讲座(一)

. . . . . .

1983

IBM DB2

Page 28: Python 数据库技术讲座(一)

. . . . . .

1988

ACM 软件系统奖(System R)

Page 29: Python 数据库技术讲座(一)

. . . . . .

关系型数据库简史

Page 30: Python 数据库技术讲座(一)

. . . . . .

1970

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

Page 31: Python 数据库技术讲座(一)

. . . . . .

1975

INGRES1

1INGRES 是一种层次型数据库

Page 32: Python 数据库技术讲座(一)

. . . . . .

1977

Oracle

Page 33: Python 数据库技术讲座(一)

. . . . . .

1979

Unireq2

2这是虾米?

Page 34: Python 数据库技术讲座(一)

. . . . . .

1981

图灵奖(关系模型)

Page 35: Python 数据库技术讲座(一)

. . . . . .

1983

IBM DB2

Page 36: Python 数据库技术讲座(一)

. . . . . .

1984

Sybase

Page 37: Python 数据库技术讲座(一)

. . . . . .

1986

POSTGRES

Page 38: Python 数据库技术讲座(一)

. . . . . .

1987

Microsoft SQL Server

Page 39: Python 数据库技术讲座(一)

. . . . . .

1988

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

Page 40: Python 数据库技术讲座(一)

. . . . . .

1992

SQL-92 标准

Page 41: Python 数据库技术讲座(一)

. . . . . .

1995

PostgreSQL95

Page 42: Python 数据库技术讲座(一)

. . . . . .

1996

MySQL3

3还记得 Unireq 吗?

Page 43: Python 数据库技术讲座(一)

. . . . . .

1998

ACM 图灵奖SQL 之父 Jim Gray

Page 44: Python 数据库技术讲座(一)

. . . . . .

常见的关系型数据库

Page 45: Python 数据库技术讲座(一)

. . . . . .

卖的最好的

Oracle

Page 46: Python 数据库技术讲座(一)

. . . . . .

这个卖的也很好

IBM DB2

Page 47: Python 数据库技术讲座(一)

. . . . . .

被 Oracle 强娶回家了

MySQL

Page 48: Python 数据库技术讲座(一)

. . . . . .

别跟前面的弄混了

Microsoft SQL Server

Page 49: Python 数据库技术讲座(一)

. . . . . .

这个也别跟前面的弄混了

Sybase SQL Server

Page 50: Python 数据库技术讲座(一)

. . . . . .

还有人知道这个杯具吗?

Infomix

Page 51: Python 数据库技术讲座(一)

. . . . . .

又一个嫁错人的杯具

Borland Interbase/Firebird

Page 52: Python 数据库技术讲座(一)

. . . . . .

低调的内嵌之王

SQLite

Page 53: Python 数据库技术讲座(一)

. . . . . .

我最喜欢的

PostgreSQL

Page 54: Python 数据库技术讲座(一)

. . . . . .

一些非关系型数据库

Page 55: Python 数据库技术讲座(一)

. . . . . .

又一个被 Oracle 强娶的

KV 经典——Berkeley Database

Page 56: Python 数据库技术讲座(一)

. . . . . .

毒霸云查杀

redis

Page 57: Python 数据库技术讲座(一)

. . . . . .

文档数据库新星

MongoDB

Page 58: Python 数据库技术讲座(一)

. . . . . .

文档数据库新星

CouchDB

Page 59: Python 数据库技术讲座(一)

. . . . . .

老牌 OA 霸主

Domino

Page 60: Python 数据库技术讲座(一)

. . . . . .

Python 名星

ZODB

Page 61: Python 数据库技术讲座(一)

. . . . . .

Python 如何访问数据库?

Page 62: Python 数据库技术讲座(一)

. . . . . .

通常……

Database SDK

Page 63: Python 数据库技术讲座(一)

. . . . . .

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

Page 64: Python 数据库技术讲座(一)

. . . . . .

好在是 Python

Ctypes

Page 65: Python 数据库技术讲座(一)

. . . . . .

内置 BDB 访问库

Page 66: Python 数据库技术讲座(一)

. . . . . .

bsddb/BsdDbShelf

Page 67: Python 数据库技术讲座(一)

. . . . . .

标准库,内嵌使用

sqlite 3

Page 68: Python 数据库技术讲座(一)

. . . . . .

关系型数据库

DBAPI 标准

Page 69: Python 数据库技术讲座(一)

. . . . . .

DBAPI 标准

Page 70: Python 数据库技术讲座(一)

. . . . . .

DBAPI 标准

简单

Page 71: Python 数据库技术讲座(一)

. . . . . .

DBAPI 标准

实用

Page 72: Python 数据库技术讲座(一)

. . . . . .

DBAPI 标准

允许扩展

Page 73: Python 数据库技术讲座(一)

. . . . . .

MySQLdb

Page 74: Python 数据库技术讲座(一)

. . . . . .

psycopg2

Page 75: Python 数据库技术讲座(一)

. . . . . .

sqlite3

Page 76: Python 数据库技术讲座(一)

. . . . . .

KInterbasDB

Page 77: Python 数据库技术讲座(一)

. . . . . .

ORM 介绍

Page 78: Python 数据库技术讲座(一)

. . . . . .

对象关系模型

ORM -> Object Relation Model

Page 79: Python 数据库技术讲座(一)

. . . . . .

优点

降低编程难度

Page 80: Python 数据库技术讲座(一)

. . . . . .

优点

提高开发速度

Page 81: Python 数据库技术讲座(一)

. . . . . .

优点

提高移植性

Page 82: Python 数据库技术讲座(一)

. . . . . .

争议

效率

Page 83: Python 数据库技术讲座(一)

. . . . . .

争议

阻抗不匹配

Page 84: Python 数据库技术讲座(一)

. . . . . .

只会选工具是不够的!

Page 85: Python 数据库技术讲座(一)

. . . . . .

业务建模

Page 86: Python 数据库技术讲座(一)

. . . . . .

容量规划

Page 87: Python 数据库技术讲座(一)

. . . . . .

分布组织

Page 88: Python 数据库技术讲座(一)

. . . . . .

架构设计

Page 89: Python 数据库技术讲座(一)

. . . . . .

应用层并发模式

Page 90: Python 数据库技术讲座(一)

. . . . . .

数据库连接管理

Page 91: Python 数据库技术讲座(一)

. . . . . .

OLAP 与数据挖掘

Page 92: Python 数据库技术讲座(一)

. . . . . .

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

Page 93: Python 数据库技术讲座(一)

. . . . . .

谢谢大家!

再见!