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

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

詳解MySQL 數據庫范式

瀏覽:6日期:2023-10-09 09:07:43

前言:

關于數據庫范式,時常有聽說過,一直沒有詳細去了解。一般數據庫書籍或數據庫課程會介紹范式相關內容,范式也經常出現在數據庫考試題目中。不清楚你是否對范式有比較清晰的了解呢?本篇文章我們一起來學習下數據庫范式吧。

1.數據庫范式簡介

為了建立冗余較小、結構合理的數據庫,設計數據庫時必須遵循一定的規則。在關系型數據庫中這種規則就稱為范式。范式是符合某一種設計要求的總結。要想設計一個結構合理的關系型數據庫,必須滿足一定的范式。

范式的英文名稱是 Normal Form ,簡稱 NF 。它是英國人 E.F.Codd 在上個世紀70年代提出關系數據庫模型后總結出來的。范式是關系數據庫理論的基礎,也是我們在設計數據庫結構過程中所要遵循的規則和指導方法。

目前關系型數據庫有六種常見范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又稱完美范式)。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎上進一步滿足更多規范要求的稱為第二范式(2NF),其余范式以次類推。

2.常用范式詳解

在設計數據庫時,會參考范式要求來做,但是并不是說遵循的范式等級越高越好,范式過高雖然具有對數據關系有更好的約束性,但是也會導致表之間的關系更加繁瑣,從而導致每次操作的表會變多,數據庫性能下降。通常,在關系型數據庫設計中,最高也就遵循到 BCNF ,普遍還是 3NF 。即一般情況下,我們使用前三個范式已經夠用了。下面我們來詳細了解下常用的前三個范式。

第一范式(1NF)

第一范式是最基本的范式。如果數據庫表中的所有字段值都是不可分解的原子值,就說明該數據庫表滿足了第一范式。簡單的講第一范式就是每一行的各個數據都是不可分割的,同一列中不能有多個值,如果出現重復的屬性就需要定義一個新的實體。

示例:假設一家公司要存儲其員工的姓名和聯系方式。它創建一個如下表:

詳解MySQL 數據庫范式

兩名員工(Jon&Lester)擁有兩個手機號碼,因此公司將他們存儲在同一表格中,如上表所示。那么該表不符合 1NF ,因為規則說“表的每個屬性必須具有原子(單個)值”,Jon&Lester員工的 emp_mobile 值違反了該規則。為了使表符合 1NF ,我們應該有如下表數據:

詳解MySQL 數據庫范式

第二范式(2NF)

第二范式在第一范式的基礎之上更進一層。第二范式需要確保數據庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關(主要針對聯合主鍵而言)。也就是說在一個數據庫表中,一個表中只能保存一種數據,不可以把多種數據保存在同一張數據庫表中。

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

上表描述了被雇傭者,工作部門和領導的關系。我們把能夠唯一表示數據庫中表的一行的數據成為這個表的主鍵。表中 head 列不和主鍵相關。因此,該表是不符合第二范式的,為了使上面的表符合第二范式,需要將它拆分為兩個表:

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

第三范式(3NF)

滿足 2NF 的前提下,非主鍵外的所有字段必須互不依賴,即需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。

簡而言之,第三范式(3NF)要求一個關系中不包含已在其它關系已包含的非主關鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那么在員工信息表中列出部門編號后就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工信息表中。如果不存在部門信息表,則根據第三范式(3NF)也應該構建它,否則就會有大量的數據冗余。

3.關于反范式

范式的優點是明顯的,它避免了大量的數據冗余,節省了存儲空間,保持了數據的一致性。范式化的表通常更小,可以更好地放在內存里,所以執行操作會更快。那么是不是只要把所有的表都規范為 3NF 后,數據庫的設計就是最優的呢?這可不一定。范式越高意味著表的劃分更細,一個數據庫中需要的表也就越多,用戶不得不將原本相關聯的數據分攤到多個表中。稍微復雜一些的查詢語句在符合范式的數據庫上都可能需要至少一次關聯,也許更多,這不但代價昂貴,也可能使一些索引策略無效。

所以我們在進行數據庫設計時,并不會完全按照范式要求來做,有時候也會進行反范式設計。通過增加冗余或重復的數據來提高數據庫的讀性能,減少關聯查詢時,join 表的次數。

以上就是詳解MySQL 數據庫范式的詳細內容,更多關于MySQL 數據庫范式的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 超声波分散机-均质机-萃取仪-超声波涂料分散设备-杭州精浩 | 挨踢网-大家的导航!| 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 电缆故障测试仪_电缆故障定位仪_探测仪_检测仪器_陕西意联电气厂家 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 气动球阀_衬氟蝶阀_调节阀_电动截止阀_上海沃托阀门有限公司 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 复合肥,化肥厂,复合肥批发,化肥代理,复合肥品牌-红四方 | 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 | 迪威娱乐|迪威娱乐客服|18183620002 | 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 壹作文_中小学生优秀满分作文大全 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 嘉兴泰东园林景观工程有限公司_花箱护栏 | 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 | 硬质合金模具_硬质合金非标定制_硬面加工「生产厂家」-西迪技术股份有限公司 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 代做标书-代写标书-专业标书文件编辑-「深圳卓越创兴公司」 | 万家财经_财经新闻_在线财经资讯网 | 广州各区危化证办理_危险化学品经营许可证代办 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 耐火砖厂家,异形耐火砖-山东瑞耐耐火材料厂 | ORP控制器_ORP电极价格-上优泰百科| 菏泽知彼网络科技有限公司| 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 小港信息港-鹤壁信息港 鹤壁老百姓便民生活信息网站 | ZHZ8耐压测试仪-上海胜绪电气有限公司 | 润东方环保空调,冷风机,厂房车间降温设备-20年深圳环保空调生产厂家 |