RDBMS代表關(guān)系數(shù)據(jù)庫管理系統(tǒng)。 RDBMS是SQL的基礎(chǔ),對于像MS SQL Server,IBM DB2,Oracle,MySQL和Microsoft Access等所有現(xiàn)代數(shù)據(jù)庫系統(tǒng)。
一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)是一個(gè)數(shù)據(jù)庫管理系統(tǒng)(DBMS),基于關(guān)系模型如通過 E. F. Codd 引入。
在RDBMS中的數(shù)據(jù)存儲在數(shù)據(jù)庫對象稱為表。表是相關(guān)數(shù)據(jù)條目的集合,它由列和行的組成。
記住,表是數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫中最常見和最簡單的形式。以下是CUSTOMERS表的例子:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+
每個(gè)表被分成較小的實(shí)體稱為字段。在CUSTOMERS表中的字段組成是:ID, NAME, AGE, ADDRESS 和 SALARY。
字段旨在維護(hù)有關(guān)表中的每個(gè)記錄特定信息表中的列。
一個(gè)記錄,也被稱為一行數(shù)據(jù),是存在于一個(gè)表中的每個(gè)單獨(dú)的條目。比如有7條記錄在上面的CUSTOMERS表。以下是在CUSTOMERS表中的數(shù)據(jù)或記錄中的一行:
+----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | +----+----------+-----+-----------+----------+
記錄是表中的一個(gè)水平的實(shí)體。
列是包含在一個(gè)表中的特定字段相關(guān)聯(lián)的所有信息表的垂直實(shí)體。
例如,在CUSTOMERS表中的一列是ADDRESS,它代表位置描述,并會包括以下內(nèi)容:
+-----------+ | ADDRESS | +-----------+ | Ahmedabad | | Delhi | | Kota | | Mumbai | | Bhopal | | MP | | Indore | +----+------+
在表中的NULL值是一個(gè)字段顯示為空值,這意味著使用一個(gè)NULL值的字段是表示一個(gè)沒有值的字段。
這是非常重要的是要明白,一個(gè)NULL值不同于零值或包含空格的字段。NULL值字段是一個(gè)記錄創(chuàng)建過程中已經(jīng)留為空白。
約束是對表執(zhí)行對數(shù)據(jù)的列的規(guī)則。這些用于限制數(shù)據(jù)的類型進(jìn)入表中。這確保數(shù)據(jù)庫中的數(shù)據(jù)的準(zhǔn)確性和可靠性。
約束可能是列級或表級。列級約束僅應(yīng)用于一列,表級約束應(yīng)用于整個(gè)表。
下面是常用的SQL約束:
NOT NULL約束 - 確保列不能有NULL值
默認(rèn)值約束 - 提供未指定時(shí)為列的值時(shí)的默認(rèn)值
唯一值約束 - 確保了在一列中的所有的值是唯一的
主鍵 - 唯一標(biāo)識數(shù)據(jù)庫表中的每一行/記錄
外鍵 - 唯一標(biāo)識任何其他數(shù)據(jù)庫表中的行/記錄
檢查約束 - CHECK約束可以確保列中的所有值滿足一定的條件
索引 - 使用非常快速地創(chuàng)建和檢索數(shù)據(jù)庫中的數(shù)據(jù)。
數(shù)據(jù)的完整性有以下幾類存在于每個(gè)RDBMS:
實(shí)體完整性: 表中沒有重復(fù)行
域完整性: 通過限制的類型,格式或值的范圍強(qiáng)制對于一個(gè)給定列的有效條目
參考完整性: 行不能被刪除,被其他記錄使用
用戶定義的完整性: 強(qiáng)制執(zhí)行不屬于實(shí)體,域和參照完整性一些具體的業(yè)務(wù)規(guī)則
數(shù)據(jù)庫正?;怯行У亟M織數(shù)據(jù)庫中的數(shù)據(jù)的過程。歸一化處理的兩個(gè)原因:
消除冗余數(shù)據(jù),例如,存儲了一個(gè)以上的相同的數(shù)據(jù)在同一個(gè)表。
確保數(shù)據(jù)的相關(guān)性意義。
這兩者都是值得追求的目標(biāo),因?yàn)樗鼈儨p少的空間的數(shù)據(jù)庫消耗的量,并確保數(shù)據(jù)在邏輯上存儲。規(guī)范化由一系列指導(dǎo)方針,幫助指導(dǎo)您創(chuàng)建一個(gè)良好的數(shù)據(jù)庫結(jié)構(gòu)。
標(biāo)準(zhǔn)化準(zhǔn)則分為正常形態(tài);認(rèn)為形式的格式或數(shù)據(jù)庫結(jié)構(gòu)的布局方式。 正常形態(tài)的目的是組織數(shù)據(jù)庫結(jié)構(gòu),使其符合第一范式,然后第二范式,最后第三范式的規(guī)則。
這是你的選擇,把它進(jìn)一步去第四范式,第五范式等,但總體來講,滿足第三范式就夠了。