1. 程式人生 > 其它 >5篇關於3D 卷積的最新論文推薦

5篇關於3D 卷積的最新論文推薦

Mysql資料庫介紹

1.什麼是資料庫

資料庫(Database)是按照資料結構來組織、儲存和管理資料的倉庫。

每個資料庫都有一個或多個不同的 API 用於建立,訪問,管理,搜尋和複製所儲存的資料。

我們也可以將資料儲存在檔案中,但是在檔案中讀寫資料速度相對較慢。

所以,現在我們使用關係型資料庫管理系統(RDBMS)來儲存和管理大資料量。所謂的關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。

RDBMS 即關係資料庫管理系統(Relational Database Management System)的特點:

  • 1.資料以表格的形式出現
  • 2.每行為各種記錄名稱
  • 3.每列為記錄名稱所對應的資料域
  • 4.許多的行和列組成一張表單
  • 5.若干的表單組成database

RDBMS 術語

在我們開始學習MySQL 資料庫前,讓我們先了解下RDBMS的一些術語:

  • 資料庫: 資料庫是一些關聯表的集合。
  • 資料表: 表是資料的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
  • 列: 一列(資料元素) 包含了相同型別的資料, 例如郵政編碼的資料。
  • 行:一行(=元組,或記錄)是一組相關的資料,例如一條使用者訂閱的資料。
  • 冗餘:儲存兩倍資料,冗餘降低了效能,但提高了資料的安全性。
  • 主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢資料。
  • 外來鍵:外來鍵用於關聯兩個表。
  • 複合鍵:複合鍵(組合鍵)將多個列作為一個索引鍵,一般用於複合索引。
  • 索引:使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄。
  • 參照完整性: 參照的完整性要求關係中不允許引用不存在的實體。與實體完整性是關係模型必須滿足的完整性約束條件,目的是保證資料的一致性。

MySQL 為關係型資料庫(Relational Database Management System), 這種所謂的"關係型"可以理解為"表格"的概念, 一個關係型資料庫由一個或數個表格組成, 如圖所示的一個表格:

  • 表頭(header): 每一列的名稱;
  • 列(col): 具有相同資料型別的資料的集合;
  • 行(row): 每一行用來描述某條記錄的具體資訊;
  • 值(value): 行的具體資訊, 每個值必須與該列的資料型別相同;
  • 鍵(key): 鍵的值在當前列中具有唯一性且不能為NULL。

MySQL 教程 | 菜鳥教程 (runoob.com)

1.1 關係型資料庫與非關係型資料庫

NoSQL,指的是非關係型的資料庫。NoSQL 有時也稱作 Not Only SQL(意即"不僅僅是SQL") 的縮 寫,其顯著特點是不使用SQL作為查詢語言,資料儲存不需要特定的表格模式。

關係型資料庫,儲存的格式可以直觀地反映實體間的關係。關係型資料庫和常見的表格比較相似,關係型資料庫中表與表之間是有很多複雜的關聯關係的。

兩者區別

儲存方式

傳統的關係型資料庫採用表格的儲存方式, 資料以行和列的方式進行儲存,要讀取和查詢都十分方便。

非關係型資料不適合這樣的表格儲存方式,通常以資料集的方式,大量的資料集中儲存在一起,類似於鍵值對、圖結構或者文件。

儲存結構

關係型資料庫按照結構化的方法儲存資料, 每個資料表都必須對各個欄位定義好(也就是先定義好表的結構),再根據表的結構存入資料,這樣做的好處就是由於資料的形式和內容在存入資料之前就已經定義好了,所以整個資料表的可靠性和穩定性都比較高,但帶來的問題就是一旦存入資料後,如果需要修改資料表的結構就會十分困難。

NoSQL資料庫由於面對的是大量非結構化的資料的儲存,它採用的是動態結構,對於資料型別和結構的改變非常的適應,可以根據資料儲存的需要靈活的改變資料庫的結構。

儲存規範

關係型資料庫為了避免重複、規範化資料以及充分利用好儲存空間,把資料按照最小關係表的形式進行儲存,這樣資料管理的就可以變得很清晰、一目瞭然,當然這主要是一張資料表的情況。如果是多張表情況就不一樣了,由於資料涉及到多張資料表,資料表之間存在著複雜的關係,隨著資料表數量的增加,資料管理會越來越複雜。

NoSQL資料庫的資料儲存方式是用平面資料集的方式集中存放,雖然會存在資料被重複儲存,從而造成儲存空間被浪費的問題(從當前的計算機硬體的發展來看,這樣的儲存空間浪費的問題微不足道),但是由於基本上單個數據庫都是採用單獨存放的形式,很少採用分割存放的方式,所以這樣資料往往能存成一個整體,這對於資料的讀寫提供了極大的方便。

擴充套件方式

當前社會和科學飛速發展,要支援日益增長的資料庫儲存需求當然要求資料庫有良好的擴充套件效能,並且要求資料庫支援更多資料併發量,擴充套件方式是NoSQL資料庫與關係型資料庫差別最大的地方。

由於關係型資料庫將資料儲存在資料表中,資料操作的瓶頸出現在多張資料表的操作中,而且資料表越多這個問題越嚴重,如果要緩解這個問題,只能提高處理能力,也就是選擇速度更快效能更高的計算機,這樣的方法雖然可以一定的拓展空間,但這樣的拓展空間一定有非常有限的,也就是關係型資料庫只具備縱向擴充套件能力

