ite 237 midterm guide

57
ITE 237 Advance Database Midterm

Upload: bay-nattagrit

Post on 29-Dec-2014

324 views

Category:

Documents


6 download

DESCRIPTION

 

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');