1、數據庫導出的方式
(1)使用可視化工具導出
(2)使用命令行導出
指令
mysqldump -h 主機地址 -u 用戶名 -p 密碼 數據庫名 表1 表2 表3 > 物理磁盤位置/文件名
(3)導入
已登錄,指令
source d:/a.sql
未登錄,指令
mysql -u用戶名 -p密碼 庫名 < 備份文件
(4)為什么需要備份?
為了應對突發情況,如果將整個sql文件導出,就可以迅速在另一個物理機器上復原數據。
2、如何設計一個數據庫
步驟
- 分析需求:分析業務的需要,並明確數據庫需要處理的數據
- 概要設計:設計關系圖
- 建表、建庫
3、數據庫的三大范式
(1)為什么需要規范sql數據規范化?
--入庫額數據設計不合理,會存在數據重復、更新插入異常等情況
(2)三大范式
- 第一范式(1NF):要求數據庫的每一列都是不可分割的原子數據項,即原子性。
- 第二范式(2NF):在滿足第一范式的前提下,非碼屬性必須完全依賴於候選碼,即表中的每一列都和主鍵相關,而不能至於主鍵的某一部分相關(主要針對聯合主鍵而言),即每張表只描述一件事情。
- 第三范式(3NF):在第二范式前提下,任何非主屬性不依賴於其他非主屬性(在2NF基礎上,消除傳遞依賴)。即確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。
(3)規范性和性能的問題
規范和性能之間需要平衡,如何表拆得過細,會導致查表關聯過多,導致性能問題。因此需要在規范性和性能之間作取舍。
經常采用的方法是:處於用戶體驗考慮,通常以性能為優先考慮;故意給某些表增加一些榮譽的字段,從而將多表查詢變成單表查詢;或者增加一些計算列,從大數據量降低為小數據量的查詢,增加索引。
