ఒక డేటాబేస్ లో ఒకటి నుండి చాలా సంబంధాలు

టేబుల్ B లో ప్రతి రికార్డు టేబుల్ B లో అనేక అనుసంధాన రికార్డులను కలిగి ఉన్నప్పుడు ఒక డేటాబేస్లో ఒకటి నుండి అనేక సంబంధాలు ఏర్పడతాయి, అయితే టేబుల్ B లోని ప్రతి రికార్డు టేబుల్ ఎలో ఒకే ఒక రికార్డు మాత్రమే కలిగి ఉండవచ్చు. ఒక డేటాబేస్ అత్యంత సాధారణ రిలేషనల్ డేటాబేస్ డిజైన్ మరియు మంచి డిజైన్ గుండె వద్ద ఉంది.

బోధకుడు మరియు వారు బోధించే కోర్సుల మధ్య ఉన్న సంబంధం గురించి ఆలోచించండి. గురువు అనేక కోర్సులు బోధిస్తారు, కానీ కోర్సు ఉపాధ్యాయునితో అదే సంబంధాన్ని కలిగి ఉండదు.

కాబట్టి, టీచర్స్ పట్టికలో ప్రతి రికార్డు కోసం, కోర్సులు పట్టికలో అనేక రికార్డులు ఉండవచ్చు. ఇది ఒక నుండి అనేక సంబంధాలు: అనేక కోర్సులు ఒక గురువు.

ఎవరికి ఎన్నో సంబంధాలు ఏర్పరచుకోవడం ముఖ్యమైనది

ఒకటి నుండి అనేక సంబంధాలను సూచించడానికి, మీరు కనీసం రెండు పట్టికలు అవసరం. ఎందుకు చూద్దాం.

మేము ఉపాధ్యాయుల పట్టికను సృష్టించాము, దీనిలో మేము పేరు మరియు కోర్సులు బోధించాలనుకుంటున్నాము. మేము ఈ విధంగా రూపకల్పన చేయవచ్చు:

ఉపాధ్యాయులు మరియు కోర్సులు
Teacher_ID Teacher_Name కోర్సు
Teacher_001 కార్మెన్ బయాలజీ
Teacher_002 వేరోనికా మఠం
Teacher_003 జార్జ్ ఇంగ్లీష్

కార్మెన్ రెండు లేదా అంతకంటే ఎక్కువ కోర్సులు బోధిస్తే ఏం? ఈ డిజైన్తో మేము రెండు ఎంపికలు ఉన్నాయి. మేము దీన్ని కార్మెన్ యొక్క ఇప్పటికే ఉన్న రికార్డుకు జోడించగలము:

ఉపాధ్యాయులు మరియు కోర్సులు
Teacher_ID Teacher _Name కోర్సు
Teacher_001 కార్మెన్ బయాలజీ, మఠం
Teacher_002 వేరోనికా మఠం
Teacher_003 జార్జ్ ఇంగ్లీష్

పై డిజైన్, అయితే, అస్పష్టమైన మరియు డేటాను ఇన్సర్ట్ చెయ్యడానికి, సవరించడానికి లేదా తొలగించడానికి ప్రయత్నిస్తున్నప్పుడు సమస్యలను ఏర్పరుస్తుంది.

ఇది డేటాను శోధించడం కష్టతరం చేస్తుంది. ఈ నమూనా డేటాబేస్ సాధారణీకరణ, మొదటి సాధారణ రూపం (1NF) యొక్క మొదటి సిద్ధాంతాన్ని ఉల్లంఘిస్తుంది, ప్రతి టేబుల్ సెల్లో ఒక వివిక్త డేటాను కలిగి ఉండాలి.

మరొక నమూనా ప్రత్యామ్నాయం కేవలం కార్మెన్ కోసం రెండవ రికార్డును జోడించడం కావచ్చు:

