ਡਾਟਾਬੇਸ ਆਮ ਵਿਚ ਪੂਰਾ ਕਾਰਜਸ਼ੀਲ ਨਿਰਭਰਤਾ

ਇੱਕ ਪੂਰਨ ਫੰਕਸ਼ਨਲ ਨਿਰਭਰਤਾ ਡਾਟਾਬੇਸ ਨਾਰਮਲ ਦੀ ਇਕ ਅਵਸਥਾ ਹੈ ਜੋ ਦੂਜੀ ਨਾਰਮਲ ਫਾਰਮ (2 ਐਨ ਐੱਫ) ਦੇ ਸਧਾਰਣ ਸਤਰ ਦੇ ਬਰਾਬਰ ਹੈ . ਸੰਖੇਪ ਵਿੱਚ, ਇਸਦਾ ਮਤਲਬ ਇਹ ਹੈ ਕਿ ਇਹ ਫਸਟ ਨਾਰਮਲ ਫਾਰਮ (1NF) ਦੀਆਂ ਜ਼ਰੂਰਤਾਂ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ, ਅਤੇ ਸਾਰੀਆਂ ਗੈਰ-ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਤੇ ਪੂਰੀ ਤਰਾਂ ਨਿਰਭਰ ਹਨ.

ਇਹ ਇੰਨਾ ਗੁੰਝਲਦਾਰ ਨਹੀਂ ਹੈ ਜਿੰਨਾ ਇਹ ਹੋ ਸਕਦਾ ਹੈ. ਆਓ ਇਸ ਤੇ ਹੋਰ ਵਿਸਥਾਰ ਨਾਲ ਵੇਖੀਏ.

ਪਹਿਲਾ ਆਮ ਫਾਰਮ ਦਾ ਸੰਖੇਪ

ਇੱਕ ਡਾਟਾਬੇਸ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਨ ਦੇ ਸਮਰੱਥ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਫਸਟ ਨਾਰਮਲ ਫਾਰਮ ਦੀ ਪਾਲਣਾ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ.

ਇਹ ਸਾਰੇ ਮਤਲਬ ਹੈ ਕਿ ਹਰੇਕ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ ਇੱਕ ਸਿੰਗਲ, ਪ੍ਰਮਾਣੂ ਮੁੱਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ.

ਉਦਾਹਰਨ ਲਈ, ਹੇਠ ਦਿੱਤੀ ਸਾਰਣੀ 1NF ਦੀ ਪਾਲਣਾ ਨਹੀਂ ਕਰਦੀ, ਕਿਉਂਕਿ ਕਰਮਚਾਰੀ ਟੀਨਾ ਦੋ ਸਥਾਨਾਂ ਨਾਲ ਜੁੜੀ ਹੋਈ ਹੈ, ਦੋਵਾਂ ਨੂੰ ਇੱਕ ਸੈਲ ਵਿੱਚ.

ਪਹਿਲਾ ਆਮ ਫਾਰਮ ਗੈਰ-ਪਾਲਣਾ
ਕਰਮਚਾਰੀ ਸਥਾਨ
ਜੌਹਨ ਲੌਸ ਐਂਜਲਸ
ਟੀਨਾ ਲਾਸ ਏਂਜਲਸ, ਸ਼ਿਕਾਗੋ

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

ਪਹਿਲਾ ਆਮ ਫਾਰਮ ਪਾਲਣਾ
ਕਰਮਚਾਰੀ ਸਥਾਨ
ਜੌਹਨ ਲੌਸ ਐਂਜਲਸ
ਟੀਨਾ ਲੌਸ ਐਂਜਲਸ
ਟੀਨਾ ਸ਼ਿਕਾਗੋ

ਪਰ 1 ਐੱਨ ਐੱਫ ਅਜੇ ਵੀ ਡਾਟਾ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਤੋਂ ਬਚਣ ਲਈ ਕਾਫੀ ਨਹੀਂ ਹੈ.

2 ਐਨ ਐੱਫ ਪੂਰੀ ਨਿਰਭਰਤਾ ਨੂੰ ਕਿਵੇਂ ਪੂਰਾ ਕਰਦਾ ਹੈ

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

ਡਾਟਾਬੇਸ ਡਿਜ਼ਾਇਨਰ ਗੁਣਾਂ ਦੇ ਵਿਚਕਾਰਲੇ ਸਬੰਧਾਂ ਦਾ ਵਰਣਨ ਕਰਨ ਲਈ ਸੰਕੇਤ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ:

ਜੇਕਰ ਗੁਣ A ਬੀ ਦਾ ਮੁੱਲ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ, ਤਾਂ ਅਸੀਂ ਇਸ ਨੂੰ A -> B ਲਿਖਦੇ ਹਾਂ - ਭਾਵ ਕਿ ਬੀ ਉੱਤਰਜੀ ਤੌਰ 'ਤੇ ਏ' ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ. ਇਸ ਸਬੰਧ ਵਿੱਚ, A ਬੀ ਦਾ ਮੁੱਲ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਕਿ B ਏ ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ.

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

ਕੋਈ ਹੋਰ ਗੁਣ - ਇਸ ਮਾਮਲੇ ਵਿੱਚ, ਕਰਮਚਾਰੀ ਨਾਮ ਅਤੇ ਵਿਭਾਗ - ਇਸਦੇ ਮੁੱਲ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ 'ਤੇ ਨਿਰਭਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ.

ਕਰਮਚਾਰੀ ਵਿਭਾਗ
EmployeeID ਕਰਮਚਾਰੀ ਦਾ ਨਾਮ DeptID DeptName
Emp1 ਜੌਹਨ ਡਿਪਟੀ ਆਈ ਵਿੱਤ
Emp2 ਟੀਨਾ Dept003 ਵਿਕਰੀ
ਐਮ ਪੀਓ ਕਾਰਲੋਸ ਡਿਪਟੀ ਆਈ ਵਿੱਤ

