డేటాబేస్ సాధారణీకరణలో పూర్తి ఫంక్షనల్ డిపెండెన్సీ

ఒక పూర్తి ఫంక్షనల్ డిపెందెన్సీ అనేది డేటాబేస్ సాధారణీకరణ యొక్క స్థితి, ఇది సాధారణ సాధారణ ఫార్మాట్ (2NF) యొక్క సాధారణీకరణ ప్రమాణాలకు సమానం. క్లుప్తంగా చెప్పాలంటే, ఇది మొదటి సాధారణ ఫారం (1NF) యొక్క అవసరాలకు అనుగుణంగా ఉంటుంది, మరియు అన్ని ముఖ్య-కాని లక్షణాలను ప్రాథమిక కీపై పూర్తిగా క్రియాశీలంగా ఆధారపడి ఉంటాయి.

ఇది శబ్దంతో సంక్లిష్టమైనది కాదు. మరింత వివరంగా చూద్దాం.

మొదటి సాధారణ రూపం యొక్క సారాంశం

ఒక డేటాబేస్ పూర్తిగా క్రియాశీలకంగా ఉండటానికి ముందు, ఇది మొదట మొదటి సాధారణ ఫారమ్కు కట్టుబడి ఉండాలి.

దీని అర్ధం ప్రతి లక్షణం ఒకే, అణు విలువను కలిగి ఉండాలి.

ఉదాహరణకు, కింది పట్టిక 1NF కు అనుగుణంగా లేదు, ఎందుకంటే ఉద్యోగి టీనా రెండు ప్రదేశాలతో అనుసంధానించబడి ఉంది, అవి రెండూ ఒక్క సెల్లో ఉంటాయి:

మొదటి సాధారణ ఫారం నాన్-కాంప్లియన్స్
ఉద్యోగి స్థానం
జాన్ లాస్ ఏంజెల్స్
టీనా లాస్ ఏంజిల్స్, చికాగో

ఈ రూపకల్పనను అనుమతించడం వలన డేటా నవీకరణలు లేదా ఎంట్రీలను ప్రతికూలంగా ప్రభావితం చేయవచ్చు. 1NF సమ్మతిని నిర్ధారించడానికి, పట్టికను క్రమాన్ని మార్చండి తద్వారా అన్ని లక్షణాలు (లేదా కాలమ్ కణాలు) ఒకే విలువను కలిగి ఉంటాయి:

మొదటి సాధారణ ఫారమ్ వర్తింపు
ఉద్యోగి స్థానం
జాన్ లాస్ ఏంజెల్స్
టీనా లాస్ ఏంజెల్స్
టీనా చికాగో

కానీ డేటాతో సమస్యలను నివారించడానికి 1NF ఇప్పటికీ సరిపోదు.

2NF పూర్తి ఆధారపడేలా ఎలా పనిచేస్తుంది?

