การจัดการ Schema Objects ใน Oracle Database 12c ด้วยเครื่องมือ SQL Developer
เรียบเรียงจาก Managing Schema Objects
โดยคุณ Apisak Ruangsook

วัตถุประสงค์
เนื้อหานี้ คุณจะได้เรียนรู้ถึงวิธีการใช้ SQL Developer เพื่อจัดการตาราง (tables) ดัชนี (indexs) และวิว (views) และคุณยังจะได้เรียนรู้ถึงวิธีการจัดการรหัสโปรแกรมที่ถูกจัดเก็บอยู่ในฐานข้อมูล

แนะนำ
สคีมา (schema) คือที่เก็บรวบรวมของออปเจ็กต์ฐานข้อมูล (database object) สคีมาถูกเป็นเจ้าของโดยผู้ใช้งานฐานข้อมูลและแบ่งปันชื่อเดียวกันกับผู้ใช้งาน ออปเจ็กต์สคีมาเป็นโครงสร้างทางลอจิกที่ถูกสร้างโดยผู้ใช้งานบางออปเจ็กต์ อย่างเช่นตาราง (tables) หรือ ดัชนี (indexs) เอาไว้จัดเก็บข้อมูล ออปเจ็กต์อื่นๆ อย่างเช่น วิว (views) หรือ synonyms จะมีเพียงแค่การนิยามเท่านั้น

ความต้องการซอฟต์แวร์
ต่อไปนี้คือรายการของซอฟต์แวร์ที่จำเป็นสำหรับการเรียนรู้
  • Oracle Database 12c
สิ่งที่จำเป็นต้องมี
ก่อนที่จะเริ่มต้นบทเรียนนี้ คุณควรจะ
  • ติดตั้ง สคีมา ตัวอย่าง
  • ศึกษาบทเรียน Administering User Accounts and Security

การสร้างการเชื่อมต่อฐานข้อมูลใน SQL Developer

การเชื่อมต่อฐานข้อมูลคือการที่ SQL Developer object มีการระบุข้อมูลที่จำเป็นสำหรับการเชื่อมต่อเข้ากับฐานข้อมูลที่กำหนด เช่น การระบุชื่อผู้ใช้งานของฐานข้อมูลนั้นๆ คุณต้องมีการเชื่อมต่อเข้ากับฐานข้อมูลอย่างใดหนึ่งอย่าง (เชื่อมต่ออยู่แล้ว ถูกสร้างขึ้นมาใหม่ หรือไม่ก็กำลังนำข้อมูลเข้า) วิธีการใช้งาน SQL Developer สร้างการเชื่อมต่อเข้ากับฐานข้อมูลให้ดำเนินการตามขั้นตอนดังต่อไปนี้

1. ในหน้าต่างเทอมินอล ให้ทำการติดตั้งตัวแปร environment จากนั้นให้เปลี่ยนไดเร็กทอรี่ ไปยังไดเร็กทอรี่ sqldeveloper ซึ่งอยู่ภายใต้ $ORACLE_HOME และให้เรียก SQL Developer ขึ้นมา โดยสั่งประมวลผลคำสั่ง sh sqldeveloper.sh

page2image928
2. ในเนวิเกเตอร์ Connections ให้คลิกขวาที่โหนด Connections และเลือก New Connection

page2image1584
3. ป้อนชื่อที่ใช้ในการเชื่อมต่อ ชื่อผู้ใช้งานระบบ (system) และรหัสผ่านสำหรับผู้ใช้งาน SYSTEM และเลือก "Save Password" ถ้าหากคุณต้องการให้มีการบันทึกรหัสผ่านของคุณเอาไว้สำหรับการเชื่อมต่อครั้งต่อไปเมื่อใช้ผู้ใช้งานคนนี้กลับเข้ามาใช้งานอีกครั้ง ยอมรับค่าเริ่มต้นสำหรับชนิดการเชื่อมต่อ (connection type) และบทบาท (role) ให้ป้อนชื่อเครื่อง (hostname) หมายเลขพอร์ท (port) และ SID คุณสามารถคลิกปุ่ม Test เพื่อตรวจสอบว่าการเชื่อมต่อทำงานได้อย่างสมบูรณ์

page3image920
4. คลิกปุ่ม Connect

page3image1616
5. การเชื่อมต่อของคุณถูกแสดงอยู่ในแท็ป Connections ทางซ้ายมือและ SQL worksheet จะถูกเปิดโดยอัตโนมัติ

page4image1336

การจัดการตาราง
ในหัวข้อนี้คุณจะได้วิวดูการนิยามตารางและข้อมูลที่อยู่ในตาราง คุณยังจะได้สร้างตารางขึ้นมาใหม่และได้ปรับปรุงมันอีกด้วย

