日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

001_数据库介绍

發布時間:2025/4/17 数据库 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 001_数据库介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. 什么是數據庫

1. 數據庫是存放數據的倉庫。它的存儲空間很大, 可以存放百萬條、千萬條、上億條數據。但是數據庫并不是隨意地將數據進行存放, 是有一定的規則的, 否則查詢的效率會很低?;ヂ摼W世界充斥著大量的數據, 即這個互聯網世界就是數據世界。數據的來源有很多, 比如: 出行記錄、消費記錄、瀏覽的網頁、發送的消息等等。除了文本類型的數據, 圖像、音樂、聲音也是數據。

2. 數據庫是一個按數據結構來存儲管理數據的計算機軟件系統。數據庫的概念實際包括兩層意思:

2.1. 數據庫是一個能夠存儲數據的"倉庫", 用戶在該"倉庫"中存放數據, "數據"和"庫"兩個概念結合成為數據庫。

2.2. 數據庫是管理數據的新方法和技術, 它能更合理的組織數據、更方便的維護數據、更嚴密的控制數據和更有效的利用數據。

二. 數據的發展

1. 在數據庫的發展歷史上, 數據庫先后經歷了層次數據庫、網狀數據庫和關系數據庫等各個階段的發展。數據庫技術在各個方面的快速的發展, 特別是關系型數據庫已經成為目前數據庫產品中最重要的一員。80年代以來, 幾乎所有的數據庫廠商新出的數據庫產品都支持關系型數據庫, 即使是一些非關系數據庫產品也幾乎都有支持關系數據庫的接口。這主要是傳統的關系型數據庫可以比較好的解決管理和存儲關系型數據的問題。隨著云計算的發展和大數據時代的到來, 關系型數據庫越來越無法滿足需要, 這主要是由于越來越多的半關系型和非關系型數據需要用數據庫進行存儲管理, 與此同時, 分布式技術等新技術的出現也對數據庫的技術提出了新的要求, 于是越來越多的非關系型數據庫就開始出現, 這類數據庫與傳統的關系型數據庫在設計和數據結構方面有了很大的不同, 它們更強調數據庫數據的高并發讀寫和存儲大數據, 這類數據庫一般被稱為NoSQL(Not only SQL)數據庫。而傳統的關系型數據庫在一些傳統領域依然保持了強大的生命力。

三. 關系數據庫

1. 關系型數據庫, 存儲的格式可以直觀地反映實體間的關系。關系型數據庫和常見的表格比較相似, 關系型數據庫中表與表之間是有很多復雜的關聯關系的。常見的關系型數據庫有Oracle, Mysql, SqlServer, DB2(IBM公司的)等。在輕量或者小型的應用中, 使用不同的關系型數據庫對系統的性能影響不大, 但是在構建大型應用時, 則需要根據應用的業務需求和性能需求, 選擇合適的關系型數據庫。

2. 標準SQL語句

2.1. 雖然關系型數據庫有很多, 但是大多數都遵循SQL(結構化查詢語言, Structured Query Language)標準。常見的操作有查詢, 新增, 更新, 刪除, 求和, 排序等。

2.2. 查詢語句: SELECT param FROM table WHERE condition該語句可以理解為從table中查詢出滿足condition條件的字段param。 ?

2.3. 新增語句: INSERT INTO table (param1,?param2,?param3) VALUES (value1, value2,value3)該語句可以理解為向table中的param1, param2, param3字段中分別插入value1,value2,value3。

2.4. 更新語句: UPDATE table SET param=new_value WHERE condition該語句可以理解為將滿足condition條件的字段param更新為new_value值。 ?

2.5. 刪除語句: DELETE FROM table WHERE condition該語句可以理解為將滿足condition條件的數據全部刪除。

2.6. 去重查詢: SELECT DISTINCT param FROM table WHERE condition該語句可以理解為從表table中查詢出滿足條件condition的字段param, 但是param中重復的值只能出現一次。

2.7. 排序查詢: SELECT param FROM table WHERE condition ORDER BY param1該語句可以理解為從表table 中查詢出滿足condition條件的param,并且要按照param1升序的順序進行排序。 ?

2.8. 總體來說, 數據庫的SELECT,INSERT,UPDATE,DELETE對應了我們常用的增刪改查四種操作。

