เราทำงานร่วมกับออราเคิล ตัวอย่างของการเขียนโปรแกรมมาร์กอัป JSP แบบกำหนดเอง การจัดการข้อยกเว้น

หนึ่งในความท้าทายสำหรับตัวเลือกการพัฒนามากมายคือการหาว่าตัวเลือกใดเหมาะสมที่สุดสำหรับ สถานการณ์เฉพาะ- ทุกคนต้องการความยืดหยุ่นสูงสุด (มีตัวเลือกให้มากที่สุด) แต่ในขณะเดียวกัน ทุกอย่างก็เรียบง่ายและชัดเจน Oracle ให้ทางเลือกแก่นักพัฒนาอย่างไม่จำกัด ไม่มีใครเคยพูดว่า: สิ่งนี้ไม่สามารถทำได้ใน Oracle; พวกเขาพูดแตกต่างออกไป: คุณต้องทำเช่นนี้ใน Oracle กี่วิธี? - ฉันหวังว่าหนังสือเล่มนี้จะช่วยให้คุณตัดสินใจได้ถูกต้อง

หนังสือเล่มนี้เหมาะสำหรับผู้ที่ยินดีกับเสรีภาพในการเลือก แต่ต้องการรับคำแนะนำและเรียนรู้เฉพาะเจาะจงของการนำวิธีการบางอย่างไปใช้และ ฟังก์ชันของออราเคิล- ตัวอย่างเช่น Oracle DBMS มอบความสามารถที่ยอดเยี่ยมในการสร้างฐานข้อมูลส่วนตัวเสมือน เอกสารของ Oracle อธิบายวิธีใช้คุณสมบัตินี้และประโยชน์ของคุณสมบัตินี้ อย่างไรก็ตาม เอกสารไม่ได้ระบุว่าควรใช้เมื่อใด และที่สำคัญกว่านั้นคือเมื่อใดไม่ควรใช้ เอกสารประกอบไม่ได้ให้รายละเอียดการใช้งานสำหรับคุณลักษณะเฉพาะเสมอไป และหากไม่ทราบ อาจขัดขวางคุณโดยไม่คาดคิด - มันเกี่ยวกับไม่เกี่ยวกับข้อผิดพลาด แต่เกี่ยวกับวิธีการทำงานที่ตั้งใจไว้และวัตถุประสงค์ดั้งเดิมของวิธีการที่เกี่ยวข้อง)

หนังสือเล่มนี้เหมาะกับใคร?

กลุ่มเป้าหมายคือนักพัฒนาแอปพลิเคชันทั้งหมดสำหรับ Oracle ในฐานะเซิร์ฟเวอร์ฐานข้อมูล หนังสือเล่มนี้เขียนขึ้นเพื่อ นักพัฒนามืออาชีพ Oracle สนใจวิธีแก้ปัญหาโดยใช้ DBMS นี้ แนวทางการปฏิบัติของหนังสือเล่มนี้หมายความว่าหลายส่วนจะเป็นประโยชน์อย่างมากสำหรับผู้ดูแลระบบฐานข้อมูล (DBA) โดยส่วนใหญ่จะมีตัวอย่างที่ให้ไว้ในหนังสือเพื่อสาธิต ความสามารถที่สำคัญมีการใช้ยูทิลิตี้ SQL*Plus ดังนั้นคุณจะไม่สามารถเรียนรู้วิธีการพัฒนาอินเทอร์เฟซผู้ใช้แบบกราฟิกที่สะดวกและสวยงามได้จากยูทิลิตี้นี้ แต่คุณจะได้เรียนรู้วิธีการทำงานของ Oracle DBMS เครื่องมือหลักทำอะไรได้บ้าง และเมื่อใด คุณควร (และไม่ควรทำ) ใช้มัน

หนังสือเล่มนี้มีไว้สำหรับผู้ที่ต้องการรับประโยชน์เพิ่มเติมจาก Oracle DBMS โดยใช้ความพยายามน้อยลง เหมาะสำหรับใครก็ตามที่ต้องการทราบว่าเครื่องมือของ Oracle สามารถนำไปใช้งานจริงได้อย่างไร (ไม่เพียงแต่ให้ตัวอย่างวิธีการใช้เครื่องมือเฉพาะเท่านั้น แต่ยังอธิบายว่าทำไมเครื่องมือนี้จึงมีความจำเป็น) บุคคลอีกประเภทหนึ่งที่จะพบว่าหนังสือเล่มนี้น่าสนใจคือผู้จัดการด้านเทคนิคของทีมพัฒนาที่ดำเนินโครงการต่างๆ ฐานข้อมูลออราเคิล- ในบางประเด็น สิ่งสำคัญมากคือพวกเขาต้องรู้คุณลักษณะของ DBMS ที่เป็นพื้นฐานของการพัฒนาที่ประสบความสำเร็จ หนังสือเล่มนี้สามารถให้ข้อมูลเชิงลึกเพิ่มเติมสำหรับผู้จัดการโครงการที่ต้องการฝึกอบรมพนักงานเกี่ยวกับเทคโนโลยีที่จำเป็น หรือให้แน่ใจว่านักพัฒนารู้อยู่แล้วว่าพวกเขาจำเป็นต้องรู้อะไรบ้าง

เพื่อให้ได้รับประโยชน์สูงสุดจากหนังสือเล่มนี้ ผู้อ่านควร:

O รู้ภาษา SQL มันไม่จำเป็นต้องเป็น ผู้เชี่ยวชาญที่ดีที่สุดใน SQL ในประเทศ แต่ความรู้เชิงปฏิบัติที่ดีจะช่วยได้มาก

เข้าใจโปรแกรม! ในภาษา PL/SQL นี่ไม่ใช่ข้อกำหนด แต่ความรู้เกี่ยวกับ PL/SQL จะช่วยให้คุณเข้าใจตัวอย่างต่างๆ ตัวอย่างเช่นหนังสือเล่มนี้ไม่ได้อธิบายวิธีการสร้าง สำหรับลูปหรือประกาศประเภทบันทึก - มีการเขียนเพียงพอในเอกสารของ Oracle และในหนังสือหลายเล่ม อย่างไรก็ตาม นั่นไม่ได้หมายความว่าคุณจะไม่ได้เรียนรู้อะไรมากมายเกี่ยวกับการเขียนโปรแกรม PL/SQL จากการอ่านหนังสือเล่มนี้ คุณจะพบว่า คุณจะคุ้นเคยอย่างใกล้ชิดกับคุณสมบัติต่างๆ ของ PL/SQL และเรียนรู้วิธีใหม่ๆ ในการแก้ปัญหา แพ็คเกจ และเครื่องมือที่คุณอาจไม่เคยรู้มาก่อน

มีประสบการณ์เกี่ยวกับภาษาโปรแกรมขั้นตอนเช่น C หรือ Java ฉันมั่นใจว่าใครก็ตามที่สามารถเข้าใจและเขียนโค้ดในภาษาการเขียนโปรแกรมขั้นตอนใดๆ จะสามารถเข้าใจตัวอย่างที่นำเสนอในหนังสือได้สำเร็จ

อ่านคู่มือแนวคิด Oracle Server

คำไม่กี่คำเกี่ยวกับคู่มือนี้ เนื่องจากมีปริมาณมาก ผู้คนจำนวนมากจึงถูกคุกคามจากเอกสารของ Oracle หากคุณเพิ่งเริ่มต้นด้วยบทช่วยสอนหรือไม่เคยอ่านเอกสารประเภทนี้มาก่อน ฉันขอแนะนำให้เริ่มต้นด้วย OracleSi Concepts มีความยาวประมาณ 800 หน้าและครอบคลุมแนวคิดพื้นฐานของ Oracle หลายประการที่คุณต้องรู้ คู่มือนี้ไม่ครอบคลุมรายละเอียดด้านเทคนิคทั้งหมด (นั่นคือสิ่งที่เอกสารอีก 10,000-20,000 หน้ามีไว้สำหรับ) แต่จะแนะนำแนวคิดที่สำคัญทั้งหมด คู่มือนี้ครอบคลุมแต่ไม่จำกัดเพียงหัวข้อต่อไปนี้:

โครงสร้างฐานข้อมูล การจัดองค์กร และการจัดเก็บข้อมูล

การประมวลผลแบบกระจาย

สถาปัตยกรรมหน่วยความจำออราเคิล

สถาปัตยกรรมกระบวนการของออราเคิล;

อ็อบเจ็กต์สคีมาของผู้ใช้ (ตาราง ดัชนี คลัสเตอร์ ฯลฯ)

ชนิดข้อมูลในตัวและที่ผู้ใช้กำหนด

ขั้นตอนการจัดเก็บ

คุณสมบัติขององค์กรธุรกรรม

เครื่องมือเพิ่มประสิทธิภาพ;

ความสมบูรณ์ของข้อมูล

การควบคุมการทำงานพร้อมกัน

ฉันเองก็อ่านบทที่เกี่ยวข้องซ้ำเป็นระยะ สิ่งเหล่านี้เป็นแนวคิดพื้นฐาน หากคุณไม่เข้าใจสิ่งเหล่านั้น สิ่งที่คุณสร้างขึ้น แอปพลิเคชันของออราเคิลจะถึงวาระที่จะล้มเหลว ฉันขอแนะนำให้อ่านคู่มือนี้และทำความเข้าใจกับสิ่งที่สำคัญที่สุดเป็นอย่างน้อย

โครงสร้างหนังสือ

