ఒక డేటాబేస్లో ఒక సక్రియాత్మక డిపెండెన్సీ అనేది ఫంక్షనల్ డిపెండెన్సీని కలిగించే అదే పట్టికలో విలువలు మధ్య పరస్పర సంబంధం. మూడో సాధారణ రూపం (3NF) యొక్క సాధారణ ప్రామాణీకరణ సాధించడానికి, మీరు ఏవైనా సంతులిత డిపెండెన్సీని తొలగించాలి.
దాని స్వభావం ద్వారా, ఒక సంతులిత డిపెండెన్సీకి మూడు లేదా అంతకంటే ఎక్కువ లక్షణాలను (లేదా డేటాబేస్ కాలమ్లు) వాటి మధ్య క్రియాత్మక పరాధీనత కలిగివుంటాయి, అంటే ఒక పట్టికలో కాలమ్ A ని కాలమ్ B పై ఆధారపడుతుంది.
ఇది ఎలా పని చేస్తుందో చూద్దాం.
ట్రాన్స్మిడియల్ డిపెండెన్సీ ఉదాహరణ
రచయితలు
| Author_ID | రచయిత | పుస్తకం | Author_Nationality |
|---|---|---|---|
| Auth_001 | ఆర్సన్ స్కాట్ కార్డ్ | ముగించేవాడి ఆట | సంయుక్త రాష్ట్రాలు |
| Auth_001 | ఆర్సన్ స్కాట్ కార్డ్ | ముగించేవాడి ఆట | సంయుక్త రాష్ట్రాలు |
| Auth_002 | మార్గరెట్ అట్వుడ్ | ది హ్యాండ్మైడ్స్ టేల్ | కెనడా |
పైన AUTHORS ఉదాహరణలో:
- పుస్తకం → రచయిత : ఇక్కడ, ఆ పుస్తకం లక్షణం నిర్ణయిస్తుంది రచయిత గుణం. పుస్తకం పేరు మీకు తెలిస్తే, మీరు రచయిత పేరును తెలుసుకోవచ్చు. అయితే, రచయిత నిర్ణయించలేదు పుస్తకం , ఎందుకంటే ఒక రచయిత బహుళ పుస్తకాలను వ్రాయవచ్చు. ఉదాహరణకు, మనకు రచయిత పేరు ఆర్సన్ స్కాట్ కార్డ్ తెలిసినందున, మేము ఇప్పటికీ పుస్తకం పేరు తెలియదు.
- రచయిత → Author_Nationality : అదే విధంగా, రచయిత లక్షణం నిర్ణయిస్తుంది Author_Nationality , కానీ ఇతర మార్గం కాదు; మనము జాతీయతను తెలిస్తే కేవలం రచయితని గుర్తించలేము.
కానీ ఈ పట్టిక సమ్మతమైన డిపెందెన్సీని పరిచయం చేస్తుంది:
- పుస్తకం → Author_Nationality: మేము పుస్తకం పేరు తెలిస్తే, రచయిత కాలమ్ ద్వారా మేము జాతీయతను నిర్ణయిస్తాము.
ట్రాన్సియరిటీ డిపెండెన్సీలను తప్పించడం
మూడో సాధారణ ఆకృతిని నిర్ధారించడానికి, మృదువైన పరాధీనతను తొలగించండి.
మేము రచయితల పట్టిక నుండి బుక్ కాలమ్ని తీసివేయడం ద్వారా మరియు ఒక ప్రత్యేక పుస్తకాల పట్టికను సృష్టించడం ద్వారా ప్రారంభించవచ్చు:
BOOKS
| Book_ID | పుస్తకం | Author_ID |
|---|---|---|
| Book_001 | ముగించేవాడి ఆట | Auth_001 |
| Book_001 | మైండ్ పిల్లలు | Auth_001 |
| Book_002 | ది హ్యాండ్మైడ్స్ టేల్ | Auth_002 |
రచయితలు
| Author_ID | రచయిత | Author_Nationality |
|---|---|---|
| Auth_001 | ఆర్సన్ స్కాట్ కార్డ్ | సంయుక్త రాష్ట్రాలు |
| Auth_002 | మార్గరెట్ అట్వుడ్ | కెనడా |
దీనిని పరిష్కరించావా? ఇప్పుడు మన పరతంత్రతను పరిశీలిద్దాం:
BOOKS పట్టిక:
- Book_ID → పుస్తకం: ది పుస్తకం ఆధారపడి ఉంటుంది Book_ID .
- ఈ పట్టికలో ఇతర ఆధారాలు లేవు, కాబట్టి మేము ఓకే. గమనించండి విదేశీ కీ Author_ID ఈ పట్టికను దాని ప్రాథమిక కీ ద్వారా AUTHORS పట్టికకు లింక్ చేస్తుంది Author_ID . అనుబంధ డేటాబేస్ల యొక్క కీలకమైన రూపాన్ని, ఒక సంక్లిష్ట పరతంత్రతను నివారించడానికి మేము ఒక సంబంధాన్ని సృష్టించాము.
AUTHORS పట్టిక:
- Author_ID → రచయిత: ది రచయిత ఆధారపడి ఉంటుంది Author_ID .
- రచయిత → Author_Nationality: జాతీయతను రచయిత నిర్ణయిస్తారు.
- Author_ID → Author_Nationality: జాతీయత నుండి నిర్ణయించబడుతుంది Author_ID ద్వారా రచయిత గుణం. మేము ఇంకా సందిగ్ధంగా ఆధారపడతాము.
ఈ డేటాను సాధారణీకరించడానికి మేము మూడవ పట్టికని జోడించాలి:
దేశాలు
| Country_ID | దేశం |
|---|---|
| Coun_001 | సంయుక్త రాష్ట్రాలు |
| Coun_002 | కెనడా |
రచయితలు
| Author_ID | రచయిత | Country_ID |
|---|---|---|
| Auth_001 | ఆర్సన్ స్కాట్ కార్డ్ | Coun_001 |
| Auth_002 | మార్గరెట్ అట్వుడ్ | Coun_002 |
ఇప్పుడు మనము మూడు పట్టికలు కలిగి, పట్టికల మధ్య అనుసంధానము చేసేందుకు విదేశీ కీల వినియోగాన్ని తయారు చేస్తున్నాము:
- BOOK పట్టిక యొక్క విదేశీ కీ Author_ID AUTHORS పట్టికలోని రచయితకు పుస్తకాన్ని లింక్ చేస్తుంది.
- AUTHORS పట్టిక యొక్క విదేశీ కీ Country_ID COUNTRIES పట్టికలో దేశానికి రచయితను లింక్ చేస్తుంది.
- ఈ రూపకల్పనలో మరొక పట్టికకు లింక్ చేయవలసిన అవసరం లేనందున COUNTRIES పట్టికకు విదేశీ కీ లేదు.
ఎందుకు ట్రాన్స్మిడియల్ డిపెండెన్సీలు బాడ్ డేటాబేస్ డిజైన్
3NF ను నిర్ధారించడానికి సకర్షనీయ డిపెండెన్సీలను నివారించే విలువ ఏమిటి? మన మొదటి టేబుల్ను మళ్ళీ పరిగణలోకి తీసుకుందాం మరియు అది సృష్టించే సమస్యలను చూడండి:
రచయితలు
| Author_ID | రచయిత | పుస్తకం | Author_Nationality |
|---|---|---|---|
| Auth_001 | ఆర్సన్ స్కాట్ కార్డ్ | ముగించేవాడి ఆట | సంయుక్త రాష్ట్రాలు |
| Auth_001 | ఆర్సన్ స్కాట్ కార్డ్ | మైండ్ పిల్లలు | సంయుక్త రాష్ట్రాలు |
| Auth_002 | మార్గరెట్ అట్వుడ్ | ది హ్యాండ్మైడ్స్ టేల్ | కెనడా |
ఈ రకమైన రూపకల్పన డేటా క్రమరాహిత్యాలు మరియు అస్థిరతలకు దోహదం చేస్తుంది, ఉదాహరణకు:
- మీరు రెండు పుస్తకాలను "చిల్డ్రన్ ఆఫ్ ది మైండ్" మరియు "ఎండర్స్ గేమ్" లను తొలగించినట్లయితే, మీరు రచయిత "ఓర్సన్ స్కాట్ కార్డ్" మరియు అతని జాతీయత పూర్తిగా డేటాబేస్ నుండి తొలగించబడుతుంది.
- మీరు ఒక పుస్తకాన్ని చేర్చకపోతే మీరు కొత్త రచయితను డేటాబేస్లో చేర్చలేరు; రచయిత ఇంకా ప్రచురింపబడకపోతే లేదా ఆమె వ్రాసిన పుస్తకం పేరు మీకు తెలియదా?
- "ఆర్సన్ స్కాట్ కార్డు" అతని పౌరసత్వాన్ని మార్చినట్లయితే, మీరు కనిపించే అన్ని రికార్డులలో దానిని మార్చవలసి ఉంటుంది. అదే రచయితతో బహుళ రికార్డులను కలిగి ఉండక సరికాని డేటాకు దారి తీయవచ్చు: డేటా ఎంట్రీ వ్యక్తి గ్రహించలేకపోతే, అతడికి బహుళ రికార్డులు ఉన్నాయి మరియు ఒకే రికార్డులో డేటాను మార్చగలదా?
- పూర్తిగా రచయితను తొలగించకుండా "హ్యాండ్మైడ్స్ టేల్" వంటి పుస్తకాన్ని మీరు తొలగించలేరు.
ఇవి కేవలం సాధారణ కారణాలు, మరియు సంతులిత ఆధారపడాన్ని తప్పించడం, డేటాను రక్షించడం మరియు స్థిరత్వం నిర్ధారించడానికి కొన్ని కారణాలు.