การวิวดูตาราง

1. ยืดโหนด system ใน Oracle SQL Developer

page5image1064

2. ยืดโหนด Other Users และยืดโหนด HR

page6image1024

3. ยืดโหนด Tables(Filtered)

page7image1672

4. เลือกตาราง EMPLOYEE ข้อมูลรายละเอียดเกี่ยวกับตารางจะถูกแสดงอยู่ในหน้าต่างออปเจ็กต์ ในแท็ปแสดงชื่อคอลัมน์และการนิยาม

page7image1840

การวิวดูข้อมูลที่อยู่ในตาราง

1. เลือกตาราง EMPLOYEES คลิกแท็ป Data เพื่อวิวดูข้อมูลที่ถูกจัดเก็บอยู่ในตาราง

page8image1552
2. แท็ป Data จะแสดงแถวข้อมูลที่ถูกจัดเก็บอยู่ภายในตาราง EMPLOYEES

page8image2368
3. การเรียงลำดับแถวตาม last name ทำได้โดยการคลิกขวาที่คอลัมน์ LAST_NAME และเลือกเมนู Sort

page8image3304
4. เลือกคอลัมน์ LAST_NAME และคลิกลูกศรที่ชี้ไปทางขวา เพื่อย้ายมันเข้าไปยังรายการ Select Columns คลิกปุ่ม OK

page9image1312
5. ข้อมูลในตอนนี้จะถูกแสดงตามลำดับที่ถูกกำหนด

page9image2008
การสร้างตาราง

1. ในหัวข้อนี้คุณจะได้สร้างตารางใหม่ไว้ภายในสคีมา APPUSER ซึ่งคุณได้ทำการสร้างสคีมา APPUSER ไว้ในบทเรียน Administering User Accounts and Security User แล้ว จากนั้นให้ยืดโหนด APPUSER ที่อยู่ใน Oracle SQL Developer ออก

page10image1000
2. คลิกขวาที่โหนด Tables และเลือก New Table

page10image1816
3. ในช่อง Name ให้ป้อน purchase_order ในช่อง Column Name ให้ป้อน po_number และเลือกชนิดข้อมูลเป็น NUMBER เลือก Not Null และ PrimaryKey ด้วย และคลิกปุ่ม Add Column

page11image1888
4. ป้อน po_description ในช่อง Column Name เลือกชนิดข้อมูเป็น VARCHAR2 ป้อน 200 ในช่อง Size และคลิกปุ่ม Add Column

page12image1488
5. ป้อน po_date ในช่อง Column Name เลือกชนิดข้อมูลเป็น DATE และเลือกคอลัมน์ Not Null คลิกปุ่ม Add Column

page13image1448
6. ป้อน po_vendor ในช่อง Column Name เลือกชนิดข้อมูลเป็น Number และเลือกคอลัมน์ Not Null คลิกปุ่ม OK

page14image1432
  1. 7. ตาราง PURCHASE_ORDERS จะปรากฏอยู่ในรายการ Tables สำหรับผู้ใช้งาน APPUSER
  2. page14image3120
  1. 8. เลือกตาราง PURCHASE_ORDERS คลิกแท็ป Columns เพื่อวิวดูคำนิยามคอลัมน์
  2. page14image3288
การเพิ่มคอลัมน์ไปยังตาราง

1. คลิกขวาที่ตาราง PURCHASE_ORDERS และเลือก Edit

page15image1408

2. จะปรากฏไดอะล็อกซ์บ็อกซ์ Edit Table ให้คลิกที่ปุ่มเครื่องหมายบวกสีเขียวเพื่อเพิ่มคอลัมน์

page15image1576

3. ป้อน po_date_received ในช่อง Name เลือก DATE ที่อยู่ในเมนู Type (กำหนดชนิดข้อมูลเป็น DATE) คลิกที่ปุ่มเครื่องหมายบวกสีเขียวอีกครั้ง

page16image1448

4. ป้อน po_requestor_name ในช่อง Name เลือก VARCHAR2 ที่อยู่ในเมนู Type (กำหนดชนิดข้อมูลเป็น VARCHAR2) ป้อน 40 ในช่อง Size คลิกปุ่ม OK

page17image1720

5. แท็ป Columns จะแสดงคอลัมน์ใหม่

page17image2496


การโหลดข้อมูลเข้ามาในตาราง
1. ดาวน์โหลดไฟล์ load_po.csv

2. คลิกขวาที่ผู้ใช้งาน APPUSER และเลือก Edit User

page17image3984

3. ในหน้าต่าง Create/Edit คลิก Quotas

page18image1040

4. เลือก Unlimited สำหรับเทเบิลสเปซ APPTS และคลิกปุ่ม Apply