เพื่อให้เข้าใจได้ง่ายขึ้น หนังสือเล่มนี้จึงแบ่งออกเป็น 6 เล่ม แต่ละส่วน(อธิบายไว้ด้านล่าง) สิ่งเหล่านี้ไม่ได้เป็นเพียงหน่วยโครงสร้างเท่านั้น แต่ยังช่วยให้คุณค้นหาข้อมูลที่สำคัญที่สุดได้อย่างรวดเร็ว หนังสือเล่มนี้ประกอบด้วย 23 บท โดยแต่ละบทเป็นหนังสือเล่มเล็ก ซึ่งเกือบจะเป็นส่วนประกอบที่แยกจากกัน ในบางครั้ง ฉันอ้างถึงตัวอย่างหรือคุณลักษณะที่อธิบายไว้ในบทอื่นๆ (เช่น ส่วนความปลอดภัย อาศัยตัวอย่างและแนวคิดที่นำเสนอในบทอื่นๆ เป็นอย่างมาก) แต่ตามกฎแล้ว มันค่อนข้างเป็นไปได้ที่จะอ่านบทแยกจากส่วนที่เหลือของหนังสือ ตัวอย่างเช่น คุณไม่จำเป็นต้องอ่านบทที่ 10 เพื่อทำความเข้าใจบทที่ 14

รูปแบบและรูปแบบของบทเกือบจะเหมือนกัน:

การแนะนำคุณสมบัติหรือความสามารถที่อธิบายไว้

เหตุใดคุณจึงควร (หรือไม่ควร) ใช้มัน ฉันกำลังอธิบายสถานการณ์เมื่อ

สมเหตุสมผลที่จะใช้ วิธีการรักษานี้และเมื่อใดที่จะไม่ทำเช่นนี้

วิธีการใช้งาน นี่ไม่ใช่แค่คำพูดจากคู่มืออ้างอิงภาษา -

ku SQL และ คำอธิบายทีละขั้นตอน: นี่คือสิ่งที่จำเป็น สิ่งที่ต้องทำเพื่อสิ่งนี้ และนี่คือข้อกำหนดเบื้องต้นสำหรับการใช้งาน ในส่วนนี้ครอบคลุมถึง:

วิธีการใช้วิธีการรักษาหรือเทคนิคนี้หรือนั้น

ตัวอย่าง ตัวอย่าง และตัวอย่างเพิ่มเติม

การดีบัก ค้นหาข้อผิดพลาดระหว่างการใช้งาน

ข้อผิดพลาดเมื่อใช้ผลิตภัณฑ์

การกำจัดข้อผิดพลาด (เชิงป้องกัน)

เกี่ยวกับสรุปสรุปการพิจารณา

หนังสือเล่มนี้ประกอบด้วยตัวอย่างมากมายและมีโค้ดจำนวนมาก ซึ่งทั้งหมดนี้สามารถดาวน์โหลดได้ที่ http: www.wrox.com ต่อไปนี้เป็นบทสรุปโดยละเอียดของแต่ละส่วน

แนวคิดพื้นฐาน

บทที่ 1 การพัฒนาแอปพลิเคชันที่ประสบความสำเร็จสำหรับ Oracle บทนี้อธิบายแนวทางพื้นฐานของฉันในการเขียนโปรแกรมฐานข้อมูล DBMS ทั้งหมดได้รับการออกแบบแตกต่างกัน และเพื่อที่จะพัฒนาแอปพลิเคชันที่ใช้ฐานข้อมูลได้สำเร็จและตรงเวลา คุณจำเป็นต้องทราบอย่างชัดเจนว่า DBMS ของคุณอนุญาตให้คุณทำอะไรได้บ้างและทำอย่างไร หากไม่ทราบถึงความสามารถของ DBMS คุณจะเสี่ยงต่อการสร้างวงล้อขึ้นมาใหม่อีกครั้ง นั่นคือการสร้างเครื่องมือที่ฐานข้อมูลเตรียมไว้ให้แล้ว หากคุณไม่รู้ว่า DBMS ทำงานอย่างไร คุณก็มีแนวโน้มที่จะสร้างแอปพลิเคชันที่ไม่มีประสิทธิภาพและคาดเดาไม่ได้

บทนี้จะอธิบายหลายประการ การใช้งานจริงในระหว่างการสร้างซึ่งการขาดความเข้าใจในแนวคิดพื้นฐานของ DBMS นำไปสู่ความล้มเหลวของโครงการทั้งหมด จากแนวทางปฏิบัตินี้พร้อมตัวอย่างแย้ง บทนี้จะอธิบายความสามารถพื้นฐานและฟังก์ชันของ DBMS ที่ต้องทำความเข้าใจ

[ 1 ] ...

เล่นเพื่อเงินออนไลน์ http://asino-zeon.com/ ทั้งหมดเกี่ยวกับโบนัส

เพื่อการใช้งานที่เหมาะสม ออราเคิลจำเป็นต้องมีความเข้าใจที่ดี ภาษา SQL- ดี " ออราเคิล การเขียนโปรแกรมใน SQL, PL/SQL และ Java“เผยให้เห็น เต็มสเปกตรัมความสามารถของภาษา SQL ใน Oracle และคุณลักษณะหลายประการที่ไม่ชัดเจนในการสร้างการออกแบบฐานข้อมูลมาตรฐาน

  • PL/SQL - ภาษาขั้นตอนพัฒนาโดย Oracle สำหรับการเขียนรูทีนย่อยที่จัดเก็บไว้ในฐานข้อมูล PL/SQL จัดให้ พื้นดินทั่วไปการเขียนโปรแกรมตามขั้นตอนในแอปพลิเคชันทั้งฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ รวมถึงรูทีนบนเซิร์ฟเวอร์ แพ็คเกจ และทริกเกอร์ฐานข้อมูล
  • ชวา - ภาษาวัตถุซึ่งสามารถใช้ในการทำงานร่วมกับ Oracle ในการกำหนดค่าที่หลากหลาย รวมถึงต้องขอบคุณกลไก Java ในตัวของ Oracle ซึ่งเป็นภาษาที่สองสำหรับขั้นตอนการจัดเก็บ Java เป็นแพลตฟอร์มที่เป็นอิสระและสามารถให้บริการได้ วิธีที่มีประสิทธิภาพการรวมฐานข้อมูล Oracle เข้ากับแอปพลิเคชันอื่น ๆ รวมถึงอินเทอร์เน็ต

หลักสูตรนี้มาพร้อมกับแบบฝึกหัดภาคปฏิบัติที่ช่วยให้คุณสามารถรวบรวมความเข้าใจเกี่ยวกับแนวคิดพื้นฐานและเชี่ยวชาญพื้นฐานได้ เทคนิคการเขียนโปรแกรมในภาษา SQL, PL/SQL และ Java

เมื่อจบหลักสูตรแล้วผู้ฟังได้รับโอกาส การเขียนโปรแกรมด้วยตนเอง Oracle ในสามภาษานี้เพื่อแก้ไขปัญหาการพัฒนาแอปพลิเคชันในสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์และในสถาปัตยกรรมสามระดับตลอดจนงานการดูแลฐานข้อมูล

ข้อแตกต่างที่สำคัญระหว่างหลักสูตรนี้กับหลักสูตรอื่นๆ ที่มีหัวข้อคล้ายกันคือเป้าหมายคือการสอนนักเรียนที่เฉพาะเจาะจง งานจริงกับ Oracle ในภาษาเหล่านี้ แทนที่จะอ่านโปรแกรมอย่างเป็นทางการที่จัดทำโดยบุคคลที่สาม

หลักสูตรนี้มีจุดมุ่งหมายสำหรับนักพัฒนา โปรแกรมเมอร์ และผู้ดูแลฐานข้อมูล ผู้ฟังก็ต้องมี ระดับดีความรู้ด้านคอมพิวเตอร์และประสบการณ์การเขียนโปรแกรม

ความรู้จะได้รับตามเวอร์ชันต่อไปนี้:

  • ออราเคิลฐานข้อมูล 8i
  • ออราเคิลฐานข้อมูล 9i
  • ฐานข้อมูลออราเคิล 10g
  • ฐานข้อมูลออราเคิล 11g
  • ฐานข้อมูลออราเคิล 12c

โปรแกรมหลักสูตร "Oracle การเขียนโปรแกรมใน SQL, PL/SQL และ Java"

ความรู้เบื้องต้นเกี่ยวกับ Oracle SQL

1. แนวคิดพื้นฐาน

  • ฐานข้อมูลและแบบจำลองเชิงสัมพันธ์
  • ฐานข้อมูล
  • แนวทางเชิงสัมพันธ์เพื่อการสร้างแบบจำลองข้อมูล
  • การนำไปปฏิบัติ DBMS เชิงสัมพันธ์
    แนวทางอื่นๆ ในการสร้างแบบจำลองข้อมูลและ DBMS ประเภทอื่นๆ
  • เอสแอลแอลคืออะไร?
  • ประวัติศาสตร์และมาตรฐาน
  • ภาษาถิ่นของ Oracle SQL
  • พีแอล/เอสคิวแอล

2. SQL*Plus และการป้อนประโยคใน SQL

3. ตัวอย่างฐานข้อมูล "สคีมา"

4. การสร้าง ลบตาราง และการเปลี่ยนโครงสร้าง

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

5. องค์ประกอบพื้นฐานของประโยค DML: นิพจน์

  • ค่าข้อมูลทันที (ตัวอักษร)
  • ค่าตัวเลข
  • บรรทัดข้อความ
  • ช่วงเวลาและช่วงเวลา
  • “ตัวแปรของระบบ”
  • นิพจน์ตัวเลข
  • การแสดงออกเหนือบรรทัดข้อความ
  • นิพจน์เหนือประเภท "ช่วงเวลา"
  • ฟังก์ชั่น
  • ฟังก์ชันสเกลาร์
  • นิพจน์ CASE
  • แบบสอบถามแบบสเกลาร์
  • นิพจน์แบบมีเงื่อนไข
  • หมายเหตุพิเศษเกี่ยวกับค่าที่หายไปในนิพจน์

