ਡਾਟਾਬੇਸ ਰਿਸ਼ਤੇ

ਡਾਟਾਬੇਸ ਰਿਸ਼ਤੇ ਸਾਰੇ ਰਿਲੇਸ਼ਨਲ ਡੈਟਾਬੇਸਾਂ ਦਾ ਮੁੱਖ ਆਧਾਰ ਹਨ

ਇੱਕ ਸਾਰਣੀ ਨੂੰ ਇੱਕ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਹੁੰਦੀ ਹੈ ਜੋ ਦੂਜੀ ਸਾਰਣੀ ਦੀ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਦਾ ਹਵਾਲਾ ਦਿੰਦਾ ਹੈ. ਇਹ ਰਿਲੇਸ਼ਨਲ ਡਾਟਾਬੇਸ ਸ਼ਬਦ ਦੇ ਪਿੱਛੇ ਮੁਢਲਾ ਸੰਕਲਪ ਹੈ.

ਇੱਕ ਰਿਲੇਸ਼ਨਸ਼ਿਪ ਸਥਾਪਤ ਕਰਨ ਲਈ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ

ਆਓ ਪ੍ਰਾਇਮਰੀ ਅਤੇ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀਆਂ ਦੀਆਂ ਮੂਲ ਗੱਲਾਂ ਦੀ ਸਮੀਖਿਆ ਕਰੀਏ. ਇੱਕ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਸਾਰਣੀ ਵਿੱਚ ਹਰੇਕ ਰਿਕਾਰਡ ਦੀ ਪਛਾਣ ਕਰਦਾ ਹੈ ਇਹ ਉਮੀਦਵਾਰ ਕੁੰਜੀ ਦੀ ਇੱਕ ਕਿਸਮ ਹੈ ਜੋ ਆਮ ਤੌਰ ਤੇ ਇੱਕ ਸਾਰਣੀ ਵਿੱਚ ਪਹਿਲਾ ਕਾਲਮ ਹੁੰਦਾ ਹੈ ਅਤੇ ਇਹ ਆਪਣੇ ਆਪ ਹੀ ਡਾਟਾਬੇਸ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਇਹ ਸੁਨਿਸਚਿਤ ਕਰਨ ਲਈ ਕਿ ਇਹ ਅਨੋਖਾ ਹੈ.

ਇੱਕ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਇਕ ਹੋਰ ਉਮੀਦਵਾਰ ਕੁੰਜੀ (ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਨਹੀਂ) ਹੈ ਜੋ ਕਿਸੇ ਹੋਰ ਸਾਰਣੀ ਵਿੱਚ ਰਿਕਾਰਡ ਨੂੰ ਲਿੰਕ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ.

ਉਦਾਹਰਨ ਲਈ, ਇਹਨਾਂ ਦੋ ਮੇਲਾਂ ਤੇ ਵਿਚਾਰ ਕਰੋ ਜੋ ਪਛਾਣਦੇ ਹਨ ਕਿ ਕਿਹੜਾ ਟੀਚਰ ਸਿਖਾਉਂਦਾ ਹੈ ਕਿ ਕਿਹੜਾ ਕੋਰਸ

ਇੱਥੇ, ਕੋਰਸ ਦੀ ਸਾਰਣੀ ਦੀ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਹੈ Course_ID ਇਸਦੀ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਹੈ Teacher_ID:

ਕੋਰਸ
ਕੋਰਸ_ਆਈਡੀ Course_Name Teacher_ID
ਕੋਰਸ_001 ਜੀਵ ਵਿਗਿਆਨ ਟੀਚਰ_001
ਕੋਰਸ_002 ਮੈਥ ਟੀਚਰ_001
Course_003 ਅੰਗਰੇਜ਼ੀ Teacher_003

ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ਕੋਰਸ ਵਿਚ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਅਧਿਆਪਕਾਂ ਵਿਚ ਇਕ ਮੁੱਖ ਕੁੰਜੀ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ:

ਅਧਿਆਪਕ
Teacher_ID Teacher_Name
ਟੀਚਰ_001 ਕਾਰਮਨ
ਟੀਚਰ_002 ਵੇਰੋਨਿਕਾ
Teacher_003 ਜੋਰਜ

