คำถามติดแท็ก relational-database

ฐานข้อมูลเชิงสัมพันธ์คือฐานข้อมูลที่ประกอบด้วยตัวแปรสัมพันธ์ (ซึ่งเรียกอีกอย่างว่า * relvars *, * R-tables * หรือ just * tables *) คำนิยามการจัดการและกฎความสมบูรณ์ของฐานข้อมูลเชิงสัมพันธ์จะขึ้นอยู่กับการดำเนินการเชิงสัมพันธ์ที่เทียบเท่าหรือคล้ายกับพีชคณิตเชิงสัมพันธ์และแคลคูลัส หลักการฐานข้อมูลเชิงสัมพันธ์เป็นพื้นฐานของทฤษฎีและแนวปฏิบัติการจัดการข้อมูลที่สำคัญ

7
ตัวเลือกสำหรับการจัดเก็บข้อมูลแบบลำดับชั้นในฐานข้อมูลเชิงสัมพันธ์คืออะไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน10 เดือนที่ผ่านมา ภาพรวมที่ดี โดยทั่วไปคุณกำลังตัดสินใจระหว่างเวลาอ่านเร็ว (ตัวอย่างเช่นชุดซ้อน) หรือเวลาเขียนเร็ว (รายการ adjacency) โดยปกติแล้วคุณจะพบกับตัวเลือกด้านล่างที่ตรงกับความต้องการของคุณมากที่สุด ต่อไปนี้จะให้การอ่านเชิงลึกบางอย่าง: หนึ่งช่วงเวลาซ้อนกับการเปรียบเทียบรายการ Adjacency : การเปรียบเทียบรายการ Adjacency ที่ดีที่สุด , เส้นทาง Materialized, ชุดซ้อนและช่วงซ้อนที่ฉันพบ แบบจำลองสำหรับข้อมูลลำดับชั้น : สไลด์พร้อมคำอธิบายที่ดีของการแลกเปลี่ยนและการใช้ตัวอย่าง แสดงลำดับชั้นใน MySQL : ภาพรวมที่ดีมากของชุดซ้อนโดยเฉพาะ ข้อมูลลำดับชั้นใน RDBMSs : ชุดลิงก์ที่ครอบคลุมและมีการจัดการที่ดีที่สุดที่ฉันเคยเห็น แต่ไม่ได้อธิบายมากนัก ตัวเลือก คนที่ฉันรู้จักและคุณสมบัติทั่วไป: รายการคำคุณศัพท์ : คอลัมน์: ID, ParentID ใช้งานง่าย โหนดถูกย้ายแทรกและลบ มีราคาแพงในการค้นหาระดับบรรพบุรุษและลูกหลานเส้นทาง หลีกเลี่ยง N + …

7
ฐานข้อมูลเข้าร่วมเมื่อใดและเพราะเหตุใด
ฉันกำลังทำการวิจัยในฐานข้อมูลและฉันกำลังดูข้อ จำกัด บางประการของฐานข้อมูลเชิงสัมพันธ์ ฉันได้รับการรวมโต๊ะขนาดใหญ่นั้นแพงมาก แต่ฉันไม่แน่ใจว่าทำไม DBMS ต้องทำอะไรเพื่อดำเนินการเข้าร่วมคอขวดอยู่ที่ไหน การปรับสภาพให้เป็นกลางสามารถช่วยเอาชนะค่าใช้จ่ายนี้ได้อย่างไร เทคนิคการปรับให้เหมาะสมอื่น ๆ (ตัวอย่างเช่นการจัดทำดัชนี) ช่วยได้อย่างไร? ยินดีต้อนรับประสบการณ์ส่วนตัว! หากคุณกำลังจะโพสต์ลิงก์ไปยังแหล่งข้อมูลโปรดหลีกเลี่ยง Wikipedia ฉันรู้ว่าจะหามันเจอแล้ว ในความสัมพันธ์กับเรื่องนี้ฉันสงสัยเกี่ยวกับวิธีการที่ผิดปกติที่ใช้โดยฐานข้อมูลบริการคลาวด์เช่น BigTable และ SimpleDB ดูคำถามนี้