6. การสุ่มตัวอย่างข้อมูล

  • วลีส่วนคำสั่ง SELECT
  • กฎทั่วไปสำหรับการสร้างส่วนคำสั่ง SELECT
  • วิธีการประมวลผลส่วนคำสั่ง SELECT
  • ตัวอย่างคำสั่ง SELECT 1
  • ตัวอย่างที่ 2 ส่วนคำสั่ง SELECT
  • ความสมบูรณ์ทางตรรกะของการประมวลผลส่วนคำสั่ง SELECT
  • จากส่วนคำสั่งของส่วนคำสั่ง SELECT
  • ตัวเลือกคอลัมน์
  • คอลัมน์จากตารางต่างๆ
  • การใช้นามแฝงในการร้องขอ
  • แบบสอบถามย่อยเป็นแหล่งข้อมูล
  • กรณีพิเศษสำหรับการร้องขอการเชื่อมต่อ
  • WHERE ส่วนคำสั่งของส่วนคำสั่ง SELECT
  • อัลกอริธึมทั่วไปสำหรับการประมวลผลวลี WHERE
  • ตัวดำเนินการเปรียบเทียบเพื่อให้ได้นิพจน์แบบมีเงื่อนไข
  • AND, OR และ NOT การเชื่อมต่อสำหรับการรวมนิพจน์แบบมีเงื่อนไข
  • ตัวดำเนินการแบบมีเงื่อนไข IS
  • ตัวดำเนินการ LIKE แบบมีเงื่อนไข
  • ตัวดำเนินการแบบมีเงื่อนไข BETWEEN
  • ตัวดำเนินการ IN แบบมีเงื่อนไขพร้อมชุดที่นับได้อย่างชัดเจน
  • ตัวดำเนินการแบบมีเงื่อนไข IN พร้อมชุดที่ได้รับจากฐานข้อมูล
  • เงื่อนไขการเปรียบเทียบกับแบบสอบถามย่อย
  • การระบุ ANY และ ALL เพื่อเปรียบเทียบกับองค์ประกอบของชุดค่า
  • ตัวดำเนินการแบบมีเงื่อนไขมีอยู่
  • ส่วนคำสั่ง SELECT และฟังก์ชันในส่วนคำสั่ง SELECT
  • ชวเลขสำหรับการเลือกกลุ่มคอลัมน์
  • นิพจน์ในส่วนคำสั่ง SELECT
  • แบบสอบถามย่อยในส่วนคำสั่ง SELECT
  • คำชี้แจงที่แตกต่าง
  • คุณสมบัติของพฤติกรรมมาตรฐาน ฟังก์ชันรวมในส่วนคำสั่ง SELECT
  • การตั้งชื่อคอลัมน์ในผลลัพธ์แบบสอบถาม
  • ฟังก์ชั่นระบบ ("ตัวแปร") ROWNUM และคุณสมบัติของการใช้งาน
  • ฟังก์ชั่นการวิเคราะห์
  • นิพจน์ประเภทการอ้างอิงถึงเคอร์เซอร์
  • ORDER BY clause ของ SELECT clause
  • การเรียงลำดับที่ง่ายที่สุด
  • เรียงลำดับตามค่านิพจน์
  • การระบุหมายเลขคอลัมน์
  • การเรียงลำดับสตริงไบนารีและ "ภาษา"
  • คุณสมบัติการจัดการค่าที่หายไป (NULL)
  • จัดกลุ่มตามและมีส่วนคำสั่งของส่วนคำสั่ง SELECT
  • ตัวอย่างการใช้วลี GROUP BY ... HAVING
  • ไม่มีค่าในการจัดกลุ่มนิพจน์
  • ตัวอย่างอื่นๆ
  • การระบุ ROLLUP, CUBE และ GROUPING SETS ในส่วนคำสั่ง GROUP BY
  • เชื่อมต่อโดยส่วนคำสั่งของส่วนคำสั่ง SELECT
  • ฟังก์ชันระบบพิเศษในส่วนคำสั่งที่มี CONNECT BY
  • การสั่งผล
  • C ประโยคก่อนกำหนดของแบบสอบถามย่อย
  • การรวมคำสั่ง SELECT
  • รวมกับตัวดำเนินการ UNION
  • รวมกับตัวดำเนินการ INTERSECT
  • รวมกับตัวดำเนินการ MINUS
  • แบบสอบถามย่อย
  • เข้าร่วมการดำเนินการในส่วนคำสั่ง SELECT
  • ประเภทของการเชื่อมต่อ
  • ไวยากรณ์ใหม่ในเวอร์ชัน 9
  • คุณสมบัติของการดำเนินการเชื่อมต่อ

7. การอัพเดตข้อมูลในตาราง

  • การเพิ่มแถวใหม่
  • การเพิ่มแถวอย่างชัดเจน
  • การเพิ่มแถวที่ดึงมาจากแบบสอบถามย่อย
  • การเพิ่มหลายตารางด้วยคำสั่งเดียว
  • การเปลี่ยนแปลงค่าฟิลด์ที่มีอยู่
  • การใช้ค่าเริ่มต้นใน INSERT และ UPDATE
  • การลบแถวออกจากตาราง
  • การลบแบบเลือก
  • ตัวเลือกการกำจัดที่สมบูรณ์
  • การรวม UPDATE, INSERT และ DELETE ไว้ในคำสั่งเดียว
  • ความสมบูรณ์ทางตรรกะของตัวดำเนินการอัพเดตข้อมูลตารางและการตอบสนองต่อข้อผิดพลาด
  • การตอบสนองต่อข้อผิดพลาดระหว่างการดำเนินการ
  • บันทึกการเปลี่ยนแปลงในฐานข้อมูล
  • ระบบเปลี่ยนข้อมูลหมายเลขสำหรับสาย
  • เร่งการดำเนินการ COMMIT

8. เข้าถึงค่าข้อมูลที่ผ่านมาได้อย่างรวดเร็ว

  • การอ่านค่าแถวตารางเก่า
  • การกู้คืนตารางและข้อมูลจากตารางที่ถูกลบไปก่อนหน้านี้

9. ข้อจำกัดความสมบูรณ์ของวงจร

  • ประเภทของข้อจำกัดความสมบูรณ์ของวงจร
  • ไม่ใช่ข้อจำกัดที่เป็นโมฆะ
  • คีย์หลัก
  • ความเป็นเอกลักษณ์ของค่าในคอลัมน์
  • กุญแจต่างประเทศ
  • เงื่อนไขเพิ่มเติมสำหรับค่าในฟิลด์สตริง
  • เงื่อนไขเพิ่มเติมที่เชื่อมโยงค่าในหลายช่องในแถว
  • เพิ่มข้อจำกัดหากมีการฝ่าฝืน
  • การระงับการตรวจสอบข้อจำกัดสคีมาภายในธุรกรรม
  • ปิดใช้งานหรือเปิดใช้งานข้อจำกัดความสมบูรณ์ของวงจร
  • เทคโนโลยีสำหรับการเปิดและปิดการใช้งานข้อจำกัดความสมบูรณ์ของวงจร
  • มากกว่า กฎที่ซับซ้อนความซื่อสัตย์

10. ตารางเสมือน (ได้มา, แสดง: มุมมอง)

  • ตารางพื้นฐาน ("หลัก") และตารางเสมือน
  • กำลังอัปเดตตารางเสมือน
  • ข้อจำกัดของการแก้ไขข้อมูลโดยตรงผ่านตารางเสมือน
  • งดการอัพเดตทันที
  • ลดความเป็นไปได้ในการอัปเดตทันที
  • ตารางเสมือนพร้อมที่เก็บข้อมูล
  • คุณสมบัติของตารางเสมือนที่มีชื่อ
  • ตารางเสมือนที่ไม่มีชื่อโดยไม่มีการจัดเก็บข้อมูล

11. ประเภทที่ไม่ใช่สเกลาร์สำหรับข้อมูล "ซับซ้อน" ใน Oracle

  • วัตถุที่เก็บไว้
  • ตัวอย่างง่ายๆ
  • การใช้คุณสมบัติและวิธีการของวัตถุ
  • การใช้การอ้างอิงวัตถุ
  • คอลเลกชัน
  • ตารางที่ซ้อนกัน
  • อาร์เรย์ VARRAY
  • XMLTYPE
  • ตัวอย่างง่ายๆ
  • ตารางข้อมูล XMLTYPE
  • การแปลงข้อมูลแบบตารางเป็น XMLTYPE
  • พิมพ์ ANYDATA

12. ประเภทเสริมของวัตถุที่เก็บไว้

  • เครื่องกำเนิดตัวเลขที่ไม่ซ้ำ
  • ไดเร็กทอรีระบบปฏิบัติการ
  • ตารางที่มีข้อมูลที่จัดเก็บชั่วคราว
  • เชื่อมโยงไปยังฐานข้อมูลอื่น
  • รูทีนย่อย
  • ดัชนี
  • ดัชนีสำหรับการตรวจสอบข้อจำกัดความสมบูรณ์ของวงจร
  • โต๊ะด้วย ที่จัดเก็บข้อมูลภายนอกข้อมูล

13. หมายเหตุบางประการเกี่ยวกับการเพิ่มประสิทธิภาพคำสั่ง SQL

14. ธุรกรรมและการล็อค

  • ธุรกรรมในออราเคิล
  • ตัวอย่างการล็อคข้อมูลด้วยธุรกรรม
  • ประเภทของล็อค
  • การล็อกโดยนัยในการดำเนินการ DML
  • ผลกระทบของคีย์ต่างประเทศ
  • การล็อคตารางอย่างชัดเจน (ประเภท TM) ด้วยคำสั่ง LOCK
  • ล็อคแถวของตารางแต่ละแถวอย่างชัดเจน
  • รูปแบบการบล็อกกลุ่มที่ไม่มีเอกสาร
  • การบล็อกโดยคำสั่ง DDL

15. ผู้ใช้ (สคีมา) และวิธีการเพิ่มเติมในการจำกัดการเข้าถึงข้อมูล

