ਹੈਸ਼ਿੰਗ ਸੰਕਲਪ


ਜਾਣ-ਪਛਾਣ

ਹੈਸ਼ ਫਾਈਲ ਸੰਗਠਨ ਵਿਧੀ ਉਹ ਹੈ ਜਿੱਥੇ ਡੇਟਾ ਬਲਾਕਾਂ ਤੇ ਡੇਟਾ ਨੂੰ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਿਸਦਾ ਪਤਾ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਤਿਆਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ. ਮੈਮੋਰੀ ਸਥਾਨ ਜਿੱਥੇ ਇਹ ਰਿਕਾਰਡ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਨੂੰ ਡਾਟਾ ਬਲਾਕ ਜਾਂ ਡੇਟਾ ਬਾਲਕੇਟ ਕਿਹਾ ਜਾਂਦਾ ਹੈ. ਇਹ ਡੇਟਾ ਬਾਲਟੀ ਇੱਕ ਜਾਂ ਵਧੇਰੇ ਰਿਕਾਰਡਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨ ਦੇ ਸਮਰੱਥ ਹੈ.

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

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

ਉਪਰੋਕਤ ਦੋ ਚਿੱਤਰਾਂ ਤੋਂ ਇਹ ਹੁਣ ਸਾਫ ਹੋ ਗਿਆ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ.

ਦੋ ਤਰ੍ਹਾਂ ਦੀਆਂ ਹੈਸ਼ ਫਾਈਲ ਸੰਸਥਾਵਾਂ ਹਨ - ਸਥਿਰ ਅਤੇ ਡਾਇਨਾਮਿਕ ਹੈਸ਼ਿੰਗ

ਸਥਿਰ ਹੈਸ਼ਿੰਗ

ਹੈਸ਼ਿੰਗ ਦੇ ਇਸ methodੰਗ ਵਿੱਚ, ਨਤੀਜੇ ਵਜੋਂ ਡਾਟਾ ਬਾਲਟੀ ਦਾ ਪਤਾ ਹਮੇਸ਼ਾਂ ਇਕੋ ਜਿਹਾ ਰਹੇਗਾ. ਇਸਦਾ ਅਰਥ ਹੈ, ਜੇ ਅਸੀਂ ਮਾਡ (103) ਹੈਸ਼ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ EMP_ID = 5 ਲਈ ਸਿਰਨਾਵਾਂ ਪੈਦਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਤਾਂ ਇਸਦਾ ਨਤੀਜਾ ਹਮੇਸ਼ਾਂ ਉਹੀ ਬਾਲਟੀ ਐਡਰੈਸ ਹੁੰਦਾ ਹੈ. 3 ਇੱਥੇ ਬਾਲਟੀ ਪਤੇ ਵਿੱਚ ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ ਕੀਤੀ ਜਾਏਗੀ. ਇਸ ਲਈ ਇਸ ਸਥਿਰ ਹੈਸ਼ਿੰਗ ਲਈ ਮੈਮੋਰੀ ਵਿਚ ਡੈਟਾ ਬਾਲਕੇਟ ਦੀ ਗਿਣਤੀ ਸਾਰੇ ਸਮੇਂ ਸਥਿਰ ਰਹਿੰਦੀ ਹੈ. ਸਾਡੀ ਉਦਾਹਰਣ ਵਿੱਚ, ਸਾਡੇ ਕੋਲ ਡੇਟਾ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਮੈਮੋਰੀ ਵਿੱਚ ਪੰਜ ਡੇਟਾ ਬਾਲਟੀਆਂ ਹੋਣਗੀਆਂ.

ਇੱਕ ਰਿਕਾਰਡ ਦੀ ਭਾਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ

ਹੈਸ਼ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ, ਡੇਟਾ ਬਾਲਕੇਟ ਐਡਰੈੱਸ ਹੈਸ਼ ਕੁੰਜੀ ਲਈ ਤਿਆਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ. ਰਿਕਾਰਡ ਫਿਰ ਉਸ ਸਥਾਨ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ. ਭਾਵ; ਜੇ ਅਸੀਂ ਆਈਡੀ 104 ਦਾ ਪੂਰਾ ਰਿਕਾਰਡ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹਾਂ, ਅਤੇ ਜੇ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਆਈਡੀ 'ਤੇ ਮਾਡ (5) ਹੈ, ਤਾਂ ਸਿਰਨਾਵੇਂ ਦਾ ਪਤਾ 4 ਹੋਵੇਗਾ. ਫਿਰ ਸਾਨੂੰ ਸਿੱਧੇ ਤੌਰ' ਤੇ ਐਡਰੈੱਸ 4 ਮਿਲ ਜਾਵੇਗਾ ਅਤੇ ਆਈਡੀ 104 ਦਾ ਪੂਰਾ ਰਿਕਾਰਡ ਪ੍ਰਾਪਤ ਕਰ ਲਵਾਂਗਾ. ਇਥੇ ਆਈ.ਡੀ. ਹੈਸ਼ ਕੁੰਜੀ ਦੇ ਤੌਰ ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ.

