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

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

2
ฉันจะสลายตารางนี้โดยไม่สูญเปล่าได้หรือไม่?
ฉันสะดุดกับปัญหาการออกแบบฐานข้อมูลที่ไม่ได้อยู่ในลีกของฉันและกูรู DBA ของฉันที่ไปใช้ยังอยู่ในช่วงซ้อมหนีไฟ ในสาระสำคัญฉันมีตารางที่มีคีย์หลักต่อไปนี้ (PK สำหรับความกะทัดรัด): child_id integer parent_id integer date datetime child_idและparent_idเป็นกุญแจต่างประเทศในตารางกิจการ ตาราง "child" นั้นมี foreign key ไปยังตาราง "parent" และแท้จริงแล้วแต่ละตัวchild_idจะอ้างอิงเหมือนกันparent_idตามที่คาดไว้โดยตารางข้างต้น ในความเป็นจริงปรากฎว่ามีโค้ดพิเศษบางอย่างที่ทำให้ทั้งสองซิงค์กันอยู่ ซึ่งทำให้สามเณรการปรับสภาพ overenthusiastic นี้พูดว่า "ฉันควรลบความซ้ำซ้อนแทน!" ฉันย่อยสลายต่อไปนี้: Table_1 PK: child_id integer date datetime Table_2 PK: parent_id integer date datetime Table_3: (already exists) child_id integer PRIMARY KEY parent_id integer FOREIGN KEY …

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

4
ฟอร์มปกติแรก: คำจำกัดความที่ชัดเจน
ฉันกำลังพยายามรับรุ่นที่ชัดเจนของแบบฟอร์มปกติที่หนึ่งคืออะไร ทุกสิ่งที่ฉันอ่านมีการหมุนที่แตกต่างกันเล็กน้อย เจ้าหน้าที่หลายคนเช่นวันที่บอกว่าตามคำจำกัดความความสัมพันธ์อยู่ในรูปแบบปกติครั้งแรกในขณะที่คนอื่น ๆ ให้รายการข้อกำหนด ซึ่งหมายความว่ามีตั้งแต่ศูนย์ถึงข้อกำหนดจำนวนมากสำหรับ 1NF ฉันคิดว่าความแตกต่างคือระหว่างตารางและความสัมพันธ์: ตารางสามารถเป็นระเบียบสมบูรณ์ในขณะที่ความสัมพันธ์ตามข้อ จำกัด บางอย่าง ข้อเท็จจริงที่ว่าความสัมพันธ์นั้นแสดงเป็นตารางใน SQL จึงสร้างความสับสนบางอย่าง ฉันมุ่งเน้นไปที่ 1NF โดยเฉพาะเนื่องจากเกี่ยวข้องกับฐานข้อมูล SQL คำถามคือ: คุณสมบัติใดที่จำเป็นเพื่อให้แน่ใจว่าตารางที่อยู่ในรูปแบบปกติครั้งแรก? เจ้าหน้าที่หลายคนแนะนำว่าหากตารางแสดงถึงความสัมพันธ์แสดงว่าเป็น 1NF แล้ว สิ่งนี้จะผลักดันความหมายของ 1NF กลับไปที่ความหมายของความสัมพันธ์ นี่คือคุณสมบัติบางส่วนของตารางใน 1NF: ลำดับคอลัมน์ไม่มีความสำคัญ [1] ลำดับแถวไม่มีนัยสำคัญ แถวทั้งหมดมีความยาวเท่ากัน (เช่นข้อมูลแถวตรงกับส่วนหัวของคอลัมน์) ไม่มีแถวที่ซ้ำกัน (สามารถรับประกันได้โดยใช้คีย์หลักของตัวแทนตัวแทน แต่ไม่จำเป็นต้องใช้ PK เอง) ไม่มีคอลัมน์ซ้ำกัน แต่ละคอลัมน์มีค่าเดียว (อะตอมมิก) [1] แอททริบิวต์ทางเทคนิคไม่ได้เรียงลำดับ แต่ในตารางข้อมูลแถวจะต้องอยู่ในลำดับเดียวกับส่วนหัวของคอลัมน์ อย่างไรก็ตามคำสั่งซื้อที่แท้จริงนั้นไม่มีนัยสำคัญ ในหลายข้อมูล : แนวคิดของข้อมูลอะตอมคือไอเท็มไม่สามารถแยกย่อยได้อีก แนวคิดนี้ได้รับการมีคุณสมบัติในการว่าถึงแม้ในทางเทคนิคทุกอย่างได้ถูกทำลายลงnauseum โฆษณาข้อมูลในคำถามที่ไม่สามารถจริงเสียลงเพิ่มเติมใด …

1
การออกแบบโครงสร้างฐานข้อมูลมิตรภาพ: ฉันควรใช้คอลัมน์ที่มีหลายค่าหรือไม่
ว่าฉันมีตารางที่เรียกว่าUser_FriendListซึ่งมีลักษณะดังต่อไปนี้: CREATE TABLE User_FriendList ( ID ..., User_ID..., FriendList_IDs..., CONSTRAINT User_Friendlist_PK PRIMARY KEY (ID) ); และให้เราสมมติว่าตารางดังกล่าวถือข้อมูลต่อไปนี้: + ---- + --------- + --------------------------- + | ID | User_ID | Friendlist_ID | + ---- + --------- + --------------------------- + | 1 | 102 | 2: 15: 66: 35: 26: 17: | + …

3
Yelp คำนวณระยะทางในฐานข้อมูลได้อย่างมีประสิทธิภาพได้อย่างไร
ตัวอย่างเช่นฉันมีตาราง: Business(BusinessID, Lattitude, Longitude) ทั้งหมดได้รับการจัดทำดัชนีแน่นอน นอกจากนี้ยังมี 1 ล้านบันทึก สมมติว่าฉันต้องการค้นหาธุรกิจที่ใกล้เคียงกับ 106,5 ตัวอย่างเช่นฉันจะทำอย่างไร ถ้าฉันทำ SELECT * FROM Business WHERE (Some formula to compute distance here) < 2000 ตัวอย่างเช่นหรือถ้าฉันทำ SELECT * FROM Business TOP 20 ในทางทฤษฎีคอมพิวเตอร์จะต้องคำนวณระยะทางสำหรับเจ้าหน้าที่ทุกคนในขณะที่ในทางปฏิบัติเฉพาะผู้ที่มี lattitude และลองจิจูดในช่วงที่ควรจะคำนวณ ดังนั้นฉันจะทำสิ่งที่ฉันต้องการใน PhP หรือ SQL ได้อย่างไร ฉันรู้สึกซาบซึ้งกับคำตอบที่ได้รับ ฉันกำลังใช้ mysql และพวกเขาไม่มีอะไรมีประสิทธิภาพมากกว่าโซลูชันที่ชัดเจน MySQL อวกาศไม่มีฟังก์ชันคำนวณระยะทางเช่นกัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.