2
Laravel - เก่ง“ มี”,“ พร้อม”,“ ที่ไหนมี” - พวกเขาหมายถึงอะไร?
ฉันได้พบแนวคิดและความหมายเบื้องหลังวิธีการเหล่านี้ทำให้เกิดความสับสนเล็กน้อยเป็นไปได้หรือไม่ที่บางคนจะอธิบายให้ฉันฟังว่าความแตกต่างระหว่างhasและwithเป็นอย่างไรในบริบทของตัวอย่าง (ถ้าเป็นไปได้)

4
ลำดับการเข้าร่วมมีความสำคัญใน SQL หรือไม่
หากไม่คำนึงถึงประสิทธิภาพฉันจะได้รับผลลัพธ์เดียวกันจากข้อความค้นหา A และ B ด้านล่างหรือไม่ แล้ว C และ D ล่ะ? -- A select * from a left join b on <blahblah> left join c on <blahblan> -- B select * from a left join c on <blahblah> left join b on <blahblan> -- C select * from a join b …

10
การจัดเก็บข้อมูลอนุกรมเวลาสัมพันธ์หรือไม่?
ฉันกำลังสร้างระบบที่โพลอุปกรณ์สำหรับข้อมูลเกี่ยวกับตัวชี้วัดที่แตกต่างกันเช่นการใช้งาน CPU, การใช้ดิสก์, อุณหภูมิ ฯลฯ ที่ (อาจ) 5 นาทีโดยใช้ SNMP เป้าหมายสูงสุดคือการแสดงภาพให้กับผู้ใช้ระบบในรูปแบบของกราฟอนุกรมเวลา ฉันเคยดูการใช้ RRDTool ในอดีต แต่ปฏิเสธว่าเป็นการเก็บข้อมูลที่ถูกบันทึกไว้โดยไม่มีกำหนดซึ่งมีความสำคัญต่อโครงการของฉันและฉันต้องการระดับที่สูงขึ้นและการเข้าถึงข้อมูลที่บันทึกได้อย่างยืดหยุ่นมากขึ้น ดังนั้นคำถามของฉันคือ: สิ่งที่ดีกว่าคือฐานข้อมูลเชิงสัมพันธ์ (เช่น MySQL หรือ PostgreSQL) หรือฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์หรือฐานข้อมูล NoSQL (เช่น MongoDB หรือ Redis) เกี่ยวกับประสิทธิภาพเมื่อทำการสอบถามข้อมูลเพื่อสร้างกราฟ สัมพันธ์ ให้ฐานข้อมูลเชิงสัมพันธ์ฉันจะใช้data_instancesตารางซึ่งจะถูกเก็บไว้ทุกตัวอย่างของข้อมูลที่ถูกจับสำหรับทุกการวัดที่ถูกวัดสำหรับอุปกรณ์ทั้งหมดโดยมีฟิลด์ต่อไปนี้: ทุ่ง: id fk_to_device fk_to_metric metric_value timestamp เมื่อฉันต้องการวาดกราฟสำหรับตัวชี้วัดที่เฉพาะเจาะจงในอุปกรณ์ใดตัวหนึ่งฉันต้องสอบถามตารางเอกพจน์นี้เพื่อกรองอุปกรณ์อื่น ๆ และตัวชี้วัดอื่น ๆ ที่วิเคราะห์สำหรับอุปกรณ์นี้: SELECT metric_value, timestamp FROM data_instances WHERE fk_to_device=1 AND fk_to_metric=2 …


6
ความแตกต่างระหว่าง 3NF และ BCNF ในแง่ง่าย (ต้องสามารถอธิบายได้ถึง 8 ปี)
ฉันได้อ่านคำพูด: ข้อมูลขึ้นอยู่กับกุญแจ [1NF] คีย์ทั้งหมด [2NF] และไม่มีอะไร แต่ที่สำคัญ [3NF] อย่างไรก็ตามฉันมีปัญหาในการทำความเข้าใจ 3.5NF หรือ BCNF ตามที่เรียกว่า นี่คือสิ่งที่ฉันเข้าใจ: BCNF เข้มงวดกว่า 3NF ด้านซ้ายของ FD ใด ๆ ในตารางจะต้องเป็นปุ่ม Superkey (หรืออย่างน้อยหนึ่งปุ่มตัวเลือก) แล้วเหตุใดตาราง 3NF บางตัวจึงไม่อยู่ใน BCNF ฉันหมายถึงคำพูด 3NF พูดอย่างชัดเจนว่า "ไม่มีอะไรนอกจากกุญแจ" หมายความว่าแอตทริบิวต์ทั้งหมดขึ้นอยู่กับคีย์หลักเท่านั้น คีย์หลักคือคีย์ตัวเลือกจนกว่าจะได้รับเลือกให้เป็นคีย์หลักของเรา หากมีอะไรผิดปกติเกี่ยวกับความเข้าใจของฉันโปรดแก้ไขฉันและขอบคุณสำหรับความช่วยเหลือที่คุณสามารถให้ได้