ਇੱਕ ਰਿਕਾਰਡ ਸ਼ਾਮਲ ਕਰ ਰਿਹਾ ਹੈ

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

ਇੱਕ ਰਿਕਾਰਡ ਮਿਟਾਓ

ਹੈਸ਼ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਅਸੀਂ ਪਹਿਲਾਂ ਰਿਕਾਰਡ ਲਿਆਵਾਂਗੇ ਜਿਸ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੀਦਾ ਹੈ. ਫਿਰ ਅਸੀਂ ਉਸ ਪਤੇ ਦੇ ਰਿਕਾਰਡ ਨੂੰ ਯਾਦ ਵਿੱਚ ਹਟਾ ਦੇਵਾਂਗੇ.

ਇੱਕ ਰਿਕਾਰਡ ਨੂੰ ਅਪਡੇਟ ਕਰੋ

ਅਪਡੇਟ ਲਈ ਮਾਰਕ ਕੀਤੇ ਡੇਟਾ ਰਿਕਾਰਡ ਦੀ ਸਥਿਰ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦਿਆਂ ਖੋਜ ਕੀਤੀ ਜਾਏਗੀ ਅਤੇ ਫਿਰ ਉਸ ਪਤੇ ਵਿੱਚ ਰਿਕਾਰਡ ਅਪਡੇਟ ਕੀਤਾ ਜਾਵੇਗਾ.

 

ਮੰਨ ਲਓ ਕਿ ਸਾਨੂੰ ਕੁਝ ਰਿਕਾਰਡ ਫਾਈਲ ਵਿੱਚ ਪਾਉਣੇ ਹਨ. ਪਰ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਦੁਆਰਾ ਤਿਆਰ ਡੇਟਾ ਬਾਲਕੇਟ ਦਾ ਪਤਾ ਪੂਰਾ ਹੈ ਜਾਂ ਡੇਟਾ ਪਹਿਲਾਂ ਹੀ ਉਸ ਪਤੇ ਵਿੱਚ ਮੌਜੂਦ ਹੈ. ਅਸੀਂ ਡੇਟਾ ਕਿਵੇਂ ਪਾਉਂਦੇ ਹਾਂ? ਸਥਿਰ ਹੈਸ਼ਿੰਗ ਵਿਚ ਇਸ ਸਥਿਤੀ ਨੂੰ ਕਿਹਾ ਜਾਂਦਾ ਹੈ ਬਾਲਟੀ ਓਵਰਫਲੋ. ਇਸ ਵਿਧੀ ਵਿਚ ਇਹ ਇਕ ਨਾਜ਼ੁਕ ਸਥਿਤੀ / ਕਮਜ਼ੋਰੀ ਹੈ. ਇਸ ਕੇਸ ਵਿਚ ਅਸੀਂ ਡੇਟਾ ਕਿੱਥੇ ਬਚਾਵਾਂਗੇ? ਅਸੀਂ ਡੇਟਾ ਨਹੀਂ ਗੁਆ ਸਕਦੇ. ਇਸ ਸਥਿਤੀ ਨੂੰ ਦੂਰ ਕਰਨ ਲਈ ਬਹੁਤ ਸਾਰੇ ਤਰੀਕੇ ਹਨ. ਆਮ ਤੌਰ 'ਤੇ ਵਰਤੇ ਜਾਣ ਵਾਲੇ belowੰਗ ਹੇਠਾਂ ਦਿੱਤੇ ਗਏ ਹਨ:

ਹੈਸ਼ਿੰਗ ਬੰਦ

