| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> RDBMS范式理论 -> 正文阅读 |
|
[大数据]RDBMS范式理论 |
关系型数据库范式理论 关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则则被称为规范化形式,即范式。 范式按照规范化的级别分为5种:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)和第五范式(5NF)。在实际的数据库设计过程中,通常需要用到的是前三类范式,下面对它们分别介绍。 1.第一范式(1NF) 2.第二范式(2NF) 3.第三范式(3NF) 数据库规范化实例 某建筑公司要设计一个数据库。公司的业务规则概括说明如下: ①公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等 ②公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等 ③公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同) 案例分析: 1)将建筑公司的工资表转换为关系表格,得到项目工时表 2)项目工时表中包含大量的冗余,可能会导致数据异常: ①更新异常 例如,修改职工号=1001的职务,则必须修改所有职工号=1001的行 ②添加异常 若要增加一个新的职工时,首先必须给这名职工分配一个工程。或者为了添加一名新职工的数据,先给这名职工分配一个虚拟的工程。(因为主关键字不能为空) ③删除异常 例如,1001号职工要辞职,则必须删除所有职工号=1001的数据行。这样的删除操作,很可能丢失了其它有用的数据 3)根据范式理论规范数据库设计 采用这种方法设计表的结构,虽然很容易产生工资报表,但是每当一名职工分配一个工程时,都要重复输入大量的数据。这种重复的输入操作,很可能导致数据的不一致性。 图1-14 项目工时表信息分类示意图 应用第二范式,将项目工时表拆分为如下所示工程表、员工表、工时表。 ①工程表:
②工时表:
③员工表:
对于员工表,职务和小时工资率存在函数依赖,应用第三范式,将员工表进一步拆分为员工表和职务表如下: ③员工表:
④职务表
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:42:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |