`

SQL基础总结(一):关系模型

 
阅读更多

本系列blog源自前年写的SQL学习笔记,汇总一下发上来。

---------------------------------------------------------------

 

规范化

父子表图示:由父表画出主键画出箭头指向子表外键。

满足第一范式的表:列包含原子值,没有重复的组。

 

当满足下列条件时第一范式的表自动满足第二范式的表:

1.主键是一个列(也就是说不是复合主键)。

2.表中所有列是主键的一部分。

 

满足第二范式的表:

1.  满足第一范式。

2.  非部分函数依赖(完全函数依赖)。

部分函数依赖是指表中一些组合键(不是全部组合键)的值可以确定一个非键列的值。

 

第二范式表是完全函数依赖,意味着如果组合键中任何一列值改变,将导致非键列的值需要更新。即全部组合键决定一个非键列。

 

满足第三范式的表:

1.  满足第二范式。

2.  没有传递依赖。

传递依赖:一个非键列的值决定另一个非键列的值,则表包含传递依赖。

 

BC范式:是更严格的第三范式版本。BC范式处理那些有多个候选键、组合候选键或重叠候选键的表。如果每个完全函数依赖的列都是候选键,则满足BC范式。

 

满足第四范式的表:

1.  BCNF

2.  没有多值依赖。

多值依赖:一个表至少3列,一列中多个行的值与其它列中一行的值匹配,则发生多值依赖。

 

满足第五范式的表:

1.  满足4NF

2.  并且没有联结依赖。联结依赖是多值依赖的泛化。

5NF的目标是使表不能进一步分解为多个更小的表。

 

在实际数据库中,会看到1NF2NF3NF,偶尔有4NF4NF甚至3NF的表也几乎总是5NF的。

 

非规范化

为了加快查询速度可能需要转而将数据库非规范化。较少的表会减少计算机联结和磁盘I/O操作的开销。这种常见的方法是为了性能而牺牲数据完整性。

非规范化数据的一个普通用途是用作从其它表复制过来数据的永久日志。

分享到:
评论

相关推荐

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    3.1.2 关系模型:快速摘要 3.2 关系代数和关系计算 3.2.1 基本运算符 3.2.2 关系代数 3.2.3 Codd提出的8个原始关系运算符 3.2.4 关系演算 T-SQL支持 3.3 数据完整性 3.3.1 声明式约束 3.3.2 实施完整性的...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    3.1.2 关系模型:快速摘要70 3.2 关系代数和关系计算70 3.2.1 基本运算符71 3.2.2 关系代数71 3.2.3 Codd提出的8个原始关系运算符72 3.2.4 关系演算79 T-SQL支持80 3.3 数据完整性81 3.3.1 声明式约束82 ...

    数据库系统原理总结.pdf

    数据库基础:数据库抽象,DBMS,DBS 数据库抽象:即建⽴模型,包括概念模型,逻辑模型,外部模型和内部模型 概念模型:从⽤户出发,表达了数据的整体逻辑结构 逻辑模型:从数据库实现出发,表达了数据的整体逻辑结构...

    169集全新MySQL课程 MySQL技能全面探索 MySQL核心特训教程 MySQL零基础实战班视频

    ├─5、课程:数据库模型设计,ER模型(上).8、借款、工作关系.mp4 ├─5、课程:数据库模型设计,ER模型(上).9、数据库设计三大范式(一).mp4 ├─6、课程:数据库模型设计,ER模型(下).10、应用实例(一)....

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    3.1.2 关系模型:快速摘要70 3.2 关系代数和关系计算70 3.2.1 基本运算符71 3.2.2 关系代数71 3.2.3 Codd提出的8个原始关系运算符72 3.2.4 关系演算79 T-SQL支持80 3.3 数据完整性81 3.3.1 声明式约束82 3.3.2 实施...

    SQL Server 2008数据库设计与实现

    通过将理论融入数据库实践,清晰地讲解了关系型数据库的设计原则,完整地展示了如何进行良好的关系型数据库设计,深入揭示了SQL Server 2008的技术细节。  本书浓缩了作者作为SQL Server数据库架构师多年来丰富的...

    精通SQL--结构化查询语言详解

    第1章 数据库与sql基础 1 1.1 数据库的基本概念 1 1.1.1 数据库的由来 1 1.1.2 数据库系统的概念 3 1.2 数据库系统的结构、组成及工作流程 3 1.2.1 数据库的体系结构 3 1.2.2 数据库系统的组成 4 1.2.3 ...

    xsxk数据库表结构和基础数据.sql

    学生选课数据库MySQL脚本,提供数据集可以用来练习MySQL查询语句,进行一些简单的教学和总结,直接在Navicat里面运行即可,有六个表提供给你练习

    SQL-server数据库设计-餐饮管理系统.doc

    5 数据库实现 7 2.2程序设计 11 2.2.1概要设计 11 2.2.2程序实现 11 第3章 设计总结 14 参考文献 15 第1章 设计目的与要求 1.1设计目的 本设计专题是软件工程类专业的有关管理信息系统设计开发的一个重要环节,...

    数据库课程设计.docx

    1. 数据库基础知识:介绍关系型数据库的基本概念和原理,包括表、记录、关系等。 2. SQL语言:学习SQL语言的基本语法和命令,包括SELECT、INSERT、UPDATE、DELETE等。 3. 数据库设计:了解数据库设计的基本原则和...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    基于集合的思维方式:一个例子 100 4.2 集合运算 102 4.2.1 UNION和UNION ALL 103 4.2.2 MINUS 106 4.2.3 INTERSECT 107 4.3 集合与空值 108 4.3.1 空值与非直观结果 108 4.3.2 集合运算中的空值行为 110 ...

    数据库系统概论【史嘉权】

    主要内容包括数据库建模、关系模型和关系运算、 数据库语言SQL(包括最新标准 SQL2和SQL3)及其系统环境、关系数据库设计理论及数据库设计、面向对象的对象定义语言和对象查询语言、以及查询优化和并发控制。 本书...

    权限管理系统源码2012918

    支持的表关系模型包括 1、单表数据模型 2、自连接数据模型 3、一对多(父子表)数据模型 4、一对多数据模型中的一张表是自连接 5、多对多数据模型 6、多对多数据模型中的一张表是自连接 狼奔代码生成器在总结以往...

    精通SQL 结构化查询语言详解

    第1章 数据库与SQL基础  1.1 数据库的基本概念  1.1.1 数据库的由来  1.1.2 数据库系统的概念  1.2 数据库系统的结构、组成及工作流程 1.2.1 数据库的体系结构  1.2.2 数据库系统的组成  1.2.3 数据库...

    数据库原理概论理论知识点总结.pdf

    2.3 关系的完整性 关系模型中有三类完整性约束:实体完整性,参照完整性,⽤户⾃定义完整性。其中前两者为关系的两个不可变形。 空值是"不知道","不存在","⽆意义"的值。 2.4 关系代数 ⾃然连接是构成新关系的...

    狼奔权限管理系统源码

    支持的表关系模型包括 1、单表数据模型 2、自连接数据模型 3、一对多(父子表)数据模型 4、一对多数据模型中的一张表是自连接 5、多对多数据模型 6、多对多数据模型中的一张表是自连接 狼奔代码生成器在总结以往...

    数据库系统概念复习总结.pdf

    ⽬录 ⽬录 第⼀章、引⾔ 1.1 ⽂件管理系统坏处 1.2 数据视图 1.3 数据模型 1.4 数据库语⾔ 第⼆章、关系模型介绍 2.1 关系数据库的结构 2.2 数据库模式 2.3 码 第三章、SQL 3.1 SQL 查询语⾔概览 3.2 SQL数据定义 ...

    sqlserver2000基础(高手也有用)

    15.1.3 测试连接到SQL Server实例的方法总结 458 15.1.4 超时 459 15.1.5 单用户的问题 460 15.1.6 默认数据库问题 461 15.2 索引中的疑难解答 462 15.2.1 索引对查询条件的影响 462 15.2.2 索引对查询...

Global site tag (gtag.js) - Google Analytics