16. โต๊ะ ไดเร็กทอรีระบบ(หนังสืออ้างอิงพจนานุกรม)

18. SQL แบบฝัง

  • ตัวอย่างการเขียนแบบสอบถามบางส่วน

19. ออกพนักงานตามเงินเดือนที่สูงขึ้น (ต่ำกว่า)

  • คำถามถึงฐานข้อมูล
  • "ชัดเจน" แต่วิธีแก้ปัญหาที่ผิด
  • การตัดสินใจที่ถูกต้อง
  • โซลูชัน Top-N (ตั้งแต่เวอร์ชัน 8.1.5)
  • โซลูชันที่ใช้ฟังก์ชันการจัดอันดับเชิงวิเคราะห์

20. การจัดรูปแบบแบบสอบถามใหม่ด้วย HAVING

22. ไม่ใช่กับดักแบบมีเงื่อนไข

23. กับดักไม่อยู่ใน (S)

รู้เบื้องต้นเกี่ยวกับ PL/SQL

1. แนวคิดพื้นฐาน

  • ตำแหน่งของ PL/SQL ในสถาปัตยกรรม Oracle
  • โครงสร้างทั่วไปของโปรแกรม PL/SQL

2. ชนิดและโครงสร้างข้อมูลพื้นฐาน

  • ตัวแปรสเกลาร์
  • ประเภทตัวเลข
  • ประเภทสตริง
  • จุดเวลาและช่วงเวลา
  • ตัวแปรบูลีน
  • ประเภทลอบ
  • การประกาศตัวแปรและค่าคงที่
  • กระทู้
  • การประกาศรายการในโปรแกรม
  • การมอบหมายงาน
  • ลิงก์ไปยังประเภทข้อมูลที่มีอยู่แล้ว
  • ประเภทย่อยที่กำหนดเอง

3. สำนวน

4. โครงสร้างการควบคุมหลัก

  • การแตกแขนงโปรแกรม
  • ข้อเสนอ IF-THEN
  • ประโยค IF-THEN-ELSE
  • ข้อเสนอ IF-THEN-ELSIF
  • ข้อเสนอของเคส
  • การถ่ายโอนการควบคุมอย่างไม่มีเงื่อนไข
  • รอบ
  • วนซ้ำง่าย
  • รอบการนับ (FOR)
  • วนรอบเคอร์เซอร์ (FOR)
  • ในขณะที่วนซ้ำ
  • การจำลองวง REPEAT UNTIL
  • ป้ายกำกับในรอบและบล็อก

5. รูทีนย่อย

  • กิจวัตรในท้องถิ่น
  • นิยามชื่อ "ภายนอก" ใหม่
  • ประกาศส่งต่อ
  • การซ้ำชื่อในระดับเดียวกัน (โอเวอร์โหลด)
  • 6. การโต้ตอบกับฐานข้อมูล: SQL แบบคงที่
  • การใช้บันทึกแทน (รายการ) สเกลาร์

7. ควบคุมการเปลี่ยนแปลงในฐานข้อมูล

  • การจัดการธุรกรรม
  • ล็อค
  • การทำธุรกรรมอัตโนมัติ

8. SQL แบบไดนามิกในตัว

  • คำสั่ง SQL แบบไดนามิกที่ฝังอยู่
  • ตัวอย่างเปรียบเทียบของสองวิธีในการทำงานกับ SQL แบบไดนามิก

9. การใช้เคอร์เซอร์

  • เคอร์เซอร์ที่ชัดเจน
  • ประกาศเคอร์เซอร์ที่ชัดเจน
  • การเปิดเคอร์เซอร์ที่ชัดเจน
  • การดึงผลลัพธ์ผ่านเคอร์เซอร์ที่ชัดเจน
  • การปิดเคอร์เซอร์ที่ชัดเจน
  • ไม่มีข้อจำกัดในการเปลี่ยนแปลงตารางเมื่อเคอร์เซอร์เปิดอยู่
  • คุณลักษณะสำหรับเคอร์เซอร์ที่ชัดเจน
  • ตัวอย่างการใช้ลูปและเคอร์เซอร์
  • เคอร์เซอร์ที่มีการล็อคแถวของตาราง
  • SELECT ... สำหรับส่วนคำสั่ง UPDATE
  • ข้อควรระวังในการใช้เคอร์เซอร์ล็อค
  • ความสามารถในการเปลี่ยนบรรทัดที่เลือกโดยเคอร์เซอร์
  • การอ้างอิงเคอร์เซอร์
  • ข้อมูลทั่วไป
  • ตัวอย่างการใช้จัดโครงสร้างโปรแกรม
  • เคอร์เซอร์โดยนัย

10. การจัดการกับข้อยกเว้น

  • การประกาศข้อยกเว้น
  • ตัวอย่างการประมวลผล
  • โยนข้อยกเว้น
  • ความครอบคลุมและการจัดจำหน่าย
  • ข้อยกเว้นบล็อก "ภายใน"
  • การใช้ฟังก์ชัน SQLCODE และ SQLERRM

11. ขั้นตอนและฟังก์ชันที่เก็บไว้

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

12. ขั้นตอนทริกเกอร์

  • การสร้างขั้นตอนทริกเกอร์
  • ปิดการใช้งานขั้นตอนทริกเกอร์
  • ขั้นตอนทริกเกอร์สำหรับเหตุการณ์หมวดหมู่ DML
  • ขั้นตอนทริกเกอร์แบบรวม
  • การจัดการธุรกรรมในเนื้อความของขั้นตอนการทริกเกอร์
  • ลำดับของขั้นตอนการทริกเกอร์เมื่อมีหลายขั้นตอน
  • ขั้นตอนทริกเกอร์แทนสำหรับตารางอนุมาน
  • ขั้นตอนทริกเกอร์สำหรับเหตุการณ์ DDL
  • ขั้นตอนทริกเกอร์สำหรับเหตุการณ์ระดับสคีมาและฐานข้อมูล

13. แพ็คเกจใน PL/SQL

  • โครงสร้างบรรจุภัณฑ์ทั่วไป
  • การเข้าถึงองค์ประกอบแพ็คเกจ
  • ข้อมูลแพ็คเกจ (ทั่วโลก)
  • การโทรร่วมกันและการเรียกชื่อซ้ำ
  • การเริ่มต้นแพ็คเกจ
  • แพรกม่า SERIALLY_REUSABLE

14. การเรียกใช้ฟังก์ชัน PL/SQL ในคำสั่ง SQL

  • ข้อกำหนดและข้อจำกัดในการใช้ฟังก์ชันผู้ใช้ใน SQL
  • การเรียกใช้ฟังก์ชันจากแพ็คเกจใน SQL
  • การแก้ไขความขัดแย้งของชื่อคอลัมน์และฟังก์ชัน
  • ฟังก์ชันตารางใน SQL

15. ประเภทข้อมูลที่ซับซ้อนมากขึ้น: คอลเลกชัน

  • พิมพ์ไวยากรณ์การประกาศสำหรับคอลเลกชัน
  • การทำงานกับอาเรย์แบบเชื่อมโยง
  • การสร้างตารางซ้อนและอาร์เรย์ VARRAY ในโปรแกรม
  • การเพิ่มและการลบรายการในคอลเลกชัน
  • การกระทำหลายอย่างกับคอลเลกชัน
  • การแปลงคอลเลกชัน
  • วิธีการทำงานกับคอลเลกชันในโปรแกรม
  • ตัวอย่างการใช้คอลเลกชันในโปรแกรม
  • สิทธิพิเศษ
  • การดำเนินการแบบอนุกรมและการเชื่อมโยงแบบสอบถามกับอาร์เรย์
  • การดำเนินการแบบอนุกรมของการดำเนินการที่คล้ายกัน: การก่อสร้าง FORALL
  • การเชื่อมโยงกับอาร์เรย์: BULK COLLECT INTO build
  • ตัวอย่างวงจร SCOTT
  • การใช้คอลเลกชันในฟังก์ชันตาราง (การใช้งานสตรีมมิ่ง)
  • ตัวอย่างง่ายๆ
  • ใช้สำหรับการแปลงข้อมูล

16. ขั้นตอนการดีบักใน PL/SQL

  • ตารางพจนานุกรม
  • การพึ่งพาเป็นประจำ
  • แพ็คเกจระบบ
  • แพ็คเกจ DBMS_PROFILER
  • แพ็คเกจ DBMS_TRACE
  • ฟังก์ชันแพ็คเกจ DBMS_UTILITY
  • แพ็คเกจ DBMS_DEBUG
  • ตัวอย่างการสร้างโปรไฟล์การทำงานของโปรแกรม

17. ระบบการเขียนโปรแกรมสำหรับ PL/SQL

18. แพ็คเกจระบบ PL/SQL

  • แพ็คเกจ STANDARD และ DBMS_STANDARD
  • แพ็คเกจระบบอื่นๆ
  • การเขียนข้อมูลจากโปรแกรมลงไฟล์และย้อนกลับ
  • การเข้ารหัสข้อมูล
  • รันงานอัตโนมัติใน Oracle
  • การจัดการตำแหน่งไดนามิกของอ็อบเจ็กต์ในบัฟเฟอร์ไลบรารี
  • การจัดการวัตถุ NULL ที่ไม่มีโครงสร้างขนาดใหญ่
  • การเข้าถึงค่าข้อมูลเก่า
  • การส่งข้อความจากโปรแกรม PL/SQL
  • โอกาสในการทำงานใน PL/SQL ด้วย COM Automation
  • ข้อมูลเพิ่มเติม

20. คุณลักษณะของขั้นตอนทริกเกอร์ในระดับของสคีมาฐานข้อมูลและเหตุการณ์ใน DBMS

ข้อมูลเบื้องต้นเกี่ยวกับการเขียนโปรแกรม ORACLE ใน Java

