資料庫部分知識

2021-07-29 19:06:04 字數 2153 閱讀 4750

正規化

①1nf: 資料庫表的每一列都是不可分割的原子資料項。即代表第一正規化就是無重複的域。

②2nf:在1nf的基礎上,非碼屬性必須完全依賴於候選碼(候選碼指這個屬性(組)可以唯一標識乙個元祖,但它的真子集不能唯一標識乙個元組)。即要求實體的屬性完全依賴於主關鍵字。索引完全依賴是指不能存在僅依賴於主關鍵字的一部分屬性。如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成乙個新的實體。

③3nf:在2nf基礎上不可出現傳遞依賴。舉例:存在乙個部門資訊表,其中每個部分有部門編號(dept_id)、部門名稱、部門簡介等資訊。那麼在員工資訊表列出部門編號後就不能再將部分名稱,部門簡介等於部門有關的資訊加入員工資訊表。

④bcnf正規化:在3nf基礎上,主鍵不允許出現其鍵的一部分被主鍵的另一部分或其它部分決定。

內連線:典型的連線運算,(連線條件中使用=或<,>之類的比較運算子)包括等值連線和自然連線(在等值連線中將目標列中重複的屬性去掉,即去掉兩個表中的重複列)內連線是返回連線表中符合連線條件和查詢條件的資料行(連線表是指在資料庫做查詢的過程中形成的中間表)

內連線語法上可以分為顯示和隱式兩種(顯示和隱式的區別還得查一下,總感覺前面查的資料說的有點問題)

隱式內連線:形成的中間表是為兩個表的笛卡爾積

select o.id,o.order_number,c.id,c.name

from customers c,orders o

on c.id=o.id

where c.id=」123」;

顯式:使用inner join,形成的表為兩個表經過on條件過濾後的笛卡爾積。

select o.id,o.order_number,c.id,c.name

from customers c,order o

on c.id=o.id

where c.id=」123」;

外鏈結

外鏈結不但返回符合連線和查詢條件的資料行,還返回不符合條件的一些行。外鏈結分為三類:左外連線(left outer join),右外連線(right outer join)和全外連線(full outer join),三者的共同點是都返回符合連線條件和查詢條件(即內連線)的資料行。不同點如下:左外連線返回左表中不符合連線條件但符合查詢條件的資料行。右外連線返回右表中不符合連線條件但符合查詢條件的資料行。全外連線時左外連線和右外連線的並集。

左外連線語法:

select o.id,c.id

from customers c left outer join order o

on c.id=o.id

where c.id=」123」;

※注意on 對應的是連線條件,where對應的是查詢條件。

舉個例子:

對於以下兩個表

student表

學號 姓名 性別 年齡 所在系

sno sname s*** sage sdept

200215121 李勇 男 20 cs

200215125 張立 男 19 zs

sc表

學號 課程號 成績

sno cno grade

200215121 1 92

200215121 2 85

select student.sno,sname,s***,sage,sdept,cno,grade

from student left outer join sc

on student.sno=sc.sno;

結果是

student.sno sname s*** sage sdept cno grade

200215121 李勇 男 20 cs 1 92

200215121 李勇 男 20 cs 2 85

200215121 張立 男 19 zs null null

右外連線和全外連線語法與左外連線相同,就是left outer join 換成right outer join和 full outer join

string driver="com.mysql.jdbc.driver";

string user="user";

string password="password";

tryrs.close();

conn.close():

資料庫知識部分討論中發現的知識空缺

一 所有的候選碼都不能有冗餘,即乙個候選碼不能含有多餘的屬性 二 五種基本關係代數運算 1 並2 差 3 廣義笛卡爾積 4 投影 5 選擇 三 擴充套件的關係代數運算 1 交2 連線 連線 等值連線 自然連線 3 除4 廣義投影 允許在投影列表中使用算術運算 5 外連線 左外連線 右外連線 全外連線...

資料庫部分2

1.關係 乙個關係就是一張二維表,每乙個關係有乙個關係名,可以儲存為檔案。2.元組 表中的行稱為元組,一行就是乙個元組,對應儲存檔案中的乙個記錄。3.屬性 關係中的一列稱為乙個屬性,乙個屬性必須有唯一的屬性名,乙個關係可以有若干個屬性值。4.域 屬性的取值範圍,是一組具有相同資料的值的集合。5.建立...

資料庫部分4

1.左聯 右聯 外聯是什麼意思?左聯 包括指定左表中的所有行 右聯 包括指定右表中的所有行 全外聯 包括左表和右表中的所有行 2.什麼是資料庫事務 資料庫事務是指作為單個邏輯工作單元執行的一系列操作,這些操作要麼全做要麼全不做,是乙個不可分割的工作單位 3.mysql實現了四種通訊協議 tcp ip...