資料庫即存放資料的倉庫,按一定格式從存放。
解決檔案和程式存放在一台機器上的不合理,和更加方便的操作檔案。
程式穩定性:這樣任意一台服務所在的機器崩潰了都不會影響資料和另外的服務。
資料一致性:所有的資料都儲存在一起,搜友的程式操作的資料都是統一的,就不會出現資料一一至的現象。
併發:資料庫可以良好的支援併發,搜友的程式運算元據庫都是通過網路,而資料庫本身支援併發的網路操作,不惜要我們自己寫socket
效率:使用資料庫隊資料進行增刪改查的小路要高出我自己處理檔案很多。
在了解了資料(data)和資料庫(db)的概念後,如何科學的組織和儲存資料,如何高效獲取和維護資料成了關鍵。
這就用到了乙個系統軟體——資料庫管理系統,如mysql,oracle,sqlite,access,mssql server。
oracle主要用於銀行、鐵路、飛機場等。該資料庫功能強大,軟體費用高。也是甲骨文公司的產品。
sql server是微軟公司的產品,狐妖應用於大中型企業,如聯想、方正等。
而對資料庫管理的人員一般稱之為:資料庫管理員dba(database administrator)
記錄:1 老王 15201413111 22(多個欄位的資訊組成一條記錄,即檔案中的一行內容)
表:userinfo,studentinfo,courseinfo(即檔案)
資料庫:db(即資料夾)
資料庫管理系統:如mysql(是乙個軟體)
資料庫伺服器:一台計算機(對記憶體要求比較高)
總結:20世紀50年代中期以前,計算機主要用於科學計算。
當時的硬體水平:外存只有紙帶、卡片、磁帶,沒有磁碟等直接訪問的儲存裝置當時的軟體狀況:沒有作業系統,沒有管理資料的軟體,資料的處理方式是批處理。
人工管路資料具有以下特點:
資料不儲存:計算機主要用於科學計算,資料臨時用,臨時輸入,不儲存
應用程式管理資料:資料要有應用程式直接管理,應用程式需要處理資料的邏輯+物理結構,開發負擔很重
資料不共享:一組資料只對應乙個程式,多個程式之間涉及相同資料時,必須個自定義,造成資料的大量冗餘。
資料不具有獨立性:資料的邏輯結構或物理結構發生變化後,必須對應用程式作出相應的修改,開發負擔進一步加大。
20世紀50年代後期到60年代中期
硬體水平:有了磁碟、磁鼓等可直接訪問的儲存裝置
軟體水平:有了作業系統,並且作業系統中已經有了專門的資料管理軟體,即檔案系統;處理方式上不僅有了批處理,而且能夠聯機實時處理
檔案系統管理資料具有以下優點:
資料可以長期儲存:計算機大量用於資料處理,因而資料需要長期儲存,進行增刪改查操作
由檔案系統管理資料:檔案系統這個軟體,把資料組織成相對獨立的資料檔案,利用按檔名,按記錄進行訪問。實現了記錄內的結構性,但整體無結構。並且程式與資料之間由檔案系統提供訪問方法進行轉換,是應用程式與資料之間有了一定的獨立性,程式設計師可以不必過多考慮物理細節。
檔案系統管理資料具有以下缺點:
資料共享性差,冗餘度大:乙個檔案對應乙個應用程式,不同應用有相同資料時,也必須建立各自的檔案,不能共享相同的資料,造成資料冗餘,浪費空間,且相同的資料重複儲存,各自管理,容易造成資料不一致性
資料獨立性差:一旦資料的邏輯結構改變,必須修改應用程式,修改檔案結構的定義。應用程式的改變,也將引起檔案的資料結構的改變。因此資料與程式之間缺乏獨立性。可見,檔案系統仍然是乙個不具有彈性的無結構的資料集合,即檔案之間是孤立的,不能反映現實世界事物之間的記憶體聯絡。
20世紀60年代後期以來,計算機用於管理的規模越來越大,應用越來越廣泛,資料量急劇增長,同時多種應用,多種語言互相覆蓋地共享資料結合要求越來越強烈
硬體水平:有了大容量磁碟,硬體架構下降
軟體水平:軟體**上公升(開發效率必須提公升,必須將程式設計師從資料管理中解放出來),分布式的概念盛行。
資料庫系統的特點:
資料結構化(如上圖odboy_stu)
資料共享,冗餘度低,易擴充
資料獨立性高
資料由dbms統一管理和控制
資料的安全性保護
資料的完整性檢查
併發控制
資料庫恢復
管理資料的工具有很多種,不止mysql乙個。關於分類其實可以從各個緯度來進行劃分,但是我們最常使用的分類還是根據他們訪問資料的特點來劃分的,主要分為關係型和非關係型。
關係型資料庫需要有表結構,表與表之間有聯絡。
非關係型資料庫是key-value儲存的,沒有表結構。
關係型:如sqllite,db2,oracle,access,sql server,mysql
非關係型:mongodb(介於關係與非關係),redis,memcache
注意:sql語句通用。
硬碟:資料可以永久儲存 - mysql、mongodb
記憶體:資料的訪問效率極高 - redis、memcache
sql:資料庫操作通過sql語句
nosql:資料庫操作就是key-value形式(value就是一條記錄)
sql:
stu -
nosql:
stus - [, ]
資料庫 資料庫基礎
什麼是sql 結構化查詢語言 structtured query language sql的作用 啟動mysql.exe,連線伺服器後,就可以使用sql來操作伺服器了。類似php中操作mysql的語句就是sql語句 sql標準 由國際標準化組織 iso 制定的,對dbms 資料庫管理系統 的統一操作...
資料庫基礎 資料庫設計
一 資料庫生命週期 1.週期 需求分析,概念結構設計,邏輯設計,物理設計,系統實施,系統執行和維護。2.響應的文件 二 正規化 一般資料庫要求規範化到第三正規化,視具體需求重新調整。第一正規化 1nf 強調列的原子性,即列不能分為多列。第二正規化 2nf 關係屬於第一正規化,且每乙個非主屬性完全函式...
資料庫基礎
一.資料庫事物特徵 1.atomic 原子性 不可分割 2.consistency 一致性 參照完整 3.isolation 隔離性 防止併發 4.durability 永續性 永久儲存資料 二.事物和併發 1.併發問題 第一類丟失,髒讀,虛讀,不可重複讀,第二類丟失更新 不可重複讀的特例 2.鎖的...