ਇਸ ਵਿਧੀ ਵਿਚ ਅਸੀਂ ਇਕ ਨਵਾਂ ਐਡਰੈੱਸ ਬਾਲਟੀ ਉਸੇ ਪਤੇ ਨਾਲ ਪੇਸ਼ ਕਰਦੇ ਹਾਂ ਅਤੇ ਪੂਰੇ ਡਾਟੇ ਦੀ ਬਾਲਟੀ ਤੋਂ ਬਾਅਦ ਇਸ ਨੂੰ ਜੋੜਦੇ ਹਾਂ. ਬਾਲਟੀ ਦੇ ਓਵਰਫਲੋ ਨੂੰ ਪਾਰ ਕਰਨ ਦੇ ਇਹ methodsੰਗਾਂ ਨੂੰ ਬੰਦ ਹੈਸ਼ਿੰਗ ਜਾਂ ਓਵਰਫਲੋ ਚੇਨਿੰਗ

ਵਿਚਾਰ ਕਰੋ ਕਿ ਸਾਨੂੰ ਸਾਰਣੀਆਂ ਵਿੱਚ ਇੱਕ ਨਵਾਂ ਰਿਕਾਰਡ ਆਰ 2 ਪਾਉਣਾ ਹੈ. ਸਥਿਰ ਹੈਸ਼ ਫੰਕਸ਼ਨ ਡੇਟਾ ਬਾਲਕੇਟ ਐਡਰੈਸ ਨੂੰ 'ਏਏਸੀਡੀਬੀਐਫ' ਦੇ ਰੂਪ ਵਿੱਚ ਤਿਆਰ ਕਰਦਾ ਹੈ. ਪਰ ਇਹ ਬਾਲਟੀ ਨਵੇਂ ਡੇਟਾ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਪੂਰੀ ਹੈ. ਇਸ ਕੇਸ ਵਿੱਚ ਜੋ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਉਹ ਹੈ ਇੱਕ ਨਵੀਂ ਡਾਟਾ ਬਾਲਟੀ ‘ਏਏਸੀਡੀਬੀਐਫ’ ਡਾਟਾ ਬਾਲਟੀ ਦੇ ਅੰਤ ਵਿੱਚ ਜੋੜੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਇਸ ਨਾਲ ਜੁੜ ਜਾਂਦੀ ਹੈ. ਫਿਰ ਨਵੀਂ ਰਿਕਾਰਡ R2 ਨਵੀਂ ਬਾਲਟੀ ਵਿਚ ਪਾਈ ਜਾਂਦੀ ਹੈ. ਇਸ ਤਰ੍ਹਾਂ ਇਹ ਸਥਿਰ ਹੈਸ਼ਿੰਗ ਪਤੇ ਨੂੰ ਬਣਾਈ ਰੱਖਦਾ ਹੈ. ਜਦੋਂ ਇਹ ਭਰ ਜਾਂਦਾ ਹੈ, ਇਹ ਬਹੁਤ ਸਾਰੀਆਂ ਨਵੀਆਂ ਡਾਟਾ ਬਾਲਟੀਆਂ ਸ਼ਾਮਲ ਕਰ ਸਕਦਾ ਹੈ.

ਓਪਨ ਹੈਸ਼ਿੰਗ

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

ਹੇਠਲੀ ਉਦਾਹਰਣ ਵਿੱਚ, ਆਰ 2 ਇੱਕ ਨਵਾਂ ਰਿਕਾਰਡ ਹੈ ਜਿਸ ਨੂੰ ਪਾਉਣ ਦੀ ਜ਼ਰੂਰਤ ਹੈ. ਪਰ ਹੈਸ਼ ਫੰਕਸ਼ਨ 237 ਦੇ ਤੌਰ ਤੇ ਐਡਰੈੱਸ ਤਿਆਰ ਕਰਦਾ ਹੈ. ਪਰ ਇਹ ਪਹਿਲਾਂ ਹੀ ਪੂਰਾ ਹੈ. ਇਸ ਲਈ ਸਿਸਟਮ ਅਗਲੀ ਉਪਲਬਧ ਡੇਟਾ ਬਾਲਟੀ ਦੀ ਖੋਜ ਕਰਦਾ ਹੈ, 238 ਅਤੇ ਇਸ ਨੂੰ ਆਰ 2 ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ.