3. MySQL是最流行的關系型數據庫管理系統, 在WEB應用方面MySQL是最好的RDBMS(Relational Database Management System: 關系數據庫管理系統)應用軟件之一。

4. RDBMS即關系數據庫管理系統(Relational Database Management System)的特點:

4.1. 數據以表格的形式出現。

4.2. 每行為各種記錄名稱。

4.3. 每列為記錄名稱所對應的數據域。

4.4. 許多的行和列組成一張表單。

4.5. 若干的表單組成database。

5. RDBMS術語:

5.1. 數據庫: 數據庫是一些關聯表的集合。

5.2. 數據表: 表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。

5.3. 列: 一列(數據元素)包含了相同類型的數據。

5.4. 行: 一行(元組或記錄)是一組相關的數據。

5.5. 冗余: 存儲兩倍數據, 冗余降低了性能, 但提高了數據的安全性。

5.6. 主鍵: 主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。

5.7. 外鍵: 外鍵用于關聯兩個表。

5.8. 復合鍵: 復合鍵(組合鍵)將多個列作為一個索引鍵, 一般用于復合索引。

5.9. 索引: 使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。類似于書籍的目錄。

5.10. 參照完整性: 參照的完整性要求關系中不允許引用不存在的實體。

5.11. 實體完整性: 是關系模型必須滿足的完整性約束條件, 目的是保證數據的一致性。

6. MySQL數據庫

6.1. MySQL是一個關系型數據庫管理系統, 這種所謂的"關系型"可以理解為"表格"的概念, 一個關系型數據庫由一個或數個表格組成, 如圖所示的一個表格:

6.2. MySQL是由瑞典MySQL AB公司開發, 目前屬于Oracle公司。MySQL是一種關聯數據庫管理系統, 關聯數據庫將數據保存在不同的表中, 而不是將所有數據放在一個大倉庫內, 這樣就增加了速度并提高了靈活性。

6.3. MySQL是開源的, 目前隸屬于Oracle旗下產品。

6.4. MySQL支持大型的數據庫??梢蕴幚頁碛猩锨f條記錄的大型數據庫。

6.5. MySQL使用標準的SQL數據語言形式。

6.6. MySQL可以運行于多個系統上, 并且支持多種語言。這些編程語言包括: C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

6.7. MySQL支持大型數據庫, 支持5000萬條記錄的數據倉庫, 32位系統表文件最大可支持4GB, 64位系統支持最大的表文件為8TB。

6.8. MySQL是可以定制的, 采用了GPL協議, 你可以修改源碼來開發自己的MySQL系統。

6.9. 此外, 你也可以使用MariaDB代替, MariaDB數據庫管理系統是MySQL的一個分支, 主要由開源社區在維護, 采用GPL授權許可。開發這個分支的原因之一是: 甲骨文公司收購了MySQL后, 有將MySQL閉源的潛在風險, 因此社區采用分支的方式來避開這個風險。

6.10. MariaDB的目的是完全兼容MySQL, 包括API和命令行, 使之能輕松成為MySQL的代替品。

四. 非關系型數據庫(NoSQL)

1. NoSQL最常見的解釋是"non-relational", "Not Only SQL"也被很多人接受。NoSQL僅僅是一個概念, 泛指非關系型的數據庫, 區別于關系數據庫, 它們不保證關系數據的ACID特性。NoSQL是一項全新的數據庫革命性運動, 其擁護者們提倡運用非關系型的數據存儲, 相對于鋪天蓋地的關系型數據庫運用, 這一概念無疑是一種全新的思想的注入。

2. NoSQL數據庫種類繁多, 但是一個共同的特點都是去掉關系數據庫的關系型特性。數據之間無關系, 這樣就非常容易擴展。無形之間也在架構的層面上帶來了可擴展的能力。NoSQL數據庫都具有非常高的讀寫性能, 尤其在大數據量下, 同樣表現優秀。NoSQL數據庫適合追求速度和可擴展性、業務多變的應用場景。

3. 常見的非關系型數據庫有: Redis、Memcache、Hbase、MongoDB等。

4. 目前NoSQL數據庫仍然沒有一個統一的標準, 它現在有四種大的分類:

4.1. 鍵值對存儲(key-value): 代表軟件Redis, 它的優點能夠進行數據的快速查詢, 而缺點是需要存儲數據之間的關系。

4.2. 列存儲: 代表軟件Hbase, 它的優點是對數據能快速查詢, 數據存儲的擴展性強。而缺點是數據庫的功能有局限性。

