4.1 పరిచయం
డేటాబేస్ పట్టికలను సాధారణ పట్టికలుగా మార్చడం ద్వారా, మీరు ఇప్పుడు వాటి మధ్య సంబంధాలను విశ్లేషించవచ్చు. రెండు సంబంధిత పట్టికల మధ్య పరస్పర చర్య చేసే మూలకాల సంఖ్యను కార్డినాలిటీ అంటారు. మీరు మీ డేటాను పట్టికలుగా ఎంత సమర్థవంతంగా విభజించారో నియంత్రించడంలో కార్డినాలిటీ మీకు సహాయపడుతుంది.
సిద్ధాంతపరంగా, అన్ని ఎంటిటీలు ఒకదానితో ఒకటి సంబంధాలను కొనసాగించగలవు, కానీ ఆచరణలో, ఎంటిటీల మధ్య మూడు రకాల సంబంధాలు ఉన్నాయి:
- ముఖాముఖి
- ఒకటి నుండి చాలా వరకు
- అనేక నుండి అనేక
4.2 వన్-టు-వన్ కమ్యూనికేషన్
ఎంటిటీ B యొక్క ప్రతి ఉదాహరణకి ఎంటిటీ A యొక్క ఒక ఉదాహరణ మాత్రమే ఉంటే, అవి ఒకదానికొకటి సంబంధం కలిగి ఉంటాయని చెప్పబడుతుంది (తరచుగా "1:1"గా సూచించబడుతుంది). ER రేఖాచిత్రాలపై, అటువంటి సంబంధం ప్రతి చివర చిన్న బార్తో ఒక లైన్ ద్వారా సూచించబడుతుంది:

1:1 సంబంధం సాధారణంగా, వాటిని వేరుగా ఉంచడానికి మీకు మంచి కారణం లేకపోతే, రెండు పట్టికల డేటాను ఒకటిగా కలపడం ఉత్తమం అని సూచిస్తుంది.
అయితే, కొన్ని పరిస్థితులలో 1:1 సంబంధాలతో పట్టికలను ఉపయోగించడం సహేతుకమైనది. మీ పట్టికలు వివరణల వంటి ఐచ్ఛిక డేటాతో ఫీల్డ్లను కలిగి ఉంటే మరియు చాలా సందర్భాలలో అవి ఖాళీగా ఉంటే, అన్ని వివరణలను ప్రత్యేక పట్టికకు తరలించడం సమంజసం, ఇది మీరు తరచుగా ఖాళీలను వదిలించుకోవడానికి మరియు మీ డేటాబేస్ సామర్థ్యాన్ని పెంచడానికి అనుమతిస్తుంది. .
ఆపై, డేటాను సరిగ్గా మ్యాప్ చేయడానికి, మీరు ప్రతి పట్టికలో కనీసం ఒకేలా ఉండే నిలువు వరుసను చేర్చాలి (దీని కోసం ప్రాథమిక కీని ఎంచుకోవడం ఉత్తమం).
4.3 ఒకటి నుండి అనేక సంబంధం
ఒక టేబుల్లోని రికార్డ్ మరొకదానిలో బహుళ ఎంటిటీలతో అనుబంధించబడినప్పుడు ఈ రకమైన సంబంధం ఏర్పడుతుంది. ఉదాహరణకు, ఒకే కస్టమర్ బహుళ ఆర్డర్లను చేయవచ్చు లేదా లైబ్రరీ సందర్శకుడు ఒక సందర్శనలో బహుళ పుస్తకాలను తీసుకోవచ్చు. దిగువ ఉదాహరణలో చూపిన విధంగా, ఒకటి నుండి అనేక సంబంధాలు (లేదా సంక్షిప్తంగా 1:M) కాకి అడుగుల సంజ్ఞామానాన్ని ఉపయోగించి రేఖాచిత్రంలో వ్యక్తీకరించబడ్డాయి:

డేటాబేస్ను ప్లాన్ చేస్తున్నప్పుడు 1:M సంబంధాన్ని వర్తింపజేయడానికి, "ఒకటి" పట్టిక నుండి ప్రాథమిక కీని "చాలా" పట్టికకు లక్షణంగా జోడించండి. ప్రాథమిక కీ మరొక పట్టికలో ఉంటే, దానిని "విదేశీ కీ" అంటారు. "ఒక" పట్టిక మాతృ పట్టికగా పరిగణించబడుతుంది, అయితే "చాలా" పట్టిక పిల్లల పట్టికగా పరిగణించబడుతుంది.
4.4 అనేక నుండి అనేక సంబంధాలు
ఒక టేబుల్లోని బహుళ ఎంటిటీలను మరొకదానిలోని బహుళ ఎంటిటీలకు కనెక్ట్ చేయగలిగినప్పుడు, అవి చాలా నుండి అనేక (లేదా M:M) సంబంధాన్ని కలిగి ఉన్నట్లు పరిగణించబడుతుంది. ఉదాహరణకు, విద్యార్థులు మరియు తరగతుల మధ్య అలాంటి సంబంధం ఉంది, ఎందుకంటే ప్రతి విద్యార్థి అనేక విభిన్న తరగతులకు హాజరు కావచ్చు మరియు తదనుగుణంగా, చాలా మంది విద్యార్థులు ప్రతి తరగతికి రావచ్చు.
ER రేఖాచిత్రంలో, ఈ రకమైన సంబంధం క్రింది విధంగా ప్రదర్శించబడుతుంది:

