![]() |
|
![]() |
|
![]() |
ที่ผ่านมาเป็นการกำหนดชนิดข้อมูลที่ซับซ้อน และการสืบค้นข้อมูลในรีเลชันที่มีการกำหนดชนิดข้อมูลที่ซับซ้อน ในหัวข้อนี้จะเป็นการสร้างและปรับปรุงข้อมูลในรีเลชันที่มีชนิดข้อมูลที่ซับซ้อน เราสามารถเพิ่มข้อมูลหนึ่งทูเปิลในรีเลชัน employee ได้ดังนี้ (105, John, set(Jane, Eric), set((125, 02/05/80), (168, 07/06/81), (198, 03/04/83))) จากคำสั่งดังกล่าว จะเห็นว่าเราสร้างค่าข้อมูลของแอตทริบิวต์ผสม(composite attribute) โดยการกำหนดเป็นรายการไว้ในวงเล็บ และใช้คำหลัก set เป็นตัวบอกว่า เป็นชนิดข้อมูลที่ซับซ้อน ดังนั้นถ้าจะเขียนให้อยู่ในรูปของคำสั่ง SQL สามารถเขียนได้ดังนี้ insert into employee values ( 105, John, set(Jane, Eric), set((125, 02/05/80), (168, 07/06/81), (198, 03/04/83)) ) อีกทั้งเราสามารถที่จะใช้ข้อมูลที่ซับซ้อนในการสืบค้นข้อมูลได้อีกด้วย ดังตัวอย่างเช่น select empno, name from employee where name in set(John,Anna,Tom) คำสั่งข้างต้นเป็นการสืบค้นข้อมูล รหัสพนักงานและชื่อพนักงาน จากรีเลชัน employee ที่มีชื่อเป็น John หรือ Anna หรือ Tom เราสามารถสร้างค่าข้อมูลแบบ multiset โดยใช้คำสั่ง multiset แทน set ได้ ซึ่งผลลัพธ์จะเป็นการสร้างรายการหรืออะเรย์ของข้อมูลภายในทูเปิลหนึ่ง ๆ ในการสร้างอ๊อปเจ็กของข้อมูล เราจะใช้ฟังก์ชัน constructor ซึ่งฟังก์ชัน constructor ของชนิดข้อมูล T คือ T() เมื่อ constructor ถูกเรียกขึ้นมาสร้างอ๊อปเจ็กใหม่ของ T ก็จะทำการกำหนด oid ให้กับอ๊อปเจ็กและส่งอ๊อปเจ็ก กลับมา จากนั้นข้อมูลแต่ละตัวของอ๊อปเจ็กก็จะถูกกำหนดค่าข้อมูล เราสามารถใช้คำสั่ง update เพื่อปรับปรุงข้อมูลในรีเลชันที่ซับซ้อนได้ เหมือนกับคำสั่ง update ที่ใช้ในฐานข้อมูลเชิงสัมพันธ์ |
|
|