สร้างฐานข้อมูล NoSQL ด้วย Python
เผยแพร่แล้ว: 2022-11-23Python เป็นภาษาโปรแกรมที่มีประสิทธิภาพซึ่งใช้กันอย่างแพร่หลายในหลายอุตสาหกรรมในปัจจุบัน Python นั้นง่ายต่อการเรียนรู้สำหรับผู้เริ่มต้นและมีโมดูลและไลบรารีมากมายที่ช่วยให้สามารถเขียนโปรแกรมได้อย่างมีประสิทธิภาพ Python เป็นภาษายอดนิยมสำหรับการพัฒนาเว็บ การคำนวณทางวิทยาศาสตร์ การวิเคราะห์ข้อมูล ปัญญาประดิษฐ์ และอื่นๆ ฐานข้อมูล NoSQL เป็นตัวเลือกยอดนิยมสำหรับ แอปพลิเคชัน Python จำนวนมาก โดยทั่วไป ฐานข้อมูล NoSQL ปรับขนาดได้ง่ายกว่าฐานข้อมูลเชิงสัมพันธ์ และมอบประสบการณ์การพัฒนาที่ง่ายกว่า Python เสนอฐานข้อมูล NoSQL ยอดนิยมหลายตัว เช่น MongoDB, Cassandra และ Redis ในบทความนี้ เราจะแสดงวิธีสร้างฐานข้อมูล NoSQL โดยใช้ Python
NoSQL กำลังขยายไปสู่ SQL ไม่เพียงเท่านั้น เราสามารถจำลองข้อมูลได้หลายวิธีนอกเหนือจากแบบจำลองฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิม ฐานข้อมูล NoSQL ส่วนใหญ่ใช้เพื่อจัดเก็บข้อมูลในแอปพลิเคชันที่เกี่ยวข้องกับข้อมูลเรียลไทม์และข้อมูลขนาดใหญ่ NoSQL สามารถจัดเก็บข้อมูลในรูปแบบที่หลากหลาย รวมถึงบันทึกคีย์-ค่า เอกสาร คอลัมน์ และกราฟ บทช่วยสอนฐานข้อมูล Python NoSQL ใช้ pymongo ซึ่งเป็นไดรเวอร์การพัฒนา Mongo ที่ได้รับอนุญาตจากบริษัท จำเป็นต้องมีฐานข้อมูล MongoDB ด้วย ใน Python 3 เราใช้เมธอด insert() เพื่อแทรกข้อมูลลงในฐานข้อมูล NoSQL ลิงค์ได้ที่นี่ นี่เป็นหนึ่งในบทความที่ดีที่สุดเกี่ยวกับไลบรารี Python
ฐานข้อมูล Nosql ใดดีที่สุดสำหรับ Python
ฐานข้อมูล NoSQL เป็นฐานข้อมูลที่สร้างขึ้นสำหรับการประมวลผลเอกสาร ในช่วงไม่กี่ปีที่ผ่านมา ได้รับการพิสูจน์แล้วว่าเป็นที่นิยมอย่างมาก และทำงานได้ดีกับ Python ตรงกันข้ามกับ SQL RDBMS แบบดั้งเดิม MongoDB จัดระเบียบและจัดเก็บข้อมูลโดยใช้คอลเล็กชันแทนที่จะเป็นตารางแถว
การใช้ฐานข้อมูล NoSQL ของ Python เช่น MongoDB, Redis และ couchdb เป็นเรื่องปกติมากกว่าการใช้ Java ZODB เป็นฐานข้อมูลที่ใช้ Python เป็นฐาน ข้อมูลอย่างง่าย ที่สามารถใช้ในแอพพลิเคชั่นต่างๆ อ้างอิงถึง RakisRakis ฉันขอแนะนำให้ใช้ฐานข้อมูลเอกสารชั้นวางของไลบรารี python มาตรฐาน
Python ดีสำหรับ Mongodb หรือไม่
ใช่ Python นั้นดีสำหรับ MongoDB เป็นภาษาที่มีประสิทธิภาพซึ่งช่วยให้คุณทำงานกับฐานข้อมูลได้
ฐานข้อมูล MongoDB เป็นฐานข้อมูลเอกสารข้ามแพลตฟอร์มที่เน้นการรวบรวมและการจัดการเอกสาร ควรตั้งค่าหมายเลขพอร์ตเป็น 27017 (บรรทัดสุดท้ายในภาพด้านบน) ไลบรารี Python สำหรับ MongoDB เรียกว่า PyMongo ในการเชื่อมต่อ เปิดใช้ไคลเอ็นต์=. คุณจะต้องใช้ไคลเอนต์คำสั่ง MongoClient (MongoClient) สามารถพบได้โดยพิมพ์ mongodb://localhost:27017/ ใน command prompt วิธีที่ 2 คือการใช้ชื่อไคลเอนต์ของฐานข้อมูลเป็นวิธีที่สอง เมื่อไม่มีการสร้างฐานข้อมูลชื่อนี้ไว้ก่อนหน้านี้ MongoDB จะสร้างฐานข้อมูลสำหรับผู้ใช้
ฐานข้อมูล MongoDB ถูกเก็บไว้ในพจนานุกรม คีย์พิเศษ '_id' จะถูกเพิ่มโดยอัตโนมัติโดยโปรแกรมเมอร์ หากเขาหรือเธอลืมที่จะเพิ่มลงไปอย่างชัดเจน เอกสารเมธอด insert_one() มักใช้ในคอลเล็กชันของเรา เป็นไปได้ที่จะรวมฟังก์ชันการสืบค้นทั้งสองนี้เพื่อดูว่าผลลัพธ์ที่ถูกกรองมากที่สุดคืออะไร
ด้วยเหตุนี้จึงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับนักพัฒนาที่ต้องการสร้างเว็บไซต์อย่างรวดเร็วและง่ายดาย นอกจากนี้ โครงสร้างพื้นฐานการสนับสนุนของ MongoDB นั้นยอดเยี่ยม และมันสามารถถูกบุกรุกโดยอัตโนมัติในกรณีฉุกเฉิน ด้วยเหตุนี้ MongoDB จึงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับธุรกิจที่ต้องการความพร้อมใช้งานและความสามารถในการขยายสเกลขนาดใหญ่
Pymongo: ไดรเวอร์ Mongodb มาตรฐานสำหรับ Python
Python มีไลบรารีไดรเวอร์ MongoDB มาตรฐานที่เรียกว่า PyMongo เป็น API ที่ใช้งานง่ายซึ่งช่วยให้คุณเข้าถึงฐานข้อมูล คอลเลกชัน และเอกสารต่างๆ ออบเจกต์ที่ดึงมาจาก MongoDB สามารถจัดการ ทำซ้ำ และพิมพ์ได้ง่าย เนื่องจากเข้ากันได้กับพจนานุกรมและรายการผ่าน PyMongo MongoDB แบบเอกสารประกอบด้วยสคีมาข้อมูลแบบไดนามิกและฐานข้อมูลแบบเอกสาร เนื่องจากรองรับ JavaScript Object Notation (JSON) จึงเป็นทางเลือกที่เป็นธรรมชาติสำหรับการทำงานกับออบเจกต์ในภาษาโปรแกรมสมัยใหม่ เช่น JavaScript, Python และอื่นๆ ฐานข้อมูล MongoDB สามารถเข้าถึงได้โดยใช้ PyMongo และ MongoEngine พวกเขาแตกต่างกันในหลาย ๆ ด้าน แต่ก็แตกต่างกันในแง่ของวิธีการทำงาน มีไลบรารีหลายแห่งที่สามารถใช้สร้าง MongoDB ซึ่งเป็นที่นิยมมากที่สุดคือ PyMongo วิธีนี้ทำให้ง่ายต่อการใช้เอกสารและแผนที่ MongoDB โดยเชื่อมต่อโดยตรงกับ MongoDB Query Language ที่คุ้นเคย ของ MongoDB เป็นผลให้ไดรเวอร์ MongoEngine เป็นไดรเวอร์ที่ทรงพลังยิ่งขึ้น ต้องขอบคุณการสนับสนุนสคีมาและการจัดทำดัชนี ประเภทของไดรเวอร์ที่ใช้ใน Python เพื่อทำงานกับ MongoDB เป็นเรื่องของการตีความ ขอแนะนำให้คุณติดตั้ง PyMongo ด้วย pip แทนที่จะใช้ Windows โดยทำตามขั้นตอนเหล่านี้ คุณสามารถติดตั้ง PyMongo
Python ฐานข้อมูล Nosql ที่มีน้ำหนักเบา
MongoDB เป็น โปรแกรมฐานข้อมูล เชิงเอกสารข้ามแพลตฟอร์มแบบโอเพ่นซอร์สฟรี MongoDB จัดเป็นโปรแกรมฐานข้อมูล NoSQL ใช้เอกสารคล้าย JSON พร้อมสคีมา MongoDB ได้รับการพัฒนาโดย MongoDB Inc. และเผยแพร่ภายใต้ Server Side Public License (SSPL)
ไลบรารี Python Nosql
มีไลบรารีมากมายสำหรับการทำงานกับฐานข้อมูล NoSQL ใน Python บางส่วนที่ได้รับความนิยมมากที่สุด ได้แก่ PyMongo, HappyBase และ redis-py ห้องสมุดแต่ละแห่งมีจุดแข็งและจุดอ่อนของตัวเอง ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องเลือกห้องสมุดที่เหมาะกับโครงการของคุณ
MongoDB เป็นโซลูชันฐานข้อมูล NoSQL ที่ทั้งเน้นเอกสารและมีความยืดหยุ่นสูง ด้วยระบบคิวรีที่แข็งแกร่ง MongoDB และ Python ทำให้ง่ายต่อการสร้างแอปพลิเคชันฐานข้อมูลที่หลากหลาย ในบทช่วยสอนนี้ คุณจะแสดงให้เห็นถึงความยืดหยุ่นและพลังของ MongoDB โดยการเขียนตัวอย่างบางส่วน MongoDB ซึ่งเป็นฐานข้อมูล NoSQL ที่เน้นเอกสาร เป็นหนึ่งในประเภทฐานข้อมูล NoSQL ที่พบมากที่สุด แทนที่จะใช้ตารางเพื่อจัดระเบียบและจัดเก็บข้อมูล MongoDB จะจัดระเบียบโดยใช้ชุดเอกสาร ช่วยให้คุณเปลี่ยนสคีมาของเอกสารเมื่อเวลาผ่านไป และจัดเก็บข้อมูลในเอกสารแบบไม่มีสคีมาและยืดหยุ่นได้ MongoDB Inc. เขียน C ซึ่งเป็นรากฐานของ MongoDB และใช้กันอย่างแพร่หลายในปัจจุบันบนแพลตฟอร์มหลักทั้งหมด
เว็บไซต์สำหรับ MongoDB มีเซิร์ฟเวอร์ฐานข้อมูลสองเวอร์ชัน กระบวนการติดตั้งลีนุกซ์ดิสทริบิวชั่นของคุณจะเป็นตัวกำหนดวิธีการทำงาน นักเทียบท่ายังเป็นตัวเลือกสำหรับการติดตั้ง MongoDB คุณจะได้เรียนรู้วิธีใช้ mongo shell เพื่อสร้าง อ่าน อัปเดต และลบเอกสารในฐานข้อมูลในส่วนนี้ คำสั่ง mongo เริ่มต้นกระบวนการเชลล์และเชื่อมต่อกับเซิร์ฟเวอร์โลคัลดีฟอลต์ที่จัดเตรียมโดยกระบวนการ mongod เมื่อเซสชันเริ่มต้น Mongo Shell จะเชื่อมต่อกับฐานข้อมูลทดสอบเพื่อเริ่มต้น นอกจากนี้ยังมีตัวเลือกมากมาย รวมถึงการระบุโฮสต์และพอร์ตสำหรับการเข้าถึงฐานข้อมูลระยะไกล
ใน MongoDB คอลเลกชันสามารถอ้างถึงเอกสารใดๆ ในโปรแกรม คอลเลกชัน ตรงข้ามกับตารางใน RDBMS แบบดั้งเดิม ไม่กำหนดสคีมาแบบตายตัว โครงสร้างเอกสารและชุดฟิลด์ในทางทฤษฎี: เอกสารแต่ละชุดในคอลเลกชันอาจมีโครงสร้างและชุดฟิลด์ที่แตกต่างกันโดยสิ้นเชิง ในระหว่างการอัพเดตและการแทรก คุณสามารถใช้กฎการตรวจสอบเพื่อให้แน่ใจว่าโครงสร้างเอกสารเหมือนกัน ใน MongoDB โดยทั่วไปข้อมูลที่ซับซ้อนจะแสดงด้วยอ็อบเจกต์เดียว ซึ่งแสดงโดยโมเดลข้อมูลเชิงเอกสาร เฟรมเวิร์กเช่นนี้ทำให้คุณสามารถทำงานกับออบเจกต์ข้อมูลพร้อมกันได้ แทนที่จะดูหลายรายการ หากต้องการแทรกเอกสารลงในฐานข้อมูลโดยใช้ mongo shell ให้เลือกคอลเล็กชันแล้วเรียก
InsertOne() หากคุณต้องการรวมเอกสารเป็นอาร์กิวเมนต์ในคอลเลกชัน MongoDB มีไดรเวอร์ Python อย่างเป็นทางการชื่อ PyMongo ซึ่งคุณสามารถใช้เพื่อสื่อสารกับเซิร์ฟเวอร์ MongoDB เราจะพูดถึงวิธีการใช้ไดรเวอร์นี้ใน Python ในสองสามส่วนถัดไป เพื่อให้คุณสามารถสร้างแอปพลิเคชันฐานข้อมูลของคุณเองได้ นอกจากนี้ เราจะดู ตัวเลือกฐานข้อมูล MongoDB ต่างๆ ที่คุณสามารถใช้กับแอปพลิเคชัน Python ตัวอย่างต่อไปนี้จะช่วยคุณในการเรียนรู้วิธีใช้ MongoDB และ Python อนุญาตให้คุณระบุการเชื่อมต่อแบบกำหนดเอง เช่น พอร์ตและโฮสต์แบบกำหนดเอง โดยใช้ส่วนขยาย mongo shell เมื่อคุณเชื่อมต่ออินสแตนซ์ของ MongoClient กับเซิร์ฟเวอร์ MongoDB เฉพาะแล้ว คุณจะสามารถเข้าถึงฐานข้อมูลใดก็ได้ที่เซิร์ฟเวอร์ MongoDB กำหนดค่าไว้
นอกเหนือจากการใช้การเข้าถึงแบบพจนานุกรมหากชื่อของฐานข้อมูลไม่ตรงกับตัวระบุ Python ยังสามารถใช้ได้หากชื่อของฐานข้อมูลไม่ตรงกัน หากคุณต้องการรวมเอกสารจำนวนมากในฐานข้อมูลพร้อมกัน คุณสามารถใช้.insert_many() เพื่อทำเช่นนั้น นอกเหนือจากการแทนที่ อัปเดต และลบเอกสารออกจากฐานข้อมูลแล้ว PyMongo ยังมีฟังก์ชันอื่นๆ อาจเป็นสถานการณ์ที่แอปพลิเคชันของคุณใช้ MongoDB ในบางโอกาส หากคุณจำเป็นต้องเชื่อมต่อเมื่อคุณไม่ต้องการการตอบกลับ การเปิดการเชื่อมต่อเมื่อคุณต้องการอาจเป็นประโยชน์ ระบบจัดการฐานข้อมูล เชิงวัตถุ MongoEngine (ODM) คล้ายกับ SQL ในแง่ของการแมปวัตถุ วิธีเดียวที่จะสร้างโมเดลคือสร้างคลาสด้วย MongoDB
ในการสร้างเอกสารด้วย MongoEngine คุณต้องกำหนดข้อมูลที่คุณต้องการให้มีข้อมูลก่อน บทช่วยสอนนี้จะแนะนำวิธีการใช้คุณสมบัติเชิงวัตถุของ Python ในฐานข้อมูล MongoDB บทช่วยสอนเป็นคลาสที่สอดคล้องกับคอลเลกชันใน MongoEngine ต้องระบุแอตทริบิวต์ของคลาสสำหรับแต่ละฟิลด์ที่จำเป็นเพื่อสร้างแบบจำลอง นอกจากนี้ยังเป็นไปได้ที่จะมีชุดของพารามิเตอร์สำหรับฟิลด์แต่ละประเภท เมื่อคุณเรียกใช้ PyMongo จะทำการตรวจสอบข้อมูล ฟังก์ชัน save() ใช้เพื่อบันทึกวัตถุเอกสาร
ด้วยการตรวจสอบข้อมูลอัตโนมัติ คุณจะไม่ต้องจัดการกับปัญหาใดๆ อีกต่อไป คลาสย่อยของเอกสารแต่ละรายการมีแอตทริบิวต์ a.objects ซึ่งอนุญาตให้คุณเรียกดูเอกสารในคอลเลกชันที่เกี่ยวข้อง คุณยังสามารถใช้ MongoDB เพื่อปรับให้เข้ากับความต้องการที่เปลี่ยนแปลงอย่างรวดเร็วได้ เนื่องจากมีโมเดลข้อมูลที่ปรับเปลี่ยนได้สูงและมนุษย์อ่านได้
Sqlite เทียบกับ ปิมอนโก
อย่างไรก็ตาม SQLite เป็นตัวเลือกที่ดีสำหรับการเชื่อมต่อกับฐานข้อมูลเดียว ในขณะที่ไลบรารีที่มีประสิทธิภาพมากกว่าจะเป็นตัวเลือกที่ดีกว่าสำหรับการเชื่อมต่อกับฐานข้อมูลหลายฐานข้อมูล ตัวอย่างเช่น ไลบรารีของ PyMongo มีอินเทอร์เฟซที่ครอบคลุมมากขึ้นสำหรับการทำงานกับฐานข้อมูล MongoDB
ตัวอย่าง Mongob Python
ตัวอย่าง MongoDB Python ในตัวอย่าง MongoDB Python นี้ เราจะสร้างโปรแกรมเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MongoDB และดำเนินการพื้นฐานบางอย่าง เช่น แทรก อัปเดต ลบ และค้นหา ก่อนเริ่มตัวอย่าง MongoDB Python นี้ ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง MongoDB ไว้ในระบบของคุณแล้ว ถ้าไม่ โปรดติดตั้งจากที่นี่ เราจะใช้ไลบรารี PyMongo เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MongoDB จากโปรแกรม Python ของเรา ดังนั้น ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารี่นี้แล้ว เมื่อคุณเตรียมทุกอย่างพร้อมแล้ว เรามาเริ่มด้วยตัวอย่าง MongoDB Python นี้กันเลย
ไม่ใช่ฐานข้อมูล Python
เนื่องจากปรับขนาดได้ดีและมีวิธีง่ายๆ ในการอ่านและเขียน JSON จึงมักใช้ MongoDB เป็นที่เก็บข้อมูลสำหรับเว็บแอปพลิเคชัน แม้ว่าจะสามารถใช้เก็บข้อมูลในแอปพลิเคชัน Python ได้ แต่ก็ไม่ใช่ ฐานข้อมูล Python ดูข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบฐานข้อมูลของ MongoDB ได้ในเอกสารที่ http://docs.mongodb.org/en/latest/reference/database-design/