一、 掌握基础概念

1. Catalog (Database)

将不同类别的数据保存在不同的Catalog(数据库)中。

原因:每个Catalog的重要性或要求等不同,便于对各个Catalog进行个性化管理(所在物理位置(是普通硬盘还是RAID),最大磁盘空间,日志大小等);避免命名冲突;安全性更高(如人力资源部门的人访问人力资源数据库,销售人员访问有业务数据库);便于分布部署。

缺点:信息孤岛;同步问题。

主要是考虑是否需要在数据库一级分割企业数据(如在SaaS中)。

2. 表

将不同类型的资料存放到不同的“区域”中。

3. 列

以标准的格式保存数据,每个列描述数据的一个特性。

4. 数据类型

规范数据之用,另外可提高效率(如123456789存为整型比存为文本占用空间少),能够确定对数据进行操作所需要的正确处理方式(如 "+" 操作对数字而言是假发,对文本而言是串接)。

5. 记录

即“行”,代表一个具体实体或一个具体关系。

6. 主键

能唯一标识一行记录的字段(集)。

两种常用的主键策略:业务主键(业务数据中的某个字段),逻辑主键(代理主键,没有意义的不重复值)。

业务主键:简单,有意义。但不能真正确保唯一性,而且作为主键的数据一旦发生变化就会带来维护的问题。如如果采用身份证号标识一个人,由于身份证号可能重复,此时不能插入数据,另外主键一般也做外键,如果以后身份证号位数升级,那么工资表中的外键(引用身份证号)也得跟着变化。

逻辑主键:可以确保不重复,但没有实际意义。常用的主键生成策略有:自动增长字段和UUID。前者速度快,但进行表合并时可能会造成主键冲突。后者速度慢,但能确保唯一。

7. 索引

当对某一列进行索引时,该列的所有值连同其所在位置(即表的哪一行)被保存在索引中。索引以索引列进行排序。

优点:提高查询速度。

缺点:占用空间,每次插入和删除操作都需更新索引,写操作性能降低。

8. 表关联

将两张表通过字段关联起来,使数据中的数据不在互相孤立。

二、了解主流数据库的SQL语法差异

我们目前主要使用的数据库为SQL SERVER,但很多小型应用采用免费的MySQL,大型应用采用Oracle。因此有必要了解它们在语法上的差异。

1. 数据类型的差异

整型,数值类型,字符类型,日期时间类型,二进制类型。

2. 运算符的差异

如字符串的拼接.

3、函数的差异

此方面差异最大,主要有数学函数,字符串函数,日期时间函数,类型转换,空值处理等。

4. 常用SQL的差异

如限制结果集行数,删除索引等

5. 取元数据信息的差异

数据库的名称,当前用户名,数据库中的表,指定表的字段定义等,这些信息称为元数据。

消除差异性的方案:

1. 为每种数据库编写不同的SQL语句。

2. 使用语法交集。

此种方法限制了某些高级数据库的高级功能。

3. 使用SQL实体对象

4. 使用ORM工具

如SubSonic。

5.使用SQL翻译器

posted on 2009-04-18 21:59  FourInOne  阅读(305)  评论(1编辑  收藏  举报