దురదృష్టవశాత్తు, డేటాబేస్లో అటువంటి సంబంధాన్ని నేరుగా అమలు చేయడం అసాధ్యం. అందువల్ల, ఇది రెండు ఒకటి నుండి అనేక సంబంధాలుగా విభజించబడాలి.
దీన్ని చేయడానికి, మీరు రెండు పట్టికల మధ్య కొత్త ఎంటిటీని సృష్టించాలి. అమ్మకాలు మరియు ఉత్పత్తుల మధ్య M:M సంబంధాన్ని ఏర్పరచినట్లయితే, కొత్త ఎంటిటీని "విక్రయించిన ఉత్పత్తులు" అని పిలుస్తారు, ఎందుకంటే ఇది ప్రతి విక్రయంలోని విషయాలను సూచిస్తుంది.
"విక్రయమైన వస్తువులు" మరియు "సేల్స్" పట్టిక మరియు "వస్తువులు" అనే పట్టిక టైప్ 1:M ద్వారా లింక్ చేయబడతాయి. వేర్వేరు నమూనాలలో, అటువంటి ఇంటర్మీడియట్ ఎంటిటీలను విభిన్నంగా పిలుస్తారు - "కనెక్టింగ్ టేబుల్స్", "అసోసియేటివ్ ఎంటిటీస్" లేదా "నోడ్ టేబుల్స్".
ప్రతి లింక్ టేబుల్ ఎంట్రీ ప్రక్కనే ఉన్న పట్టికల యొక్క రెండు వేర్వేరు ఎంటిటీలను కలుపుతుంది (మరియు అదనపు సమాచారం కూడా ఉండవచ్చు). ఉదాహరణకు, విద్యార్థులు మరియు తరగతుల మధ్య లింక్ పట్టిక ఇలా ఉండవచ్చు:

4.5 తప్పనిసరి లేదా?
లింక్ విశ్లేషణకు మరొక విధానం ఏమిటంటే, కనెక్ట్ చేయబడిన ఎంటిటీలలో ఏది మరొక ఎంటిటీ ఉనికికి ముందస్తు అవసరం అని నిర్ణయించడం. ఐచ్ఛిక లింక్ వైపు ట్రంక్పై సర్కిల్తో గుర్తించబడింది.
ఉదాహరణకు, ఒక రాష్ట్రం UNలో దాని స్వంత ప్రతినిధిని కలిగి ఉండాలంటే, అది ప్రపంచ పటంలో ఉండాలి, కానీ దీనికి విరుద్ధంగా ప్రకటన తప్పు అవుతుంది:

రెండు అస్థిత్వాలు పరస్పరం ఆధారపడవచ్చు (అనగా, ఒకటి లేకుండా మరొకటి ఉనికిలో ఉండదు).
పునరావృత లింకులు
కొన్నిసార్లు పట్టిక దానినే సూచించవచ్చు. ఉదాహరణకు, ఒక ఎంప్లాయ్ టేబుల్లో "మేనేజర్" లక్షణం ఉండవచ్చు, అది అదే టేబుల్లోని మరొక ఉద్యోగికి మమ్మల్ని సూచిస్తుంది. ఇది పునరావృత సంబంధం.
అదనపు కనెక్షన్లు
లింక్లు ఒకటి కంటే ఎక్కువసార్లు వ్యక్తీకరించబడినట్లయితే అవి అనవసరంగా పరిగణించబడతాయి. నియమం ప్రకారం, ముఖ్యమైన సమాచారాన్ని కోల్పోకుండా వాటిలో ఒకటి తొలగించబడుతుంది. ఉదాహరణకు, "విద్యార్థులు" అనే అంశం "ఉపాధ్యాయులు" అనే అంశానికి ప్రత్యక్షంగా మాత్రమే కాకుండా, "తరగతులు" ద్వారా పరోక్షంగా కూడా అనుసంధానించబడి ఉంటే, "విద్యార్థులు" మరియు "ఉపాధ్యాయులు" అనే ఎంటిటీల మధ్య సంబంధాన్ని తీసివేయడం అర్ధమే. తరగతుల ద్వారా మాత్రమే ఉపాధ్యాయులకు విద్యార్థులను కేటాయించడం సాధ్యమవుతుందనే వాస్తవం ఈ నిర్ణయం సమర్థించబడుతోంది.
4.6 డేటా యొక్క రెఫరెన్షియల్ సమగ్రత
ప్రాథమిక మరియు విదేశీ కీలను మార్చేటప్పుడు, డేటా యొక్క రెఫరెన్షియల్ సమగ్రత వంటి అంశాన్ని గమనించాలి . ఒకే డేటాను స్థిరంగా నిల్వ చేసే డేటాబేస్లో రెండు పట్టికలను ఉంచడం దీని ప్రధాన ఆలోచన.
డేటా సమగ్రత అనేది పట్టికల మధ్య సరైన లింక్తో సరిగ్గా నిర్మించబడిన సంబంధాలను సూచిస్తుంది. ఏ సందర్భాలలో డేటా సమగ్రతను ఉల్లంఘించవచ్చు:
- తొలగింపు క్రమరాహిత్యం . ప్రధాన పట్టిక నుండి అడ్డు వరుస తొలగించబడినప్పుడు సంభవిస్తుంది. ఈ సందర్భంలో, డిపెండెంట్ టేబుల్ నుండి ఫారిన్ కీ మాస్టర్ టేబుల్ నుండి తొలగించబడిన అడ్డు వరుసను సూచిస్తూనే ఉంటుంది.
- చొప్పించడం క్రమరాహిత్యం . డిపెండెంట్ టేబుల్లో అడ్డు వరుసను చొప్పించినప్పుడు సంభవిస్తుంది. ఈ సందర్భంలో, డిపెండెంట్ టేబుల్లోని ఫారిన్ కీ, మాస్టర్ టేబుల్లోని ఏ అడ్డు వరుసల ప్రాథమిక కీతో సరిపోలడం లేదు.
- క్రమరాహిత్యాన్ని నవీకరించండి . అటువంటి క్రమరాహిత్యంతో, ఒక పట్టికలోని అనేక వరుసలు ఒకే వస్తువుకు చెందిన డేటాను కలిగి ఉండవచ్చు. మీరు ఒక వరుసలోని డేటాను మార్చినట్లయితే, అవి మరొక అడ్డు వరుసలోని డేటాతో విభేదించవచ్చు.
తొలగింపు క్రమరాహిత్యం
తొలగింపు క్రమరాహిత్యాన్ని పరిష్కరించడానికి, విదేశీ కీని రెండు పరిమితుల్లో ఒకదానికి సెట్ చేయాలి:
డిపెండెంట్ టేబుల్ నుండి అడ్డు వరుసకు తప్పనిసరిగా మాస్టర్ టేబుల్ నుండి అడ్డు వరుస అవసరం అయితే, ఫారిన్ కీ క్యాస్కేడ్ డిలీట్కు సెట్ చేయబడుతుంది. అంటే, మాస్టర్ టేబుల్ నుండి అడ్డు వరుస తొలగించబడినప్పుడు, అనుబంధిత వరుస(లు) డిపెండెంట్ టేబుల్ నుండి తొలగించబడతాయి.
డిపెండెంట్ టేబుల్ నుండి అడ్డు వరుస ప్రధాన పట్టిక నుండి అడ్డు వరుసకు ఎటువంటి సంబంధాన్ని అనుమతించకపోతే (అంటే, అటువంటి సంబంధం ఐచ్ఛికం), అప్పుడు సంబంధిత అడ్డు వరుసను ప్రధాన పట్టిక నుండి తొలగించినప్పుడు విదేశీ కీ NULLకి సెట్ చేయబడుతుంది. విదేశీ కీ కాలమ్ తప్పనిసరిగా శూన్యమైనదిగా ఉండాలి.
చొప్పించడం క్రమరాహిత్యం
డిపెండెంట్ డేటా టేబుల్కి జోడించేటప్పుడు ఇన్సర్ట్ క్రమరాహిత్యాన్ని పరిష్కరించడానికి, ఫారిన్ కీని సూచించే కాలమ్ తప్పనిసరిగా శూన్యంగా ఉండాలి. అందువలన, జోడించబడే వస్తువుకు ప్రధాన పట్టికతో సంబంధం లేనట్లయితే, విదేశీ కీ కాలమ్ NULL విలువను కలిగి ఉంటుంది.
క్రమరాహిత్యాలను నవీకరించండి
నవీకరణ క్రమరాహిత్యం సమస్యను పరిష్కరించడానికి, సాధారణీకరణ వర్తించబడుతుంది, ఇది ముందుగా చర్చించబడింది.
GO TO FULL VERSION