而NoSQL資料庫由於使用的是資料集的儲存方式,它的儲存方式一定是分散式的,它可以採用橫向的方式來開展資料庫,也就是可以新增更多資料庫伺服器到資源池,然後由這些增加的伺服器來負擔資料量增加的開銷。

查詢方式

關係型資料庫採用結構化查詢語言(即SQL)來對資料庫進行查詢,SQL早已獲得了各個資料庫廠商的支援,成為資料庫行業的標準,它能夠支援資料庫的CRUD(增加,查詢,更新,刪除)操作,具有非常強大的功能,SQL可以採用類似索引的方法來加快查詢操作。

NoSQL資料庫使用的是非結構化查詢語言(UnQL),它以資料集(像文件)為單位來管理和操作資料,由於它沒有一個統一的標準,所以每個資料庫廠商提供產品標準是不一樣的,NoSQL中的文件Id與關係型表中主鍵的概念類似,NoSQL資料庫採用的資料訪問模式相對SQL更簡單而精確。

規範化

在資料庫的設計開發過程中開發人員通常會面對同時需要對一個或者多個數據實體(包括陣列、列表和巢狀資料)進行操作,這樣在關係型資料庫中,一個數據實體一般首先要分割成多個部分,然後再對分割的部分進行規範化,規範化以後再分別存入到多張關係型資料表中,這是一個複雜的過程。好訊息是隨著軟體技術的發展,相當多的軟體開發平臺都提供一些簡單的解決方法,例如,可以利用ORM層(也就是物件關係對映)來將資料庫中物件模型對映到基於SQL的關係型資料庫中去以及進行不同型別系統的資料之間的轉換。

NoSQL資料庫則沒有這方面的問題,它不需要規範化資料,它通常是在一個單獨的儲存單元中存入一個複雜的資料實體。

事務性

關係型資料庫強調ACID規則(原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability)),可以滿足對事務性要求較高或者需要進行復雜資料查詢的資料操作,而且可以充分滿足資料庫操作的高效能和操作穩定性的要求。並且關係型資料庫十分強調資料的強一致性,對於事務的操作有很好的支援。關係型資料庫可以控制事務原子性細粒度,並且一旦操作有誤或者有需要,可以馬上回滾事務。

NoSQL資料庫強調BASE原則(基本可用(Basically Available)、軟狀態(Soft-state)、最終一致性(Eventual Consistency)),它減少了對資料的強一致性支援,從而獲得了基本一致性和柔性可靠性,並且利用以上的特性達到了高可靠性和高效能,最終達到了資料的最終一致性。NoSQL資料庫雖然對於事務操作也可以使用,但由於它是一種基於節點的分散式資料庫,對於事務的操作不能很好的支援,也很難滿足其全部的需求,所以NoSQL資料庫的效能和優點更多的體現在大資料的處理和資料庫的擴充套件方面。

讀寫效能

關係型資料庫十分強調資料的一致性,併為此降低讀寫效能付出了巨大的代價,雖然關係型資料庫儲存資料和處理資料的可靠性很不錯,但一旦面對海量資料的處理的時候效率就會變得很差,特別是遇到高併發讀寫的時候效能就會下降的非常厲害。

NoSQL資料庫相對關係型資料庫優勢最大的恰恰是應對大資料方面,也就是對於大量的每天都產生非結構化的資料能夠高效能的讀寫,這是因為NoSQL資料庫是按key-value型別進行儲存的,以資料集的方式儲存的,因此無論是擴充套件還是讀寫都非常容易,並且NoSQL資料庫不需要關係型資料庫繁瑣的解析,所以NoSQL資料庫大資料管理、檢索、讀寫、分析以及視覺化方面具有關係型資料庫不可比擬的優勢。

資料庫(電子化的檔案櫃)_百度百科 (baidu.com)

1.2 關係型資料庫與非關係型資料庫典型代表

SQL:MariaDB、MySQL、SQLite、SQLServer、Oracle、PostgreSQL。

NoSQL代表:Redis、MongoDB、Memcache、HBASE。

2. Mysql資料庫的編譯安裝

以安裝mysql5.7.20為例:

1.原始碼包下載

https://downloads.mysql.com/archives/get/file/mysql-boost-5.7.20.tar.gz
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz

將下載的安裝包放入/opt目錄
2.安裝步驟

1、安裝Mysql環境依賴包
yum -y install ncurses ncurses-devel bison cmake pcre-devel zlib-devel gcc gcc-c++ make

2、建立執行使用者
useradd -M -s /sbin/nologin  mysql

3、編譯安裝
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz

cd /opt/mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

#使用4核編譯安裝,j後的值按照分配的cpu核數配置,編譯速度與CPU效能有關
make -j4 && make install   

4、修改mysql 配置檔案
vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

5、更改mysql安裝目錄和配置檔案的屬主屬組
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

6、設定路徑環境變數
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile

7、初始化資料庫
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

8、新增mysqld系統服務
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

9、修改mysql 的登入密碼
mysqladmin -u root -p password "abc123"

10、授權遠端登入
mysql -u root -p

mysql>grant all privileges on *.* to 'root'@'%' identified by 'abc123';

實際操作

1.安裝依賴環境

2.建立執行使用者

3.編譯安裝


4.修改mysql配置檔案

5.更改mysql安裝目錄和配置檔案的屬主屬組

6.設定路徑環境變數

7.初始化資料庫

8.新增mysql系統服務,將mysql加入開機啟動,並啟動mysql服務。

9.配置root使用者登入密碼為abc123

10.登入mysql,使用abc123登入root使用者。