=====================資料庫相關的概念==============================
資料庫的發展階段:
1.人工管理階段 通過寫在文本上的方式或者十磁帶上的方式進行資料的管理
缺點: 不利於資料的儲存和資料的查詢,需要耗費的人力較大
2. 檔案系統管理階段 通過電腦磁碟,以檔案夾或者檔案的方式將資料存放區在磁碟內
優點: 相對與人工管理階段而言,檔案系統管理階段一定程度上解決了資料存放區和查詢的問題,通過檔案名稱和路徑的方式訪問和查詢檔案
缺點: 對於有結構化的檔案來說,其儲存和查詢都不是很方便
3. 資料庫管理階段 通過資料庫管理系統DBMS對資料進行管理
優點: 大大提高了儲存、查詢、管理資料的便利性,通過DBMS,可以將儲存在磁碟上的資料進行有效管理
資料庫的組成結構:
1. 資料庫 資料庫是儲存資料的倉庫,儲存著多個表的資訊,可以理解為表的集合體
2. 資料表 資料表是儲存實體的集合,每個表都是由多個欄位構成,多個欄位構成一個記錄,常見的資料庫是一張二位表
3. 欄位 欄位是資料庫的最小單位,欄位有效表示的是實體的一些屬性集合,每個欄位有特定的類型,如:整形、字元、日期等
關係結構如下:
DBMS DBMS資料庫管理系統
|
———————————————
| | |
資料庫1 資料庫2 資料庫n database多個資料庫由DBMS管理
|
——————————————————
| | | | | |
表1 表2 表3 表4 ... 表n table多個表構成了資料庫
|
————————
| | |
欄位1 ... 欄位n set構成了一個表,表的組成是欄位
例如: 學生管理系統可以由Mysql的資料庫管理系統(DBMS)所管理,其下有多張表構成,如:每個班級class的表,每個班級的學生資訊有:學號、班級、學生姓名、年齡、出生年月日等資訊,這些構成表的屬性是欄位。
SQL語言概述:
DBMS是通過SQL(結構化查詢語言 (SQL))對資料庫進行管理和操縱資料的,各種資料庫之間具有相同的共性:SQL語言,已經經過OSI標準化,參考度較高,SQL語句總體上可以分為三大類:
1. DDL(Data Define Language)資料庫定義語言,用於建立資料庫、表、視圖、索引、觸發器等,主要包括:CREATE、DROP、ALTER語句,即是建立資料庫、表、視圖等;刪除資料庫、表、視圖等;修改資料庫、表、視圖等。對於開發的人員而言,資料庫和資料庫中的表都是事先已經建立好,無需做更多的修改。
1.1 CREATE語句用於建立資料庫、和表等,其文法如下:
1. 建立資料庫,其文法為:CREATE DATABASE database_name;
2. 建立資料表,其文法為:CREATE TABLE table_name(
欄位1 資料類型 約束,
欄位2 資料類型 約束,
...
欄位n 資料類型 約束
);
1.2 DROP語句用於刪除資料庫、刪除表等,其文法如下:
1. 刪除資料庫,其文法為:DROP DATABASE database_name;
2. 刪除資料表,其文法為:DROP DATABASE database_name;
1.3 ALTER語句主要使用與修改表的結構,其文法為:
1. 修改表結構: ALTER TABLE table_name ADD|DROP|CHANGE|MODIFY 欄位 資料類型 約束;
其中,ADD為增加列,DROP為刪除列,MODIFY為修改列,CHANGE為改變列
2. DML(Data Manipulation Language)資料庫操縱語言,主要是是對資料表中的資料進行操縱和管理,主要包括:insert(增)、delete(刪)、update(改)、select(查)語句,即是增刪改查操作。
2.1 INSERT語句用於向某張指定的表中插入資料,其文法是:INSERT INTO table_name(欄位1,欄位2,...,欄位n) VALUES(值1,值2,...,值n);
2.2 DELETE語句用於刪除表中的某一條記錄,其文法是: DELETE table_name WHERE [condition(s)];
2.3 UPDATE語句用於更新表中的某個欄位內容,其文法是: UPDATE table_name SET 欄位1=值1,欄位n=值n WHERE [condition(s)];
2.4 SELECT語句用於查詢表中的資料,功能最強大,文法: SELECT *|欄位1,欄位n FROM table_name [WHERE condition(s)];
3. DCL(Data Control Language)資料控制語言,主要是用於控制使用者的許可權,主要包括GRANT和REVOKE兩個語句,分別是授權和撤銷許可權
3.1 GRANT語句用於授予建立使用者和授予用於許可權,其文法如下:
文法:GRANT 許可權 ON database_name.table_name TO 'username'@'IP' IDENTIFIED BY 'password';
3.2 REVOKE語句用於回收指定使用者的許可權,其文法格式如下:
文法:REVOKE 許可權 ON database_name.table_name FROM 'username'@'IP';
常見的資料庫類型:
資料庫的發展至今,誕生有很多類型的資料庫管理系統DBMS,DMBS按照使用的SQL語言不同主要分為兩種類型:SQL和NOSQL,即是關係形資料庫和非關係形資料庫,其中SQL關係形資料庫是當前應用最廣泛的一種資料庫管理系統,包括ORacle、DB2、MySQL和MSSQL等,NOSQL是近幾年發展而來的一種非關係型資料庫,主要用於大資料的開發之中,是未來雲端運算儲存資料的資料庫,包括MONGDB、Redis、CouchDB等。
常見的關係型資料庫:
類型
|
廠商
|
特點以及應用平台
|
Oracle
|
Oracle公司
|
物件導向資料庫,屬於大型資料庫,跨平台:Windows、Lniux、Unix
|
DB2
|
IBM公司
|
大型資料庫,通常架構在IBM的小型機上,只能運行在類Unix系統上
|
Mysql
|
MYSQL-AB公司,現屬於Oracle公司所有
|
中小型資料庫,平台無關,開源免費,能夠在Windows、類Unix系統平台
|
MSSQL
|
微軟
|
中型資料庫,只能運行在Windows平台
|
ACCESS
|
微軟
|
小型資料庫,和Office功能綁定一起使用
|
除了以上的幾種關係型資料庫之外,其他的關係型資料庫還有:Sybase、Informix、PostgreSQL等。在實際環境中使用較多的資料庫為Oracle、DB2、Mysql。
關於NOSQL相關資料庫的介紹,參考http://blog.jobbole.com/1344/,裡面有nosql資料庫的詳細介紹!
MYSQL資料庫:
Mysql是一款開源免費的資料庫管理系統,具有平台無關性,能夠架構在Linux、Unix、Windows、OS平台上,具有快速、易用等特點,其特點如下:
1. 平台無關性,能夠架構在所有平台,具有平台無關型,通常伺服器都是架構在Linux/Unix平台較多
2. 開源免費,相對與MSSQL而言,MySQL不許要收費,可以從Internet上下載和使用,為大多數程式設計語言所使用
3. 使用簡單,MySQL屬於一種中小型資料庫,再使用上沒有Oracle等大型資料庫那麼複雜,易於上手學習
4. 多使用者多線程,MySQL支援多使用者同時訪問Mysql資料庫,同時支援並發量較大的請求,它是一種基於C/S模式的資料庫管理員模式,伺服器端主要是由mysqld服務進程負責監聽和處理,用戶端包括mysql在內的眾多用戶端。
國內常用的WEB架構:當前國內常見的網站架構根據所使用不同的網站軟體,分為如下幾種架構:
1. LAMP 即是Linux+Apache+Mysql+PHP 黃金組合,由四款開源軟體組成,使用Linux平台+Apache Web軟體+Mysql資料庫+PHP程式設計語言,應用最廣泛;
2. LNMP 即是Linux+Ngix+Mysql+PHP 未來發展趨勢,Ngix是一款輕兩量層級的Web伺服器,具有請求速度快,佔用資源少,代理、負載平衡等功能,逐漸被眾多的網站所採納;
3. LTMP 即Linux+Tomcat+Mysql+PHP 如果網站採用的是jsp所編寫的,則需要使用Tomcat作為Web伺服器,其他不變。
下節介紹Linux下mysql的安裝!
本文出自 “linux伺服器” 部落格,請務必保留此出處http://573302346.blog.51cto.com/1730296/1300089