資料庫與開發工具學習筆記
一、Oracle Database
1. Schema(模式)
Schema = 一個使用者擁有的資料物件集合
一個 User 對應一個 Schema(名稱相同)
物件類型 |
說明 |
Table | 儲存資料的主要結構 |
View | 查詢的邏輯視圖 |
Index | 加速查詢的結構 |
Sequence | 產生流水號 |
Procedure/Function | PL/SQL 程式邏輯 |
2. SGA vs PGA
項目 |
SGA |
PGA |
範圍 |
全域共享 |
每個 Session 獨立 |
建立時間 |
Instance 啟動時 |
Session 建立時 |
內容 |
Buffer Cache, Shared Pool, Redo Buffer |
Sort, Hash, Session 狀態 |
3. Cache 釋放時機
快取類型 |
釋放時機 |
Database Buffer Cache | 新資料塊需要空間時(LRU) |
Shared Pool | 空間不足、未使用 SQL 被替換 |
Redo Log Buffer | 滿、3秒、COMMIT 時 |
4. Oracle 架構層級
Instance → Database → Tablespace → Datafile
邏輯:Database, Tablespace, Schema, Table
物理:Datafile
5. Segment 類型
段類型 |
作用 |
Data Segment | 存放資料表的實際資料 |
Index Segment | 存放索引結構 |
Temporary Segment | 存放排序/查詢中間結果 |
Undo Segment | 存放修改前舊值(支援回滾) |
6. Oracle 版本
代號 |
含義 |
範例 |
i | Internet | Oracle 8i, 9i |
g | Grid Computing | Oracle 10g, 11g |
c | Cloud Computing | Oracle 12c, 19c |
產品版本 |
說明 |
EE | 功能最完整,企業使用 |
SE | 功能較少,中小企業 |
XE | 免費版,功能限制 |
二、資料庫基礎
1. RDBMS vs NoSQL
特性 |
RDBMS |
NoSQL |
結構 | 固定 Schema | 彈性結構 |
擴展 | 垂直擴展 | 水平擴展 |
一致性 | 強一致性(ACID) | 最終一致性(BASE) |
適用 | 金融、ERP | 大數據、高併發 |
2. ACID vs BASE
ACID |
說明 |
Atomicity | 全成功或全失敗 |
Consistency | 資料永遠正確 |
Isolation | 事務彼此不干擾 |
Durability | 提交後永久保存 |
BASE |
說明 |
Basically Available | 系統永遠能回應 |
Soft State | 狀態可暫時不一致 |
Eventually Consistent | 最終會同步 |
3. SQL 分類
類型 |
用途 |
指令 |
DDL | 定義結構 | CREATE, ALTER, DROP |
DML | 操作資料 | INSERT, UPDATE, DELETE, SELECT |
TCL | 控制事務 | COMMIT, ROLLBACK |
4. ER 圖
元素 |
圖形 |
代表 |
Entity | 矩形 | 資料表 |
Attribute | 橢圓 | 欄位 |
Relationship | 菱形 | 關聯 |
三、Git 版本控制
1. 版本控制系統
類型 |
代表 |
特點 |
分散式 | Git, GitHub, GitLab | 每人都有完整副本 |
集中式 | SVN, CVS | 需連接中央伺服器 |
2. 常用指令
# 查看設定
git config user.name
git config --global user.name "名字"
# 分支操作
git branch feature/功能名稱
git branch hotfix/修復名稱
# 合併提交
git rebase -i HEAD~3
# 找回刪除提交
git reflog
git reset --hard 版本號
# 中文檔名修正
git config core.quotepath false
3. 分支命名
前綴 |
用途 |
feature/ | 功能分支 |
hotfix/ | 修 bug |
test/ | 測試 |
master | 生產環境 |
四、Docker
Docker 是 Linux 原生工具
Windows 透過 WSL2 提供 Linux 環境來運行 Docker
CPU 架構
架構 |
說明 |
amd64 | 64位元 x86(Intel/AMD) |
arm64 | ARM 64位元(手機、M1/M2) |
五、網路基礎
同網段 vs 不同網段
同網段 = IP AND 子網路遮罩 → 網路位址相同
情況 |
處理 |
同網段 | 用 ARP 找 MAC,直接傳送 |
不同網段 | 交給路由器轉送 |
六、其他工具
Cisco Packet Tracer
下載:https://www.netacad.com/resources/lab-downloads
GitLab 安裝
RPM = Linux 套件管理系統(Red Hat 系列)
Personal Access Token
用於取代密碼,安全存取 GitHub/GitLab
七、編碼
亂碼原因
不同編碼的解碼器會把每個 byte 當作合法字元
即使編碼錯誤,仍能對應到「某個符號」
結果就是亂碼:每個 byte 被當作不同編碼規則解讀