開發(fā)網站報價方案/百度推廣登錄官網入口
目錄
1.什么是數據庫?
2.數據庫與文件系統(tǒng)的區(qū)別?
3.常見的數據庫由那些?
4.關系型數據庫(MySQL)的特征及組成結構介紹
1.什么是數據庫?
數據:描述事物的符號記錄,可以是數字,文字,圖形,聲音,語言等多種形式,他們都可以經過數字化后存入計算機
數據庫:存儲數據的倉庫,是長期存放在計算機內,有組織,可共享的大量 數據集合。數據庫中的數據按照一定數據模型組織,描述和存儲,具有較小的冗余度,較高的獨立性和易擴展性,并為各種用戶共享。總結為一下幾點
- 數據結構化
- 數據的共享性,冗余度低,易擴充
- 數據獨立性高
- 數據由DBMS統(tǒng)一管理和控制(安全性,完整性,并發(fā)控制,故障恢復)解釋:DBMS數據庫管理系統(tǒng) (能夠操作和管理數據庫的大型軟件)
2.數據庫與文件系統(tǒng)的區(qū)別?
文件系統(tǒng):文件系統(tǒng)是操作系統(tǒng)用于明確存儲設備(常見的是磁盤)或分區(qū)上的文和數據結構;即在存儲設備上組織文件的方法。操作系統(tǒng)中負責管理和存儲文件信息的軟件機構稱為文件管理系統(tǒng),簡稱為文件系統(tǒng)
數據庫系統(tǒng):數據庫管理系統(tǒng)(DMS) 是一種操縱和管理數據庫的大型軟件,用于建立,使用和維護數據庫,簡稱DBMS.他對數據庫進行統(tǒng)一的管理和控制,以保證數據庫的安全性和完整性。
對比和區(qū)別:
1.管理對象不同:文件系統(tǒng)的管理對象是文件,并非直接對數據進行管理,不同的數據結構需要使用不同的文件類進行保存(例如:txt文件和doc 文件不能通過修改文件名稱完成轉換)而數據庫直接對數據進行存儲和管理
2.存儲方式不同:文件系統(tǒng)使用不同的文件將數據分類(.doc/.mp4/.jpg)保存在外部存儲上;數據庫系統(tǒng)使用標準統(tǒng)一的數據類型進行數據保存(字母 數字 符號 時間)
3.調試數據的方式不同:文件系統(tǒng)使用不同軟件打開不同類型的文件;數據庫系統(tǒng)由DBMS統(tǒng)一調用和管理。如下圖
?優(yōu)缺點總結:
- 由于DBMS 的存在,用戶不在需要了解數據存儲和其他實現的細節(jié),直接通過DBMS就能獲取數據,為數據的使用帶來極大的便利
- 具有以數據為單位的共享性,具有數據的并發(fā)訪問能力。DBMS保證了在訪問時數據的一致性。
- 低延時訪問,典型例子就是線下支付系統(tǒng)的應用,支付規(guī)模局的的時候,數據庫系統(tǒng)的表現遠遠優(yōu)于文件系統(tǒng)
- 能夠較為頻繁的對數據進行修改,在需要頻繁修改數據的場景下,數據庫系統(tǒng)可以依賴DBMS來對數據進行操作且對性能的消耗相比文件系統(tǒng)比較小
- 對事物的支持。DBMS支持事務,即一系列對數據的操作集合要么都完成,要么不完成。在DBMS上對數據的各種操作都是原子級的?
3.常見的數據庫由那些?
關系型數據庫
? ? ? ? 關系數據庫是建立在關系模型基礎上的數據庫,借助于集合代數等數學概念和方法來處理數據庫中的數據?,F實世界中的各種實體以及實體之間的各種聯系均用關系模型來表示。簡單的來說關系型數據庫由多張能互相聯系的二維行列表組成的數據庫。
? ? ? ? 關系模型 就是指二維表格模型,因而一個關系型數據庫就是由二維表及其之間的聯系組成的一個數據組織。當前主流的關系數據庫有Oracle,DB2,Microsoft SQL Server,Microsoft Acess,MySQL,浪潮 K-DB 等
? ? ? ? 實體關系模型 簡稱 E-R 模型,是一套數據庫設計的工具,它運用真實世界種事物與關系的觀念,來解釋稅局庫中的抽象的數據架構。實體關系模型利用圖形的方式(實體-關系圖)來表示數據庫的概念設計,有助于設計過程中的構思及溝通討論 ?
非關系型數據庫
? ? ? ? 非關系型數據庫:又稱為NoSQL (Not Only SQL ),意為不僅僅是SQL 是一種輕量,開源,不兼容 SQL 功能的數據庫,對NoSQL 最普遍的定義為“非官聯型的” 強調Key-Value 存儲和文檔數據庫的優(yōu)點,而不是單純的地反對RDBMS (關系型數據庫管理系統(tǒng))?
4.關系型數據庫(MySQL)的特征及組成結構介紹
關系型數據庫的發(fā)展歷程
1.層次模型
2.網狀模型
關系模型
? ? ? ? ?關系模型以二維標結構來表示實體與實體之間的聯系,關系模型的數據結構是一個“二維表框架” 組成的集合。每一個二維表又可稱為關系。在關系模型中,操作的對象和結果都是二維表。
? ? ? ? 關系模型是目前最流行的數據庫模型。支持關系模型的數據庫管理系統(tǒng)稱為關系數據庫管理系統(tǒng),Access就是一種關系數據管理系統(tǒng)。圖所示為一個簡單的關系模型,其中圖(a)所示為關系模式,圖(b)所示為這兩個關系模式型的關系,關系名稱分為教師關系和課程關系,每個關系均含3個元組,其主碼均為“教師編號”。
?
?在關系模型中基本數據結構是二維表,不想層次或網狀那樣的連接指針。記錄之間的聯系是通過不同關系哦中同名屬性來體現的。關系模型中的各個關系模式不是應當孤立的,也不是隨意拼湊的一堆二維表,它必須滿足相應的要求。
關系式數據庫的組成結構和名詞解釋
? ? ? ? 數據以表格的形式出現,每行為單獨的一條記錄,每列為一個單獨的字段,許多的記錄和字段組成一張表(table) 若干的表單組成庫(database)
- 記錄(一條數據) 在數據庫當中,表當中的行稱為記錄
- 字段 (id name .......)? ? 在數據庫當中,表當中的稱之為字段。
- MySQL 數據類型? ? ? ?
? ? ? ? 數據類型用于指定特殊字段所包含數據的規(guī)則,它決定了數據保存在字段里的方式,包括分配給字段的寬度,以及值是否可以是字母,數字,日期,和時間等。任何數據或數據的組合都對于的數據類型,用于存儲字母,數字,日期和時間,圖像,二進制數據等。數據類型是數據本身的特征,其特性被設置到表里面的字段。
? ? ? ? MySQL 常見基礎數據類型?
? ? ? ? ? ? ? ? 1.字符串類型 (CHAR (0-255 固定長度)VARCHAR(0-255可變長度))
? ? ? ? ? ? ? ? 2.數值類型(INT(整數型)FLOATI(浮點型))
? ? ? ? ? ? ? ? 3.日期和時間類型(DATE(年月日),TIME(時分秒))
- MySQL 約束類型?
? ? ? ? 約束是一種限制,它通過對表的行或列的數據做出限制,來確保表的數據的完整性,唯一性。
1.主鍵約束?primary key 主鍵約束相當于唯一約束+飛空約束的組合,主鍵約束不允許重復,也不預序出現空值。每個表最多只允許一個主鍵,建立主鍵約束可以在列表級別創(chuàng)建,也可以在表示級別創(chuàng)建。當創(chuàng)建主鍵的約束時,系統(tǒng)默認會在所有的列列組合上建立對應的唯一索引。
2.外鍵約束? foregin key 外鍵約束時保證一個或兩個表之間的參照完整性,外鍵時構建于一個表的兩個字段或是兩個表的兩個字段之間的參照關系
3.唯一約束 unique 唯一約束是指table 表的列或列表不能重復,保證數據的唯一性。唯一性約束不允許出現重復的值,但是可以為多個null.同一個表可以又多個唯一約束,多個列表組合的約束。在創(chuàng)建唯一約束時,如果不給唯一約束名稱,就默認和列名相同。唯一約束不僅可以在一個表內創(chuàng)建,而且可以同時多表創(chuàng)建組合唯一約束。
4.非空約束 not null 與默認值 default :? 非空約束用于確保當前列的值不為空值,非空約束只能出現在表對象的列上。Null 類型特征:所有的類型的值都可以時null 包括 int float 等數據類型。?
- MySQL 索引??
? ? ? ? ? ? ? ? 索引是一個單獨的,物理的數據庫結構,它是某一個字段或若干字段的集合。表的存儲由兩部分組成,一部分用來存放數據,另一部分存放索引頁面。通常,索引頁面相對于數據頁面來說小的多。數據檢索花費的大部分開銷是磁盤讀寫,沒有索引就需要從磁盤上讀表的每一個數據頁,如果有索引,則只需查找索引頁面就可以了。所以建立合理的索引,就能加速數據的檢索過程。
- MySQL 鎖??
????????數據庫是一個多用戶的共享資源。當多個用戶并發(fā)地存取數據時,在數據庫中就會產生多個事物同時存取同一數據地情況。若對并發(fā)操作不加控制就可能會讀取和存儲不正確地數據,破環(huán)數據庫地一致性。
? ? ? ? 加鎖是實現數據庫并發(fā)控制地一個非常重要的技術。當事物在對某個數據對象進行操作前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事物就對該數據對象有了一定的控制,在該事務釋鎖之前,其他事物不能對此數據對象進行更新操作。?
- MySQL 的存儲引擎
? ? ? ? 存儲引擎就是存儲數據,建立索引,更新查詢數據等等技術的實現方式。存儲引擎是基于表的,而不是基于庫的。所以存儲引擎頁可以被稱為表類型。Oracle,SqlServer 等數據庫只有一種存儲引擎。MySQL提供了插件式的存儲引擎架構。所以MySQL 存在多種存儲引擎。可以根據需要使用相應引擎,或者編寫存儲引擎。
MYISAM:默認引擎,插入和查詢速度較快,支持全文索引,不支持事務,行級鎖和外鍵約束等功能。
INNODB: 支持事物,行級鎖和外鍵約束等功能
MEMORY: 工作在內存中,通過散列字段保存數據,速度快,不能永久保存數據
- 事務?(Transaction) 是并發(fā)控制的基本單位?
? ? ? ? 可以把一系列要執(zhí)行的操作稱為事務,而事務管理就是管理這些操操作要么完全執(zhí)行,要么完全不執(zhí)行
? ? ? ? 經典案例:銀行轉賬工作,從一個賬號扣款?并使另一個賬號增款,這兩個操作要么都執(zhí)行,要么都不執(zhí)行。所以,應該把他們看成一個事務。事務是數據庫維護數據一致性的單位,在每個事務結束時,都能保存數據的一致性。
注意:mysql 中并不是所有的數據引擎都支持事務管理的,只有 innodb 支持事務管理。