数据库规范化:从第一范式到第三范式

需积分: 7 1 下载量 96 浏览量 更新于2024-08-23 收藏 11.11MB PPT 举报
"块式编码-SOB复习资料" 在计算机图形学中,块式编码(Block Coding,也称为Square-of-Bits,SOB编码)是一种用于表示和存储二维图形数据的技术,特别是对于多边形的编码。这种方法是行程编码(Run-Length Encoding)在二维空间的扩展。基本思想是将多边形的区域划分为一系列由像素(或象元)组成的正方形,并对每个正方形进行单独编码。编码的目标是减少存储空间的需求,同时简化图形处理算法。 块式编码的优点在于: 1. 大正方形:多边形覆盖的正方形越大,其边界通常更简单,编码效果更佳,因为大正方形通常意味着更少的边界像素需要编码。 2. 求并和求交操作简便:由于每个正方形都是独立编码的,因此在进行多边形的合并(求并)和相交操作时,计算相对直接,便于实现。 3. 特征探测:块式编码使得检测多边形的特定形状特征,如边缘、角落等变得更容易,这对于图形分析和处理至关重要。 然而,块式编码也有其局限性,比如可能无法充分利用图形的内部结构进行压缩,导致某些情况下编码效率不高。此外,对于有大量复杂形状和小面积的多边形,块式编码可能不如其他更复杂的编码技术有效。 接下来,我们转向数据库设计领域,探讨表的规范化。 在关系数据库设计中,规范(范式)是确保数据结构合理性和数据一致性的关键。第一范式(1NF)是最基础的要求,它规定表中的每一个字段都应该不可再分,避免了数据冗余。例如,最初的选修课程成绩表中,"选修课程成绩"字段包含了多个属性(课程号、课程名和成绩),这不符合1NF,因为它可以被进一步分解。 为了满足1NF,我们需要将表进行规范化,即拆分字段,形成新的表。在上述例子中,我们将"选修课程成绩"字段拆分为三个独立的字段:课程号、课程名和成绩,得到的新表满足了1NF,从而减少了删除异常等问题,即删除一个学生的一门课程成绩时,不必同时删除课程信息。 进一步地,我们有第二范式(2NF),它要求表不仅满足1NF,而且非主键字段完全依赖于整个主键,而非主键的一部分。这有助于消除部分函数依赖,减少更新异常和插入异常。更高层次的范式,如第三范式(3NF)、BC范式(BCNF)和第四范式(4NF),分别关注消除传递依赖、非平凡且非函数依赖以及多值依赖,以达到更高的数据独立性和数据完整性。 规范化的过程是逐步将低级范式的表转化为高级范式的过程,目的是减少数据冗余、提高数据共享性、降低存储需求并最小化数据不一致性。然而,过于严格的规范化可能导致查询性能下降,因此实际应用中,通常选择满足第三范式或BC范式即可,以找到性能和数据完整性的平衡点。