పూర్తిగా ఆధారపడి ఉండటానికి, అన్ని కాని అభ్యర్థి కీ లక్షణాలు ప్రాథమిక కీ ఆధారపడి ఉండాలి. (గుర్తుంచుకోండి, ఒక అభ్యర్థి కీలక్షణం ఏ డేటాను (ఉదాహరణకు, ప్రాథమిక లేదా విదేశీ కీ) ప్రత్యేకంగా ఒక డేటాబేస్ రికార్డును గుర్తించడానికి ఉపయోగిస్తారు.

డేటాబేస్ డిజైనర్లు లక్షణాల మధ్య ఆధారపడి సంబంధాలను వివరించడానికి ఒక సంకేతాన్ని ఉపయోగిస్తారు:

లక్షణం B యొక్క విలువను నిర్ణయిస్తే, ఈ A -> B ను వ్రాయండి - B అంటే B పై క్రియాశీలంగా ఆధారపడి ఉంటుంది. ఈ సంబంధంలో, B యొక్క విలువను నిర్ణయిస్తుంది, B అనేది B పై ఆధారపడి ఉంటుంది.

ఉదాహరణకు, క్రింది ఉద్యోగుల విభాగాల పట్టికలో, EmployeeID మరియు DeptID రెండూ అభ్యర్థి కీలు: EmployeeID అనేది పట్టిక యొక్క ప్రాథమిక కీ, అయితే DeptID అనేది ఒక విదేశీ కీ.

ఏ ఇతర లక్షణం - ఈ సందర్భంలో, EmployeeName మరియు DeptName - దాని విలువ పొందటానికి ప్రాధమిక కీ ఆధారపడి ఉండాలి.

ఉద్యోగి శాఖలు
ఉద్యోగ గుర్తింపు ఉద్యోగి పేరు DeptID DeptName
Emp1 జాన్ Dept001 ఫైనాన్స్
Emp2 టీనా Dept003 అమ్మకాలు
Emp3 కార్లోస్ Dept001 ఫైనాన్స్

ఈ సందర్భంలో, పట్టిక పూర్తిగా ఆధారపడి ఉండదు, ఎందుకంటే EmployeeName ప్రాథమిక కీ EmployeeID పై ఆధారపడి ఉంటుంది, DeptName బదులుగా DeptID పై ఆధారపడి ఉంటుంది. ఈ పాక్షిక డిపెండెన్సీ అంటారు.

ఈ పట్టికను 2NF కు అనుగుణంగా చేయడానికి, మేము డేటాను రెండు పట్టికలుగా విభజించాలి:

ఉద్యోగులు
ఉద్యోగ గుర్తింపు ఉద్యోగి పేరు DeptID
Emp1 జాన్ Dept001
Emp2 టీనా Dept003
Emp3 కార్లోస్ Dept001

ఉద్యోగుల పట్టిక నుండి DeptName లక్షణాన్ని తొలగించి, క్రొత్త పట్టిక విభాగాలను సృష్టించండి:

విభాగాలు
DeptID DeptName
Dept001 ఫైనాన్స్
Dept002 మానవ వనరులు
Dept003 అమ్మకాలు

ఇప్పుడు పట్టికలు మధ్య సంబంధాలు పూర్తిగా ఆధారపడి ఉంటాయి, లేదా 2NF లో.

ఎందుకు పూర్తి ఆధారపడటం ముఖ్యమైనది

డేటాబేస్ గుణాల మధ్య పూర్తి ఆధారపడటం డేటా సమగ్రతను నిర్ధారించడానికి మరియు డేటా క్రమరాహిత్యాలను నివారించడానికి సహాయపడుతుంది.

ఉదాహరణకు, పైన పేర్కొన్న విభాగంలో పట్టికను 1NF కు మాత్రమే అనుసరిస్తుంది. ఇక్కడ మళ్ళీ, ఉంది:

మొదటి సాధారణ ఫారమ్ వర్తింపు
ఉద్యోగి స్థానం
జాన్ లాస్ ఏంజెల్స్
టీనా లాస్ ఏంజెల్స్
టీనా చికాగో

టీనాకు రెండు రికార్డులు ఉన్నాయి. మేము రెండింటిని గుర్తించకుండా ఒకదాన్ని నవీకరించినట్లయితే, ఫలితంగా అసంగతమైన డేటా అవుతుంది.

లేదా, మేము ఈ పట్టికలో ఒక ఉద్యోగిని జోడించాలనుకుంటే, ఇంకా మేము ఇంకా తెలియదా? స్థాన లక్షణం NULL విలువలకు అనుమతించకపోతే కొత్త ఉద్యోగిని చేర్చడానికి మేము అనుమతించకపోవచ్చు.

ఇది సాధారణీకరణ విషయానికి వస్తే పూర్తి పరాధీనత మొత్తం చిత్రం కాదు. మీరు మీ డేటాబేస్ మూడవ సాధారణ ఫారం (3NF) లో ఉన్నట్లు నిర్ధారించుకోవాలి.