现在广泛使用的驱动标准主要有 ODBC(Open DataBase Connectivity)和 JDBC(Java Data Base Connectivity)两种。ODBC 是1992 年微软公司发布的 DBMS 连接标准,后来逐步成为了业界标准。JDBC 是在此基础上制定出来的 Java 应用连接标准。
3、PostgreSQL <=> Node.js (1)针对 PostgreSQL 的驱动以 PostgreSQL 为例,它的官网列有针对各种编程语言(应用)的驱动:
https://www.postgresql.org/docs/current/external-interfaces.html
(2)node-postgres在上面的官网资料中可以查到,node-postgres 是针对 Node.js 的驱动,官网:https://node-postgres.com/
node-postgres 是根据 libpg 的 c 驱动封装的。
安装:$ npm install pg
(3)SequelizeNode.js 应用一般不直接用 node-postgres,而常用 sequelize,但 sequelize 本质也是对 node-postgres 等一些驱动的封装。
正如 sequelize 的安装步骤:
1、先安装 sequelize
npm install --save sequelize2、为所选数据库安装驱动程序:
# One of the following: $ npm install --save pg pg-hstore # Postgres $ npm install --save mysql2 $ npm install --save mariadb $ npm install --save sqlite3 $ npm install --save tedious # Microsoft SQL Server 十、安全 1、SQL注入(SQL injection)有效的防御方法,就是全面改用参数化查询。
参数化查询的原理是预处理,先将 SQL 语句进行编译,这样注入的数据就不会被当做 SQL 语句执行,而只当做 参数值 来处理。
更多讨论见:知乎 - 为什么参数化SQL查询可以防止SQL注入?
十一、进阶 - 关系数据库的理论世界 1、关系模型 与 关系 (1)诞生埃德加·弗兰克·科德(英语:Edgar Frank Codd, 1923年8月23日-2003年4月18日),下简称 Codd,是关系模型(Relational model)和关系数据库的祖师爷。
数据库因采用了关系模型,才被称为关系数据库。
Codd 写了两篇与关系模型相关的论文。第一篇是写于1969年的《大型数据库中关系存储的可推导性、冗余与一致性》。遗憾的是这篇论文发表在 IBM 公司内部期刊 IBM Research Report 上了,因此并没有引起外界的注意。
在接下来的 1970 年,Codd 又在权威学术杂志 Communications of ACM 上,以《大型共享数据库的关系模型》为题发表了第二篇论文。至此,关系模型真正地问世了。现在人们读到的论文基本上都是这一篇。但是,就像 C.J. Date 说的那样,这篇论文充满了学术味道,而且比较偏重理论和数学,所以即使是数据库方面的专家,一般也不会去阅读。
后来,Codd 凭借在关系型数据库方面的贡献获得了 1981 年的图灵奖。
(2)什么是关系模型(关系)1、维基百科解释:关系模型是基于谓词逻辑和集合论的一种数据模型,主要用于关系型数据库。
谓词逻辑(准确地说是“一阶谓词逻辑”)和集合论的知识在上文都介绍了。
2、教科书《数据库系统原理》解释:关系模型是用二维表的形式表示实体和实体间联系的数据模型。(而其中的二维表即关系)
(3)关系跟表的区别?虽然关系和表看上去很像,但是还是有区别的:
1、关系中不允许存在重复的元组(tuple),而表中可以存在。
2、关系中的记录不存在顺序,而表存在。即:关系中的元组没有从上往下的顺序,而表中的行有从上往下的顺序;关系中的属性没有从左往右的顺序,而表中的列有从左往右的顺序。
3、关系可能需要满足范式,而表无所谓。(下面会介绍范式)