自從1974年IBM開發了System R建立了 關聯式資料庫 的雛型,至今已經五十年。雖然其間還有很多不同類型的資料庫產生,例如物件導向資料庫 (Object-Oriented Database)、分散式資料庫 (Distributed Database)、圖形資料庫 (Graph Database)、時序資料庫 (Time Series Database)等,但是始終無法撼動關聯式資料庫的地位。 1998年開始出現NoSQL這個名詞,由Carlo Strozzi提出,不過當時的NoSQL還是屬於關聯式資料庫。到了2009年,Rackspace的Eric Evans又再次提出了NoSQL的概念,這次他指的NoSQL是屬於非關聯式的,與Carlo Strozzi的NoSQL並不相同,但是其目的也不在取代關聯式資料庫,而是強調鍵-值儲存(Key-Value)和文件導向資料庫(Document-oriented Database)的優點,自此真正的「非關聯式資料庫」才真正開始蓬勃發展。 但是在NoSQL這個詞彙出現前,Google的 Bigtable 早已經在2004年出現,它也是屬於NoSQL,是一種壓縮的、高效能的、高可延伸性的,基於Google檔案系統(Google File S…
之前練習過了 進貨單的DFD及ERD ,也練習過了 線上商店的UML ,現在來看看B2B網站的Data Flow Diagram跟線上商店有何差異。
假如有進貨單格式如上,以往都是人工製作表單,現在老闆要我把這個作業電腦化,我應該怎麼做呢? (仔細檢視上面的進貨單,如果A公司要運送貨物給B公司,對A公司來說是出貨單,對B公司來說才是進貨單。出貨單才會需要運送地址,進貨單只需要供應商編號或是名稱。除非進貨會到不同倉庫,例如B公司有台中倉庫以及台南倉庫,以下分析過程先忽略進貨地址。)
(系統開發流程 : 計畫 > 分析 > 設計 > 建置 > 測試整合 > 上線&維護) 現在我們用一個實際的例子來說明系統分析與設計的過程。
學生資料表(學生編號, 身分證字號, 學生姓名, 科系編號, 年級, 班級) Student(sid, idno, sname, did, syear, sclass) create table Student( sid char(5) not null, idno char(10), sname char(20), did char(5), syear int, sclass int, primary key (sid)); insert into Student(sid, idno, sname, did, syear, sclass) values ('s0001', 'A123456789', 'John01', 'd0001', 1, 1); insert into Student(sid, idno, sname, did, syear, sclass) values ('s0002', 'A123456780', 'John02', 'd0001', 1, 1); insert into Student(sid…
這篇是接著之前文章,再來說明的 資料表單的運算 http://www.mysql.tw/2014/05/blog-post_21.html 關聯模式的運算 http://www.mysql.tw/2015/05/blog-post_14.html 資料表的運算有以下~ 限制(Restrict) 投影(Project) 聯集(Union) 卡氏積(Cartesian Product) 差集(Difference) 交集(Intersection) 合併(Join) 除法(Division) (1)限制(Restrict) : 指的是從資料表取出符合條件的資料 。 從客戶表單中取出客戶編號為1的資料~ SELECT * FROM customer WHERE cus_id=1; (2)投影(Project) : 指的是從資料表取出特定欄位 。 從客戶表單中取出客戶編號與客戶姓名~ SELECT cus_id, cus_name FROM customer; (3)聯集(Union) : 指的將兩個或多個資料表產生為新的資料表,若有重複的資料,則只顯示一次。 例如有兩個結構一樣的客戶資料表,要把他合併起來,但是要去除重複資料。 …
關聯模式的運算是將關聯進行運算,或是跟另外的關聯進行運算。 (1) SELECT運算子 ( s) 表示法: Result = s <選擇條件 > (R) 意思是指,從關聯R中,選擇出符合 <選擇條件>的資料。 這樣子好像有點難以理解,其實就是~使用 SELECT語法,從 關聯R中取出資料。 例如 關聯R為(studentNo, studentName, studentDeptID),我們就可以使用如下運算: SELECT * FROM R WHERE studentDeptID='0001'; 其中 studentDeptID='0001'就是 <選擇條件> (2) PROJECT運算子( π ) 表示法: Result = π <屬性串列 > (R) 意思是指,從關聯R中,選擇出某些屬性 的資料。 例如 關聯R為(studentNo, studentName, studentDeptID),我們就可以使用如下運算: SELECT studentNO, studentName FROM R; 但是經常 s跟 π經常一起使用,例如: …