學生資料表(學生編號, 身分證字號, 學生姓名, 科系編號, 年級, 班級) 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…
Customer (Name,Country,CreditLimit) Product (Product, Type, Price) Shipper (Name,Country) (1) Theta Join SELECT * FROM (SELECT * FROM Customer CROSS JOIN SELECT Product,Type FROM Product) WHERE CreditLimit > Price (2) Equi Join SELECT * FROM (SELECT * FROM Customer CROSS JOIN SELECT Product,Type FROM Product) WHERE CreditLimit =2500 (3) Equi Join SELECT * FROM Customer, Shipper WHERE Customer.Country=Shipper.Country (4) Natural Join (Inner Join) SELECT * FROM Customer Natural JOIN Shipper (5) Left Out…
EasyPHP的httpd.conf會有兩個,一個放在EasyPHP目錄下binaries\conf_files\httpd.conf,另外一個在EasyPHP目錄下binaries\apache\conf\httpd.conf。 原則上,我們是要編輯 EasyPHP目錄下binaries\conf_files\httpd.conf ,另外一個httpd.conf不要管他,他是系統會自動處理更新的檔案。 httpd.conf設定重點 : (1) ServerRoot "${path}/binaries/apache" 這是指http的伺服器啟動的根目錄,這個不需要去修改。 (2) Listen 127.0.0.1:80 這是指啟動的IP與PORT,如果避免衝到PORT,可以修改為 Listen 127.0.0.1:8080 或是其他的PORT。 (3) ServerName 127.0.0.1:80 這個跟上面一樣。 (4) DocumentRoot "${path}/data/localweb" 這是瀏覽器打開 localhost 之後,網頁的根目錄所在。
資料流圖DFD是描述系統中資料流程的一種圖形工具,它標誌了一個系統的邏輯輸入和邏輯輸出,以及把邏輯輸入轉換邏輯輸出所需的加工處理。 資料流圖是從資料的角度來描述一個系統,他只描述WHAT而不描述HOW。所以資料流圖並不會看到詳細的程序流程,只看到程序與資料流的關係。 如果系統的規模較大,為了降低系統的複雜性,一般採取「逐層分解」的方法,繪製分層的DFD。 DFD的表示法 : DFD的範例 : 訂餐系統 Level 0 DFD (通常不包含 data store) Level 1 DFD (拆解Level 0 的程序) DFD 與 ERD 有何關係呢? 可以透過DFD的實體(Entity)與Data Store,知道應該包含那些資料。 在DFD之後,如果要更清楚的描繪整個系統,就可以使用 UML Diagram 。
(1) 把每個[實體]都做成一個[表單],實體的[屬性]就是[欄位] , 並訂下主鍵(PK)。 例如 : Person (person_id, Name, Lastname, Email, Phone) (2) 當存在多值屬性時(如Phone),該多值屬性也變成一個表格。 例如 : Person (person_id, Name, Lastname, Email) 以及 Phone (person_id, phone_id, phone_number) (3) 當出現弱屬性時,該弱屬性可以由其他屬性得知,則該弱屬性不必成為一個欄位。 例如 : age可以由生日計算得知,age則不必成為一個欄位。 (4) 當實體A與實體B為 1:1 時,A表單加上FK連到B表單PK,或是B表單加上FK連到A表單 PK。 A(aid,a1,a2 …, bid) B(bid,b1,b2 …) 或是 A(aid,a1,a2 …) B(bid,b1,b2 …, aid) 以上A表單的bid為FK連接到B表單的bid (PK) 以上B表單的aid為FK連接到A表單的aid (PK) 例如 顧客 ~ 購物車關聯是1:1 (一個購物車對應一個顧客,一個顧客只能有一個購物車…
(1)資料庫需求收集與分析 Requirement Collection and Analysis 使用的工具就是DFD (Data Flow Diagram 資料流程圖),DFD是描述系統中資料流程的一種圖形工具,它標誌了一個系統的邏輯輸入和邏輯輸出,以及把邏輯輸入轉換邏輯輸出所需的加工處理。 值得注意的是,資料流圖不是傳統的流程圖或框圖,資料流也不是控制流。 參考 : https://www.visual-paradigm.com/tutorials/data-flow-diagram-dfd.jsp http://web.ydu.edu.tw/~alan9956/docu3/0992sa/sa04_dfd.pdf (2)資料庫概念設計 Conceptual Database Design 概念塑模(Conceptual Data Model)使用的工具,就是實體關係模型(Entity Relationship Model),最後會產生實體關係圖(Entity Relationship Diagram)。 參考 : https://www.mysql.tw/2013/03/entity-relationship-model.html http…
資料庫的好處有哪些? (1) 達成資料的一致性 (Data Consistency) 例如如果學號A0001的學生,姓名從「王曉明」改為「王大明」,則所有地方抓出學號A0001的學生,姓名都會是「王大明」。 (2) 達成資料的共享性 (Data Sharing) 指同一份資料可以共享給多個人員或是應用程式。 (3) 達成資料的獨立性 (Data Independence) 資料與應用程式是分開的,修改應用程式並不會影響資料。 (4) 達成資料的完整性 (Data Integrity) 例如當資料不能刪除時,不會因為操作錯誤而引起錯誤。也就是資料會因為其間的關聯,而維持應該有的關係。 (5) 達成資料的安全性 (Data Security) 例如資料可以加密,或是可以分為不同權限等。 (6) 降低資料的重複性 (Redundancy) 不需要相同資料一再出現,只需要關聯即可。 (7) 避免紙張的浪費 (Paper Waste) 可以數位式儲存,不需要列印出來。
我們知道要讓兩個資料表有關聯,可以用外鍵(FOREIGN KEY )進行關聯。 【範例一】 CREATE TABLE product ( prod_id INT NOT NULL, prod_name CHAR(20), PRIMARY KEY (prod_id)); CREATE TABLE myorder ( order_id INT NOT NULL, prod_id INT, PRIMARY KEY (order_id)); 上述表單 product 的主鍵是 prod_id ; 表單 myorder 的主鍵是 order_id,並透過外鍵 myorder.prod_id 與product.prod_id做關聯。 然後插入資料 insert into product values (1,'Pen'),(2,'Pencil'),(3,'Box'); insert into myorder values (1,1),(2,2),(3,3); 但是當我們刪除product的資料時 delete from product where prod_id=1; 結果如下 系統根本…