page18image1896

5. คลิกปุ่ม Close

page19image928

6. ยืดโหนด Tables และคลิกขวาที่ตาราง PURCHASE_ORDERS และเลือก Import Data

page19image2280

7. เลือกไฟล์ load_po.csv คลิกปุ่ม Open

page19image2448

8. ยกเลิกการเลือก Header ออกไป ตรวจสอบให้มั่นใจว่า Format กำหนดเป็น csv เลือก UTF8 จากในเมนู Encoding เลือก none สำหรับ Left Enclosure คลิกปุ่ม Next

page20image1648

9. ตรวจสอบให้มั่นใจว่า Import Method กำหนดเป็น Insert คลิกปุ่ม Next

page21image1144

10. คลิกปุ่ม Next

page22image904

11. ตรวจสอบแต่ละคอลัมน์ได้จากภายในลิสต์ Source Data Columns และตรวจสอบค่าของมันในช่อง Name ก่อนที่จะคลิกปุ่ม Next หลังจากที่ตรวจสอบคอลัมน์ทั้งห้าเสร็จแล้วให้คลิกปุ่ม Next

page23image1248

12. คลิกปุ่ม Finish

page24image928

13. ข้อมูลถูกนำเข้าอย่างสมบูรณ์ คลิกปุ่ม OK

page24image2760

14. เลือกตาราง PURCHASR_ORDERS และคลิกแท็ป Data เพื่อดูแถวข้อมูลที่นำเข้ามาใหม่

page24image2928


การจัดการดัชนี (Indexes)

ในหัวข้อนี้คุณจะได้เห็นการนิยามดัชนี คุณยังจะได้สร้างดัชนีใหม่อีกด้วย

การวิวดูดัชนี

1. ยืดผู้ใช้งาน HR ที่อยู่ในโหนด Other Users และยืด Indexes ออกมา

page25image2128

2. เลือก EMP_DEPARTMENT_IX

page25image2296

3. ข้อมูลเกี่ยวกับการนิยามดัชนีจะถูกแสดงอยู่ในแท็ป Columns คลิกที่แท็ป Details เพื่อวิวดูข้อมูลเพิ่มเติม

page25image2464

4. แท็ป Details แสดงข้อมูลเกี่ยวกับการนิยามดัชนี

page26image1944

การสร้างดัชนี

1. เลือกผู้ใช้งาน SH ที่อยู่ในรายการ Other Users และยืด Tables ออกมา

page26image2112

2. คลิกขวาที่ตาราง Products เลือก Index จากในเมนูและเลือก Create Index

page27image2072

3. ให้ป้อน pro_desc_idx ลงในช่อง Name ให้เลือก PROD_DESC ในช่อง Column Name or Expression และคลิกปุ่ม OK

page27image2240

4. ตรวจสอบให้มั่นใจว่า PRODUCTS ถูกเลือกอยู่ในหน้าต่าง nevigator ทางซ้ายมือ

page28image3384

5. เลือกแท็ป Indexes ที่อยู่ทางขวามือ ดัชนี PROD_DESC ตัวใหม่ของคุณจะถูกแสดง

page28image3552


การจัดการวิว
ในหัวข้อนี้คุณจะแสดงผลการนิยามวิว และคุณยังจะได้สร้างวิวใหม่อีกด้วย

การแสดงผลวิว

1. ยืด HR ที่อยู่ภายใต้ Other User ในหน้าต่างทางซ้ายมือ และยืด Views ออก
page28image3720
2. เลือกวิว EMP_DETAILS_VIEW
page28image3888
3. แท็ปคอลัมน์ในช่องทางขวามือแสดงคอลัมน์ต่างที่เป็นส่วนประกอบของวิวนี้

page29image1000

การสร้างวิว

ในตัวอย่างนี้คุณสร้างวิวชื่อว่า KING_VIEW ซึ่งจะเรียกค้นข้อมูลจากตาราง HR.EMPLOYEE วิวนี้จะกรองข้อมูลที่เอาเฉพาะพนักงานที่ขึ้นโดยตรงกับผู้จัดการที่ชื่อว่า King เท่านั้น พนักงานคนไหนที่มี ID (manager_id) เป็น 100 จะถูกส่งคืนกลับมาในการเรียกค้น

1. ตรวจสอบให้มั่นใจว่าผู้ใช้งาน HR ถูกเลือก คลิกขวาที่ Views และเลือก New View

page29image3376
2. ป้อน king_view ในช่อง Name ป้อน SELECT * FROM hr.employees WHERE manager_id = 100 ในกล่อง SQL Query คลิกปุ่ม OK

page30image1672
3. วิวใหม่จะแสดงอยู่ภายใต้ Views ในช่องหน้าต่างทางซ้าย