1. แนวคิดพื้นฐาน

  • สถานที่ของ Java ในสถาปัตยกรรม Oracle
  • ความสัมพันธ์และความสัมพันธ์ระหว่าง PL/SQL และ Java ใน Oracle

2. คุณสมบัติจาวาและสภาพแวดล้อมสำหรับการรันโปรแกรม Java

  • สถาปัตยกรรมจาวา
  • ส่วนประกอบซอฟต์แวร์ในสภาพแวดล้อมการพัฒนา Java
  • การติดตั้งสภาพแวดล้อมการพัฒนา Java
  • สภาพแวดล้อมระบบปฏิบัติการ

3. การสร้าง โปรแกรมอิสระในชวา

  • ตัวอย่างการออกอากาศและดำเนินรายการ

4. การสร้างโปรแกรม Java Stored ใน Oracle

  • ส่วนประกอบ Oracle DBMS เพิ่มเติมสำหรับการทำงานกับโปรแกรมที่เก็บไว้ใน Java
  • ข้อจำกัดของโปรแกรมที่เก็บไว้ใน Java
  • การติดตั้ง การถอนการติดตั้ง และการอัพเดต JServer/OJVM
  • ตัวอย่างการสร้างโปรแกรม Java ที่เก็บไว้
  • การสร้างด้วย loadjava
  • การสร้างด้วยคำสั่ง SQL
  • การเรียกคลาสที่โหลดแล้ว
  • การทำงานกับพจนานุกรมอ้างอิง
  • การจัดระเบียบข้อมูลอ้างอิง
  • การดูองค์ประกอบ Java
  • ดูแหล่งที่มา
  • การแปลงชื่อ
  • คุณสมบัติของ JVM แบบฝัง
  • ล่าม ojvmjava

5. องค์ประกอบของการเขียนโปรแกรมจาวา

  • พื้นฐานภาษา
  • โครงสร้างภาษาพื้นฐาน
  • ตัวแปร
  • ผู้ประกอบการ
  • นิพจน์ ส่วนคำสั่ง และบล็อก
  • การโอนการควบคุม
  • วัตถุและโครงสร้างอย่างง่าย
  • ชั้นเรียนและมรดก
  • การสร้างชั้นเรียน
  • กลศาสตร์ของการใช้คลาสในโปรแกรม
  • มรดก
  • อินเทอร์เฟซ
  • การจัดการข้อยกเว้น
  • เทคนิคการเขียนโปรแกรม Java บางอย่าง
  • ส่วนต่อประสานกราฟิก
  • กลุ่มของวัตถุ (คอลเลกชัน)
  • สตรีมมิ่งอินพุตและเอาต์พุต
  • การกำหนดพารามิเตอร์ของการทำงานของโปรแกรมโดยใช้ชุดคุณสมบัติ
  • การทำให้เป็นอนุกรมของวัตถุ

6. การโต้ตอบกับฐานข้อมูลผ่าน JDBC

  • การใช้ JDBC
  • ไดรเวอร์ JDBC และ JDBC
  • ไดรเวอร์ JDBC ใน Oracle
  • การติดตั้งไดรเวอร์ JDBC เพื่อทำงานกับ Oracle
  • โปรแกรม Java เพื่อทดสอบการเชื่อมต่อผ่าน JDBC
  • ทำงานร่วมกับ Oracle Data จาก โปรแกรมภายนอกในชวา
  • การเข้าถึงฐานข้อมูลผ่านไดรเวอร์ OCI แบบหนา
  • การทำงานกับข้อมูล Oracle จากโปรแกรม Java ที่เก็บไว้
  • การเข้าถึงฐานข้อมูลผ่านไดร์เวอร์แบบหนา (“native”, kprb)
  • การเข้าถึงฐานข้อมูลผ่านไดร์เวอร์แบบบาง
  • การเข้าถึงข้อมูลจากขั้นตอนทริกเกอร์ของ Oracle

7. คุณสมบัติเพิ่มเติมของโปรโตคอล JDBC

  • การเชื่อมต่อกับ DBMS โดยใช้เทคนิค DataSource
  • ตัวอย่างง่ายๆ ของการเชื่อมต่อโดยใช้เทคนิค DataSource
  • ตัวอย่างการเชื่อมต่อโดยใช้บริการ JNDI
  • ตัวอย่างการแคชการเชื่อมต่อ
  • ตัวอย่างของการจัดระเบียบการเชื่อมต่อเชิงตรรกะ
  • การเปลี่ยนแปลงข้อมูลในฐานข้อมูลและการเข้าถึงรูทีนที่เก็บไว้
  • การเปลี่ยนแปลงข้อมูล
  • การจัดการธุรกรรม
  • การเข้าถึงโปรแกรมที่เก็บไว้
  • การกำหนดพารามิเตอร์แบบสอบถาม
  • การใช้ประเภทข้อมูลของออราเคิล
  • การปรับปรุงประสิทธิภาพของการเรียกฐานข้อมูล
  • คำขอที่เกิดซ้ำ
  • การดำเนินการเป็นกลุ่ม
  • ลิงก์จากโปรแกรมไปยังเคอร์เซอร์ใน DBMS

8. การโต้ตอบกับฐานข้อมูลผ่าน SQLJ

  • ตัวอย่างโปรแกรมอย่างง่าย
  • การแปลและรันโปรแกรมด้วย SQLJ
  • ตัวอย่างที่ซับซ้อนมากขึ้น: การสุ่มตัวอย่างหลายรายการจากฐานข้อมูล
  • การใช้ SQLJ ใน Java Stored Procedures
  • ตัวอย่างการโหลดจากภายนอก
  • ตัวอย่างการออกอากาศภายใน

9. พื้นฐานของการสร้างแอปพลิเคชันสำหรับเว็บ ใช้จาวาและออราเคิล

  • ส่วนลูกค้า: การทำงานกับแอปเพล็ต
  • ตัวอย่างของการออกอากาศและดำเนินการแอปเพล็ต
  • อาปาเช่เว็บเซิร์ฟเวอร์
  • การสื่อสารกับเว็บเซิร์ฟเวอร์ผ่านโปรโตคอล HTTP
  • แนวคิดทั่วไปของการส่งข้อความ HTTP
  • การจัดบทสนทนาในรูปแบบ HTML
  • การทำงานกับ Java Servlets
  • ทำความเข้าใจกับ Java Servlets และ Servlet Containers
  • อุปกรณ์ Java Servlet
  • ตัวอย่างการเขียนเซิร์ฟเล็ตใน Java
  • ตัวอย่างการเรียกเซิร์ฟเล็ต
  • ตัวอย่างเซิร์ฟเล็ตที่เข้าถึงฐานข้อมูล
  • การใช้คลาส HttpServlet
  • การทำงานกับเพจ JavaServer
  • ตัวอย่างการเขียนเพจ JSP
  • ตัวอย่างการเข้าถึงเพจ JSP
  • อ็อพชันบางอย่างสำหรับการสร้างเพจ JSP
  • วิธีเข้าถึงฐานข้อมูลจากเพจ JSP
  • รูปแบบ MVC ของการจัดระเบียบแอปพลิเคชันสำหรับเว็บ

10. การโต้ตอบของส่วนประกอบแอปพลิเคชันสำหรับเว็บ

  • การถ่ายโอนการควบคุมไปยังส่วนประกอบ แอปพลิเคชันเว็บซึ่งกันและกัน
  • ติดต่อเรา หน้า HTMLไปยังเพจ JavaServer และเซิร์ฟเล็ต
  • การถ่ายโอนการควบคุมจากเพจ JavaServer
  • การถ่ายโอนการควบคุมไปยังส่วนประกอบของเว็บจากเซิร์ฟเล็ต
  • Java abstractions สำหรับการสร้างเว็บแอปพลิเคชัน
  • คำขอและการตอบสนอง
  • ขอบเขต
  • บริบทเซิร์ฟเล็ต
  • ออบเจ็กต์หน้า JavaServer ที่กำหนดไว้ล่วงหน้า
  • การส่งข้อมูลส่วนประกอบของแอปพลิเคชันเว็บให้กันและกัน
  • การส่งผ่านข้อมูลผ่านพารามิเตอร์คำขอ
  • การส่งผ่านข้อมูลผ่านบริบทและส่วนประกอบ JavaBeans

11. ตัวอย่างการสร้างแอปพลิเคชันสำหรับ เว็บหมายถึงชวาและออราเคิล

  • หน้า Logon.html
  • เข้าสู่ระบบเซิร์ฟเล็ต
  • หน้า LogonError.html
  • หน้า Main.jsp
  • หน้า CompanyData.jsp และคลาส orajava.demos.StuffData
  • เซิร์ฟเล็ตออกจากระบบ
  • การออกอากาศคลาส การโฮสต์ไฟล์ และการทดสอบแอปพลิเคชัน
  • ข้อมูลเพิ่มเติม

12. ตัวอย่างการเขียนโปรแกรมมาร์กอัป JSP แบบกำหนดเอง

  • ตัวอย่างการใช้มาร์กอัปสำเร็จรูป
  • ตัวอย่างการเขียนโปรแกรมมาร์กอัปของคุณเอง

เมื่อสิ้นสุดหลักสูตร การรับรองขั้นสุดท้ายจะดำเนินการในรูปแบบของการทดสอบหรือตามเกรดสำหรับ งานภาคปฏิบัติเสร็จสิ้นในระหว่างกระบวนการเรียนรู้

