資料庫原理和應用 4

2021-10-04 07:27:50 字數 2129 閱讀 4529

首先來理一下如何初步的建立乙個cdm/pdm圖

我們應該首先了解的是cdm與pdm的展示區別,cdm可以很好地展示出每個實體的屬性以及元件和實體與實體之間的關係,是相對比較規範的;而pdm圖是可以更好直接的展示出每個實體的主鍵和外來鍵,可以讓整個系統的屬性更具有直觀性

新建cdm圖【creat model -> categories.information.conceptual data】

工具欄:

列表欄:

(如果工具欄有個別圖示不可用:tools->model options->notation->改為e/r+merise

(1)char和varchar的區別

首先,對於精度比較高的東西,比如money,我會用decimal型別,不會考慮float,double,因為他們容易產生誤差,numeric和decimal同義,numeric將自動轉成decimal。所以在這次車隊管理系統中,我們把公里數就可以定義成decimal型別。

(3)如何匯出pdm圖

【tools->generate physical date model(匯出為物理模型)】

(4)關於pdshell的1:n圖

所有的1:n關係全部當做n:m分析,兩個實體之間產生聯絡並且沒有屬性,直接在cdm圖,畫relationship

(1)函式依賴的作用是找候選碼:如果對於屬性x,能唯一確認屬性y的值則稱x決定y,或y依賴於x,記做x->y(屬性之間的聯絡)

eg: 學籍(學號、姓名、性別、學院、院長、課程號、課程名稱、任課老師)

先確定主鍵: 學號、課程號

學號->姓名 學號->性別 學號->學院

學院->院長 學號->院長

課程號->課程 (學號、課程號)->成績 (學號、課程號)->任課老師

(2)資料庫設計不當會造成四個問題:

插入異常、刪除異常、修改(更新)異常、冗餘過大

(3)平凡函式與非平凡函式依賴

① 投影性:一組屬性函式決定它的所有子集(平凡函式的依賴)

例如:(學號,課程號)->學號

(學號、課程號)->課程號

② 合併性:有屬性x、y、z,若x->y且x->z則必有x->(y,z)

例如:學號->姓名 學號->性別

則:學號->(姓名、性別)

③擴張性:

有屬性x、y. z,若x→y且w→z,則(x, w)→(y, z)。

例:學號→(姓名,性別) ,學院→院長,

則有(學號,學院)→(姓名,性別,院長)。

④分解性:(與合併性相反)

若x→(y, z) ,則x→y且x→z。

例:學號→(姓名,性別)

則有學號→姓名,

學號→性別。

(4)完全函式依賴與部分函式依賴:(重要)

例如:下面兩個函式依賴有什麼差別?

部分函式依賴: (學號, 課程號) ->姓名

完全函式依賴: (學號, 課程號) ->成績

(5)傳遞函式依賴:如果x->y , y不能決定x,y->z,則x->z是乙個傳遞函式依賴

舉例:學號->學院,學院->院長,學號->院長。

其實乙個月的資料庫學習,每週三節課,從安裝到畫圖,到乙個個突破,因為這個課程可以說是這學期所有課程的核心,前端的終端吧,然後感覺就很難,現在突破乙個個難點,感覺學起來有點感覺了,記得第一次畫er圖很多錯誤,還很懵懂,到現在很多個實體,很多個屬性畫圖,依然可以基本上耐心地分析出來,我覺得也是我這乙個月學習的乙個小進步吧,雖然知識在自己腦袋裡還沒有完全達成體系,但是也在一點一點填充,希望自己可以更加努力!學好這門重要的課程!加油!

資料庫系統原理(4)

第三章 關聯式資料庫標準語句sql 連線 巢狀 集合查詢 1.連線查詢 查詢每個學生及其選修課程的情況 select student.sc.from student,sc where student.sno sc.sno 2.自然連線 select student.sno,sname,s sdept...

資料庫原理與應用 1

1.mysql基本操作 1 基於mysql的資料庫操作 1 create database school 建立資料庫 2 show databases 檢視所有資料庫 3 drop database school 刪除資料庫 4 use school 使用資料庫 5 在dos命令中 mysqldum...

資料庫原理及應用 2

單一的資料結構 關係 現實世界的實體以及實體間的各種聯絡均用關係來表示 邏輯結構 二維表 從使用者角度,關係模型中資料的邏輯結構是一張二維表 建立在集合代數的基礎上一組具有相同資料型別的值的集合 笛卡爾積可表示為乙個二維表 表中的每行對應乙個元組,表中的每列對應乙個域 d1 d2 dn的子集叫作在域...