數據庫
1、鍵:主鍵是表中的標志列。一個鍵可能由幾列組成。可以使用鍵作為表格之間的引用。
CustomerID是Customers表的主鍵,當它出現在其他表,例如Orders表中的時候就稱它為外鍵。
2、模式
數據庫整套表格的完整設計稱為數據庫的模式。
一個模式應該顯示表格及表格的列、每個表的主鍵和外鍵。
一個模式並不會包含任何數據,但是我們可能希望在模式裡使用示例數據來解析這些數據的含義。
例如:Customers(CustomerID, Name, Address, City)
Orders(OrderID, CustomerID, Amount, Date)
下劃線的元素表示該元素是所在關系的主鍵,斜體元素是所在關系的外鍵。
3、關系
外鍵表示兩個表格數據的關系。根據關系雙方所含對象的多少,可以將這些關系分為一對一、一對多、多對多。
設計數據庫
1、考慮建模的實際對象
要建模的每一種現實世界對象都需要有自己的表。
2、避免保存冗余數據
要避免3種情況的更新不規則:修改、插入和刪除不規則。
3、使用原子列值
對每一行的每個屬性只存儲一個數據。下圖Books Ordered不符
當兩個對象存在多對多關系時,例如訂單和書籍的關系,需要創建以下一個新表,Order_Items
4、選擇有意義的鍵
應該確認所選擇的鍵是唯一的。
5、避免多個空屬性的設計
數據庫裡有許多空值是一件糟糕的事情。它極大的浪費空間,並且在統計列總量或對其他數值列應用計算函數時可能導致錯誤。
6、數據庫表格類型
簡單表:描述現實世界對象的簡單表。這些表也可能包含其他簡單對象的鍵,它們之間有一對一或一對多的關系。
關聯表:描述兩個現實世界對象的多對多關系。
web數據庫架構
一個典型的Web數據庫事務包含以下步驟:
(1)用戶的Web浏覽器發出HTTP請求,請求特定Web頁面。例如,該用戶可能以HTML表單的形式,要求搜索書店裡所有由Thomson編寫的圖書。搜索結果網頁稱為result.php。
(2)Web服務器收到result.php的請求,獲取該文件,並將它傳到php引擎,要求它處理。
(3)php引擎開始解析腳本。腳本中有一條連接數據庫的命令,還有執行一個查詢(執行搜索圖書)的命令。php打開通向Mysql數據庫的連接,發送適當的查詢。
(4)Mysql服務器接受數據庫查詢並處理。將結果(一個圖書的列表)返回到php引擎。
(5)php引擎完成腳本運行,通常,這包括將查詢結果格式化成HTML格式。然後再將輸出的HTML返回到Web服務器。
(6)Web服務器將HTML發送到浏覽器。這樣用戶就可以看到他所搜索的圖書。