ਇਸ ਕੇਸ ਵਿੱਚ, ਟੇਬਲ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਿਰਭਰ ਨਹੀਂ ਹੈ, ਜਦੋਂ ਕਿ ਕਰਮਚਾਰੀ ਨਾਮ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਕਰਮਚਾਰੀ ਡਿਪਾਰਟਮੈਂਟ ਡਿਪਾਰਟਮੈਂਟ ਆਈਡੀ ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ, DeptName ਡਿਪਟੀਆਈਡੀ ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ. ਇਸਨੂੰ ਅਧੂਰੀ ਨਿਰਭਰਤਾ ਕਿਹਾ ਜਾਂਦਾ ਹੈ

ਇਸ ਸਾਰਣੀ ਨੂੰ 2NF ਦੇ ਅਨੁਰੂਪ ਬਣਾਉਣ ਲਈ, ਸਾਨੂੰ ਡਾਟਾ ਦੋ ਸਾਰਣੀਆਂ ਵਿੱਚ ਵੱਖ ਕਰਨ ਦੀ ਲੋੜ ਹੈ:

ਕਰਮਚਾਰੀ
EmployeeID ਕਰਮਚਾਰੀ ਦਾ ਨਾਮ DeptID
Emp1 ਜੌਹਨ ਡਿਪਟੀ ਆਈ
Emp2 ਟੀਨਾ Dept003
ਐਮ ਪੀਓ ਕਾਰਲੋਸ ਡਿਪਟੀ ਆਈ

ਅਸੀਂ ਕਰਮਚਾਰੀਆਂ ਦੀ ਸਾਰਣੀ ਤੋਂ ਡਿਪਟੀਨੇਮ ਐਟਰੀਬਿਊਟ ਨੂੰ ਹਟਾਉਂਦੇ ਹਾਂ ਅਤੇ ਇਕ ਨਵਾਂ ਟੇਬਲ ਵਿਭਾਜਨ ਬਣਾਉਂਦੇ ਹਾਂ:

ਵਿਭਾਗਾਂ
DeptID DeptName
ਡਿਪਟੀ ਆਈ ਵਿੱਤ
Dept002 ਮਾਨਵੀ ਸੰਸਾਧਨ
Dept003 ਵਿਕਰੀ

ਹੁਣ ਤਾਲਿਕਾਵਾਂ ਦੇ ਵਿਚਕਾਰ ਸਬੰਧ ਪੂਰੀ ਤਰਾਂ ਨਿਰਭਰ ਹਨ, ਜਾਂ 2 ਐੱਨ ਐੱਫ.

ਪੂਰੀ ਨਿਰਭਰਤਾ ਮਹੱਤਵਪੂਰਨ ਕਿਉਂ ਹੈ

ਡੇਟਾਬੇਸ ਗੁਣਾਂ ਦੇ ਵਿਚਕਾਰ ਪੂਰੀ ਨਿਰਭਰਤਾ, ਡਾਟਾ ਪੂਰਨਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਅਤੇ ਡਾਟਾ ਅਨੁਰੂਪ ਤੋਂ ਬਚਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ.

ਉਦਾਹਰਨ ਲਈ, ਉਪਰੋਕਤ ਭਾਗ ਵਿੱਚ ਟੇਬਲ ਤੇ ਵਿਚਾਰ ਕਰੋ ਜੋ ਸਿਰਫ 1 ਐੱਨ ਐੱਫ ਦਾ ਪਾਲਣ ਕਰਦਾ ਹੈ. ਇੱਥੇ ਇਹ ਫਿਰ ਤੋਂ ਹੈ:

ਪਹਿਲਾ ਆਮ ਫਾਰਮ ਪਾਲਣਾ
ਕਰਮਚਾਰੀ ਸਥਾਨ
ਜੌਹਨ ਲੌਸ ਐਂਜਲਸ
ਟੀਨਾ ਲੌਸ ਐਂਜਲਸ
ਟੀਨਾ ਸ਼ਿਕਾਗੋ

ਟੀਨਾ ਦੇ ਦੋ ਰਿਕਾਰਡ ਹਨ. ਜੇ ਅਸੀਂ ਇਹ ਮਹਿਸੂਸ ਕੀਤੇ ਬਿਨਾਂ ਇੱਕ ਅਪਡੇਟ ਕਰਦੇ ਹਾਂ ਕਿ ਦੋ ਹਨ, ਤਾਂ ਨਤੀਜਾ ਇਕਸਾਰ ਨਹੀਂ ਹੋਵੇਗਾ.

ਜਾਂ, ਕੀ ਹੋਇਆ ਜੇ ਅਸੀਂ ਇਸ ਕਰਮਚਾਰੀ ਨੂੰ ਕਰਮਚਾਰੀ ਦੇ ਨਾਲ ਜੋੜਨਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਪਰ ਸਾਨੂੰ ਅਜੇ ਪਤਾ ਨਹੀਂ ਕਿ ਸਥਿਤੀ ਕੀ ਹੈ? ਸਾਨੂੰ ਇੱਕ ਨਵੇਂ ਮੁਲਾਜ਼ਮ ਨੂੰ ਜੋੜਨ ਦੀ ਇਜਾਜ਼ਤ ਵੀ ਨਹੀਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਹੈ ਜੇਕਰ ਸਥਿਤੀ ਵਿਸ਼ੇਸ਼ਤਾ NULL ਮੁੱਲ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦੀ ਹੈ.

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