ใน โลกสมัยใหม่เป็นเรื่องยากที่จะทำได้โดยปราศจากเทคโนโลยีสารสนเทศและอนุพันธ์ - คอมพิวเตอร์ โทรศัพท์มือถือ อินเทอร์เน็ต ฯลฯ โดยเฉพาะอย่างยิ่งในบริษัทขนาดใหญ่และองค์กรภาครัฐที่ทำงานร่วมกับผู้คนจำนวนมาก ไม่ใช่แค่กับลูกค้า VIP สองสามรายเท่านั้น อาจจะเป็นบริษัทเล็กๆก็ได้ และเมื่อมีคู่สัญญา ผู้สมัคร ฯลฯ จำนวนมาก - คุณไม่สามารถทำได้หากไม่มีฐานข้อมูลที่จำเป็นสำหรับการประมวลผลข้อมูล โดยปกติแล้ว สมัยของบัญชีแยกประเภทและการ์ดที่หลายคนในห้องสมุดจำได้นั้นได้หายไปนานแล้ว คอมพิวเตอร์ส่วนบุคคลและ ฐานข้อมูลอิเล็กทรอนิกส์ข้อมูล.

ปัจจุบันนี้เป็นไปไม่ได้เลยที่จะจินตนาการถึงการทำงานของบริษัทที่ใหญ่ที่สุด ธนาคาร หรือองค์กรภาครัฐโดยไม่ต้องใช้ฐานข้อมูลและเครื่องมือ ระบบธุรกิจอัจฉริยะ- ฐานข้อมูลช่วยให้เราจัดเก็บและเข้าถึงได้ ปริมาณมากข้อมูลและ ระบบการจัดการฐานข้อมูล(DBMS) - จัดการที่เก็บข้อมูลที่มีอยู่

ใน ศูนย์ฝึกอบรม"อินเทอร์เฟซ"คุณจะได้เรียนรู้วิธีการใช้ระบบการจัดการฐานข้อมูลอย่างมีประสิทธิภาพ: ค้นหาข้อมูลที่คุณต้องการอย่างรวดเร็ว นำทางไปยังสคีมาฐานข้อมูล สร้างแบบสอบถาม พัฒนาและสร้างฐานข้อมูล

การฝึกอบรมจะช่วยให้คุณไม่เพียงได้รับความรู้และทักษะเท่านั้น แต่ยังยืนยันได้โดยผ่านการสอบที่เหมาะสมสำหรับสถานะของผู้เชี่ยวชาญที่ผ่านการรับรอง โดยผู้เชี่ยวชาญที่มีประสบการณ์ใน ดีบีเอ็มเอส ไมโครซอฟต์ เอสคิวแอลเซิร์ฟเวอร์หรือ ออราเคิลอาจสนใจเรียนรู้ระบบธุรกิจอัจฉริยะ งานเหล่านี้ค่อนข้างซับซ้อนโดยใช้เครื่องมือทางคณิตศาสตร์ที่ยุ่งยาก แต่ไม่เพียงแต่ช่วยให้วิเคราะห์กระบวนการที่กำลังดำเนินอยู่เท่านั้น แต่ยังช่วยคาดการณ์อนาคตซึ่งเป็นที่ต้องการอีกด้วย บริษัทขนาดใหญ่- นี่คือสาเหตุที่ผู้เชี่ยวชาญด้านการวิเคราะห์ธุรกิจเป็นที่ต้องการของตลาด และระดับค่าตอบแทนสำหรับงานของพวกเขานั้นดีมาก แม้ว่าผู้เชี่ยวชาญด้านฐานข้อมูล ผู้ดูแลระบบ และนักพัฒนาที่มีคุณสมบัติเหมาะสมจะไม่สามารถบ่นได้ ระดับต่ำไม่มีรายได้เช่นกัน มาที่หลักสูตรของเราและรับอาชีพที่เป็นที่ต้องการและได้รับค่าตอบแทนสูง เรากำลังรอคุณอยู่!

ในตอนท้ายของหลักสูตรการรับรองขั้นสุดท้ายจะดำเนินการในรูปแบบของการทดสอบหรือโดยการให้คะแนนโดยครูตลอดหลักสูตรการศึกษาตามคะแนนที่นักเรียนได้รับเมื่อตรวจสอบความเชี่ยวชาญของเนื้อหาที่กำลังศึกษาตาม เกี่ยวกับเกรดสำหรับงานภาคปฏิบัติที่ดำเนินการในระหว่างกระบวนการฝึกอบรม

ศูนย์ฝึกอบรม "อินเทอร์เฟซ"ให้บริการให้คำปรึกษาในการสร้างแบบจำลองกระบวนการทางธุรกิจ การออกแบบ ระบบสารสนเทศ, การพัฒนาโครงสร้างฐานข้อมูล เป็นต้น

  • ต้องการความช่วยเหลือในการหาหลักสูตรหรือไม่?
    เป้าหมายของเราคือการให้การฝึกอบรมแก่มืออาชีพในเวลาและทุกที่ที่พวกเขาต้องการ สามารถปรับโปรแกรมหลักสูตรได้ตามความต้องการของลูกค้า! เราจะบอกคุณเกี่ยวกับสิ่งที่คุณสนใจ ไม่ใช่แค่เกี่ยวกับสิ่งที่ได้รับการแก้ไขอย่างเคร่งครัดในโปรแกรมหลักสูตรเท่านั้น หากคุณต้องการหลักสูตรที่คุณไม่เห็นตามตารางเวลาหรือบนเว็บไซต์ของเรา หรือหากคุณต้องการเรียนหลักสูตรในเวลาหรือสถานที่อื่น โปรดแจ้งให้เราทราบที่

ในหนังสือของเขา “Oracle for Professionals. สถาปัตยกรรมและคุณสมบัติหลัก” ยืนยันว่านี่เป็นเพียงความจำเป็น แม้ว่าทีมของคุณจะมีผู้ดูแลระบบที่มีความสามารถ แต่การรู้ว่า Oracle DBMS ทำงานอย่างไรจะช่วยให้คุณเข้าใจซึ่งกันและกันได้ดีขึ้นและโต้ตอบได้อย่างมีประสิทธิภาพมากขึ้น ไม่ต้องพูดถึงกรณีที่คุณไม่มีผู้เชี่ยวชาญดังกล่าว ในหัวข้อนี้ฉันจะพูดถึงสิ่งสำคัญซึ่งความเข้าใจในเรื่องนี้จะช่วยให้คุณทำงานกับฐานข้อมูล Oracle ได้อย่างมีประสิทธิภาพและใช้คุณสมบัติบางอย่างที่เป็นประโยชน์อย่างยิ่งสำหรับแอปพลิเคชันของคุณ หากคุณได้อ่านหนังสือของ Tom Kite ที่กล่าวถึงข้างต้นแล้ว คุณสามารถใช้บทความนี้เป็นเครื่องเตือนใจได้ หมายเหตุประการหนึ่ง - ฉันอ่านหนังสือมานานแล้ว เวอร์ชันล่าสุดฐานข้อมูล Oracle คือ 9i ฉันยังเรียนหลักสูตรการบริหารใน 9i ด้วย ดังนั้นหากใน 10 ขึ้นไปมีบางอย่างเปลี่ยนแปลงและเพิ่มเข้ามา ก็อย่าตำหนิฉัน แม้ว่าฉันจะเขียนเกี่ยวกับสิ่งพื้นฐานที่ค่อนข้างไม่น่าจะเปลี่ยนแปลงมากนัก

อะไรทำให้ฐานข้อมูล Oracle รวดเร็วมาก

เมื่อคุณเปลี่ยนข้อมูลในฐานข้อมูล การเปลี่ยนแปลงของคุณจะไปอยู่ที่แคชก่อน จากนั้นจึงเขียนลงในดิสก์แบบอะซิงโครนัสในหลายเธรด (สามารถกำหนดค่าหมายเลขได้) บันทึกพิเศษ (ไฟล์บันทึกออนไลน์) ถูกเขียนพร้อมกันเพื่อให้สามารถกู้คืนข้อมูลหลังจากเกิดความล้มเหลวหากยังไม่ได้ล้างจากแคชไปยังดิสก์ แนวทางนี้ช่วยให้คุณได้รับความเร็วเนื่องจากในกรณีนี้ทุกอย่างถูกเขียนลงในดิสก์ตามลำดับในไฟล์เดียวและสามารถกำหนดค่าเพื่อให้สามารถเขียนแบบขนานกับดิสก์สองตัวขึ้นไปซึ่งจะเป็นการเพิ่มความน่าเชื่อถือของการป้องกันการสูญเสียการเปลี่ยนแปลง . ควรมีไฟล์อธิบายหลายไฟล์ และจะใช้เป็นวงกลม: ทันทีที่ข้อมูลทั้งหมดที่ได้รับการคุ้มครองโดยไฟล์บันทึกไฟล์ใดไฟล์หนึ่งถูกเขียนโดยกระบวนการเบื้องหลังลงในบล็อกข้อมูลบนดิสก์ ไฟล์บันทึกนี้จะสามารถนำมาใช้ซ้ำได้ ดังนั้นในระดับหนึ่ง สิ่งนี้ยังช่วยให้คุณประหยัดเงินได้ด้วยการมีดิสก์ที่เร็วเป็นพิเศษ ขนาดเล็กเฉพาะไฟล์บันทึกขนาดเล็กที่ใช้ในวงกลมเท่านั้น

ฉันมักจะพูดถึงเรื่องนี้เมื่อพวกเขาแนะนำให้ฉันบันทึกบางสิ่งลงในไฟล์บนดิสก์เนื่องจากมันจะ "เร็วกว่า" เนื่องจากเราจะเขียนข้อมูลทั้งหมดตามลำดับและหัวฮาร์ดดิสก์จะไม่ต้องวิ่งไปมา กำลังมองหาบล็อกสุ่ม ฉันยังคงยืนยันว่าเราจะไม่ได้รับอะไรเลยเนื่องจากเราจะเขียนลงดิสก์ที่ช้าซึ่งกระบวนการอื่น ๆ มากมายจะถูกใช้งานในไม่ช้าเพื่อเขียนบันทึกที่แตกต่างกันจำนวนมากและ Oracle ก็เขียนพร้อมกันไปยังดิสก์ของมันเท่านั้น ตามลำดับตามที่ฉันได้อธิบายไว้ข้างต้น

