[转帖]《高性能的数据库》第一讲:范式设计
2004-08-05 16:30
344 查看
[转帖]《高性能的数据库》第一讲:范式设计
第一讲:范式设计
首先,俺说,数据库重在设计,然后才是开发。按照第三范式开发,会让你提升到一个新的境界!
名词解释:第三范式
第一范式:一个不包含重复列的表归于第一范式。
第二范式:如果一个表归于第一范式且只包含依赖于主键的列,则归于第二范式。
第三范式:如果一个表归于第二范式且只包含那些非传递性地依赖于主键的列,则归于第三范式。
chair3口述简单解释:
第一范式:不设计重复字段的表
比如:
Create Table tb1 (
fd1 varchar(20), --用来存放电话
fd2 varchar(20), --用来存放电话
fd3 int --其他
)
则fd1,fd2违反第一范式
第二范式:
第二范式:不设计没有主键,或没有唯一索引的表
比如:如果一个表存在相同的数据,那必然是违反第二范式无疑。
第三范式:能细分则细分每个字段。
比如:一个表,原来设计为:
Create TAble Clothes(
ClothesID int primary key,--ID
Color varchar(10), --颜色
Description varchar(20) --描述
)
那么Color违反了第三范式
于是,第三范式应该这样设计
Create TAble Clothes(
ClothesID int primary key,--ID
ColorID Int, --颜色ID
Description varchar(20) --描述
)
Create Table Color(
ColorID int primary key,
Color varchar(20)
)
Color作为主表,Clothes作为子表,两者用ColorID互联.
三范式设计的好处:减少数据冗余,提高系统可维护性,提高系统可扩展性。
三范式设计的缺点:会降低数据库的性能。(嘻嘻,不过非常少,大家放心)
第一讲:范式设计
首先,俺说,数据库重在设计,然后才是开发。按照第三范式开发,会让你提升到一个新的境界!
名词解释:第三范式
第一范式:一个不包含重复列的表归于第一范式。
第二范式:如果一个表归于第一范式且只包含依赖于主键的列,则归于第二范式。
第三范式:如果一个表归于第二范式且只包含那些非传递性地依赖于主键的列,则归于第三范式。
chair3口述简单解释:
第一范式:不设计重复字段的表
比如:
Create Table tb1 (
fd1 varchar(20), --用来存放电话
fd2 varchar(20), --用来存放电话
fd3 int --其他
)
则fd1,fd2违反第一范式
第二范式:
第二范式:不设计没有主键,或没有唯一索引的表
比如:如果一个表存在相同的数据,那必然是违反第二范式无疑。
第三范式:能细分则细分每个字段。
比如:一个表,原来设计为:
Create TAble Clothes(
ClothesID int primary key,--ID
Color varchar(10), --颜色
Description varchar(20) --描述
)
那么Color违反了第三范式
于是,第三范式应该这样设计
Create TAble Clothes(
ClothesID int primary key,--ID
ColorID Int, --颜色ID
Description varchar(20) --描述
)
Create Table Color(
ColorID int primary key,
Color varchar(20)
)
Color作为主表,Clothes作为子表,两者用ColorID互联.
三范式设计的好处:减少数据冗余,提高系统可维护性,提高系统可扩展性。
三范式设计的缺点:会降低数据库的性能。(嘻嘻,不过非常少,大家放心)
相关文章推荐
- SQL SERVER 与ACCESS、EXCEL的数据转换
- SQL2005 CLR: UDT用户定义类型 part3
- SQL2005 CLR: UDT用户定义类型 part2
- SQL2005 CLR: UDT用户定义类型 part1
- 在.NET中自定义配置文件
- MYSQL到ORACLE程序迁移的注意事项
- Oracle里怎么建一个自增加的字段
- Oracle8 数据类型
- 贡献代码: 数据库快数开发接口
- 如何使用VS.NET调试数据库存储过程 longrujun [原作]
- 通过Excel自带的查询分析器快速完成从SQL Server中导出数据的例子(通用类)
- 如何使用VS.NET调试数据库存储过程 longrujun [原作]
- yrdy
- Oracle专家调优秘密(三)
- Oracle专家调优秘密(二)
- Oracle专家调优秘密(一)
- Creating recurive stored procedures in T-SQL.
- SQL2005 CLR Hosting能带来什么?
- 数据访问策略建议
- IFS寫oracle腳本包中 空字符的判斷