4.3. 文檔數據庫存儲: 代表軟件MongoDB, 它的優點是對數據結構要求不特別的嚴格。而缺點是查詢性的性能不好, 同時缺少一種統一查詢語言。

4.4. 圖形數據庫存儲: 代表軟件InfoGrid, 它的優點可以方便的利用圖結構相關算法進行計算。而缺點是要想得到結果必須進行整個圖的計算, 而且遇到不適合的數據模型時, 圖形數據庫很難使用。

五. NoSQL與關系型數據庫的區別

1. 存儲方式

1.1. 傳統的關系型數據庫采用表格的儲存方式, 數據以行和列的方式進行存儲, 要讀取和查詢都十分方便。而非關系型數據不適合這樣的表格存儲方式, 通常以數據集的方式, 大量的數據集中存儲在一起, 類似于鍵值對、圖結構或者文檔。

2. 存儲結構

2.1. 關系型數據庫按照結構化的方法存儲數據, 每個數據表都必須對各個字段定義好(也就是先定義好表的結構), 再根據表的結構存入數據, 這樣做的好處就是由于數據的形式和內容在存入數據之前就已經定義好了, 所以整個數據表的可靠性和穩定性都比較高, 但帶來的問題就是一旦存入數據后, 如果需要修改數據表的結構就會十分困難。而NoSQL數據庫由于面對的是大量非結構化的數據的存儲, 它采用的是動態結構, 對于數據類型和結構的改變非常的適應, 可以根據數據存儲的需要靈活的改變數據庫的結構。

3. 存儲規范

3.1. 關系型數據庫為了避免重復、規范化數據以及充分利用好存儲空間, 把數據按照最小關系表的形式進行存儲, 這樣數據管理的就可以變得很清晰、一目了然, 當然這主要是一張數據表的情況。如果是多張表情況就不一樣了, 由于數據涉及到多張數據表, 數據表之間存在著復雜的關系, 隨著數據表數量的增加, 數據管理會越來越復雜。而NoSQL數據庫的數據存儲方式是用平面數據集的方式集中存放, 雖然會存在數據被重復存儲, 從而造成存儲空間被浪費的問題(從當前的計算機硬件的發展來看, 這樣的存儲空間浪費的問題微不足道), 但是由于基本上單個數據庫都是采用單獨存放的形式, 很少采用分割存放的方式, 所以這樣數據往往能存成一個整體, 這對于數據的讀寫提供了極大的方便。

4. 擴展方式

4.1. 當前社會和科學飛速發展, 要支持日益增長的數據庫存儲需求, 當然要求數據庫有良好的擴展性能, 并且要求數據庫支持更多數據并發量, 擴展方式是NoSQL數據庫與關系型數據庫差別最大的地方, 由于關系型數據庫將數據存儲在數據表中, 數據操作的瓶頸出現在多張數據表的操作中, 而且數據表越多這個問題越嚴重, 如果要緩解這個問題, 只能提高處理能力, 也就是選擇速度更快性能更高的計算機, 這樣的方法雖然可以拓展一定的空間, 但這樣拓展的空間是非常有限的, 也就是關系型數據庫只具備縱向擴展能力。而NoSQL數據庫由于使用的是數據集的存儲方式, 它的存儲方式一定是分布式的, 它可以采用橫向的方式來開展數據庫, 也就是可以添加更多數據庫服務器到資源池, 然后由這些增加的服務器來負擔數據量增加的開銷。

5. 查詢方式

5.1. 關系型數據庫采用結構化查詢語言(即SQL)來對數據庫進行查詢, SQL早已獲得了各個數據庫廠商的支持, 成為數據庫行業的標準, 它能夠支持數據庫的CRUD(增加, 查詢, 更新, 刪除)操作, 具有非常強大的功能, SQL可以采用類似索引的方法來加快查詢操作。NoSQL數據庫使用的是非結構化查詢語言(UnQL),它以數據集(像文檔)為單位來管理和操作數據, 由于它沒有一個統一的標準, 所以每個數據庫廠商提供產品標準是不一樣的, NoSQL中的文檔Id與關系型表中主鍵的概念類似, NoSQL數據庫采用的數據訪問模式相對SQL更簡單而精確。

6. 規范化

