Sql-Server

為什麼 DBMS 需要埠?

  • November 11, 2020

我一直想知道,為什麼必須分配埠才能使用 DBMS?使用 TCP 或 UDP(甚至靜態和動態)有什麼區別?

是為了交流目的嗎?

我知道這是一個非常基本的問題,但我仍然找不到一個直截了當的答案。

使用 DBMS 不需要埠號。

個別程序可以直接寫入 DBMS 的文件。但是 DBMS 的規則已經變得非常複雜,需要大量的邏輯來尊重這些規則並尊重使用 DB 的其他程序的操作。我知道 Oracle 的這種情況,你可以編譯你的程序來直接訪問數據庫。

為了避免讓最簡單的程序變成一個巨大的 blob,DB 作者想出了 DB 伺服器。單個程序可以訪問數據庫,其他想要使用數據庫的程序必須與該程序“交談”,該程序執行他們的請求並發回結果。那個單一的程序已經變成了一個完整的庫,你不能用手指和腳趾計算單個Oracle DB的程序。

現在,程序之間的“交談”是程序間通信。一種可能性是“套接字”,不需要埠,在 unix 上它被呈現為程序可以向其寫入請求的文件,伺服器讀取它,執行並寫入程序可以讀取的結果。另一種可能性是 TCP/IP,您需要知道它的埠號。程序將其請求發送到 DB 伺服器正在偵聽的埠等。TCP 比 UDP 安全得多,速度較慢,但不會失去任何數據包。使用數據庫是您負擔不起的。另一大優勢:在其他系統上執行的程序可以使用數據庫。

引用自:https://dba.stackexchange.com/questions/279156