ఉపాధ్యాయులు మరియు కోర్సులు
ఉపాధ్యాయుడు _ID Teacher _Name కోర్సు
Teacher_001 కార్మెన్ బయాలజీ
Teacher_001 కార్మెన్ మఠం
Teacher_002 వేరోనికా మఠం
Teacher_003 జార్జ్ ఇంగ్లీష్

ఇది 1NF కు కట్టుబడి ఉంటుంది కానీ ఇప్పటికీ పేలవమైన డేటాబేస్ రూపకల్పనగా ఉంది ఎందుకంటే ఇది రిడెండెన్సీని పరిచయం చేస్తుంది మరియు చాలా పెద్ద డేటాబేస్ను అనవసరంగా వాడవచ్చు. మరింత ముఖ్యంగా, డేటా అస్థిరమైన కావచ్చు. ఉదాహరణకు, కార్మెన్ పేరు మార్చబడితే ఏమిటి? డేటాతో పనిచేస్తున్న ఒకరు ఆమె పేరును ఒక రికార్డులో నవీకరిస్తారు మరియు రెండవ రికార్డులో దాన్ని నవీకరించడంలో విఫలం కావచ్చు. ఈ నమూనా రెండవ సాధారణ ఫారం (2NF) ను ఉల్లంఘిస్తుంది, ఇది 1NF కు కట్టుబడి ఉంటుంది మరియు డేటా యొక్క ఉపభాగాలను బహుళ పట్టికలలో వేరుచేసి వాటి మధ్య సంబంధాన్ని సృష్టించడం ద్వారా పలు రికార్డుల యొక్క ఉపసంహరణను కూడా తప్పించుకోవాలి.

ఒక నుండి అనేక సంబంధాలు ఒక డేటాబేస్ డిజైన్ ఎలా

ఉపాధ్యాయుల మరియు కోర్సులు పట్టికలో ఒకటి నుండి అనేక సంబంధాలను అమలు చేయడానికి, మేము పట్టికలను రెండుగా విభజించి, విదేశీ కీని ఉపయోగించి వాటిని లింక్ చేస్తాము.

ఇక్కడ, మేము ఉపాధ్యాయుల పట్టికలో కోర్సు కాలమ్ని తొలగించాము:

టీచర్స్
ఉపాధ్యాయుడు _ID Teacher _Name
Teacher_001 కార్మెన్
Teacher_002 వేరోనికా
Teacher_003 జార్జ్

మరియు ఇక్కడ కోర్సుల పట్టిక ఉంది. దాని విదేశీ కీ, Teacher_ID, ఉపాధ్యాయుల పట్టికలో గురువుకు ఒక కోర్సును కలుపుతుంది:

కోర్సులు
Course_ID కోర్సు పేరు Teacher_ID
Course_001 బయాలజీ Teacher_001
Course_002 మఠం Teacher_001
Course_003 ఇంగ్లీష్ Teacher_003

మేము ఒక విదేశీ కీని ఉపయోగించి టీచర్స్ మరియు కోర్సులు పట్టిక మధ్య సంబంధాన్ని అభివృద్ధి చేసాము.

ఇది జీవశాస్త్రం మరియు మఠం రెండింటిని కార్మెన్చే బోధిస్తుంది మరియు జార్జ్ ఇంగ్లీష్ బోధిస్తుంది.

ఈ డిజైన్ ఎలాంటి దుష్ప్రభావాలను ఎలా తొలగిస్తుందో చూడవచ్చు, వ్యక్తిగత ఉపాధ్యాయులు బహుళ కోర్సులు నేర్పించడానికి అనుమతిస్తుంది, మరియు ఒక నుండి అనేక సంబంధాలను అమలు చేస్తుంది.

డేటాబేస్లు ఒకదానితో ఒకటి సంబంధాన్ని మరియు అనేక-నుండి-చాలా సంబంధాలను కూడా అమలు చేయగలవు.