กลไกการกู้คืนข้อมูล

ใน Oracle DBMS คุณสามารถเปิดใช้งานการเก็บถาวรไฟล์บันทึกการดำเนินงานที่อธิบายไว้ข้างต้น และการเปลี่ยนแปลงทั้งหมดจะถูกเก็บถาวร ดังนั้น หากเราสูญเสียดิสก์ที่มีบล็อกข้อมูล เราก็สามารถกู้คืนดิสก์เหล่านั้นไปยังช่วงเวลาใดก็ได้ รวมถึงช่วงเวลาก่อนที่จะเกิดข้อผิดพลาด โดยการส่งต่อบันทึกออนไลน์ปัจจุบันไปยังไฟล์บันทึกที่เก็บไว้ล่าสุด

ยืนตามสำเนา

ข้างต้น ไฟล์เก็บถาวรสามารถส่งผ่านเครือข่ายและนำไปใช้กับสำเนาของฐานข้อมูลได้ทันที ด้วยวิธีนี้ คุณจะมีสำเนาด่วนพร้อมอยู่เสมอโดยมีความล่าช้าของข้อมูลน้อยที่สุด ในบางแอปพลิเคชัน ซึ่งไม่จำเป็นต้องแสดงข้อมูลจนถึงวินาทีสุดท้าย คุณสามารถกำหนดค่าฐานข้อมูลดังกล่าวให้เป็นแบบอ่านอย่างเดียวและยกเลิกการโหลดอินสแตนซ์ฐานข้อมูลหลักได้ และอาจมีอินสแตนซ์ดังกล่าวหลายอินสแตนซ์สำหรับการอ่าน

ติดอยู่ในคำขอเขียนบางอย่าง

หากคำขอบางรายการของคุณค้างอยู่ ช่วงเวลาที่พลควรดูที่ alert.log เพื่อดูว่ามีจุดตรวจที่ไม่สมบูรณ์หรือไม่ สิ่งนี้ชี้ให้เห็นว่าไฟล์บันทึกออนไลน์ของคุณมีขนาดใหญ่เกินไปหรือมีน้อยเกินไป ดังนั้นข้อมูลที่ป้องกันจึงไม่มีเวลาที่จะล้างจากแคชไปยังดิสก์ และ DBMS ได้กรอกไฟล์บันทึกออนไลน์ที่มีอยู่ทั้งหมดแล้วและต้องการ นำมาใช้ซ้ำเป็นวงกลม จะทำอย่างไรดี ดังนั้นจึงมีการหยุดชั่วคราว แม้ว่าแอปพลิเคชันของคุณทำงานบน Java ก่อนอื่นฉันจะดูการมีอยู่ของ Full GC ในบันทึก

ส่วนการอ่านและการย้อนกลับแบบไม่ปิดกั้น

หนึ่งในคุณสมบัติที่โดดเด่นที่สุดของ Oracle DBMS คือการอ่านแบบไม่ปิดกั้น ซึ่งทำได้ผ่านเซ็กเมนต์การย้อนกลับ อ่านแบบสอบถามไปยัง Oracle ไม่เคยไม่ถูกบล็อกเนื่องจากข้อมูลสามารถอ่านได้จากส่วนการย้อนกลับเกือบตลอดเวลา

ส่วนการย้อนกลับให้โบนัสอีกอย่าง: จากนั้นคุณสามารถลองอ่านข้อมูลที่ล้าสมัยเล็กน้อยสำหรับตารางที่อยู่ในนั้นในช่วงเวลาหนึ่งได้ คุณลักษณะนี้เรียกว่าย้อนหลัง

อย่างไรก็ตาม บางครั้งเซ็กเมนต์การย้อนกลับอาจเป็นปัญหา: หากคุณมีงานจำนวนมากสำหรับการลบข้อมูลจำนวนมาก (การลบจะสร้างข้อมูลมากขึ้นเรื่อยๆ ในเซ็กเมนต์การย้อนกลับ) คุณจะได้รับ ORA-01555: สแนปช็อตเก่าเกินไป- สิ่งสำคัญที่ต้องจำไว้ในกรณีนี้คือ คุณไม่จำเป็นต้องเขียนงานของคุณใหม่เพื่อให้คอมมิตทุกการดำเนินการ N แต่คุณจำเป็นต้องใช้เซ็กเมนต์การย้อนกลับที่สร้างขึ้นเป็นพิเศษแยกต่างหากสำหรับการดำเนินการดังกล่าว

ระดับการแยกธุรกรรม

ไม่มีระดับการแยก READ_UNCOMMITED ใน Oracle เลย ประเด็นก็คือฐานข้อมูลอื่นใช้เพื่อให้เกิดการทำงานพร้อมกันสูงสุดโดยการลบการล็อกการอ่าน แต่ใน Oracle การอ่านจะดำเนินการโดยไม่มีการล็อกเสมอ ดังนั้นเราจึงได้รับประโยชน์ทั้งหมดที่ระดับนี้สามารถให้ได้อยู่แล้วโดยไม่ต้องมีข้อจำกัดเพิ่มเติมใดๆ

โดยทั่วไป เห็นได้ชัดว่ามีเพียงสองระดับการแยกใน Oracle: ค่าเริ่มต้นคือ READ_COMMITTED แต่คุณสามารถตั้งค่าเป็น SERIALIZABLE ได้หากต้องการ

อย่างไรก็ตาม ในระดับคำสั่ง (SELECT, UPDATE ฯลฯ) คุณมี REPEATABLE_READ เป็นค่าเริ่มต้นอยู่แล้ว เช่น ภายในคำสั่งเดียว คุณจะได้รับการอ่านที่สอดคล้องกันเสมอ ซึ่งแน่นอนว่าทำได้โดยส่วนการย้อนกลับ ฉันชอบตัวอย่างที่ Tom Kite ให้มาโดยตลอดเพื่ออธิบายว่าสิ่งนี้ทำอะไร สมมติว่าคุณมีตารางขนาดใหญ่มากพร้อมบัญชี และคุณดำเนินการ SELECT เพื่อรับจำนวนเงิน ใน Oracle ไม่เหมือนกับฐานข้อมูลอื่น ๆ แม้ว่าในระหว่างการสืบค้นของคุณ มีธุรกรรมอื่นโอนจำนวนหนึ่งจากบัญชีแรกไปยังบัญชีสุดท้าย คุณจะยังคงได้รับข้อมูลที่เป็นปัจจุบันที่จุดเริ่มต้นของการสืบค้น เนื่องจากเมื่อคุณไปถึง บรรทัดสุดท้ายที่ SELECT ของคุณจะเห็นว่าบรรทัดมีการเปลี่ยนแปลง จะไปที่ส่วนการย้อนกลับและอ่านข้อมูลที่อยู่ในเซลล์นี้ในขณะที่คำขอเริ่มต้น ในฐานข้อมูลอื่นๆ จำนวนมาก คุณจะได้รับคำตอบเป็นผลรวมที่ไม่เคยมีอยู่ในตารางของคุณ อย่างไรก็ตามในออราเคิล ในกรณีนี้มีอันตรายจากการได้รับ ORA-01555: สแนปช็อตเก่าเกินไป.

นอกจาก ระดับมาตรฐานการแยกใน Oracle ยังมีธุรกรรมที่เรียกว่า READ_ONLY ซึ่งให้ REPEATABLE_READ ภายในธุรกรรมทั้งหมด ไม่ใช่แค่ภายในคำสั่งเดียว แต่ตามชื่อเลย คุณสามารถอ่านได้เฉพาะในธุรกรรมดังกล่าวเท่านั้น

ให้ Oracle แคชข้อมูลของคุณอย่างมีประสิทธิภาพ

ใน Oracle ข้อมูลทั้งหมดจะถูกอ่านและเขียนไม่ได้ลงดิสก์โดยตรง แต่ผ่านแคช ตามค่าเริ่มต้น แคชจะขึ้นอยู่กับอัลกอริธึม LRU ดังนั้นหากคุณอ่านตารางที่มีขนาดใหญ่มากด้วยตัวระบุในปริมาณมาก โดยขอขึ้นบรรทัดใหม่ทุกครั้ง คำขอดังกล่าวสามารถแทนที่ตารางคงที่ขนาดเล็กจากแคช ซึ่งจะเป็น สิ่งที่ดีที่สุดที่จะมีอยู่ในแคชอย่างถาวร เพื่อวัตถุประสงค์ดังกล่าว เมื่อสร้างตาราง คุณสามารถระบุแคชชนิดพิเศษที่จะทำการสืบค้นไปยังตารางของคุณ ดังนั้นสำหรับตารางแรกในตัวอย่างข้างต้น แคชจะทำ RECYCLE ซึ่งโดยพื้นฐานแล้วจะไม่เก็บข้อมูลใด ๆ แต่จะโยนออกจากแคชทันที และสำหรับตารางที่สองแคช KEEP นั้นเหมาะสมซึ่งช่วยให้คุณจัดเก็บตารางสแตติกขนาดเล็กในแคชและการสืบค้นไปยังตารางอื่น ๆ ทั้งหมดจะไม่แทนที่ข้อมูลจากตารางสแตติกจากแคช

เส้นว่าง

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

ดัชนี

