数据库概述(了解数据库,当前数据库介绍,mysql数据库介绍,安装mysql数据库)
文章目錄
- 數(shù)據(jù)庫(kù)概述
- 什么是數(shù)據(jù)庫(kù)(數(shù)據(jù),表,數(shù)據(jù)庫(kù))
- 數(shù)據(jù)庫(kù)有什么作用?
- 關(guān)系數(shù)據(jù)庫(kù)詳解
- 非關(guān)系數(shù)據(jù)庫(kù)詳解
- 數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展史
- 數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)
- 當(dāng)今主流數(shù)據(jù)庫(kù)介紹
- MySQL數(shù)據(jù)庫(kù)
- MySQL商業(yè)版與社區(qū)版有什么區(qū)別?
- MySQL產(chǎn)品陣營(yíng)有哪些?
- MySQL產(chǎn)品陣營(yíng)有哪些?
- - 編譯安裝MySQL 5.7
數(shù)據(jù)庫(kù)概述
什么是數(shù)據(jù)庫(kù)(數(shù)據(jù),表,數(shù)據(jù)庫(kù))
- 數(shù)據(jù)
- 描述事物的符號(hào)記錄稱(chēng)為數(shù)據(jù)(Data)
- 包括數(shù)字,文字、圖形、圖像、聲音、檔案記錄等
- 以“記錄”形式按統(tǒng)一的格式進(jìn)行存儲(chǔ)
- 每一行,稱(chēng)為記錄
- 每一列,稱(chēng)為字段
- 表
- 將不同的記錄組織在一起,就形成了“表
- 是用來(lái)存儲(chǔ)具體數(shù)據(jù)的
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)就是表的集合,是存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)
- 以一定的組織方式存儲(chǔ)的相互有關(guān)的數(shù)據(jù)
數(shù)據(jù)庫(kù)有什么作用?
數(shù)據(jù)的持久化保存
高可靠,高可用
數(shù)據(jù)的快速提取(海量的數(shù)據(jù),便于管理數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù){比如視頻,音頻等})
關(guān)系數(shù)據(jù)庫(kù)詳解
- 關(guān)系型數(shù)據(jù)庫(kù)是依據(jù)關(guān)系模型來(lái)創(chuàng)建的數(shù)據(jù)庫(kù)。
- 所謂關(guān)系模型就是“一對(duì)一、一對(duì)多、多對(duì)多”等關(guān)系模型,關(guān)系模型就是指二維表格模型,因而一個(gè)關(guān)系型數(shù)據(jù)庫(kù)就是由二維表及其之間的聯(lián)系組成的一個(gè)數(shù)據(jù)組織。
- 關(guān)系型數(shù)據(jù)可以很好地存儲(chǔ)一些關(guān)系模型的數(shù)據(jù),比如一個(gè)老師對(duì)應(yīng)多個(gè)學(xué)生的數(shù)據(jù)(“多對(duì)多”),一本書(shū)對(duì)應(yīng)多個(gè)作者(“一對(duì)多”),一本書(shū)對(duì)應(yīng)一個(gè)出版日期(“一對(duì)一”)
實(shí)體-關(guān)系”(ER)
- 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是基于關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng),它的基本概念來(lái)自于關(guān)系模型
- 關(guān)系模型建立在關(guān)系代數(shù)的理論基礎(chǔ)上,數(shù)據(jù)結(jié)構(gòu)使用簡(jiǎn)單易懂的二維數(shù)據(jù)表,可以用簡(jiǎn)單的“實(shí)體-關(guān)系”(ER)圖來(lái)直接表示
- E-R圖中包含了實(shí)體(數(shù)據(jù)對(duì)象)、關(guān)系和屬性三個(gè)要素。例如:
- 實(shí)體:
- 也稱(chēng)為實(shí)例,對(duì)應(yīng)現(xiàn)實(shí)世界中可區(qū)別于其他對(duì)象的“事件”或“
事物”,如學(xué)生、老師等
- 也稱(chēng)為實(shí)例,對(duì)應(yīng)現(xiàn)實(shí)世界中可區(qū)別于其他對(duì)象的“事件”或“
- 屬性:
- 實(shí)體所具有的某一特性,一個(gè)實(shí)體可以有多個(gè)屬性。例如,“姓名,課程名”實(shí)體集中的每個(gè)實(shí)體均具有姓名、住址、電話等屬性
- 聯(lián)系:
- 實(shí)體集之間的對(duì)應(yīng)關(guān)系稱(chēng)為聯(lián)系,也稱(chēng)為關(guān)系。例如,學(xué)生和老師是由“課程”相連接的關(guān)系
- 所有實(shí)體及實(shí)體之間聯(lián)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)
- 關(guān)系數(shù)據(jù)庫(kù)表中會(huì)有編碼,稱(chēng)為主鍵,具有唯一,非空特性
- 關(guān)系數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)是二維表格,反映事物及其聯(lián)系的數(shù)據(jù)是以表格形式保存的
- 在每個(gè)二維表中,每一行稱(chēng)為一條記錄,用來(lái)描述一個(gè)對(duì)象的信息;每一列稱(chēng)為一個(gè)字段,用來(lái)描述對(duì)象的一個(gè)屬性
- 關(guān)系型數(shù)據(jù)庫(kù)的應(yīng)用舉例:
- 12306用戶(hù)信息系統(tǒng)
- 淘寶賬號(hào)信息系統(tǒng)、支付寶賬號(hào)系統(tǒng)移動(dòng)、電信、聯(lián)通手機(jī)號(hào)信息系統(tǒng)、計(jì)費(fèi)系統(tǒng)銀行用戶(hù)賬號(hào)系統(tǒng)
- 網(wǎng)站用戶(hù)信息系統(tǒng)
非關(guān)系數(shù)據(jù)庫(kù)詳解
-
非關(guān)系型數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)
- 數(shù)據(jù)庫(kù)高并發(fā)讀寫(xiě)的需求
- 對(duì)海量數(shù)據(jù)高效率存儲(chǔ)與訪問(wèn)
- 數(shù)據(jù)庫(kù)的高擴(kuò)展性與高可用性的需求
-
NoSQL大部分以文件形式存在
-
關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)方式
- 鍵值方式( key-value),以鍵為依據(jù)存儲(chǔ)、刪、改數(shù)據(jù)
- 列存儲(chǔ)( Column- oriented),將相關(guān)的數(shù)據(jù)存儲(chǔ)在列族中
- 文檔的方式,數(shù)據(jù)庫(kù)由一系列數(shù)據(jù)項(xiàng)組成,每個(gè)數(shù)據(jù)項(xiàng)都有名稱(chēng)與對(duì)應(yīng)的值
- 圖形方式,實(shí)體為頂點(diǎn),關(guān)系為邊,數(shù)據(jù)保存為一個(gè)圖形
-
非關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品
-
Memcached是一個(gè)開(kāi)源的、高性能的、具有分布式內(nèi)存對(duì)象的緩存系統(tǒng),以 key-value方式存儲(chǔ)數(shù)據(jù)
- 緩存數(shù)據(jù)以減輕數(shù)據(jù)庫(kù)壓力并能加快訪問(wèn)速度
- 加速動(dòng)態(tài)Web應(yīng)用
- 緩存的內(nèi)容保存在內(nèi)存中
-
redis也是一個(gè)以key-vaue方式存儲(chǔ)數(shù)據(jù)的,數(shù)據(jù)也是保存在內(nèi)存中,但會(huì)定期將數(shù)據(jù)寫(xiě)入磁盤(pán)中
- 相對(duì)于 Memcached有以下特點(diǎn)
- 支持內(nèi)存緩存
- 支持持久化
- 數(shù)據(jù)類(lèi)型更多
- 支持集群、分布式
- 支持隊(duì)列
- 相對(duì)于 Memcached有以下特點(diǎn)
-
數(shù)據(jù)庫(kù)的日志文件用來(lái)做恢復(fù),oracle日志稱(chēng)為重做日志組
-
例如:
-
阿里oss對(duì)象存儲(chǔ)采用oracle重做日志組思想,
阿里oss數(shù)據(jù)一式三份,是盤(pán)古系統(tǒng)
Redis有一個(gè)中繼日志(二進(jìn)制日志)
-
-
Redis應(yīng)用舉例
- 數(shù)據(jù)庫(kù)前端緩存
- session共享
- 當(dāng)需要緩存除了key/value之外的更多數(shù)據(jù)類(lèi)型時(shí)
- 當(dāng)緩存的數(shù)據(jù)需要長(zhǎng)久保存
-
數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展史
- 第一代數(shù)據(jù)庫(kù)
- 自20世紀(jì)60年代起,第一代數(shù)據(jù)庫(kù)系統(tǒng)問(wèn)世。它們是層次模型與網(wǎng)狀模型的數(shù)據(jù)庫(kù)系統(tǒng),為統(tǒng)一管理和共享數(shù)據(jù)提供了有力的支撐
- 第二代數(shù)據(jù)庫(kù)
- 20世紀(jì)70年代初,第二代數(shù)據(jù)庫(kù)–關(guān)系數(shù)據(jù)庫(kù)開(kāi)始出現(xiàn)
- 20世紀(jì)80年代初,IBM公司的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)DB2問(wèn)世,作為第二代數(shù)據(jù)庫(kù)系統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),開(kāi)始逐步取代層次與網(wǎng)狀模型的數(shù)據(jù)庫(kù),成為占主導(dǎo)地位的數(shù)據(jù)庫(kù),成為行業(yè)主流。
- 到目前為止,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)仍占領(lǐng)數(shù)據(jù)庫(kù)應(yīng)用的主要地位
- 第三代數(shù)據(jù)庫(kù)
- 自20世紀(jì)80年代開(kāi)始,各種適應(yīng)不同領(lǐng)域的新型數(shù)據(jù)庫(kù)系統(tǒng)不斷涌現(xiàn),如工程數(shù)據(jù)庫(kù),多媒體數(shù)據(jù)庫(kù),圖形數(shù)據(jù)庫(kù),智能數(shù)據(jù)庫(kù),分布式數(shù)據(jù)庫(kù)及面向?qū)ο髷?shù)據(jù)庫(kù)等,特別是面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng),由于其實(shí)用性強(qiáng),適應(yīng)面廣而受到人們的青睞
- 20世紀(jì)90年代后期,形成了多種數(shù)據(jù)庫(kù)系統(tǒng)共同支撐應(yīng)用的局面
- 當(dāng)然,在商務(wù)應(yīng)用方面,依然還是關(guān)系數(shù)據(jù)庫(kù)占主流,不過(guò),已經(jīng)有一些新的元素被添加進(jìn)主流商務(wù)數(shù)據(jù)庫(kù)系統(tǒng)中。
- 例如,Oracle支持的“關(guān)系-對(duì)象”數(shù)據(jù)庫(kù)模型
數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)
是實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)資源的有效組織,管理和存儲(chǔ)的系統(tǒng)軟件
數(shù)據(jù)庫(kù)系統(tǒng)
是人機(jī)系統(tǒng),由硬件,os,數(shù)據(jù)庫(kù)。BDMS,應(yīng)用數(shù)據(jù)用戶(hù)組成
用戶(hù)可以通過(guò)DBMS或應(yīng)用程序操作數(shù)據(jù)庫(kù)
當(dāng)今主流數(shù)據(jù)庫(kù)介紹
- MySQL(甲骨文公司收購(gòu))
- 免費(fèi),開(kāi)源,體積小 (MariaDB數(shù)據(jù)庫(kù)管理系統(tǒng)是MySQL的一個(gè)分支 mariaDB)
- sql server(微軟公司產(chǎn)品)
- 面向Windows操作系統(tǒng)
- 簡(jiǎn)單,易用
- access(微軟公司產(chǎn)品)
- 面向Windows操作系統(tǒng)
- 是Microsoft office套件應(yīng)用程序的成員
- oracle(甲骨文公司產(chǎn)品)
- 面向所有主流平臺(tái)
- 安全,完善,操作復(fù)雜
- db2(IBM公司)
- 面向所有主流平臺(tái)
- 大型,安全,完善
- sybase(Sybase公司)
- 面向所有主流平臺(tái)
- 大型,安全,完善
- 全球最大
MySQL數(shù)據(jù)庫(kù)
- MySQL是一款深受歡迎的開(kāi)元關(guān)系型數(shù)據(jù)庫(kù)
- oracle旗下的產(chǎn)品
- 遵守了GPL協(xié)議,可以免費(fèi)使用與修改
- 特點(diǎn)
- 性能卓越,服務(wù)穩(wěn)定
- 開(kāi)源,無(wú)版權(quán)限制,成本低
- 多線程,多用戶(hù)
- 給予C/S(客戶(hù)端/服務(wù)器)架構(gòu)
- 安全可靠
MySQL商業(yè)版與社區(qū)版有什么區(qū)別?
- MySQL商業(yè)版是由MySQL AB公司負(fù)責(zé)開(kāi)發(fā)與維護(hù),需要付費(fèi)才能使用
- MySQL社區(qū)版是由分散在世界各地的MySQL開(kāi)發(fā)者,愛(ài)好者一起開(kāi)發(fā)與維護(hù),可以免費(fèi)使用
- 兩者區(qū)別
- 商業(yè)版組織管理與測(cè)試環(huán)節(jié)更加嚴(yán)格,穩(wěn)定性更好
- 商業(yè)版不遵守GPL
- 商業(yè)版可獲得7*24小時(shí)的服務(wù),如故障維護(hù)與打補(bǔ)丁等
MySQL產(chǎn)品陣營(yíng)有哪些?
-
第一陣營(yíng):5.0-5.1,可說(shuō)是早期產(chǎn)品的延續(xù)
-
第二陣營(yíng):5.4-5.7陣營(yíng),更好的整合了MySQL AB公司,社區(qū),第三方公司開(kāi)的存儲(chǔ)引擎,從而提高性能
-
兩者區(qū)別
- 商業(yè)版組織管理與測(cè)試環(huán)節(jié)更加嚴(yán)格,穩(wěn)定性更好
- 商業(yè)版不遵守GPL
- 商業(yè)版可獲得7*24小時(shí)的服務(wù),如故障維護(hù)與打補(bǔ)丁等
MySQL產(chǎn)品陣營(yíng)有哪些?
- 第一陣營(yíng):5.0-5.1,可說(shuō)是早期產(chǎn)品的延續(xù)
- 第二陣營(yíng):5.4-5.7陣營(yíng),更好的整合了MySQL AB公司,社區(qū),第三方公司開(kāi)的存儲(chǔ)引擎,從而提高性能
- 第三陣營(yíng):6.0-7.1陣營(yíng),就是MySQL cluster版本,為適應(yīng)新時(shí)代集群對(duì)數(shù)據(jù)庫(kù)的需求而開(kāi)發(fā)
- 編譯安裝MySQL 5.7
解壓源碼包
[root@localhost opt]# tar zxvf mysql-5.7.17.tar.gz [root@localhost opt]# tar zxvf boost_1_59_0.tar.gz -C /usr/local/ [root@localhost opt]# cd /usr/local/ [root@localhost local]# ll 總用量 4 drwxr-xr-x. 2 root root 6 4月 11 2018 bin drwx------. 8 501 games 4096 8月 12 2015 boost_1_59_0 drwxr-xr-x. 2 root root 6 4月 11 2018 etc drwxr-xr-x. 2 root root 6 4月 11 2018 games drwxr-xr-x. 2 root root 6 4月 11 2018 include drwxr-xr-x. 2 root root 6 4月 11 2018 lib drwxr-xr-x. 2 root root 6 4月 11 2018 lib64 drwxr-xr-x. 2 root root 6 4月 11 2018 libexec drwxr-xr-x. 2 root root 6 4月 11 2018 sbin drwxr-xr-x. 5 root root 49 7月 15 19:44 share drwxr-xr-x. 2 root root 6 4月 11 2018 src重新命名
[root@localhost local]# mv boost_1_59_0/ boost安裝環(huán)境
[root@localhost opt]# yum -y install ncurses ncurses-devel bison cmake gcc gcc-c++創(chuàng)建用戶(hù)
[root@localhost local]# useradd -s /sbin/nologin mysql編譯安裝
[root@localhost opt]# cd /opt/mysql-5.7.17/[root@localhost mysql-5.7.17]# 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_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=/usr/local/boost \ -DWITH_SYSTEMD=1[root@localhost mysql-5.7.17]# make && make install[root@localhost mysql-5.7.17]# chown -R mysql.mysql /usr/local/mysql配置文件修改
[root@localhost opt]# vim /etc/my.cnf [client] port = 3306 default-character-set=utf8 socket = /usr/local/mysql/mysql.sock[mysql] port = 3306 default-character-set=utf8 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 server-id = 1sql_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設(shè)置環(huán)境變量
[root@localhost opt]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH'>>/etc/profile[root@localhost opt]# echo 'export PATH'>>/etc/profile[root@localhost opt]# source /etc/profile初始化數(shù)據(jù)庫(kù)
[root@localhost opt]# cd /usr/local/mysql/[root@localhost mysql]# bin/mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/數(shù)據(jù)庫(kù)開(kāi)啟并查看服務(wù)
[root@localhost system]# systemctl start mysqld[root@localhost system]# systemctl enable mysqld[root@localhost system]# systemctl status mysqld[root@localhost system]# netstat -antp | grep mysqld tcp6 0 0 :::3306 :::* LISTEN 21684/mysqld添加數(shù)據(jù)庫(kù)的管理員密碼
[root@localhost etc]# mysqladmin -u root -p password "123123" Enter password: mysqladmin: [Warning] Using a password on the command line interface can be insecure. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.進(jìn)入數(shù)據(jù)庫(kù)
[root@localhost mysql]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.17 Source distributionCopyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec總結(jié)
以上是生活随笔為你收集整理的数据库概述(了解数据库,当前数据库介绍,mysql数据库介绍,安装mysql数据库)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Tomcat服务安装与部署(安装与优化)
- 下一篇: ·MySQL数据库管理(SQL操作命令,