డేటాబేస్ డిపెండన్స్ అనేది ఒక విషయం, విద్యార్థులు మరియు డేటాబేస్ నిపుణుల ఇద్దరూ ఇద్దరూ కూడా ఇబ్బందులను ఎదుర్కొంటున్నారు. అదృష్టవశాత్తూ, వారు సంక్లిష్టంగా లేరు మరియు అనేక ఉదాహరణల ద్వారా ఉత్తమంగా వివరించవచ్చు. ఈ ఆర్టికల్లో, మేము సాధారణ డేటాబేస్ డిపెండెన్సీ రకాలను పరిశీలిస్తాము.
డేటాబేస్ డిపెండెన్సీలు / ఫంక్షనల్ డిపెండెన్సీలు
అదే డేటాబేస్ టేబుల్లో నిల్వ చేసిన సమాచారం ప్రత్యేకంగా అదే పట్టికలో నిల్వ చేసిన ఇతర సమాచారాన్ని నిర్దేశించినప్పుడు డేటాబేస్లో ఆధారపడటం జరుగుతుంది. ఒక లక్షణం యొక్క విలువను (లేదా గుణాల సమూహం) తెలుసుకోవడం అదే పట్టికలో మరొక లక్షణం (లేదా లక్షణాల సమితి) యొక్క విలువను మీకు తెలియజేయడానికి సరిపోతుంది.
ఒక పట్టికలో లక్షణాల మధ్య ఆధారపడటం అనేది ఆ లక్షణాల మధ్య ఫంక్షనల్ డిపెండెన్సీ ఉందని చెపుతూ ఉంటుంది. ఒక డేటాబేస్లో డిపెండెన్సీ ఉంటే ఆ లక్షణం B లక్షణం A మీద ఆధారపడి ఉంటుంది, మీరు దీనిని "A -> B" గా వ్రాస్తారు.
ఉదాహరణకు, సోషల్ సెక్యూరిటీ నంబర్ (SSN) మరియు పేరుతో ఒక టేబుల్ జాబితా ఉద్యోగి లక్షణాల్లో, ఇది పేరు SSN (లేదా SSN -> పేరు) మీద ఆధారపడి ఉంటుంది, ఎందుకంటే ఉద్యోగి పేరు వారి SSN నుండి ప్రత్యేకంగా నిర్ణయించబడుతుంది. అయినప్పటికీ, రివర్స్ స్టేట్మెంట్ (పేరు -> SSN) నిజం కాదు ఎందుకంటే ఉద్యోగుల్లో ఒకటి కంటే ఎక్కువ మందికి ఒకే పేరు, కానీ వివిధ SSN లు ఉంటాయి.
ట్రివియాల్ ఫంక్షనల్ డిపెండెన్సీలు
అసలైన లక్షణాన్ని కలిగి ఉన్న గుణాల సముదాయంలో ఒక లక్షణం యొక్క క్రియాత్మక పరాధీనతను మీరు వివరించినప్పుడు ఒక చిన్న పనితీరు ఆధారపడటం జరుగుతుంది. ఉదాహరణకు, "{A, B} -> B" అనేది "{name, SSN} -> SSN" గా ఒక చిన్నవిషయం ఫంక్షనల్ డిపెండెన్సీ . ఫంక్షనల్ డిపెండెన్సీ ఈ రకమైన చిన్నవిషయం అని పిలుస్తారు, ఎందుకంటే ఇది సాధారణ అర్థంలో నుండి పొందవచ్చు. మీరు B యొక్క విలువను ఇప్పటికే తెలిసినట్లయితే, B యొక్క విలువ ప్రత్యేకంగా ఆ జ్ఞానంతో నిర్ణయించబడుతుంది.
పూర్తి ఫంక్షనల్ డిపెండెన్సీలు
ఫంక్షనల్ డిపెండెన్సీ స్టేట్మెంట్ యొక్క ఎడమ వైపున క్రియాత్మక పరాధీనత మరియు లక్షణాల సమితి కోసం మీరు ఇప్పటికే అవసరాలను తీర్చినప్పుడు పూర్తి క్రియాత్మక ఆధారపడటం సంభవిస్తుంది. ఉదాహరణకు, "{SSN, వయస్సు} -> పేరు" అనేది క్రియాత్మక పరాధీనత, కానీ పూర్తిస్థాయి ఫంక్షనల్ డిపెండెన్సీ కాదు, ఎందుకంటే మీరు డిపెందెన్సీ సంబంధాన్ని ప్రభావితం చేయకుండా ప్రకటన యొక్క ఎడమ వైపు నుండి వయస్సును తీసివేయవచ్చు.
సంభావ్య ఆధారాలు
క్రియాత్మక పరాధీనతకు కారణమయ్యే పరోక్ష సంబంధం ఉన్నప్పుడు ట్రాన్సిమిటివ్ డిపెండెన్సీలు సంభవిస్తాయి. ఉదాహరణకు, "A -> B" మరియు "B -> C" రెండూ నిజం అయినందున అది "A -> C" అనేది ఒక ట్రేడింగ్ డిపెండెన్సీ .
మల్టీవిలైటెడ్ డిపెండెన్సీలు
ఒక పట్టికలో ఒకటి లేదా అంతకంటే ఎక్కువ వరుసలు ఉండటంతో, అదే పట్టికలో ఒకటి లేదా అంతకంటే ఎక్కువ ఇతర అడ్డు వరుసలు ఉండటం వలన మల్టీవైవ్డ్ డిపెండెన్సీలు సంభవిస్తాయి. ఉదాహరణకు, కారు యొక్క అనేక నమూనాలను తయారు చేసే కారు కంపెనీని ఊహించుకోండి, కానీ ప్రతి మోడల్ యొక్క ఎరుపు మరియు నీలం రంగులను రెండింటినీ చేస్తుంది. మోడల్ పేరు, రంగు మరియు ప్రతి కారు సంవత్సరాన్ని సంస్థ తయారుచేసిన పట్టికను కలిగి ఉంటే, ఆ పట్టికలో ఒక మల్టీవిటెన్ డిపెండెన్సీ ఉంది. నీలి రంగులో ఒక నిర్దిష్ట మోడల్ పేరు మరియు సంవత్సరానికి వరుసగా ఉంటే, ఇదే కారులో అదే రకమైన ఎరుపు వెర్షన్కు సమానంగా ఉండాలి.
ఆధారాల యొక్క ప్రాముఖ్యత
డేటాబేస్ సాధారణీకరణలో ఉపయోగించే ప్రాథమిక బిల్డింగ్ బ్లాక్స్ని అందించడం వలన డేటాబేస్ డిపెందన్స్ అర్థం చేసుకోవడం చాలా ముఖ్యమైనవి. ఉదాహరణకి:
- రెండవ సాధారణ రూపం (2NF) లో ఒక టేబుల్ కోసం, అభ్యర్థి కీ యొక్క ఉపసమితిపై క్రియాశీలంగా ఆధారపడిన పట్టికలో ఒక ప్రధాన-ప్రధాన లక్షణం ఉండదు.
- మూడవ సాధారణ రూపం (3NF) లో ఒక టేబుల్ కోసం, ప్రతీ కాని ప్రధాన లక్షణం తప్పనిసరిగా ప్రతి అభ్యర్ధన కీపై కాని ట్రాన్సిమిటివ్ ఫంక్షనల్ డిపెండెన్సీని కలిగి ఉండాలి.
- ఒక పట్టిక కోసం బోయ్స్-కోడెడ్ నార్మల్ ఫారం (BCNF) లో , ప్రతి ఫంక్షనల్ డిపెండెన్సీ (ట్రివియాల్ డిపెండెన్సీల కంటే ఇతర) ఒక సూపర్కీయంలో ఉండాలి.
- ఒక టేబుల్ నాల్గవ సాధారణ రూపంలో (4NF) ఉండాలి, దీనికి మల్టివిలుడు డిపెండెన్సీలు ఉండకూడదు.