Timeline for Is there a tool to check if my database is normalized to the third normal form?
Current License: CC BY-SA 3.0
13 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Mar 22, 2018 at 13:04 | history | edited | Michael - sqlbot | CC BY-SA 3.0 | improve(?) clarify (?) the example of student/subject/instructor |
| Jun 17, 2015 at 20:36 | comment | added | Michael - sqlbot | @Drewverlee it seems, at first, like you're correct, based on the phrasing I chose, here. It's been so long ago that I don't recall precisely what I intended. My intention was to craft an unrealistic scenario where the table -- which I suggest is not in 3NF with realistic data -- would have been clearly in at least 3NF as it was. If student were the primary key, though, the answer still seems to be correct as it is, with instructor and subject being dependent only on student and not each other. I would, of course, welcome any edits that improve the quality or clarity of this answer. | |
| S Jun 17, 2015 at 19:51 | history | edited | RolandoMySQLDBA | CC BY-SA 3.0 | Re-worded a sentence |
| S Jun 17, 2015 at 19:51 | history | suggested | codaamok | CC BY-SA 3.0 | Re-worded a sentence |
| Jun 17, 2015 at 19:11 | review | Suggested edits | |||
| S Jun 17, 2015 at 19:51 | |||||
| Apr 9, 2014 at 22:06 | comment | added | Drew Verlee | Could someone explain why "In a world where a student could only take a course in one subject and all instructors taught all subjects, this table could indeed be said to be in 3NF" That seems to establish that Students -> subject and nothing more. Sense the key for this table would then be (students, instructor) wouldn't that break 3NF? What does every teacher teaching every subject help us with? | |
| Jan 20, 2014 at 11:52 | vote | accept | ack__ | ||
| Sep 27, 2012 at 10:12 | comment | added | Chris Travers | I think the bigger issue is that determining multi-column functional dependencies is problematic esp. if values may be the same and yet represent different entities (i.e. where composite keys are involved). Consider a table: (address_text, city, state_province, mail_code, country). Now this is not normalized. (city, state_province) -> (country). So to fully normalize we have to break this off into at least three tables, maybe four (mail_code handling!) but the composite keys make this problematic to detect on the fly. Also comp. keys are key to the idea of nf's so no ignoring them! | |
| Sep 24, 2012 at 2:37 | comment | added | miracle173 | @ack__: to be in 3rd normal form or not is a property of a relation not of a pair or a set of relation. So I can't see that establishing a foreign key relation has anything to do with 3rd normal form. | |
| Sep 23, 2012 at 23:54 | comment | added | Michael - sqlbot | True, but the key word is still "suggest." A tool could suggest structural changes by looking for apparent redundancy, but I would still maintain that genuine redundancy and a coincidental appearance of correlation would be difficult for such a tool to differentiate between. Knowledge of the real-world nature of the data is required. | |
| Sep 23, 2012 at 20:35 | comment | added | ack__ | Thanks for this detailed answer. However, following your example, it should be possible for a tool that analyze sample data to detect that "instructor" values are repeated a lot, and also appears in another table, hence suggesting it might be candidate for foreign key or any other change that would make this table 3nf compliant, or am I missing something ? | |
| Sep 23, 2012 at 3:06 | history | edited | Michael - sqlbot | CC BY-SA 3.0 | typo fix |
| Sep 23, 2012 at 2:47 | history | answered | Michael - sqlbot | CC BY-SA 3.0 |