Top Banner
ITE 237 Advance Database Midterm
57

Ite 237 midterm guide

Dec 29, 2014

Download

Documents

Bay Nattagrit

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ite 237 midterm guide

ITE 237 Advance Database

Midterm

Page 2: Ite 237 midterm guide

Entity

• วตถทเราสนใจ อาจเปนไดทงบคคล สถานท วตถ เหตการณ หรอแนวคดทกอใหเกดกลมของขอมลทตองการ

เชน นกเรยนทกคนมขอมลเหมอนกนแตไมมเงนเดอนแบบอาจารย ดงนน นกเรยนจะอยคนละเอนทตกบอาจารย • ม 2 แบบ

– Strong entity ซงม PK – Weak entity ไมม PK แตม Partial key ซงน าไปใชรวมกบ PK ทดงมาจาก strong กลายเปน คยรวม มไวส าหรบ Delete

Cascade

Page 3: Ite 237 midterm guide

Attribute

• ลกษณะหรอคณสมบตทน ามาอธบายเอนตต และ ความสมพนธ • Single value attribute มคาเดยวใน record

• Key attribute คอ attribute ทเปน PK

• Composite attribute คอมหลายคา – เชน ชอ > ชอจรง , นามสกล บางองคกรกรวม บางองคกรกแยก เพอไวใชคนหา

ขอมลตามความตองการ • Multi-value attribute คอ 1 attribute มไดหลายคา

– เชน เบอรโทร ซงตองแตกตารางใหม เอา PK ไปใชรวมดวย • Derived attribute คอ attribute ทไดจากการค านวณจาก

attribute อนๆ

Page 4: Ite 237 midterm guide

Single value attribute

• สญลกษณทใชคอ วงรเสนขอบเสนเดยว มชอแอททรบวตบรรจอยภายใน

Page 5: Ite 237 midterm guide

Composite attribute

• สญลกษณทใชแสดง Composite Attribute คอวงรเสนขอบเสนเดยว แตมวงรยอยมาเชอมตอดวย

Page 6: Ite 237 midterm guide

Multivalued Attribute

• สญลกษณทใชแสดง Multivalued Attribute คอวงรทมเสนขอบเปนเสนค บรรจชอ แอททร บวตภายใน

Page 7: Ite 237 midterm guide

Derived Attribute

• สญลกษณทแสดง Derived Attribute เปนวงรทมเสนขอบเปนเสนประ มชอแอททรบวตบรรจภายใน

Page 8: Ite 237 midterm guide

Cardinality

• Cardinality คอความสมพนระหวาง entity ม 3 แบบ • ความสมพนธแบบหนงตอหนง หรอ 1-1

• ความสมพนธแบบหนงตอกลม หรอ 1-M

• แบบกลมตอกลม หรอ M-N

Page 9: Ite 237 midterm guide

ความสมพนธแบบหนงตอหนง หรอ 1-1

– เชน อาจารย 1 คน จะสามารถเปนคณบดได 1 แผนก และในขณะเดยวกน คณะวชาแตละคณะ กมอาจารยทท าหนาทเปนคณบดไดเพยง 1 คนเทานน

Page 10: Ite 237 midterm guide

ความสมพนธแบบหนงตอกลม หรอ 1-M

– เชน ลกคาหนงคนมใบสงซอไดหลายใบ และใบสงซอแตละใบจบคกบลกคาไดเพยงคนเดยว

Page 11: Ite 237 midterm guide

แบบกลมตอกลม หรอ M-N

– เชน สนคา 1 ชนดถกสงตามใบสงซอไดหลายใบ และใบสงซอ 1 ใบสามารถสงสนคาไดหลายชนด

Page 12: Ite 237 midterm guide

แปลง ER เปน Relation

1-1 • ท าได 3 วธ

• 1.สรางตารางใหม โดยเอา PK ทง2 มาเปน pk ของตารางใหม • 2.ยาย pk ฝง partial มาเปน fk ในฝง total

• 3.ใหน า pk ฝงขอมลมากมาเปน fk ฝงขอมลนอย 1-M

• วธการท าคอยาย pk ฝง 1 ไปเปน fk ในฝง M

M-N

• วธการท าคอ M-N ตองสรางตารางใหมแลวน า Pk ทง2 ตารางมาใชเปน ทงpkรวมและfk ตารางใหม มไวเพอ delete cascade แตตองระวงบางครงอาจใชไมไดตองม pk เพม ซงเปนของ ตารางใหมเอง

Page 13: Ite 237 midterm guide

Recursive

• Recursive คอ ขอมลทมความสมพนธกนเองในเอนทต

• 1-1 เชน พ1 คนมนองรหสได1 คน สวนนองกมพรหสไดคนเดยว

STUDENT

HAVE

1 1

