电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL之范式的使用詳解

瀏覽:72日期:2023-10-10 12:25:41

一、范式

范式的英文名稱是Normal Form,它是英國人E.F.Codd(關系數據庫的老祖宗)在上個世紀70年代提出關系數據庫模型后總結出來的。范式是關系數據庫理論的基礎,也是我們在設計數據庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三個范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。

第一范式(1NF)

第一范式其實是關系型數據庫的基礎,即任何關系型數據庫都是符合第一范式的。簡單的將第一范式就是每一行的各個數據都是不可分割的,同一列中不能有多個值,如果出現重復的屬性就需要定義一個新的尸實體。下面數據庫便不符合第一范式:

+------------+-------------------+| workername | company |+------------+-------------------+| John | ByteDance,Tencent || Mike | Tencent |+------------+-------------------+

上面描述的數據所表達的意思是,Mike在Tencent工作,而John同時在ByteDance和Tencent工作(假設這是可能的)。但是這種表達方式并不符合第一范式,即列的數據必須是不可分的,要滿足第一范式,必須是下面的這種形式:

+------------+-----------+| workername | company |+------------+-----------+| Mike | Tencent || John | ByteDance || John | Tencent |+------------+-----------+

第二范式(2NF)

首先,一個數據庫要滿足第二范式必須要先滿足第一范式。我們先看一個表格:

+----------+-------------+-------+| employee | department | head |+----------+-------------+-------+| Jones | Accountint | Jones || Smith | Engineering | Smith || Brown | Accounting | Jones || Green | Engineering | Smith |+----------+-------------+-------+

這個表描述了被雇傭者,工作部門和領導的關系。這個表所表示的關系在現實生活中是完全可能存在的,現在讓我們考慮一個問題,如果Brown接任Accounting部門的領導,我們需要怎樣對表進行修改?這個問題將會變得非常麻煩,因為我們會發現數據都耦合在一起了,你很難找到一個很好的能唯一確定每一行的判斷條件來執行你的UPDATE語句。而我們把能夠唯一表示數據庫中表的一行的數據成為這個表的主鍵。 因此,沒有主鍵的表是不符合第二范式的,也就是說符合第二范式的表需要規定主鍵。

因此我們為了使上面的表符合第二范式,需要將它拆分為兩個表:

+----------+-------------+| employee | department |+----------+-------------+| Brown | Accounting || Green | Engineering || Jones | Accounting || Smith | Engineering |+----------+-------------++-------------+-------+| department | head |+-------------+-------+| Accounting | Jones || Engineering | Smith |+-------------+-------+

在這兩個表中,第一個表的主鍵為employee,第二個表的主鍵為department。在這種情況下,完成上面的問題就顯得非常簡單了。

第三范式(3NF)

一個關系型數據庫要滿足第三范式必須要先滿足第二范式。將第三范式前,我們同樣先看兩個表:

+-----------+-------------+---------+-------+| studentid | studentname | subject | score |+-----------+-------------+---------+-------+| 1 | Mike | Math | 96 || 2 | John | Chinese | 85 || 3 | Kate | History | 100 |+-----------+-------------+---------+-------++-----------+-----------+-------+| subjectid | studentid | score |+-----------+-----------+-------+| 101 | 1 | 96 || 111 | 3 | 100 || 201 | 2 | 85 |+-----------+-----------+-------+

上面的兩個表格的主鍵分別為studentid和subjectid,很顯然兩個表都符合第二范式。

但是我們會發現這兩個表有重復冗余的數據score。因此第三范式就是要消除冗余的數據,具體到上面的情況,就是兩個表只有一個能夠存在score這一列數據。那么怎么將這兩個表聯系起來呢,這里就出現了外鍵。如果兩個表中有冗余重復的列,而且這個表中的一個非主鍵列在另一個表中是主鍵,那么我們為了消除冗余列可以把這個非主鍵列作為聯系兩個表的橋梁,也就是外鍵。 通過觀察可以發現,studentid在第一個表中是主鍵,在第二個表中是非主鍵,所以他就是第二個表的外鍵。因此上述情況我們有了以下符合第三范式的寫法:

+-----------+-------------+---------+| studentid | studentname | subject |+-----------+-------------+---------+| 1 | Mike | Math || 2 | John | Chinese || 3 | Kate | History |+-----------+-------------+---------++-----------+-----------+-------+| subjectid | studentid | score |+-----------+-----------+-------+| 101 | 1 | 96 || 111 | 3 | 100 || 201 | 2 | 85 |+-----------+-----------+-------+

可以發現在設定了外鍵之后,第一個表即使刪除了score列,也可以通過studentid在第二個表中查找到相應的score的值,這樣即消除了數據的冗余,又不會影響查找,滿足第三范式。

二、范式的優點和缺點

范式的優點

范式化的更新操作通常要比反范式化要快。 當數據較好地范式化時,就只有很少或者沒有重復的數據,所以只需要修改更少的數據。 范式化的表通常都比較小,可以更好的放在內存中,所以執行操作會更快。 很少有多余的數據意味著檢索列表數據時更少需要DISTINCT或者GROUP BY語句。

范式的缺點

范式化的缺點就是通常需要關聯。稍微復雜一些的查詢語句在符合范式的數據庫上都可能需要至少一次關聯,也許更多,這不但代價昂貴,也可能使一些索引策略無效。

到此這篇關于MySQL之范式的使用詳解的文章就介紹到這了,更多相關MySQL 范式 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 纯水设备_苏州皙全超纯水设备水处理设备生产厂家 | 地图标注|微信高德百度地图标注|地图标记-做地图[ZuoMap.com] | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 佛山市德信昌电子有限公司 | 英超直播_英超免费在线高清直播_英超视频在线观看无插件-24直播网 | 北京律师咨询_知名专业北京律师事务所_免费法律咨询 | 刮板输送机,粉尘加湿搅拌机,螺旋输送机,布袋除尘器 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 防火门|抗爆门|超大门|医疗门|隔声门-上海加汇门业生产厂家 | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | 电销卡_稳定企业大语音卡-归属地可选-世纪通信 | 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 钢托盘,钢制托盘,立库钢托盘,金属托盘制造商_南京飞天金属制品实业有限公司 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 奥因-光触媒除甲醛公司-除甲醛加盟公司十大品牌| 防爆型气象站_农业气象站_校园气象站_农业四情监测系统「山东万象环境科技有限公司」 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 便携式谷丙转氨酶检测仪|华图生物科技百科| 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 薄壁轴承-等截面薄壁轴承生产厂家-洛阳薄壁精密轴承有限公司 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 |