5
หลักการตั้งชื่อตารางเชิงสัมพันธ์
ฉันเริ่มโครงการใหม่และต้องการรับชื่อตารางและคอลัมน์ของฉันตั้งแต่เริ่มต้น ตัวอย่างเช่นฉันเคยใช้พหูพจน์ในชื่อตารางเสมอ ดังนั้นถ้าฉันได้รับตาราง "ผู้ใช้" แล้วฉันได้รับผลิตภัณฑ์ที่มีผู้ใช้เท่านั้นที่จะมีตารางควรมีชื่อ "user_product" หรือเพียงแค่ "ผลิตภัณฑ์"? นี่คือความสัมพันธ์แบบหนึ่งต่อหลาย และถ้าหากฉันมีคำอธิบายผลิตภัณฑ์หลายอย่างสำหรับแต่ละผลิตภัณฑ์มันจะเป็น "user_product_description" หรือ "product_description" หรือเพียงแค่ "คำอธิบาย" หรือไม่ แน่นอนว่ามีการตั้งค่าคีย์ต่างประเทศที่เหมาะสม .. การตั้งชื่อเฉพาะคำอธิบายจะเป็นปัญหาเนื่องจากฉันอาจมีรายละเอียดผู้ใช้หรือรายละเอียดบัญชีหรืออะไรก็ตาม .. ถ้าฉันต้องการตารางสัมพันธ์ที่บริสุทธิ์ (มากไปหามาก) ที่มีเพียงสองคอลัมน์สิ่งนี้จะมีลักษณะอย่างไร "user_stuff" หรืออาจจะเป็น "rel_user_stuff" และถ้าเป็นอันแรกสิ่งที่จะแยกความแตกต่างนี้จากตัวอย่างเช่น "user_product"? ความช่วยเหลือใด ๆ ที่ได้รับการชื่นชมอย่างมากและหากมีมาตรฐานของการตั้งชื่อตามที่คุณแนะนำให้ใช้ ขอบคุณ

