官术网_书友最值得收藏!

1.2 關系數據庫

關系型數據庫有完備的理論基礎、簡單的模型及說明性的查詢語言和使用方便等諸多優點,Visual FoxPro便是一種典型的關系數據庫管理系統。

1.基本概念

學習關系數據庫,首先要了解一些基本關系術語。

(1)關系

一個關系就是一個二維表,每個關系有一個關系名稱。通常將一個沒有重復行、重復列的二維表看成一個關系。在Visual FoxPro中關系文件的擴展名為.dbf。

(2)元組

在一個二維表中,每一行稱為一個元組。一個關系可以包含若干個元組,但不允許有完全相同的元組。在Visual FoxPro中,一個元組對應表中的一條記錄。

(3)屬性

二維表中垂直方向的列稱為屬性。每個屬性有一個屬性名稱,在同一個關系中不允許有重復的屬性名。在Visual FoxPro中,一個屬性對應表中的一個字段,屬性名對應字段名,屬性值對應各條記錄的字段值。

(4)域

域是指屬性的取值范圍。同一屬性只能在相同域中取值。例如,年齡的取值范圍是日期型。

(5)關鍵字

關鍵字的值可以唯一標識一個元組。關系中不允許出現相同的記錄,能唯一區分、確定不同元組的屬性或屬性組合,稱為該關系的一個關鍵字。在Visual FoxPro中,主關鍵字和候選關鍵字能夠唯一標識一條記錄。

注意:關鍵字的屬性值不能取空值。

(6)外部關鍵字

如果關系中的一個屬性不是關系的主關鍵字,但它是另一個關系的主關鍵字,則該屬性稱為外部關鍵字。

2.關系運算

關系運算就是從關系中查詢需要的數據,包括選擇、投影與連接等。

(1)選擇

從一個關系模式中找出滿足給定條件的記錄的操作稱為選擇。選擇是從行的角度進行的運算,相當于對關系進行水平分解。例如,要從成績表中找出某個學生的記錄,所進行的查詢操作就屬于選擇運算。

(2)投影

從關系模式中指定若干個屬性組成新的關系稱為投影。投影運算從關系中選取若干屬性形成一個新的關系,其關系模式中的屬性個數比原來的關系少,或排列順序均不同,同時也減少了某些元組。例如,要從學生關系中找出姓名和成績兩個字段,所進行的查詢操作就屬于投影運算。

(3)連接

連接是關系的橫向結合。連接運算將兩個關系模式拼接成一個更寬的關系模式,生成的新關系中包含滿足連接條件的元組。連接結果相當于Visual FoxPro中的內部連接。例如,從學生情況表和學生成績表中按對應學號相同的條件給出學生的學號、姓名、性別、數學、英語成績等,所進行的操作就是連接操作。

3.關系完整性

關系完整性指關系數據庫中數據的正確性和可靠性。關系完整性一般包括實體完整性、值域完整性、參照完整性和用戶自定義完整性。保證關系完整性是關系數據庫管理系統的重要功能。

(1)實體完整性

實體完整性是指數據表中記錄的唯一性,即同一個表中不允許出現重復的記錄。設置數據表的關鍵字便于保證數據的實體完整性。

(2)值域完整性

值域完整性是指數據表中記錄的每個字段的值應在允許范圍內。例如,規定“學號”字段中的數值必須由數字組成。

(3)用戶自定義完整性

用戶自定義完整性是指用戶根據實際需要而定義的數據完整性。例如,規定“性別”字段值為“男”或“女”。

(4)參照完整性

參照完整性是指相關數據表中的數據必須保持一致。例如,“學生信息”表中的“學號”字段和“學生成績”表中的“學號”字段應保持一致。如果修改了“學生信息”表中的“學號”字段,則相應地同時修改“學生成績”表中的“學號”字段,否則會導致參照完整性錯誤。

主站蜘蛛池模板: 朔州市| 肥西县| 资溪县| 冀州市| 泾源县| 紫金县| 沭阳县| 泽州县| 靖西县| 昌宁县| 盖州市| 抚顺市| 龙南县| 西畴县| 宜黄县| 鄂州市| 新蔡县| 泸溪县| 潮安县| 镇坪县| 无棣县| 崇州市| 德保县| 泸定县| 临朐县| 清丰县| 克拉玛依市| 池州市| 乌苏市| 林周县| 峨眉山市| 都江堰市| 绍兴市| 固阳县| 将乐县| 德兴市| 伊春市| 云龙县| 高碑店市| 杭州市| 岳普湖县|