數據的組織結構
層次型
網狀型
關係型
使用DBMS的優點
1,數據管理獨立性;
2,有效的完成數據存取;
3,保證數據完整性和安全性;
4,數據的集中管理;
5,併發存儲與故障恢復;
6,減少應用程序開發時間;
數據庫管理系統(DBMS)設計的目標
爲了解決:
1,數據的冗餘和不一致;
2,數據訪問困難;
3,數據孤立;
4,數據完整性問題;
5,數據原子性問題;
6,併發訪問問題;
7,安全性問題;
DBMS的組件
1,分析器;
2,計劃執行器;
3,優化器;
4,文件的存取方法;
5,緩存器;
6,磁盤空間管理器;
7,故障恢復管理器;
8,事務管理器;
9,鎖管理器;
RDMBS:Relational Database Management System,關係型數據庫系統,主要完成的操作有:
1,數據庫創建、刪除和修改;
2,表的創建、刪除和修改;
3,索引的創建和刪除;
4,用戶和權限的管理;
5,數據的增刪改;
6,數據查詢;
常見的RDBMS軟件:egreSQL,Oracle,Sybase,Infomix,SQL Server,MySQL,PostgreSQL,pgSQL,EnterpriseDB,DB2,PerconaSQL;
常見的NoSQL(非關係型數據庫):MongoDB,Redis,HBase;
事務:是數據庫管理系統執行過程中的一個邏輯單位,由一個有限的數據庫操作序列構成;一個數據庫事務通常包含了一個序列的對數據庫的讀和寫操作;
事務的四個特性(ACID)
1,原子性(Atomicity):事務被作爲一個整體執行,包含在其中的對數據庫的操作要麼全部執行,要麼都不執行;事務在執行過程中發生錯誤,會被回滾到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
2,一致性(Consistency):在事務開始之前和事務結束之後,數據庫的完整性沒有被破壞;這表示寫入的資料必須完全符合所有的默認規則,包括資料的精確度、串聯性以及後續數據可以自發性地完成預定的工作;
3,隔離性(Isolation):兩個或多個事務併發訪問(查詢和修改)數據庫的同一個數據時所表現出來的相互關係,即一個事務的執行不應影響其他事務的執行;事務隔離分爲未提交、讀提交、可重複讀和串行化幾個級別;
4,持久性(Durability):在事務完成後,該事務對數據庫所作的更改便持久且完全的保存在數據庫中;
關係型數據庫的對象
1,庫
2,表
3,視圖
4,索引
5,事務
6,用戶
7,存儲過程
8,存儲函數
9,觸發器
10,遊標
11,事件調度器
存儲引擎:將邏輯層的操作轉換爲物理機制,並負責完成物理層上的操作;
MySQL常用的存儲引擎:MyISAM,InnoDB;
MySQL:MySQL是一個關係型數據庫系統,由MySQL AB公司開發,先手被Sun和Oracle收購,是目前最爲流行的RDBMS之一;
官方站點:http://www.mysql.com/;
MySQL的官方下載地址:http://dev.mysql.com/downloads/mysql/;
MySQL搜狐鏡像的下載地址:http://mirrors.sohu.com/mysql/;
MySQL community相關軟件的說明
MySQL Community Server mysql客戶端和服務器整合起來的核心包;
MySQL Cluster 提供Mysql集羣功能的程序包,但其極少使用;
MySQL Workbench 輔助設計mysql數據庫的程序,如幾張表,哪些字段等;
MySQL Utilities MySQL工具組件,主要用於管理和維護MySQL;
MySQL Proxy MySQL的中間件,代理接收發往MySQL數據庫的請求,將需要求路由至不同的後端主機上去;
MySQL Connectors MySQL的連接器,程序連接MySQL的驅動;
MySQL Benchmark Tool 對MySQL進行壓力測試的工具;
MySQL rpm包的功能
mysql.i386 mysql的客戶端;
mysql-server.i386 mysql的服務器端;
mysql-connector-odbc.i386 mysql的鏈接器;
mysql-test mysql的測試組件;
mysql-bench mysql的性能測試組件;
php5-mysql php訪問mysql的驅動;
MySQL的安裝方式(Linux系統)
1,源碼編譯安裝;
2,通用二進制格式的程序;
3,rpm包安裝;
MySQL的配置文件:my.cnf,該文件是集中式的多段配置文件,通常放在/etc/目錄下,
[mysqld] 該段是對MySQL服務器的配置;
[mysql] 爲客戶端程序提供配置;
[client] 客戶端和服務器工具的通用配置,包括mysqldump,mysqladmin等等;
注意:1,MySQL的配置文件可以存放在多個位置,將所有找到的配置文件參數合併後生效,如果有重複的參數,後找到的參數生效;
2,配置文件的讀取順序:/etc/my.cnf,/etc/mysql/my.cnf,$MYSQL_BASE/my.cnf,~/.my.cnf;
MySQL的程序
服務器程序:mysqld;
客戶端程序:mysql;
MySQL的數據目錄(datadir)
二進制安裝:/usr/local/mysql/data;
rpm包安裝:/var/lib/mysql;
建議將數據目錄存放在lv上,以便於容量的擴展;
MySQL監聽端口:3306/tcp;
使用通用二進制格式的MySQL
二進制程序下載地址:http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.19-linux-glibc2.5-i686.tar.gz;
爲mysql準備數據目錄:/mysql/data;
1,創建mysql使用的系統用戶和組 ;
groupadd -r -g 306 mysql
useradd -g 306 -u 306 -r mysql
2,將程序包解壓,併爲其創建鏈接;
tar xf /mysql-5.6.19-linux-glibc2.5-i686.tar.gz -C /usr/local/
ln -s mysql-5.6.19-linux-glibc2.5-i686 mysql
3,修改mysql程序目錄和數據目錄的權限;
chown -R root.mysql /usr/local/mysql/*
chown -R mysql.mysql /mysql/data
4,初始化mysql;
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/mysql/data
5,爲mysql提供服務腳本;
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
6,爲mysql提供配置文件;
cp support-files/my-default.cnf /etc/my.cnf 如果有舊的配置文件,請先備份;
7,修改配置文件:vim /etc/my.cnf
basedir = /usr/local/mysql mysql工作目錄
datadir = /mysql/data mysql數據目錄
保存退出;
8,修改系統PATH變量;
vim /etc/profile.d/path.sh
寫入:export PATH=$PATH:/usr/local/mysql/bin
保存退出;
source /etc/profile
9,將man文件檔添加至man pages;
vim /etc/man.config
MANPATH /usr/local/mysql/man
保存退出;
10,將mysql的lib目錄添加至系統;
vim /etc/ld.so.conf.d/mysql.conf
寫入:/usr/local/mysql/lib
保存退出;
ldconfig
11,輸出mysql的頭文件;
ln -s /usr/local/mysql/include /usr/include/mysql
12,啓動mysql;
service mysqld start
13,查看mysql是否正常監聽端口;
netstat -tlunp | grep 3306
聲明:本文爲學習筆記,內容參考多方資料,如涉及版權問題,請告知本人,謝謝!