page30image2784
4. เลือกววิ KING_VIEW

page30image2952
5. คอลัมน์ต่างๆที่ถูกผนวกรวมอยู่ในวิวจะถูกแสดงอยูภายในแท็ป Columns คลิกที่แท็ป Data

page31image1088
6. แถวข้อมูลจะถูกเรียกค้นเมื่อวิวถูกเรียกค้นถูกแสดงอยู่ในแท็ป Data

page31image1904

การจัดการรหัสโปรแกรมที่ถูกจัดเก็บอยู่ในฐานข้อมูล
ในฐานะผู้ดูแลระบบฐานข้อมูล (DBA) คุณอาจจะถูกข้อร้องให้มีการตรวจสอบสคีมาออปเจ็กต์ (shema objects) ที่อาจจะยังไม่ถูกต้องซ้ำอีกครั้ง สคีมาออปเจ็กต์ (อย่างเช่น triggers, procedures หรือ views) ที่อาจจะยังไม่ถูกต้องเมื่อมีการเปลี่ยนแปลงไปยังออปเจ็กต์ที่พวกมันสังกัดอยู่ ในหัวข้อนี้คุณจะได้สร้าง PL/SQL procedure ใหม่ คุณจะทำการเปลี่ยนแปลงไปยังตารางที่ถูกอ้างถึงใน procedure การเปลี่ยนแปลงนี้จะทำให้ procedure ไม่ถูกต้อง คุณจะต้องคอมไฟล์ procedure ใหม่

การตรวจสอบ (การคอมไพล์)สคีมาออปเจ็กต์ที่ไม่ถูกต้อง

1. ดาวน์โหลดไฟล์ cr_add_po.sql

2. ล็อกอินเข้าสู่ SQL*Plus ด้วยผู้ใช้งาน SYSTEM

page32image984
3. ประมวลผลสคริปต์ cr_add_po.sql เพื่อสร้าง PL/SQL procedure ใหม่ ตั้งชื่อว่า APPUSER.ADD_PO_HISTORY ออกจาก SQL*Plus

page33image1344
4. กลับไปที่ SQL Devaloper ยืด Procedure สำหรับผู้ใช้งาน APPUSER เลือก ADD_PO_HISTORY procedusre ใหม่ของคุณเพื่อดูมันใน SQL Developer

page33image2664
5. ยืด Tables สำหรับผู้ใช้งาน APPUSER คลิกขวาที่ตาราง PURCHASE_ORDERS และเลือก Edit

page34image1808
6. เลือกคอลัมน์ PO_DESCRIPTION แก้ไขค่าของ Size เป็น 250 คลิกปุ่ม OK

page34image1976
7. เลือกแท็ป Reports ยืด Data Dictionary Reports ยืด All Objects และเลือก Invalid Objects
page35image1808
8. ในไดอะล็อกบ็อกซ์ Select Connection ให้คลิกปุ่มเครื่องหมายบวกสีเขียวเพื่อสร้างการเชื่อมต่อใหม่

page35image1976
9. ป้อน appuser ในช่อง Connection Name ป้อน appuser ในช่อง Username ป้อนรหัสผ่านสำหรับ appuser ป้อน orcl ในช่อง SID คลิกปุ่ม Connect

page36image1632
10. คลิกปุ่ม OK

page36image2864
11. คลิกปุ่ม Apply ในหน้าต่าง Enter Bind Values

page36image3032
12. แท็ป Invalid Objects จะปรากฏขึ้นมาในหน้าต่างออปเจ็กต์ จะสังเกตุเห็นว่า ADD_PO_HISSTORY procedure ในตอนนี้ไม่ถูกต้อง

page37image2480
13. เลือก ADD_PO_HISTORY procedure คลิกขวาและเลือก Compile

page37image2648
14. คลิกปุ่ม Apply

page37image2816
15. คลิกปุ่ม OK

page37image2984
16. ปิดแท็ป Invalid Objects เลือก Invalid Object อีกครั้งในหน้าต่างทางซ้าย เชื่อมต่อเป็น APPUSER และเลือก Invalid Objects อีกครั้ง เพราะว่าคุณคอมไพล์ ADD_PO_HISTORY ใหม่ จึงไม่มีออปเจ็กต์ที่ไม่ถูกเหลืออยู่

page38image2296

สรุป

ในบทความนี้คุณได้เรียนรู้วิธีการ
  • สร้างการเชื่อมต่อฐานข้อมูลใน SQL Developer
  • การจัดการตาราง
  • การจัดการดัชนี
  • การจัดการวิว
  • การจัดการรหัสโปรแกรมที่ถูกจัดเก็บ

140603.14:47:01
• แปลงจาก .docx เป็น web.