Page 14: Ite 237 midterm guide

• 1-M เชน หวหนา1 คนมลกนองไดหลายคน ลกนองหลายคนมหวหนาไดคนเดยว

EMPLOYEE

HAVE

M 1

Page 15: Ite 237 midterm guide

• M-N เชน เรยนวชาตองผานหลายวชาขนต ากวา เชน จะเรยน eng3 ตองเรยน eng1 และ 2 กอน

SUBJECT

PASS

N M

Page 16: Ite 237 midterm guide

แปลง ER เปน Relation

1-1 – วธท า ใหสรางตารางใหมและใหเอา pk มาเปลยนชอเชน IDE มาเปน

ID_F ,ID_M ซงเปน pk รวม

1-M – วธท า ใหเพม attribute แลวเปลยนชอ pk เพอใหท าเปน fk (ซงจะเปน

total ไมได เพราะคาหวหนาจะวาง)

M-N – วธท า ตองสรางตารางใหมและเอา pk มาเปลยนชอ ซงเปน pk รวม

Page 17: Ite 237 midterm guide

FK กบ Partial Key

• Partial key จะใชใน weak entity ซงน า pk จาก strong

entity มาเปนคยรวม วางและซ าไมได – EX เชนตารางครอบครวม ชอ ความสมพนธ เวลาวาดใหใชชอเปนเสนประ

(เพราะเปน partial key ซงจะใช pk จาก strongรวมดวย)

• แตถาเปน FK จะน า pk จากอกตารางมาใชรวม ซงซ าและวางกได

Page 18: Ite 237 midterm guide

สญลกษณในการเขยน ERD

• Strong

• Weak

• Relationship

Page 19: Ite 237 midterm guide

• Single Value Attribute

• Multivalued Attribute

• Derived Attribute

Page 20: Ite 237 midterm guide

• Composite Attribute

• Key Attribute

Page 21: Ite 237 midterm guide

• 1-1

• 1-N

• M-N

E1

E1

E1

E2

E2

E2

1 1

1 N

M N

Page 22: Ite 237 midterm guide

การใช Partial หรอ Total

*จะตองค านงถงความยดหยน

พนกงาน แผนก M 1

E1 E2 M 1

Page 23: Ite 237 midterm guide

• DBA = database administrator มหนาทคอ ควบคม Database สราง ER สราง Table และ SQL

• EERD = สรางขนเพอแกไขคาวางใน attribute ซงจะม super class ซงทกคนตองม กบ sub class ทมเฉพาะบางคนซงแบงไว เวลาสรางตาราง จะตองน า pk ของ super class มาเปน pk ของ subclass ม 2 แบบคอ disjoint คอ ขอมลใน subclass จะไมซ ากน สวน overlap ขอมลใน subclass จะมซ ากนได

• Key = คอ attribute หรอกลม attribute ทบอกคา attribute อนๆได

Page 24: Ite 237 midterm guide

• Super key = attribute หรอกลม ทสามารถบอกคา attribute อนได , เราไมใชใน db เพราะยากกวาการ insert

(ถาใหเปน pk หมด จะวางไมไดและซ าไมได)

• Candidate key = attribute ทนอยทสดใน sk ทบอก attribute อนได (วางและซ าไมได)

• Primary key = candidate keyทเราเลอกใหก าหนด attribute อนใน entity (วางและซ าไมได)

Page 25: Ite 237 midterm guide

• Alternative key (secondary key) = candidate key ทเราไมเลอก เอาไวท า secondary index เพอไวคน (จรงๆ ใน DB จะใช where) (วางและซ าไมได)

• Foreign key = candidate key ทไปอยในตารางอน มไวส าหรบสรางความสมพนธ (วางและซ าได)

• Dependency = attribute หนงขนอยกบ attribute

หนง

Page 26: Ite 237 midterm guide

Integrity

• Entity Integrity (PK) = PK หามซ าและวาง • 2. Referential integrity (FK)

– 2.1.Restrition (Enforcement reference Integrity) • 1.หามลบขอมลตารางแม เมอถกอางถง ซงจะลบไดกตอเมอ ใหท า fkในตารางลก เปนคาวางกอน

• 2.จะลบขอมลในตารางหลกได กตอเมอไมมการอางถง • 3. เราสามารถลบขอมลในตารางหลกไดเลยถาไมมการอางถง

– 2.2 Cascade • 2.2.1 Delete cascade. เมอมการลบแม กลบลกดวย • 2.2.2 Update cascade. เมอมการอพเดทแม ลกกจะอพดวย

Page 27: Ite 237 midterm guide

Normalization

• Normalization คอการกระจายตาราง เพอขจด anomaly(ขอผดพลาด) 3 อยาง ซงจะลดความซ าซอน

