数据库

创建时间:
2014-12-05 23:17
最近更新:
2018-06-14 12:13

数据库范式

数据库范式 指数据库应该遵循的规则。

目前关系数据库最常用的 4 种范式为:

  1. 第一范式 (1NF): 确保每列保持原子性。表中所有字段值都是不可分解的原子值。如果一个数据库连第一范式都不能满足那就不能称之为关系数据库。
  2. 第二范式 (2NF): 确保表中的每列都和主键相关。即: 在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
  3. 第三范式 (3NF): 确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
  4. BCN 范式 (BCNF)

用整型存储时间,而非数据库中的各种日期时间数据类型

目的如下:

  • 不同厂商的数据库间各种日期时间数据类型设计不一致。
  • 同一厂商的数据库中各种日期时间数据类型品种繁多且推陈出新。
  • 主流编程语言中 int32 & int64 取值范围一致。

存储 IP 的最佳数据类型

自增列

表的字段尽量不使用自增长变量,在高并发情况下该字段的自增可能对效率有比较大的影响,推荐通过应用来实现字段的自增长。
-- 《深入浅出MySQL数据库开发优化与管理维护_第2版_唐汉明_人民邮电出版社_201401 Page 384》

唯一约束

  • 为什么 不在 数据库的列 上 创建 唯一约束,而是在代码中 进行约束? 答: 例如 code_gen.tpl.Name 列,不能要求 全部行唯一,需要要求 同一模板组 唯一。数据库的列上的唯一约束 无法实现 这种需求,只能在代码中实现。为了保持一致,减少数据库压力,所有 唯一约束 统一放在代码中而非数据库中。

模式? schema?

CREATE TABLE [DatabaseName].[dbo].[TableName] (...)

"自动生成 INSERT 脚本" 的便捷方法

依次操作 "Visual Studio 2013 - 服务器资源管理器 - 数据连接 - 库 - 表 - 表名右键菜单 - 显示表数据 - "将脚本保存到文件" 按钮",将生成一个 .sql 文件,该文件内容为表中全部记录的 INSERT 脚本,该脚本包括了 "自增列" 的数据,该文件的编码为 "UTF-8"。

Resource - Contrast

  1. 10.3 Conceptual DBMS Equivalents - 多个 数据库管理系统 之间 等价的概念
  2. Oracle Database versus SQL Server
  3. MySQL versus PostgreSQL - Tony Remark: 评论比正文更有意思。MySQL 适合互联网、PostgreSQL 适合企业
  4. PostgreSQL 与 MySQL 相比,优势何在
  5. 为什么很多公司都开始去 oracle 而使用 mysql
  6. Oracle 10G 与 SQL Server 2005 搜索运行时间测试
  7. SQL Server 和 Oracle 以及 MySQL 有哪些区别
  8. SQL Server 相比 MySQL 有何优势
  9. 一篇文章让 Oracle DB 学会 MySql

Resource - DB-Engines Ranking

  1. http://db-engines.com/en/ranking
  2. http://blog.jobbole.com/34905/
  3. 2016 全球最强数据库大盘点 - 作者 叶正盛,花名斗佛,关注产品设计、数据库与云计算领域,阿里巴巴集团数据库技术核心成员,数据产品技术总监、资深技术专家。

Resource - Tool

  1. http://www.red-gate.com/ - Redgate 全家桶 - Tools For SQL Server, .NET, MySQL, & Oracle
  2. SqlComplete

10 款最出色的免费数据库管理工具
10 Handy and Useful Database Management Tools for Developers
http://www.bestdesigntuts.com/10-handy-and-useful-database-management-tools-for-developers - original
http://blog.csdn.net/BTfan123/article/details/17002613 - translation
http://blog.csdn.net/wind520/article/details/13279497 - translation

在各种数据库/源之间进行转换的工具
http://www.convert-in.com/
Oracle to MS SQL
Oracle-to-MSSQL is a program to migrate Oracle database to Microsoft SQL server. Command line support allows to script, automate and schedule the conversion process.
http://www.convert-in.com/ora2mss.htm

Visual Studio 2012 中的数据库架构比较工具
http://www.cnblogs.com/djcsch2001/p/4024858.html

http://www.cnsharp.com/cn/ - 2015-10-21 页面上显示有三种产品: 基于 XSLT 模板的代码生成器、通用数据库管理客户端、SSMS 插件 (即 SQL Sharper)

Resource

  1. 我是如何在 SQL Server 中处理每天四亿三千万记录的
  2. 记一次大规模数据迁移和加密
  3. 列式数据库