ਅਸੀਂ ਕਹਿ ਸਕਦੇ ਹਾਂ ਕਿ ਟੀਚਰ_ ਆਈਡੀ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਨੇ ਕੋਰਸਾਂ ਅਤੇ ਅਧਿਆਪਕਾਂ ਦੀਆਂ ਟੇਲਾਂ ਦੇ ਵਿਚਕਾਰ ਸਬੰਧ ਸਥਾਪਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕੀਤੀ ਹੈ.

ਡਾਟਾਬੇਸ ਰਿਸ਼ਤੇ ਦੀਆਂ ਕਿਸਮਾਂ

ਵਿਦੇਸ਼ੀ ਕੁੰਜੀਆਂ, ਜਾਂ ਹੋਰ ਉਮੀਦਵਾਰ ਕੁੰਜੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਤੁਸੀਂ ਟੇਬਲਸ ਵਿਚਕਾਰ ਤਿੰਨ ਤਰ੍ਹਾਂ ਦੇ ਸਬੰਧ ਬਣਾ ਸਕਦੇ ਹੋ:

ਇਕ-ਨਾਲ-ਇਕ : ਰਿਸ਼ਤੇ ਦੇ ਇਸ ਕਿਸਮ ਦੇ ਸਬੰਧਾਂ ਦੇ ਹਰੇਕ ਪਾਸੇ ਕੇਵਲ ਇਕ ਰਿਕਾਰਡ ਦੀ ਆਗਿਆ ਹੈ.

ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਸਿਰਫ ਇੱਕ ਰਿਕਾਰਡ ਨਾਲ ਸਬੰਧਤ ਹੈ - ਜਾਂ ਕੋਈ ਨਹੀਂ - ਦੂਜੀ ਸਾਰਣੀ ਵਿੱਚ. ਉਦਾਹਰਨ ਲਈ, ਵਿਆਹ ਵਿੱਚ, ਹਰੇਕ ਪਤੀ ਜਾਂ ਪਤਨੀ ਦੇ ਸਿਰਫ ਇਕ ਹੋਰ ਪਤੀ / ਪਤਨੀ ਹੈ ਇਸ ਕਿਸਮ ਦੇ ਰਿਸ਼ਤੇ ਨੂੰ ਇੱਕ ਸਾਰਣੀ ਵਿੱਚ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਇਸਲਈ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ.

ਇਕ-ਤੋਂ-ਬਹੁਤ ਸਾਰੇ : ਇਕ ਤੋਂ ਦੂਜੇ ਸੰਬੰਧਾਂ ਨਾਲ ਇਕ ਸਾਰਣੀ ਵਿਚ ਇਕ ਰਿਕਾਰਡ ਨੂੰ ਦੂਜੇ ਟੇਬਲ ਵਿਚ ਇਕ ਤੋਂ ਵੱਧ ਰਿਕਾਰਡ ਨਾਲ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ.

ਗਾਹਕ ਅਤੇ ਆਰਡਰਸ ਟੇਬਲ ਜਿਹੇ ਡੇਟਾਬੇਸ ਦੇ ਨਾਲ ਇੱਕ ਕਾਰੋਬਾਰ 'ਤੇ ਵਿਚਾਰ ਕਰੋ.

ਇੱਕ ਸਿੰਗਲ ਗਾਹਕ ਬਹੁਤ ਸਾਰੇ ਆਦੇਸ਼ ਖਰੀਦ ਸਕਦਾ ਹੈ, ਪਰ ਇੱਕ ਸਿੰਗਲ ਆਦੇਸ਼ ਨੂੰ ਕਈ ਗਾਹਕਾਂ ਨਾਲ ਜੋੜਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ. ਇਸਕਰਕੇ ਆਰਡਰਸ ਟੇਬਲ ਵਿੱਚ ਇੱਕ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਹੋਵੇਗੀ ਜਿਸ ਨਾਲ ਗਾਹਕਾਂ ਦੀ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਗਾਹਕਾਂ ਦੀ ਸਾਰਣੀ ਵਿੱਚ ਆਰਡਰਸ ਟੇਬਲ ਦੇ ਵੱਲ ਕੋਈ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਨਹੀਂ ਹੁੰਦੀ.