• 1. insert คอยากตอการใสขอมลหรอใสคาใน entity แลวบางครงไมสามารถใส pk หรอมคาวาง เชน ตารางบคคลมนกเรยนกบครใหIDS เปน PK แลวมครเขามาใหม แตไมสามารถท าไดเพราะไมม IDS เพมตาม(ไมม PK)

• 2. update คอเมอupdate ตอง update ทงหมด ซงมโอกาสผด

• 3. delete คอลบแลวหายไปจากระบบเลย

Page 28: Ite 237 midterm guide

Normal Form

• รปแบบโครงสรางของ relation ทมคณสมบตเฉพาะ NF มหลายระดบ NF ระดบทสงกวา จะมการจดโครงสรางขอมลทดกวา และลดปญหาทอาจเกดขนใน NF ระดบทต ากวาได

• 1NF = หามม muti-value ถาพบตองแยกตารางและเอา PK ค และ Repeating group ถาพบตองเพมคา PK (ในตาราง) เชน รรหสวชา(ไมใชPK)กจะรเกรดและชอวชา ดงนนตองเพม PK ซง 1NF ยงใชใน DB ไมได เพราะยงเกด anomaly อย

• 2NF = เปน NF1 , non-key ทกตวตองขนกบ pk แตไมสามารถใชใน DB ได เพราะยงเกด anomaly

• 3NF = ตองเปน 2NF หาม non-key ขนกบ non key อนๆ ได (Transitive) ตองกระจายตาราง **จะท าถงแบบนมากสด 90% **ERD = 3NF เพราะมการสรางตารางเหมอนกบทออกแบบไวซงใชหลก cardinality (FK)

Page 29: Ite 237 midterm guide

หลกการแปลง ER เปน Relation

1. ใหแปลงเอนตตทกตวเปนรเลชน และแปลงแอตทรบวตทกตวของเอนตตใหเปนแอตทรบวตของรเลชน

• Customer(CusID, CusName, CusSurName,

CusAdd)

Customer CusID

CusName

CusSurName CusAdd

Page 30: Ite 237 midterm guide

2. เพมแอตทรบวตใหกบรเลชน 2.1 ถาความสมพนธเปนแบบ 1 to 1 ใหน า pk ของรเลชนฝงใดฝงหนงไป

อยในรเลชนของอกฝงหนง

**ตองใหคาในแอตทรบวใหมเปน Null นอยสดหรอไมม

• Teacher(ThID, ThName, ThSurName)

• Faculty(FacID,FacName,ThID*)

Teacher

ThID ThName

ThSurName

เปนคณบด Faculty

FacID FacName

1 1

Page 31: Ite 237 midterm guide

2. เพมแอตทรบวตใหกบรเลชน 2.2 ถาความสมพนธเปนแบบ 1 to Mใหน า pk ของรเลชนฝงทเปน 1ไปอยในร

เลชนของฝงทเปน M

• Customer(CusID, CusName, CusSurName)

• Orders(OID,OrderDate, ReqDate ,CusID*)

Customer

CusID

CusName

CusSurName

สงซอ Orders

OID OrderDate

1 M

ReqDate

Page 32: Ite 237 midterm guide

3. สรางรเลชนใหมส าหรบความสมพนธแบบ M to M

โดยสราง PK ไดจาก การน าเอา PK ของแตละรเลชนมาประกอบกน

• Customer(CusID, CusName, CusSurName)

• Orders(OID,OrderDate, ReqDate ,CusID*)

• OrderDetail(OID*, CusID*, Discount, Amount, UnitPrice)

Customer

CusID

CusName

CusSurName

รายการสงซอ Orders

OID UnitPrice

M M

Amount

Discount

Page 33: Ite 237 midterm guide

4. ส าหรบเอนตตทมแอตทรบวตแบบหลายคา • ใหสรางรเลชนเพม ทมแอตทรบวตแบบหลายคานน • PK ของรเลชนใหมเกดจาก PK ของรเลชนเดมประกอบกบ แอตทรบวตทเกดจากแอตทรบวแบบหลายคา

• Customer(CusID, CusName, CusSurName)

• CusCredit(CusID*, CreditNum)

Customer

CusID

CusName

CusSurName

CreditNum

Page 34: Ite 237 midterm guide

5. ส าหรบเอนตตแบบออน ใหสรางเปนรเลชน และม PK ทมาจาก PK ของรเลชนหนงรวมกบ PK ของเอนตตแบบออน

• Invoice(Inv no, Date)

• InvoiceDetail( Inv no* ,Line)

Date

Invoice has Invoice

Detail

Inv no Line

1 M

Page 35: Ite 237 midterm guide

หมายเลขใบเสรจ........................... วนทออก................................ ชอลกคา ……………………………............................. ทอย................................................................................................

รหสสนคา ชอสนคา ราคา/หนวย จ านวน รวม

