ਤੀਜੇ ਆਮ ਫਾਰਮ (3 ਐਨ ਐੱਫ) ਵਿਚ ਡਾਟਾਬੇਸ ਪਾਉਣਾ

ਤੀਜੀ ਆਮ ਫ਼ਾਰਮ (3 ਐਨ ਐੱਫ) ਇਕ ਡਾਟਾਬੇਸ ਸਿਧਾਂਤ ਹੈ ਜਿਹੜਾ ਡਾਟਾ ਨੁਮਾਇੰਦਿਆਂ ਨੂੰ ਪਹਿਲੇ ਨਾਰਮਲ ਫਾਰਮ (1 ਐੱਨ ਐੱਫ.) ਅਤੇ ਦੂਜੀ Normal Form (2NF) ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਡਾਟਾਬੇਸ ਨਾਰਮੇਲਾਈਜੇਸ਼ਨ ਸਿਧਾਂਤਾਂ ਦੇ ਆਧਾਰ ਤੇ ਤਿਆਰ ਕਰਦਾ ਹੈ .

ਤੀਜੀ ਆਮ ਫ਼ਾਰਮ ਲੋੜਾਂ

ਤੀਜੇ ਆਮ ਫਾਰਮ ਵਿੱਚ ਆਉਣ ਵਾਲੇ ਡੇਟਾਬੇਸ ਲਈ ਦੋ ਬੁਨਿਆਦੀ ਲੋੜਾਂ ਹਨ:

ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਨਿਰਭਰਤਾ ਬਾਰੇ

ਆਉ ਇਸ ਤੱਥ ਦਾ ਅੰਦਾਜ਼ਾ ਕਰੀਏ ਕਿ ਅਸੀਂ ਅਸਲ ਵਿੱਚ ਕੀ ਕਹਿੰਦੇ ਹਾਂ ਕਿ ਸਾਰੇ ਕਾਲਮ ਪ੍ਰਾਇਮਰੀ ਕੀ ਤੇ ਨਿਰਭਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ.

ਜੇ ਕਾਲਮ ਦਾ ਮੁੱਲ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ ਅਤੇ ਟੇਬਲ ਦੇ ਦੂਜੇ ਕਾਲਮ ਤੋਂ ਲਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਤਾਂ ਇਹ 3 ਐਨਐਫ ਦੀ ਉਲੰਘਣਾ ਕਰਦਾ ਹੈ. ਇੱਕ ਕਰਮਚਾਰੀ ਦੀ ਸੂਚੀ ਵਿੱਚ ਇਹ ਕਾਲਮ ਵੇਖੋ:

ਕੀ ਆਖਰੀ-ਨਾਮ ਅਤੇ ਫਸਟਨ ਨਾਂ ਦੋਵਾਂ ਦਾ ਸਿਰਫ ਕਰਮਚਾਰੀਆਈਡੀ ਦੇ ਮੁੱਲ ਤੇ ਨਿਰਭਰ ਹੈ? Well, ਕੀ ਆਖਰੀ ਨਾਮ ਕੀ ਫਸਟਨਾਮ ਤੇ ਨਿਰਭਰ ਹੈ? ਨਹੀਂ, ਕਿਉਂਕਿ LastName ਵਿਚ ਕੁਝ ਵੀ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ, ਫਸਟਨਮ ਦੇ ਮੁੱਲ ਦਾ ਸੁਝਾਅ ਦੇਵੇਗਾ. ਕੀ ਪਹਿਲਾ ਨਾਂ LastName 'ਤੇ ਨਿਰਭਰ ਹੈ? ਦੁਬਾਰਾ ਨਹੀਂ, ਕਿਉਂਕਿ ਇਹ ਵੀ ਸੱਚ ਹੈ: ਜੋ ਵੀ ਆਖਰੀ ਨਾਮ ਹੋ ਸਕਦਾ ਹੈ, ਇਹ ਫਸਟਨਮ ਦੇ ਮੁੱਲ ਨੂੰ ਇਕ ਇਸ਼ਾਰਾ ਨਹੀਂ ਦੇ ਸਕਦਾ. ਇਸ ਲਈ, ਇਹ ਸਾਰਣੀ 3 ਐਨਐਫ ਅਨੁਕੂਲ ਹੈ.