ਕਈ-ਤੋਂ-ਬਹੁਤ ਸਾਰੇ : ਇਹ ਇੱਕ ਗੁੰਝਲਦਾਰ ਰਿਸ਼ਤਾ ਹੈ ਜਿਸ ਵਿੱਚ ਇੱਕ ਸਾਰਣੀ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਰਿਕਾਰਡ ਇਕ ਹੋਰ ਸਾਰਣੀ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਜੋੜ ਸਕਦੇ ਹਨ. ਉਦਾਹਰਣ ਲਈ, ਸਾਡੇ ਕਾਰੋਬਾਰ ਨੂੰ ਸ਼ਾਇਦ ਗਾਹਕ ਅਤੇ ਆਰਡਰ ਟੇਬਲਸ ਦੀ ਲੋੜ ਹੀ ਨਹੀਂ, ਪਰ ਸੰਭਾਵਿਤ ਤੌਰ ਤੇ ਵੀ ਇੱਕ ਪ੍ਰੋਡਕਟ ਟੇਬਲ ਦੀ ਜ਼ਰੂਰਤ ਹੁੰਦੀ ਹੈ.

ਇਕ ਵਾਰ ਫਿਰ, ਗਾਹਕਾਂ ਅਤੇ ਆਰਡਰਸ ਟੇਬਲ ਦੇ ਰਿਸ਼ਤੇ ਇਕ-ਤੋਂ-ਬਹੁਤ ਸਾਰੇ ਹੁੰਦੇ ਹਨ, ਪਰ ਆਰਡਰਸ ਅਤੇ ਪ੍ਰੋਡਕਟਸ ਟੇਬਲ ਦੇ ਵਿਚਕਾਰ ਸਬੰਧ ਨੂੰ ਮੰਨਦੇ ਹਨ. ਇਕ ਆਰਡਰ ਵਿਚ ਬਹੁਤ ਸਾਰੇ ਉਤਪਾਦ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹਨ, ਅਤੇ ਇੱਕ ਉਤਪਾਦ ਨੂੰ ਕਈ ਆਦੇਸ਼ਾਂ ਨਾਲ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ: ਕਈ ਗਾਹਕ ਇੱਕ ਆਦੇਸ਼ ਜਮ੍ਹਾ ਕਰ ਸਕਦੇ ਹਨ ਜਿਸ ਵਿੱਚ ਕੁਝ ਉਹੀ ਉਤਪਾਦ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ. ਇਸ ਕਿਸਮ ਦੇ ਰਿਸ਼ਤੇ ਨੂੰ ਘੱਟੋ ਘੱਟ ਤਿੰਨ ਸਾਰਣੀਆਂ ਲਈ ਲੋੜੀਂਦਾ ਹੈ

ਡੈਟਾਬੇਸ ਰਿਲੇਸ਼ਨਸ ਕੀ ਮਹੱਤਵਪੂਰਨ ਹਨ?

ਡਾਟਾਬੇਸ ਤਾਲਿਕਾਵਾਂ ਦੇ ਵਿਚਕਾਰ ਇਕਸਾਰ ਸੰਬੰਧ ਸਥਾਪਿਤ ਕਰਨਾ ਡਾਟਾ ਇਕਸਾਰਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ, ਡਾਟਾਬੇਸ ਨੂੰ ਸਧਾਰਣ ਬਣਾਉਣ ਵਿੱਚ ਯੋਗਦਾਨ ਪਾਉਂਦਾ ਹੈ. ਮਿਸਾਲ ਦੇ ਤੌਰ ਤੇ, ਜੇ ਅਸੀਂ ਕਿਸੇ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਰਾਹੀਂ ਕਿਸੇ ਟੇਬਲ ਨੂੰ ਨਹੀਂ ਜੋੜਦੇ ਅਤੇ ਕੋਰਸ ਅਤੇ ਟੀਚਰ ਟੇਬਲ ਵਿੱਚ ਡੇਟਾ ਨੂੰ ਮਿਲਾਉਂਦੇ ਹਾਂ, ਤਾਂ ਇਸ ਤਰਾਂ:

ਅਧਿਆਪਕ ਅਤੇ ਕੋਰਸ
Teacher_ID Teacher_Name ਕੋਰਸ
ਟੀਚਰ_001 ਕਾਰਮਨ ਬਾਇਓਲੋਜੀ, ਮੈਥ
ਟੀਚਰ_002 ਵੇਰੋਨਿਕਾ ਮੈਥ
Teacher_003 ਜੋਰਜ ਅੰਗਰੇਜ਼ੀ