12
ใช้ตารางการกำหนดค่าแถวเดียวในฐานข้อมูล SQL Server ความคิดที่ไม่ดี?
ในการพัฒนาแอปพลิเคชั่นตะกร้าสินค้าฉันพบว่าฉันต้องการบันทึกการตั้งค่าและการกำหนดค่าตามความต้องการและความต้องการของผู้ดูแลระบบ ข้อมูลนี้สามารถเป็นอะไรก็ได้จากข้อมูล บริษัท รหัสบัญชีการจัดส่งคีย์ PayPal API การตั้งค่าการแจ้งเตือน ฯลฯ ดูเหมือนว่าไม่เหมาะสมอย่างยิ่งที่จะสร้างตารางเพื่อจัดเก็บแถวเดียวในระบบฐานข้อมูลเชิงสัมพันธ์ วิธีที่เหมาะสมในการจัดเก็บข้อมูลนี้คืออะไร? หมายเหตุ: DBMS ของฉันคือ SQL Server 2008 และมีการใช้งานเลเยอร์การเขียนโปรแกรมด้วย ASP.NET (ใน C #)

9
ใช้กรณีสำหรับ NoSQL [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ NoSQL ได้รับความสนใจอย่างมากในอุตสาหกรรมของเราเมื่อเร็ว ๆ นี้ ฉันสนใจสิ่งที่ผู้คนคิดว่าดีที่สุดในการใช้งานเคสสำหรับการใช้งานมากกว่าการจัดเก็บฐานข้อมูลเชิงสัมพันธ์ สิ่งที่ควรทริกเกอร์นักพัฒนาให้คิดว่าชุดข้อมูลเฉพาะเหมาะสมกว่าโซลูชัน NoSQL ฉันสนใจเป็นพิเศษกับMongoDBและCouchDBเนื่องจากพวกเขาดูเหมือนจะครอบคลุมมากที่สุดเกี่ยวกับการพัฒนา PHP และนั่นคือสิ่งที่ฉันให้ความสำคัญ

4
วิธีการออกแบบตารางผลิตภัณฑ์สำหรับผลิตภัณฑ์หลายชนิดที่แต่ละผลิตภัณฑ์มีพารามิเตอร์มากมาย
ฉันไม่มีประสบการณ์ในการออกแบบโต๊ะมากนัก เป้าหมายของฉันคือการสร้างตารางผลิตภัณฑ์อย่างน้อยหนึ่งรายการที่ตรงตามข้อกำหนดด้านล่าง: สนับสนุนผลิตภัณฑ์หลายชนิด (TV, Phone, PC, ... ) ผลิตภัณฑ์แต่ละชนิดมีชุดพารามิเตอร์ที่แตกต่างกันเช่น: โทรศัพท์จะมีสี, ขนาด, น้ำหนัก, OS ... พีซีจะมี CPU, HDD, RAM ... ชุดของพารามิเตอร์ต้องเป็นแบบไดนามิก คุณสามารถเพิ่มหรือแก้ไขพารามิเตอร์ใด ๆ ที่คุณต้องการ ฉันจะปฏิบัติตามข้อกำหนดเหล่านี้ได้อย่างไรโดยไม่มีตารางแยกสำหรับผลิตภัณฑ์แต่ละประเภท

5
Foreign Key ไปยังหลาย ๆ ตาราง
ฉันมี 3 ตารางที่เกี่ยวข้องในฐานข้อมูลของฉัน CREATE TABLE dbo.Group ( ID int NOT NULL, Name varchar(50) NOT NULL ) CREATE TABLE dbo.User ( ID int NOT NULL, Name varchar(50) NOT NULL ) CREATE TABLE dbo.Ticket ( ID int NOT NULL, Owner int NOT NULL, Subject varchar(50) NULL ) ผู้ใช้อยู่ในหลายกลุ่ม สิ่งนี้ทำได้ผ่านความสัมพันธ์แบบกลุ่มต่อกลุ่มมาก แต่ไม่เกี่ยวข้องในกรณีนี้ ตั๋วสามารถเป็นเจ้าของได้ทั้งกลุ่มหรือผู้ใช้ผ่านช่อง dbo.Ticket.Owner …

1
postgresql ไวยากรณ์คีย์ต่างประเทศ
ฉันมี 2 ตารางดังที่คุณจะเห็นในรหัส posgresql ด้านล่าง นักเรียนในตารางแรกมี 2 คอลัมน์คอลัมน์หนึ่งสำหรับ student_name และ student_id อื่น ๆ ซึ่งเป็นคีย์หลัก ในตารางที่สองของฉันเรียกว่าการทดสอบมี 4 คอลัมน์คอลัมน์หนึ่งสำหรับ subject_id หนึ่งคอลัมน์สำหรับชื่อเรื่องและอีกคอลัมน์สำหรับนักเรียนที่มีคะแนนสูงสุดในวิชาที่สูงที่สุดนักเรียน_id ฉันกำลังพยายามทำให้ maximumStudent_id อ้างถึง student_id ในตารางนักเรียนของฉัน นี่คือรหัสที่ฉันมีด้านล่างฉันไม่แน่ใจว่าไวยากรณ์ถูกต้องหรือไม่: CREATE TABLE students ( student_id SERIAL PRIMARY KEY, player_name TEXT); CREATE TABLE tests ( subject_id SERIAL, subject_name, highestStudent_id SERIAL REFERENCES students); ไวยากรณ์highestStudent_id SERIAL REFERENCES studentsถูกต้องหรือไม่ …

10
ความแตกต่างระหว่างความสัมพันธ์แบบหนึ่งต่อกลุ่มและแบบกลุ่มต่อหนึ่ง
อะไรคือความแตกต่างที่แท้จริงระหว่างความสัมพันธ์แบบหนึ่งต่อกลุ่มและหลายต่อหนึ่ง มันกลับกันเท่านั้นชนิดของ? ฉันไม่พบบทช่วยสอนที่ 'ดีและเข้าใจง่าย' เกี่ยวกับหัวข้อนี้นอกเหนือจากหัวข้อนี้: SQL for Beginners: ตอนที่ 3 - ความสัมพันธ์ของฐานข้อมูล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.