1.1數據庫表
一個數據庫通常包含一個或多個表。每個表由一個名字標識,即表名。表包含帶有數據的記錄(行),第一行即每一列的首部一般爲字段名,即每一列的內容概述。如上,該表表名爲:dbo.gdbz,有6條記錄,有國電標準文號、萬方數據標準號、版本性質、中文名稱 4個字段。
1.2 SQL語句
在數據庫上執行的大部分工作都由 SQL 語句完成,SQL語句對大小寫不敏感。
分號是在數據庫系統中分隔每條 SQL 語句的標準方法,有的程序需要嚴格遵守,但是因爲我使用的是SQl Server 2005,所以不必要。
1.3 SQL DML 和 DDL
SQL 分爲兩個部分:數據操作語言 (DML) 和 數據定義語言 (DDL)。
SQL (結構化查詢語言)是用於執行查詢的語法。但是 SQL 語言也包含用於更新、插入和刪除記錄的語法。查詢和更新指令構成了 SQL 的 DML 部分,如下:
SELECT - 從數據庫表中獲取數據
UPDATE - 更新數據庫表中的數據
DELETE - 從數據庫表中刪除數據
INSERT INTO - 向數據庫表中插入數據
SQL 的數據定義語言 (DDL) 部分使我們有能力創建或刪除表格。我們也可以定義索引(鍵),規定表之間的鏈接,以及施加表間的約束。SQL 中最重要的 DDL 語句:
CREATE DATABASE - 創建新數據庫
ALTER DATABASE - 修改數據庫
CREATE TABLE - 創建新表
ALTER TABLE - 變更(改變)數據庫表
DROP TABLE - 刪除表
CREATE INDEX - 創建索引(搜索鍵)
DROP INDEX - 刪除索引
3.關係數據庫建模
3.1模擬現實
數據建模過程:
(1)手機觀察結果和需求
(2)現實世界的邏輯表示
(3)可見實體的識別和設計
(4)架構設計(輔助和支持實體)
(5)應用程序結構設計
3.2可見實體
可見實體通常是大多數人能夠識別的對象。
(1)每個元組(行)都是獨立的
(2)主鍵
(3)表、行和列
3.3識別多個實體
(1)多個對象 (2)對象之間的關係 (3)組織對象 (4)一致的查找值 (5)複雜對象
3.4關係模式
關係使用鍵將實體關聯起來,包含如下兩個主要屬性:
基數:在關係的每一端可能存在的對象數
可選性:關係是可選的也是強制的
(1)輔助實體和外鍵
兩個對象彼此相關聯時,通常一個實體爲主實體,另一個實體爲輔助實體。主實體中的一個對象將關聯到輔助實體中的多個對象或元組。
(2)關係基數
指在關係的每一端有多少元組。在關係的主鍵端只能有一個元組,而在外鍵端可以有多個元組。
(3)關係的可選性:可選關係和強制關係對於數據庫的完整性非常重要。
(4)繪製數據模型關係圖
Chen ER關係圖繪製方法非常簡單,用sisio即可。
(5)關係種類
一對多 一對一 超類/子類 多對多
(6)類別實體
有時也稱爲查找表,
(7)自反關係
在兩個相同類型的實體之間建立關係,比如人與人之間的上下級關係,家庭成員之間的關係等。
3.5規範化
規範化是減少更新異常的工具。
(1)實體/屬性的設計原則:
每個數據庫實體必須描述一個“事務”
屬性和事務之間必須存在一對一的關係
每個屬性必須描述其所屬實體,而不能描述其相關的實體。
(2)範式
規範化通常以範式的方式定義。每種範式都描述了設計實體和屬性時可能出現的錯誤,並提供了糾正這種錯誤的規則。因此範式類似於書面語言的語法規則。
規範化數據庫與平面文件數據庫比,優點如下:
消除重複存儲
減少鎖的爭用
縮小文件
數據建模人員應該一開始就按照第三範式設計邏輯架構。
(3)第一範式
符合條件
A每個數據單元都是用標量屬性表示的,標量值指的是“可以用標尺上的一個點表示”的值
B所有數據必須用唯一屬性表示,每個屬性都必須有唯一的名稱和用途。
C所有的數據都必須用唯一的元組表示。
(4)第二範式
確保每個屬性是實體屬性。每個屬性都必須有對應的主鍵。如果其他屬性只依賴於主鍵的一個屬性,而不依賴於主鍵的其他屬性,這被稱爲部分依賴,違反了第二範式。
(5)第三範式
檢查傳遞依賴。傳遞依賴和部分依賴的相似之處在於,他們值得都是屬性不完全依賴於主鍵。當A依賴於B,B依賴於主鍵時,就發生了傳遞依賴。
同第二範式一樣,解決方式是將非依賴屬性移到新實體中。
*如果實體有很好的主鍵,每個屬性都是標量且都完全依賴於主鍵,則邏輯設計符合第三方式,大多數數據庫設計滿足第三範式即可。
(6)BCNF範式
位於三四範式之間,用於處理實體有兩組主鍵的問題。BCNF規定,在這種情況下,應將實體拆分爲兩個實體,每個實體包含一個主鍵。
(7)第四範式
用於處理複雜的符合主鍵導致的問題,如果將兩個相互獨立的屬性組合成主鍵,同時還要有第三個屬性,如果沒有第三個屬性,僅靠着兩個屬性不能唯一標識實體,則違反了第四範式。
(8)第五範式
用於設計涉及多個(3個以上)實體的複雜關係,如果設計正確可以設計出三元關係,其中每個關係的基數都可以是一或多。
3.6關係代數
關係代數有8個關係運算符組成
(1)限制:返回符合制定條件的行
(2)投影:從數據集中返回指定列
(3)積:關係乘法,返回兩個數據集的所有可能的數據集合。
(4)聯合:關係加法和減法,將一個表垂直堆疊到另一個表上,將兩個表合併
(5)交集:返回兩個表中都有的行
(6)差集:返回一個數據集中特有的行
(7)連接:返回兩個表的水平合併結果,合併是根據都有的行來匹配
(8)除:返回兩個數據集中完全匹配的內容
另外sql server還開發以下功能:
子查詢
在關係代數中,使用以下術語:
表或數據集被稱爲關係或實體
行被稱爲元組
列被稱爲屬性
轉自 http://blog.sina.com.cn/s/blog_5f0493880100woe9.html