ਪਰ ਇਸ ਵਾਹਨ ਦੀ ਟੇਬਲ ਤੇ ਵਿਚਾਰ ਕਰੋ:

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

ਇਸਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣ ਲਈ, ਸਾਨੂੰ ਹੋਰ ਨਿਰਭਰ ਕਾਲਮ ਨੂੰ ਹੋਰ ਟੇਬਲ ਵਿੱਚ ਮੂਵ ਕਰਨ ਅਤੇ ਇੱਕ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਇਸਦਾ ਹਵਾਲਾ ਦੇਣ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏਗੀ. ਇਸ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਦੋ ਟੇਬਲ ਹੋਣਗੇ:

ਵਾਹਨ ਟੇਬਲ

ਹੇਠ ਸਾਰਣੀ ਵਿੱਚ, ਮਾਡਲਇਡ ਮਾਡਲ ਸਾਰਣੀ ਲਈ ਵਿਦੇਸ਼ੀ ਕੁੰਜੀ ਹੈ:

ਮਾਡਲ ਸਾਰਣੀ

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

3 ਐਨਐਫ ਮਾਡਲ ਵਿਚ ਤਿਆਰ ਕੀਤੀਆਂ ਗਈਆਂ ਫੀਲਡਜ਼

ਇੱਕ ਸਾਰਣੀ ਵਿੱਚ ਇੱਕ ਉਤਪੰਨ ਹੋਏ ਖੇਤਰ ਹੋ ਸਕਦਾ ਹੈ - ਇੱਕ ਜੋ ਕਿ ਸਾਰਣੀ ਵਿੱਚ ਦੂਜੇ ਕਾਲਮਾਂ ਦੇ ਆਧਾਰ ਤੇ ਮਿਣਿਆ ਜਾਂਦਾ ਹੈ. ਉਦਾਹਰਨ ਲਈ, ਵਿਜੇਟ ਆਰਡਰ ਦੀਆਂ ਇਹ ਸਾਰਾਂਸ ਤੇ ਵਿਚਾਰ ਕਰੋ:

ਕੁੱਲ 3 ਐੱਨ ਐੱਫ ਦੀ ਪਾਲਣਾ ਨੂੰ ਤੋੜਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਪ੍ਰਾਇਮਰੀ ਕੁੰਜੀ 'ਤੇ ਪੂਰਨ ਤੌਰ' ਤੇ ਨਿਰਭਰ ਹੋਣ ਦੀ ਬਜਾਏ ਮਾਤਰਾ ਦੇ ਯੂਨਿਟ ਦੀ ਕੀਮਤ ਨੂੰ ਗੁਣਾ ਕਰਕੇ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਸਾਨੂੰ ਤੀਜੇ ਆਮ ਫਾਰਮ ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ ਇਸਨੂੰ ਟੇਬਲ ਤੋਂ ਹਟਾ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ.

ਵਾਸਤਵ ਵਿਚ, ਇਸ ਨੂੰ ਲਿਆ ਗਿਆ ਹੈ, ਇਸ ਲਈ, ਇਸ ਨੂੰ ਡਾਟਾਬੇਸ ਵਿੱਚ ਸਭ ਨੂੰ ਤੇ ਸੰਭਾਲਣ ਨਾ ਬਿਹਤਰ ਹੈ

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

SELECT ORDNumber, ਕੁੱਲ ਵਿਜੇਟ ਓਰਡਰਜ਼ ਤੋਂ

ਹੁਣ ਅਸੀਂ ਹੇਠਾਂ ਦਿੱਤੀ ਪੁੱਛਗਿੱਛ ਦਾ ਇਸਤੇਮਾਲ ਕਰ ਸਕਦੇ ਹਾਂ:

SELECT OrderNumber, UnitPrice * Quantity AS ਵਿਜ਼ੂਟਰ ਓਰਡਰਜ਼ ਤੋਂ ਕੁੱਲ

ਨਾਰਮੇਲਾਈਜੇਸ਼ਨ ਨਿਯਮਾਂ ਦੀ ਉਲੰਘਣਾ ਕੀਤੇ ਬਿਨਾਂ ਉਸੇ ਨਤੀਜੇ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