รวมมลคา ภาษมลคาเพม(VAT)

ราคาสทธ พนกงาน.....................................................

Page 36: Ite 237 midterm guide
Page 37: Ite 237 midterm guide

1

1

1

N

1 N

E-Mail

N

1

N

M

N M

N

1

E-Mail

N

1

วนทสงซ อ

Page 38: Ite 237 midterm guide

PL / SQL

• Field dept ม DEPTNO , DNAME, LOC

• Emp ม EMPNO, ENAME , JOB, MGR,

HIREDATE ,SAL , COMM , DEPTNO

• Salgrade ม GRADE LOSAL HISAL

Page 39: Ite 237 midterm guide

• อยากทราบวา king เงนเดอนเทาไร

SQL> select ename,sal from emp

2 where ename='KING';

Page 40: Ite 237 midterm guide

• อยากทราบวา ชอแผนกไหนอยนวยอก

SQL> select dname,loc from dept

2 where loc ='NEW YORK';

Page 41: Ite 237 midterm guide

• มพนกงานไรบางทมเงนเดอนมากกวา 2000

SQL> select * from emp

2 where sal>2000;

Page 42: Ite 237 midterm guide

• อยากทราบวามพนกงานคนไหนบางทท างานแผนกหมายเลข10

SQL> select * from emp

2 where deptno = 10;

Page 43: Ite 237 midterm guide

• อยากรวาพนกงานคนไหนบางทเปน saleman

SQL> select * from emp

2 where job = 'SALESMAN';

Page 44: Ite 237 midterm guide

• อยากทราบวา king มต าแหนงอะไร และเงนเดอนเทาไร

SQL> select ename,job,sal from emp

2 where ename='KING';

Page 45: Ite 237 midterm guide

• ใครบางทไมมคา com

SQL> select ename,comm

2 from emp

3 where comm is null;

Page 46: Ite 237 midterm guide

• ใครบางมคา comm.

SQL> select ename,comm

2 from emp

3 where comm is not null;

Page 47: Ite 237 midterm guide

• king ท างานแผนกชออะไร และทไหน (เชอม 2 ตาราง)

SQL> select emp.ename,dept.dname,dept.loc

2 from emp , dept

3 where emp.deptno = dept.deptno and emp.ename ='KING';

Page 48: Ite 237 midterm guide

• มพนกงานชออะไร เงนเดอนเทาไร ท างานทไหน ทอยแผนก sales

SQL> Select e.ename, e.sal, d.loc, d.Dname

2 From emp e , dept d

3 Where d.deptno = e.deptno and e.deptno=30;

Page 49: Ite 237 midterm guide

• มพนกงานทอยแผนก sales มชอวาอะไรบาง ต าแหนง เงอนเดอนเทาไร

SQL> Select e.ename, e.sal, e.job, d.Dname

2 From emp e , dept d

3 Where d.deptno = e.deptno and e.deptno=30;

Page 50: Ite 237 midterm guide

• ชอ เงนเดอน ต าแหนง ของแผนก sales และเงนมากกวา 2500

SQL> Select e.ename, e.sal, e.job, d.Dname

2 From emp e , dept d

3 Where d.deptno = e.deptno and e.deptno=30 and e.sal>2500;

Page 51: Ite 237 midterm guide

• หาชอ เงนเดอน ทตงแผนก อยแผนกไหน ของ king

SQL> select e.ename ,e.sal,d.loc,d.dname

2 from emp e , dept d

3 where e.deptno = d.deptno and e.ename = 'KING';

Page 52: Ite 237 midterm guide

• เงนเดอนสงสด ต าสด เฉลยของ emp เทาไร

SQL> select avg(sal) , max(sal) , min(sal)

2 from emp;

Page 53: Ite 237 midterm guide

• คนทมต าแหนง manager เงนเดอน ต าสด สงสด เฉลย เทาไร

SQL> select max(sal) , min(sal) , avg(sal)

2 from emp

3 where job = 'MANAGER'

Page 54: Ite 237 midterm guide

• มพนกงานกคน

SQL> select count(*) from emp;

Page 55: Ite 237 midterm guide

• แตละต าแหนงมเงนสงสด ต าสด เฉลย เทาไร

SQL> select job , max(sal) , min(sal), avg(sal)

2 from emp

3 group by job;

Page 56: Ite 237 midterm guide

• มพนกงานต าแหนงไรบาง ทมเงนเดอนเฉลยสงกวา 2000

SQL> select ename , job , avg(sal) from emp

2 having avg(sal)>2000

3 group by ename , job;

Page 57: Ite 237 midterm guide

• ใครเงนเดอนมากกวา smith

SQL> select ename ,sal from emp

2 where sal > ( select sal from emp where ename = 'SMITH');