ਲੀਨੀਅਰ ਪੜਤਾਲ ਵਿੱਚ, ਪੁਰਾਣੀ ਬਾਲਟੀ ਅਤੇ ਨਵੀਂ ਬਾਲਟੀ ਵਿੱਚ ਅੰਤਰ ਅਕਸਰ ਹੱਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਇਹ 1 ਸਭ ਤੋਂ ਵੱਧ ਕੇਸ ਹੋਣਗੇ.

ਚਤੁਰਭੁਜ ਪੜਤਾਲ

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

ਡਬਲ ਹੈਸ਼ਿੰਗ

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

ਗਤੀਸ਼ੀਲ ਹੈਸ਼ਿੰਗ

ਹੈਸ਼ਿੰਗ ਦਾ ਇਹ ਤਰੀਕਾ ਸਥਿਰ ਹੈਸ਼ਿੰਗ - ਬਾਲਟੀ ਓਵਰਫਲੋ ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਦੂਰ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ. ਹੈਸ਼ਿੰਗ ਦੇ ਇਸ methodੰਗ ਵਿੱਚ, ਡੈਟਾ ਦੀਆਂ ਬਾਲਟੀਆਂ ਵਧਦੀਆਂ ਜਾਂ ਛੋਟੀਆਂ ਹੁੰਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਰਿਕਾਰਡ ਵੱਧਦੇ ਜਾਂ ਘੱਟਦੇ ਹਨ. ਹੈਸ਼ਿੰਗ ਦੀ ਇਸ ਵਿਧੀ ਨੂੰ ਐਕਸਟੈਂਡੇਬਲ ਹੈਸ਼ਿੰਗ ਵਿਧੀ ਵਜੋਂ ਵੀ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ. ਆਓ ਇਸ understandੰਗ ਨੂੰ ਸਮਝਣ ਲਈ ਇੱਕ ਉਦਾਹਰਣ ਵੇਖੀਏ.

ਵਿਚਾਰ ਕਰੋ ਕਿ ਸਾਰਣੀ ਵਿੱਚ ਤਿੰਨ ਰਿਕਾਰਡ ਹਨ ਆਰ 1, ਆਰ 2 ਅਤੇ ਆਰ 4 ਹਨ. ਇਹ ਰਿਕਾਰਡ ਕ੍ਰਮਵਾਰ 100100, 010110 ਅਤੇ 110110 ਪਤੇ ਤਿਆਰ ਕਰਦੇ ਹਨ. ਸਟੋਰ ਕਰਨ ਦਾ ਇਹ thisੰਗ ਇਸ ਪਤੇ ਦੇ ਸਿਰਫ ਇਕ ਹਿੱਸੇ ਨੂੰ ਮੰਨਦਾ ਹੈ - ਖ਼ਾਸਕਰ ਸਿਰਫ ਇਕ ਬਿੱਟ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ. ਇਸ ਲਈ ਇਹ ਉਹਨਾਂ ਵਿੱਚੋਂ ਤਿੰਨ ਨੂੰ ਐਡਰੈੱਸ 0 ਅਤੇ 1 ਤੇ ਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ.

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

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

ਡਾਇਨੈਮਿਕ ਹੈਸ਼ਿੰਗ ਦੇ ਫਾਇਦੇ

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

 

ਡਾਇਨੈਮਿਕ ਹੈਸ਼ਿੰਗ ਦੇ ਨੁਕਸਾਨ

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

ਆਰਡਰਡ ਇੰਡੈਕਸਿੰਗ ਅਤੇ ਹੈਸ਼ਿੰਗ ਦੀ ਤੁਲਨਾ

ਇੰਡੈਕਸਿੰਗ ਦਾ ਆਦੇਸ਼ ਦਿੱਤਾ

ਹੈਸ਼ਿੰਗ

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

ਸਟੈਟਿਕ ਹੈਸ਼ਿੰਗ ਛੋਟੇ ਡੇਟਾਬੇਸ ਲਈ ਵਧੀਆ ਰਹੇਗੀ ਜਿੱਥੇ ਰਿਕਾਰਡ ਅਕਾਰ id ਪਹਿਲਾਂ ਜਾਣਿਆ ਜਾਂਦਾ ਸੀ. ਜੇ ਡੇਟਾ ਵਿੱਚ ਵਾਧਾ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਹ ਗੰਭੀਰ ਸਮੱਸਿਆਵਾਂ ਜਿਵੇਂ ਬਾਲਟੀ ਦੇ ਓਵਰਫਲੋਅ ਵਿੱਚ ਆਉਂਦਾ ਹੈ.

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

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

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