మూడవ సాధారణ రూపం (3NF) అనేది డేటాబేస్ సూత్రం, ఇది మొదటి సాధారణ ఫారం (1NF) మరియు రెండవ సాధారణ ఫారమ్ (2NF) అందించిన డేటాబేస్ సాధారణీకరణ సూత్రాలపై నిర్మించడం ద్వారా డేటా యొక్క సమగ్రతకు మద్దతు ఇస్తుంది.
మూడవ సాధారణ ఫారం అవసరాలు
డేటాబేస్ మూడవ సాధారణ రూపంలో ఉండటానికి రెండు ప్రాథమిక అవసరాలు ఉన్నాయి:
- డేటాబేస్ ఇప్పటికే 1NF మరియు 2NF రెండింటి అవసరాలు తీర్చాలి .
- అన్ని డేటాబేస్ కాలమ్లు ప్రాథమిక కీపై ఆధారపడి ఉండాలి, అనగా ఏ కాలమ్ యొక్క విలువను ప్రాథమిక కీ నుంచి మాత్రమే పొందవచ్చు.
ప్రాథమిక కీ ఆధారపడటం గురించి
అన్ని స్తంభాలు ప్రాధమిక కీపై ఆధారపడాల్సిన వాస్తవం ఏమిటో మనం మరింత తెలుసుకోవడానికి చూద్దాము.
ఒక కాలమ్ యొక్క విలువను ప్రాథమిక కీ మరియు పట్టికలోని మరొక కాలమ్ నుండి పొందవచ్చు, ఇది 3NF ను ఉల్లంఘిస్తుంది. ఉద్యోగుల పట్టికను ఈ నిలువులతో పరిగణించండి:
- ఉద్యోగ గుర్తింపు
- మొదటి పేరు
- చివరి పేరు
LastName మరియు FirstName రెండూ EmployeeID యొక్క విలువపై మాత్రమే ఆధారపడి ఉంటాయి? WellName మొదటిపేరుపై ఆధారపడి ఉంటుంది? లేదు, ఎందుకంటే LastName లో స్వాభావికమైనది ఏమనగా మొదటి పేరు యొక్క విలువను సూచిస్తుంది. FirstName ను LastName పై ఆధారపడిందా? మళ్ళీ కాదు, అదే నిజం ఎందుకంటే: ఏమైనా చివరిపేరు కావచ్చు, అది మొదటి పేరు యొక్క విలువకు సూచనను అందించలేదు. అందువలన, ఈ పట్టిక 3NF కంప్లైంట్.
కానీ ఈ వాహనాల పట్టికను పరిగణించండి:
- VehicleID
- తయారీదారు
- మోడల్
తయారీదారు మరియు మోడల్ వాహన ఐడి నుండి ఉద్భవించగలదు - కానీ మోడల్ కూడా తయారీదారు నుండి ఉత్పన్నమవుతుంది, ఎందుకంటే ఒక వాహన నమూనా ఒక నిర్దిష్ట తయారీదారుచే చేయబడుతుంది. ఈ పట్టిక రూపకల్పన 3NF కంప్లైంట్ కానిది, అందువల్ల, డేటా క్రమరాహిత్యాలు ఏర్పడతాయి. ఉదాహరణకు, మోడల్ను నవీకరించకుండా, దోషాలను పరిచయం చేయకుండా మీరు తయారీదారుని నవీకరించవచ్చు.
ఇది కంప్లైంట్ చేయడానికి, మేము మరొక పట్టికకు అదనపు ఆధారపడి కాలమ్ తరలించడానికి మరియు ఒక విదేశీ కీ ఉపయోగించి అది సూచన అవసరం. ఈ రెండు పట్టికలు ఫలితంగా:
వాహనాలు టేబుల్
క్రింద పట్టికలో, మోడల్స్ మోడల్స్ పట్టికకు ఒక విదేశీ కీ.
- VehicleID
- తయారీదారు
- ModelID
మోడల్స్ టేబుల్
తయారీదారులకు ఈ కొత్త పట్టిక పటాలు నమూనాలు. మీరు మోడల్కు ప్రత్యేకమైన ఏ వాహన సమాచారాన్ని అప్డేట్ చేయాలనుకుంటే, మీరు ఈ పట్టికలో కాకుండా, వాహనాల పట్టికలో కాకుండా దీన్ని చేస్తారు.
- ModelID
- తయారీదారు
- మోడల్
3NF నమూనాలో ఉత్పన్నమైన ఫీల్డ్స్
టేబుల్లో ఇతర నిలువుల ఆధారంగా లెక్కించబడిన ఒక పట్టిక - ఒక ఉత్పాదక క్షేత్రాన్ని కలిగి ఉండవచ్చు. ఉదాహరణకు, ఈ విడ్జెట్ ఆదేశాల పట్టికను పరిగణించండి:
- ఆర్డర్ సంఖ్య
- వినియోగదారుని సంఖ్య
- యూనిట్ ధర
- మొత్తము
- మొత్తం
మొత్తము ప్రాధమిక కీ మీద పూర్తిగా ఆధారపడి ఉండటమే కాకుండా, యూనిట్ ధరను పరిమాణం ద్వారా గుణించటం వలన ఇది 3NF సమ్మతిని విచ్ఛిన్నం చేస్తుంది. మేము మూడో సాధారణ రూపాన్ని అనుసరించడానికి పట్టిక నుండి తీసివేయాలి.
వాస్తవానికి, ఇది ఉత్పన్నం అయినందున, ఇది డేటాబేస్లో అన్నింటిలోనూ నిల్వ చేయబడటం ఉత్తమం.
డేటాబేస్ ప్రశ్నలను జరుపుతున్నప్పుడు మనము దానిని "ఫ్లై న" ను గణించవచ్చు. ఉదాహరణకు, మేము క్రమంలో సంఖ్యలు మరియు మొత్తాలు తిరిగి పొందడానికి ఈ ప్రశ్నను ఉపయోగించాము:
ఆర్డర్ నెంబర్ ఎంపిక, మొత్తం విడ్జెట్ఆర్డర్స్ నుండిఇప్పుడు మనము ఈ క్రింది ప్రశ్నను ఉపయోగించవచ్చు:
SELECT OrderNumber, UnitPrice * మొత్తం విడ్జెట్ల నుండి మొత్తంగా మొత్తంసాధారణ నియమాలను ఉల్లంఘించకుండా ఒకే ఫలితాలను సాధించడానికి.