ยินดีต้อนรับเข้าสู่วิชาระบบฐานข้อมูลเบื้องต้น ฉันชื่อเจนนิเฟอร์ วิดอม จากมหาวิทยาลัยสแตนฟอร์ด ในวิชานี้เราจะได้เรียน เกี่ยวกับฐานข้อมูลและการใช้ ของระบบการจัดการฐานข้อมูล, เริ่มจาก จากมุมมองของผู้ออกแบบ ผู้ใช้ และผู้พัฒนาโปรแกรมประยุกต์ใช้งานฐานข้อมูล ฉันจะเริ่มต้นด้วยการบรรยายเป็น ประโยคยาวหนึ่งประโยคว่า ระบบการจัดการฐานข้อมูลให้บริการอะไรกับโปรแกรมประยุกต์ใช้งาน มันสามารถจัดการข้อมูลจำนวนมาก แต่เราลองมาดูที่รายละเอียดสักเล็กน้อย ระบบจัดการฐานข้อมูลช่วยให้ มีประสิทธิภาพ, น่าเชื่อถือ สะดวกสบาย และช่วยให้ผู้ใช้จำนวนมากปลอดภัย ในการจัดเก็บข้อมูลและการเข้าถึง ข้อมูลจำนวนมากได้อย่างมีเสถียรภาพ ดังนั้น, ฉันจะอธิบาย ในบางประเด็น พอสังเขป แต่ ฉันไม่ได้ต้องการที่จะพูดถึงระบบฐานข้อมูล ที่ได้รับความนิยมแพร่หลายในปัจจุบัน ฐานข้อมูลทำงานอยู่เบื้องหลังเว็บไซต์จำนวนมาก ไม่ว่าจะเป็น ระบบธนาคาร ระบบสื่อสื่อ เซ็นเซอร์, การทดลองทางวิทยาศาสตร์ และอื่นๆ อีกมากมาย ซึ่งได้รับความนิยมอย่างมาก จึงขอพูดคุยสักเล็กน้อย เกี่ยวกับสาเหตุที่ระบบฐานข้อมูล ได้รับนิยมแพร่หลาย ใน 7 คุณลักษณะต่อไปนี้ อย่างแรก คือ ระบบฐานข้อมูล สามารถจัดการ กับข้อมูลขนาดใหญ่ หากคุณนึกถึง ปริมาณของข้อมูล ที่ถูกสร้างขึ้นในทุกวันนี้, ระบบฐานข้อมูล ต้องจัดดการกับข้อมูลระดับเทราไบต์ บางทีอาจจะเป็นเทราไบต์ในทุกๆ วัน และอีกอย่างที่สำคัญ ข้อมูล ที่ถูกจัดการด้วยระบบฐานข้อมูล มีขนาดใหญ่เกินกว่าที่จะ พอดีกับหน่วยความจำของระบบคอมพิวเตอร์โดยทั่วไป ดังนั้นหน่วยความทรงจำจึงมีการเติบโต อย่างรวดเร็ว, แต่ ปริมาณของข้อมูลในโลก และข้อมูลที่จะจัดการโดย ระบบฐานข้อมูล มีการเติบโตที่เร็วกว่ามาก ดังนั้นระบบฐานข้อมูล จึงออกแบบมาเพื่อจัดการกับข้อมูลด้านนอกของหน่วยความจำด้วย 2, ข้อมูลที่ ถูกจัดการโดยระบบจัดการฐานข้อมูลโดยทั่วไปแล้วจะมีความคงทน ฉันหมายถึง ข้อมูลที่อยู่ในฐานข้อมูล อยู่ทนกว่าโปรแกรมที่เชื่อมกับข้อมูลโดยตรง ดังนั้นถ้าคุณรัน โปรแกรมคอมพิวเตอร์ทั่วไป จะเริ่มเรียกตัวแปรที่เราสร้างขึ้น และมีข้อมูลที่ดำเนินงาน บนโปรแกรม, เมื่อใช้โปรแกรมเสร็จ ข้อมูลก็จะหายไป ซึ่งต่างไปจากในฐานข้อมูล ที่ข้อมูลจะถูกจัดเก็บไว้ และเมื่อโปรแกรมได้เริ่มต้น มันก็จะทำงานบนข้อมูลนั้น โปรแกรมหยุดลง ข้อมูลก็ยังคงอยู่ บ่อยมากที่โปรแกรมหลายๆ ตัว ทำงานบนข้อมูลเดียวกัน ถัดไป (3), ความปลอดภัย ดังนั้น ระบบฐานข้อมูล, ตั้งแต่ ถูกใช้ในใช้งานที่สำคัญ เช่น การสื่อสารโทรคมนาคมและระบบธนาคาร ต้องมีการรับประกันว่า ข้อมูลที่ถูกจัดการโดยระบบ ต้องอยู่ในสภาพที่สอดคล้องกัน มันจะไม่สูญหาย หรือถูกเขียนทับเมื่อเกิดความล้มเหลว ซึ่งเป็นไปได้จะเกิดความล้มเหลวของฮาร์ดแวร์ ความล้มเหลวของซอฟต์แวร์ และเมื่อไฟดับ คุณก็ไม่ต้องการให้ บัญชีธนาคารของคุณเปลี่ยนแปลง เมื่อไฟดับที่สาขา แน่นอนว่ามีปัญหา ของผู้ที่ประสงค์ร้าย ที่พยายามทำให้ข้อมูลเสียหาย ดังนั้นระบบฐานข้อมูล จะมีหมายเลขที่สร้างขึ้นเพื่อเป็นกลไก ให้แน่ใจว่าข้อมูลยังคงมีความสอดคล้องกัน ไม่ว่าอะไรจะเกิดขึ้น ถัดไป (4), มัลติยูสเซอร์ จากที่บอกว่าหลายโปรแกรมอาจทำงานบนฐานข้อมูลเดียวกัน หรือแม้จะมีเพียงโปรแกรมเดียว ที่ทำงานบนฐานฐานข้อมูล, โปรแกรมนั้นอาจ อนุญาตให้มีผู้ใช้จำนวนมาก เข้าถึงโปรแกรมประยุกต์ได้พร้อมๆ กัน ดังนั้น เมื่อคุณมี หลายโปรแกรมประยุกต์ที่ทำงานบน ข้อมูลเดียวกัน, ระบบจะ ต้องมีกลไกบางอย่าง เพื่อให้มั่นใจว่าข้อมูลจะยังมีความสอดคล้องกัน ตัวอย่างเช่น ครึ่งหนึ่งของรายการข้อมูล ถูกเขียนทับโดยคนๆ หนึ่ง อีกครึ่งหนึ่งเขียนทับโดยอีกคน ดังนั้น จึงมีกลไกในฐานข้อมูล ที่เรียกว่า การควบคุมการเข้าถึงข้อมูลพร้อมกัน โดยมีแนวคิดว่า เราต้องมีวิธีการให้ผู้ใช้หลายคนสามารถเข้าถึงฐานข้อมูลได้ ตอนนี้เราไม่ได้ควบคุมฐานข้อมูลโดย ให้ผู้ใช้คนใดคนหนึ่ง มีสิทธิพิเศษในการเข้าถึงฐานข้อมูล หรือปล่อยให้ประสิทธิภาพลดลงอย่างมาก ดังนั้นการควบคุมจริงที่เกิดขึ้นใน ระดับของรายการข้อมูลในฐานข้อมูล ทำให้ผู้ใช้หลายคนสามารถดำเนินการ บนฐานข้อมูลเดียวกัน แต่เป็น การดำเนินงานในรายการข้อมูลที่แตกต่างกันได้ คล้ายๆ กับ "ระบบแฟ้มที่พร้อมกัน" หรือ หรือ "ตัวแปรที่พร้อมกัน" ในโปรแกรม ยกเว้นว่ามันจะเป็น "ศูนย์กลางข้อมูล" ในตัวเองมากขึ้น คุณลักษณะถัดไป (5) คือ ความสะดวกสบาย, โดย ความสะดวกสบายเป็นหนึ่งใน คุณสมบัติที่สำคัญของระบบฐานข้อมูล พวกมันได้รับการออกแบบให้ สามารถใช้งานได้ง่ายใน ปริมาณข้อมูลมหาศาล อย่างมีประสิทธิภาพและมีกระบวนการประมวลผลข้อมูลที่น่าสนใจ โดยจะเกิดขึ้นใน 2 ระดับ คือ มีแนวคิดในฐานข้อมูลที่เรียกว่า "ความเป็นอิสระของข้อมูลเชิงกายภาพ " ซึ่งถือเป็นศัพท์บัญญัติ ที่หมายถึง วิธีการที่ข้อมูล ถูกจัดเก็บและเขียนลงไป ในดิสก์ซึ่งเป็นอิสระจาก วิธีการที่โปรแกรมคิดในโครงสร้างของข้อมูล เพื่อให้คุณสามารถมีโปรแกรม ที่ทำงานบนฐานข้อมูล โดยไม่ต้องสนใจว่ามัน จะมีการเปลี่ยนแปลงอย่างไร ในขั้นตอนการจัดเก็บข้อมูล, โดยที่ ไม่ต้องเปลี่ยนแปลงอะไรในตัวโปรแกรม ดังนั้นการดำเนินการ บนข้อมูล จะมีความเป็นอิสระจากวิธีการนำข้อมูลออกมา และค่อนข้างที่จะเกี่ยวข้องกับ แนวคิดของภาษาสอบถามข้อมูลระดับสูง ดังนั้นฐานข้อมูล มักถูกสืบค้นด้วยภาษา ที่ค่อนข้างมีขนาดกะทัดรัด สำหรับอธิบายถึง ข้อมูลที่คุณต้องการจากฐานข้อมูลในภาษาระดับสูง โดยที่, ฐานข้อมูลจะ ปฏิบัติตามแนวคิดเรื่อง "การประกาศ" ไม่ว่าจะอยู่ในรูปของ การสอบถามข้อมูล ที่คุณต้องการ จากฐานข้อมูล โดยคุณไม่จำเป็น ต้องอธิบายขั้นตอนวิธีที่จะ ดึงข้อมูลออกมา ซึ่งเป็นคุณลักษณะที่ดีจริงๆ มันช่วยให้คุณเขียนคำสั่งสอบถามข้อมูล ได้อย่างง่ายดาย, และจากนั้น ระบบก็จะค้นหา ขั้นตอนวิธีที่จะดึงข้อมูลออกมาได้อย่างมีประสิทธิภาพ และเรื่องของประสิทธิภาพ คือประเด็นที่ 6 และแน่นอนว่า ไม่ใช่เป็นความสำคัญลำดับที่ 6 และมันเกี่ยวข้องกับ เรื่องอสังหาริมทรัพย์อยู่บ้างเล็กน้อย จากคำโบราณที่ว่า หากคุณกำลังมองหาอสังหาสักที่ สิ่งสำคัญที่สุด 3 อย่าง ของอสังหาริมทรัพย์ ก็คือทำเล, ทำเล, และก็ทำเล และผู้คนก็พูดแบบเดียวกัน ในเรื่องฐานข้อมูล, เรื่องขำขัน ที่คล้ายกัน, คือ 3 สิ่งที่สำคัญที่สุด ในฐานข้อมูล คือ 1 ประสิทธิภาพ, 2 ประสิทธิภาพ และประสิทธิภาพ เนื่องด้วยระบบฐานข้อมูลต้อง ทำหลายพันคำสั่งสืบค้น หรือปรับปรุงข้อมูลใน 1 วินาที จึงไม่สามารถใช้การสืบค้นง่ายๆ และอาจต้องใช้การดำเนินการที่ซับซ้อนมาก ดังนั้นการสร้าง ระบบฐานข้อมูล, ที่สามารถดำเนินการ สอบถามด้วยคำสั่งที่ซับซ้อน ในอัตราเร็วแบบนั้น, บนปริมาณข้อมูลมหาศาล ระดับเทราไบต์ จึงไม่ใช่งานง่าย, และนั่นคือ หนึ่งในคุณสมบัติที่สำคัญยัง ที่ระบบจัดการฐานข้อมูลมอบให้ และสุดท้าย (7) ย้ำอีกครั้งว่าไม่ใช่สิ่งสำคัญท้ายสุด ก็คือ ความเชื่อถือได้ เหมือนเดิม, ลองมองกลับไปที่ ระบบธนาคารหรือระบบสื่อสารโทรคมนาคมของคุณ มันเป็นสิ่งสำคัญอย่างยิ่ง ที่ระบบจะต้องพร้อมทำงานได้ตลอดเวลา ด้วย 99.99999% uptime เช่นเดียวกัน ระบบจัดการฐานข้อมูลก็รับประกันว่าจะพร้อมให้บริการโปรแกรมประยุกต์ต่างๆ เพื่อที่จะช่วยให้เราเข้าใจได้ ถึงความยอดเยี่ยมที่ระบบฐานข้อมูลมอบให้ ฉันหวังว่าคุณทุกคนคงเห็นถึงความสำคัญของมัน หากจะสร้างแอปพลิเคชัน ที่เกี่ยวข้องกับข้อมูล มันจะยอดเยี่ยม ที่คุณสมบัติทั้งหมดเหล่านี้ มีพร้อมสำหรับคุณในระบบฐานข้อมูล ต่อไปฉันจะพูดถึงบางแง่มุม ของระบบฐานข้อมูล และขอบเขต ที่เราจะศึกษาในวิชานี้ เมื่อผู้คนสร้างโปรแกรมประยุกต์บนฐานข้อมูล, บางครั้งพวกเขาเขียนโปรแกรมด้วยสิ่งที่เรียกว่าเฟรมเวิร์ก ขณะที่บันทึกวิดีโอนี้ บางส่วนของ เฟรมเวิร์กที่ได้รับความนิยม ได้แก่ Django Ruby on Rails, ซึ่ง เป็นสภาพแวดล้อมที่ช่วยให้คุณ พัฒนาโปรแกรมของคุณ และช่วยให้คุณสร้าง ฐานข้อมูลได้อย่างอัตโนมัติ, ซึ่งเรา ไม่ได้สอนในชุดของวิดีโอนี้ , คือไม่ได้พูดถึง เรื่องเฟรมเวิร์ก, แต่เรากำลังจะ พูดคุยเกี่ยวกับระบบฐานข้อมูล รวมถึงวิธีการใช้งานและสิ่งที่จะได้รับ ประเด็นที่ 2, ระบบฐานข้อมูล มักถูกใช้โดยมีตัวเชื่อมที่เรียกว่ามิดเดิลแวร์ เช่นเดิม, ในวิดีโอนี้ โดยทั่วไปแล้วมิดเดิลแวร์อาจจะ เป็นแอปพลิเคชันเซิร์ฟเวอร์, เว็บเซิร์ฟเวอร์ โดยมิดเดิลแวร์จะช่วยให้ แอปพลิเคชันติดต่อกับระบบฐานข้อมูล ด้วยวิธีการที่แน่นอน เช่นเดิม, เรื่องนี้อยู่นอกขอบเขตของรายวิชา เราจะไม่พูดคุยเกี่ยวกับมิดเดิลแวร์ในการเรียนการสอน สุดท้าย, ก็ไม่ใช่ทุกกรณี ของแอปพลิเคชันที่เกี่ยวข้องกับข้อมูล ที่จำเป็นต้องใช้ ระบบฐานข้อมูล, ดังเช่นในอดีต, ข้อมูลจำนวนมากถูกจัดเก็บไว้ในไฟล์ ฉันคิดว่ามันยังถูกใช้จนทุกวันนี้ เพราะยังคงมีข้อมูลจำนวนมากที่จัดเก็บอยู่ในไฟล์ Excel สเปรดชีต เป็นอีกกลุ่ม ที่มีข้อมูลจำนวนมาก จัดเก็บด้วยรูปแบบนี้ และมันมีประโยชน์แน่นอน เพราะการประมวลผลข้อมูลไม่จำเป็นต้อง ทำผ่านภาษาสอบถามที่ใช้ร่วมกับระบบฐานข้อมูลเสมอไป ยกตัวอย่างเช่น Hadoop ซึ่งเป็น เครื่องมือประมวลผลที่ดำเนินการ กับข้อมูลที่เก็บไว้ในไฟล์ ชุดวิดีโอนี้เรากำลังจะมุ่งเน้นไปที่ ระบบการจัดการฐานข้อมูล ในด้านการจัดเก็บ และการดำเนินงานของข้อมูลผ่านระบบการจัดการฐานข้อมูล ดังนั้นจึงมี 4 แนวคิดสำคัญ ที่จะอธิบายในตอนนี้ อย่างแรกคือรูปแบบข้อมูล