นอกเหนือจากดัชนีที่รู้จักกันดีในรูปแบบของ B-tree แล้ว Oracle ยังมีสิ่งที่เรียกว่าดัชนีบิต ซึ่งแสดงประสิทธิภาพที่สูงมากในการสืบค้นไปยังตารางที่มีคอลัมน์ที่มีค่าเบาบางมาก ในกรณีนี้ การสืบค้น (เมื่อเทียบกับดัชนีปกติ) ที่ประกอบด้วยคอลัมน์ OR และ AND ที่ซับซ้อนรวมกันจะทำงานได้อย่างมีประสิทธิภาพเป็นพิเศษ ดัชนีนี้ไม่ได้จัดเก็บไว้ใน B-tree แต่อยู่ในบิตแมป ซึ่งทำให้สามารถดำเนินการคำสั่งที่อธิบายไว้ได้อย่างรวดเร็ว คำถามเกี่ยวกับจำนวนค่าที่ไม่ซ้ำในตารางซึ่งดัชนีที่กำหนดจะดีกว่านั้นซับซ้อนมาก: อาจเป็นได้ทั้ง 10 ค่าที่ไม่ซ้ำหรือ 10,000 ที่นี่คุณต้องสร้างดัชนีบนตารางเฉพาะและ ดูว่าเกิดอะไรขึ้น สิ่งสำคัญคืออย่าพยายามใช้ดัชนีนี้กับตารางที่มีการแทรกจำนวนมากและอัปเดตคอลัมน์ที่จัดทำดัชนี เนื่องจากการดำเนินการดังกล่าวจะบล็อกพื้นที่ที่ค่อนข้างใหญ่ในตารางที่จัดทำดัชนี และระบบของคุณอาจติดขัดหรือแม้กระทั่งเกิดการหยุดชะงัก

สิ่งหนึ่งที่ฉันพอใจมากเกี่ยวกับ Oracle มาโดยตลอดคือความสามารถในการสร้างดัชนีบนฟังก์ชัน เหล่านั้น. หากคุณต้องใช้ฟังก์ชันบางอย่างในการสืบค้น คุณสามารถสร้างดัชนีและเพิ่มความเร็วในการอ่านได้อย่างมาก

คุณสมบัติที่น่าสนใจอีกประการหนึ่งของดัชนีที่ต้องระวังก็คือดัชนีจะไม่เก็บค่า NULL ดังนั้น หากคุณทำการสอบถามโดยมีเงื่อนไข<, >หรือ<>บนคอลัมน์ที่จัดทำดัชนี คุณจะไม่ได้รับแถวหลังที่มีค่า NULL ในคอลัมน์ที่จัดทำดัชนี อีกด้านหนึ่ง คุณสมบัตินี้สามารถใช้งานได้อย่างมีประสิทธิภาพในบางกรณีโดยเฉพาะ ตัวอย่างเช่น คุณมีตารางที่มีขนาดใหญ่มากซึ่งใช้จัดเก็บคำสั่งซื้อซึ่งไม่เคยถูกล้างเลย และมีกระบวนการเบื้องหลังที่จำเป็นในการส่งคำสั่งซื้อทั้งหมดไปยังระบบแบ็คออฟฟิศบางระบบ วิธีแก้ปัญหาแรกที่แนะนำตัวเองคือสร้างอีกคอลัมน์หนึ่งด้วยแฟล็ก is_sent โดยที่ตอนแรกเป็น 0 และเมื่อส่งเราจะใส่ 1 นั่นก็คือ แต่ละครั้งที่กระบวนการเบื้องหลังเริ่มต้นขึ้น กระบวนการจะส่งคำขอไปยังตารางโดยมีเงื่อนไข is_sent=0 คุณไม่สามารถใช้ดัชนีบิตที่นี่ได้ เนื่องจากตารางมีการเติมเต็มอย่างมาก ดัชนี B-tree ปกติจะใช้พื้นที่มากเนื่องจากจำเป็นต้องจัดเก็บการอ้างอิงถึงแถวจำนวนมาก แต่ถ้าเราเปลี่ยนตรรกะของเราเล็กน้อยทั้งในฐานะเครื่องหมายอ้างอิงและในคอลัมน์ is_sent เราใส่ NULL แทนที่จะเป็น 1 ดัชนีของเราจะมีขนาดเล็กเนื่องจากในช่วงเวลาใด ๆ จะมีการจัดเก็บเฉพาะค่าที่ไม่ใช่ NULL เท่านั้นและ จะมีน้อยมาก

ตารางจะแตกต่างกัน

นอกเหนือจากตารางปกติแล้ว Oracle ก็เหมือนกับฐานข้อมูลอื่นๆ ที่เรียกว่าตารางดัชนี เมื่อข้อมูลตารางอยู่ในแผนผังดัชนีคีย์หลักโดยตรง ด้วยวิธีนี้ บรรลุสองสิ่งได้ในคราวเดียว ประการแรก การอ่านข้อมูล คีย์หลักคุณมีการอ่านน้อยลงหนึ่งครั้ง ประการที่สอง ข้อมูลในตารางเรียงลำดับตามคีย์หลัก ดังนั้นการดำเนินการ ORDER BY PK จะดำเนินการโดยไม่มีการเรียงลำดับเพิ่มเติม ข้อเสียคือคุณจะไม่สามารถแยกความแตกต่างระหว่างการเข้าสู่ระบบไฟล์บันทึกการปฏิบัติงานของดัชนีที่ระบุได้อีกต่อไป

ตารางที่ยอดเยี่ยมอีกประเภทหนึ่งคือตารางแบบคลัสเตอร์ ซึ่งช่วยให้คุณสามารถจัดเก็บข้อมูลจากตารางตั้งแต่สองตารางขึ้นไปที่คลัสเตอร์ด้วยค่าคีย์เดียวในบล็อกข้อมูลเดียว วิธีนี้จะค่อนข้างมีประสิทธิภาพหากคุณแชร์ตารางบางตารางอยู่เสมอ

ขึ้นอยู่กับตารางที่คลัสเตอร์ นอกจากนี้ยังมีตารางแฮชแบบคลัสเตอร์ ซึ่งแทนที่จะเป็น B-tree จะใช้ตารางที่ยึดตามแฮชของคีย์คลัสเตอร์เพื่อการเข้าถึง แน่นอนว่ามันฟังดูน่าสนใจมาก แต่พูดตามตรง ฉันไม่เคยเจอมันในทางปฏิบัติเลย

การเชื่อมโยงตัวแปร

โปรแกรมเมอร์ทุกคนอาจเคยได้ยินเกี่ยวกับเรื่องนี้แล้ว แต่ฉันจะยังคงพูดถึงเทคนิคบังคับเช่นการเชื่อมโยงตัวแปร ความจริงก็คือสำหรับแต่ละคำขอที่ไม่ซ้ำกัน แผนการแยกวิเคราะห์จะถูกสร้างขึ้นและวางไว้ในแคช หากมีการสืบค้นที่แตกต่างกันจำนวนมาก เช่น การสืบค้นที่ใช้บ่อยตาม ID การสืบค้นแต่ละครั้งจะสร้างแผนของตัวเอง และจะรวมแผนอื่นๆ ทั้งหมดออกจากแคชด้วย ซึ่งสามารถเพิ่มการตอบสนองได้อย่างมาก เวลาของฐานข้อมูลของคุณ

นอกจากนี้ ยังเป็นที่น่าสังเกตว่าคุณไม่ควรใช้สิ่งนี้ในทางที่ผิด และใช้การเชื่อมโยงคอลัมน์ที่มีค่าที่แตกต่างกันจำนวนเล็กน้อย เช่น แฟล็ก is_deleted เนื่องจากในกรณีนี้ จะไม่มีข้อความค้นหาที่แตกต่างกันมากนัก และบางทีสำหรับข้อความค้นหาที่เฉพาะเจาะจงมากขึ้น DBMS จะสามารถสร้างแผนงานที่มีประสิทธิภาพมากขึ้นได้

หมายเหตุอีกสองสามประการสำหรับโปรแกรมเมอร์

หากคอลัมน์ของคุณเป็นประเภท VARCHAR2(100) การพยายามยัดสตริง longString.substring(0, 100) เข้าไปนั้นไม่รับประกันว่าจะสำเร็จ เนื่องจากขีดจำกัด 100 ในคำจำกัดความคอลัมน์เริ่มต้นอ้างอิงถึงจำนวนไบต์ ไม่ใช่อักขระ ดังนั้น หากคุณมีอักขระแบบไบต์คู่ คุณอาจประสบปัญหาได้ จริงๆ แล้ว ลักษณะการทำงานนี้สามารถกำหนดค่าได้เล็กน้อย คุณสามารถอ่านเพิ่มเติมได้ เป็นการดีถ้าคุณยังไม่ได้พยายามแทรกเข้าไป วนซ้ำไม่รู้จบตามหลักการทำยังทำไม่ได้เพราะในกรณีนี้มันไม่มีวันเกิดขึ้น

ดี คำแนะนำทั่วไปสำหรับฐานข้อมูลทุกประเภท: อย่าอัปเดตคอลัมน์ทั้งหมดในตารางเมื่อฟิลด์ใดฟิลด์หนึ่งของออบเจ็กต์มีการเปลี่ยนแปลง ดูเหมือนชัดเจนมาก แต่ในทางปฏิบัติการต่อต้านรูปแบบนี้มักเกิดขึ้น ดังนั้นฉันขอแนะนำอย่างยิ่งให้ตรวจสอบว่าเฟรมเวิร์กของคุณเฉพาะฟิลด์ UPDATE ที่เปลี่ยนแปลงจริง ๆ

บทสรุป

ฉันพยายามอธิบายสิ่งต่าง ๆ ส่วนใหญ่ที่ในความคิดของฉันมีประโยชน์สำหรับโปรแกรมเมอร์ เนื่องจากมีค่อนข้างมากฉันจึงสรุปเพียงโครงร่างเท่านั้นโดยมักไม่ได้ลงรายละเอียด ทำอย่างไรให้แม่น การตั้งค่าที่จำเป็นคุณสามารถอ่านได้ในหนังสือของ Tom Kite ที่กล่าวถึง ค้นหาในคอลัมน์ Asktom หรือเพียงแค่ Google สิ่งสำคัญคือการรู้ว่าอะไรกับ Google และฉันหวังว่าหัวข้อนี้จะแนะนำให้คุณ

แท็ก:

  • ฐานข้อมูลออราเคิล
  • ฐานข้อมูล
เพิ่มแท็ก