Board logo

標題: [分享] MySQL資料庫管理(權限、正規化、最佳化、索引) [打印本頁]

作者: jslin    時間: 2011-1-17 14:22     標題: MySQL資料庫管理(權限、正規化、最佳化、索引)

一、資料庫正規化
正規化的目的簡單的說就是要將資料的重覆性降至最低(避免資料重複的狀況發生)。
第一正規化(First Normal Form,簡稱 1NF):移除重複的群
id name part book1 book2 book3
1 李姿育教務處1 4 3
原始資料表
id name part book
1 李姿育教務處1
2 李姿育教務處4
3 李姿育教務處3
經過第一正規化的資料表

第二正規化(Second Normal Form,簡稱 2NF):移除重複出現的資料
name_id name part
1 李姿育教務處
id name_id book
1 1 1
2 1 4
3 1 3
經過第二正規化的資料表

第三正規化(Third Normal Form,簡稱 3NF): 移除與主鍵沒有功能相依的資料
name_id name
1 李姿育
id part
1 教務處
經過第三正規化的資料表

二、MySQL權限資料表
(1) user
(2) db
(3) host
(4) table_priv
(5) column_priv
→ user 資料表是用來決定使用者是否能連結MySQL伺服器
→ db、host 資料表則是用來決定哪個資料庫是使用者可以存取
→ table_priv 資料表則是用來判定資料庫中哪些資料表是使用者可以存取
→ column_priv 資料表則是用來判定資料表中哪些欄位是使用者可以存取
2010/3/8 MySQL資料庫管理(權限、正規化、⋯
dyna.hcc.edu.tw/php5/basic/⋯/class4_4.htm 1/3
學號姓名
20001 李大明
20004 蔡姿玉
20005 方曉婷
20003 江曉風
20002 林義如
排序
後->
學號姓名
20001 李大明
20002 林義如
20003 江曉風
20004 蔡姿玉
20005 方曉婷
grant select,insert,update,delete on books.* to reader identified by '1234'
→ 新增一位使用者reader 密碼為1234 對books資料庫內的資料表有
select,insert,update,delete權限
grant all on books.* to reader identified by '1234'
→ 新增一位使用者reader 密碼為1234 對books資料庫內的資料表有所有權限
revoke all on books.* from reader
→ 移除在books資料庫中 reader 所有權限
三、索引的使用
索引的好處:查詢會加速
索引的缺點:
1.索引檔會佔檔案空間
2.資料異動時會較花時間
索引注意事項:
(1) 在 MySQL 裡,將欄位設為 Primary 時,同時具有 index 的效果。
(2) 欲設為 index 的欄位長度是越短越好,這樣在維護 index table 時會快速一些;像
BLOB 與 TEXT 這類資料型態,請不要設成索引
索引的建立方式:
create table student (
id smallint not null auto_increment,
account varchar(12) binary not null,#註解寫在這裡
name varchar(12) not null,
sex tinyint(1) default 0 ,
date datetime,
primary key(id),
index
name(account)
)
四、資料庫的備份、還原、管理
資料庫的備份
1. 以root 帳號密碼登入。
2. 執行以下的指令,將資料匯出到 Script檔:# mysqldump -p book > backup.sql
3輸入你的密碼後,完成匯出。
2010/3/8 MySQL資料庫管理(權限、正規化、⋯
dyna.hcc.edu.tw/php5/basic/⋯/class4_4.htm 2/3
資料庫的還原
1. 以root 帳號密碼登入。
2. 執行以下的指令:#mysql -p book < backup.sql
3. 輸入你的密碼後,完成還原。
資料庫管理-phpMyAdmin





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)