6.1. 在數據庫的設計開發過程中開發人員通常會面對同時需要對一個或者多個數據實體(包括數組、列表和嵌套數據)進行操作, 這樣在關系型數據庫中, 一個數據實體一般首先要分割成多個部分, 然后再對分割的部分進行規范化, 規范化以后再分別存入到多張關系型數據表中, 這是一個復雜的過程。?好消息是隨著軟件技術的發展, 相當多的軟件開發平臺都提供一些簡單的解決方法, 例如: 可以利用ORM層(也就是對象關系映射)來將數據庫中對象模型映射到基于SQL的關系型數據庫中去以及進行不同類型系統的數據之間的轉換。對于NoSQL數據庫則沒有這方面的問題, 它不需要規范化數據, 它通常是在一個單獨的存儲單元中存入一個復雜的數據實體。

7. 事務性

7.1. 關系型數據庫強調ACID規則, 原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability), 可以滿足對事務性要求較高或者需要進行復雜數據查詢的數據操作, 而且可以充分滿足數據庫操作的高性能和操作穩定性的要求。并且關系型數據庫十分強調數據的強一致性, 對于事務的操作有很好的支持。關系型數據庫可以控制事務原子性細粒度, 并且一旦操作有誤或者有需要可以馬上回滾事務。而NoSQL數據庫強調BASE原則, 基本可用(Basically Availble)、軟狀態(Soft-state)、最終一致性(Eventual Consistency), 它減少了對數據的強一致性支持, 從而獲得了基本一致性和柔性可靠性, 并且利用以上的特性達到了高可靠性和高性能, 最終達到了數據的最終一致性。NoSQL數據庫雖然對于事務操作也可以使用, 但由于它是一種基于節點的分布式數據庫, 對于事務的操作不能很好的支持, 也很難滿足其全部的需求, 所以NoSQL數據庫的性能和優點更多的體現在大數據的處理和數據庫的擴展方面。 ?

8. 讀寫性能

8.1. 關系型數據庫十分強調數據的一致性, 并為此降低讀寫性能從而付出了巨大的代價,雖然關系型數據庫存儲數據和處理數據的可靠性很不錯, 但一旦面對海量數據的處理的時候效率就會變得很差, 特別是遇到高并發讀寫的時候性能就會下降的非常厲害。 而NoSQL數據庫相對關系型數據庫優勢最大的恰恰是應對大數據方面, 也就是對于大量的每天都產生非結構化的數據能夠高性能的讀寫, 這是因為NoSQL數據庫是按key-value類型進行存儲的, 以數據集的方式存儲的, 因此無論是擴展還是讀寫都非常容易, 并且NoSQL數據庫不需要關系型數據庫繁瑣的解析, 所以NoSQL數據庫大數據管理、檢索、讀寫、分析以及可視化方面具有關系型數據庫不可比擬的優勢。

9. 授權方式

9.1. 關系型數據庫常見的有Oracle、SQLServer、DB2、Mysql, 除了Mysql大多數的關系型數據庫如果要使用都需要支付一筆價格高昂的費用, 即使是免費的Mysql性能也受到了諸多的限制。而對于NoSQL數據庫, 比較主流的有redis、HBase、MongoDb、Memcache等產品, 通常都采用開源的方式, 不需要像關系型數據庫那樣, 需要一筆高昂的花費。

六. 分布式數據庫

1. 所謂的分布式數據庫技術, 就是數據庫技術與分布式技術的一種結合。具體指的是那些在地理意義上分散開的各個數據庫節點, 在邏輯上又是屬于同一個系統的數據結合起來的一種數據庫技術。既有著數據庫間的協調性也有著數據的分布性。這個系統并不注重系統的集中控制, 而是注重每個數據庫節點的自治性, 此外為了讓程序員能夠在編寫程序時可以減輕工作量以及系統出錯的可能性, 一般都是完全不考慮數據的分布情況, 這樣的結果就使得系統數據的分布情況一直保持著透明性。

2. 在分布式數據庫里, 數據冗雜是一種被需要的特性, 這點和一般的集中式數據庫系統不一樣。第一點是為了提高局部的應用性而要在那些被需要的數據庫節點復制數據。第二點是因為如果某個數據庫節點出現系統錯誤, 在修復好之前, 可以通過操作其他的數據庫節點里復制好的數據來讓系統能夠繼續使用, 提高系統的有效性。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的001_数据库介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。