ਇਹ ਡਿਜ਼ਾਈਨ ਬੇਮਿਸਾਲ ਹੈ ਅਤੇ ਡਾਟਾਬੇਸ ਨਾਰਮੇਲਾਈਜੇਸ਼ਨ ਦੇ ਪਹਿਲੇ ਸਿਧਾਂਤ ਦੀ ਉਲੰਘਣਾ ਕਰਦਾ ਹੈ, ਫਸਟ ਨਾਰਮਲ ਫ਼ਾਰਮ (1 ਐਨ ਐੱਫ), ਜੋ ਦੱਸਦਾ ਹੈ ਕਿ ਹਰੇਕ ਸਾਰਣੀ ਸੈੱਲ ਵਿੱਚ ਡੇਟਾ ਦਾ ਇੱਕ ਸਿੰਗਲ, ਅਸਿੱਧਾ ਸਮੂਹ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ.

ਜਾਂ ਅਸੀਂ 1 ਐੱਮ ਐੱਫ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਕਾਰਮਨ ਲਈ ਇਕ ਦੂਜੀ ਰਿਕਾਰਡ ਜੋੜਨ ਦਾ ਫ਼ੈਸਲਾ ਕੀਤਾ ਹੈ:

ਅਧਿਆਪਕ ਅਤੇ ਕੋਰਸ
Teacher_ID Teacher_Name ਕੋਰਸ
ਟੀਚਰ_001 ਕਾਰਮਨ ਜੀਵ ਵਿਗਿਆਨ
ਟੀਚਰ_001 ਕਾਰਮਨ ਮੈਥ
ਟੀਚਰ_002 ਵੇਰੋਨਿਕਾ ਮੈਥ
Teacher_003 ਜੋਰਜ ਅੰਗਰੇਜ਼ੀ

ਇਹ ਅਜੇ ਵੀ ਇੱਕ ਕਮਜ਼ੋਰ ਡਿਜ਼ਾਈਨ ਹੈ, ਬੇਲੋੜੀ ਦੁਹਰਾਉਣਾ ਨੂੰ ਪੇਸ਼ ਕਰਨਾ ਅਤੇ ਜਿਸਨੂੰ ਡਾਟਾ ਸੰਮਿਲਿਤ ਵਿਵਰਣ ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਜਿਸਦਾ ਅਰਥ ਸਿਰਫ ਇਹ ਹੈ ਕਿ ਇਹ ਅਸੰਗਤ ਡੇਟਾ ਵਿੱਚ ਯੋਗਦਾਨ ਪਾ ਸਕਦੀ ਹੈ.

ਮਿਸਾਲ ਵਜੋਂ, ਜੇ ਕਿਸੇ ਅਧਿਆਪਕ ਕੋਲ ਬਹੁਤੇ ਰਿਕਾਰਡ ਹਨ, ਤਾਂ ਕੀ ਹੁੰਦਾ ਹੈ ਜੇ ਕੁਝ ਡੇਟਾ ਸੰਪਾਦਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਪਰ ਡਾਟਾ ਸੰਪਾਦਨ ਕਰਨ ਵਾਲਾ ਵਿਅਕਤੀ ਇਹ ਨਹੀਂ ਜਾਣਦਾ ਕਿ ਬਹੁਤੇ ਰਿਕਾਰਡ ਮੌਜੂਦ ਹਨ? ਟੇਬਲ ਵਿੱਚ ਉਸ ਵਿਅਕਤੀ ਦੀ ਵੱਖਰੀ ਜਾਣਕਾਰੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ, ਉਸ ਦੀ ਪਛਾਣ ਕਰਨ ਜਾਂ ਇਸ ਤੋਂ ਬਚਣ ਲਈ ਕੋਈ ਸਪਸ਼ਟ ਤਰੀਕਾ ਨਹੀਂ.

ਇਸ ਟੇਬਲ ਨੂੰ ਦੋ ਟੇਬਲ, ਅਧਿਆਪਕ ਅਤੇ ਕੋਰਸ (ਜਿਵੇਂ ਕਿ ਉਪਰ ਦਿਖਾਇਆ ਗਿਆ ਹੈ) ਵਿੱਚ ਤੋੜਨ ਨਾਲ, ਡੇਟਾ ਦੇ ਵਿਚਕਾਰ ਸਹੀ ਸਬੰਧ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਇਸ ਲਈ ਡਾਟਾ ਅਨੁਕੂਲਤਾ ਅਤੇ ਸ਼ੁੱਧਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਮਿਲਦੀ ਹੈ.