SQL server基礎理論學習

 .SQL語法

   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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章