Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: конспСкт Π»Π΅ΠΊΡ†ΠΈΠΉΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 20

Автор ΠšΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ² Авторов

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅


И ΠΏΡƒΡΡ‚ΡŒ ΠΏΡ€ΠΈ этом Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ создания нашСго Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Β«Π”ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅Β» ΠΏΡ€ΠΈ объявлСнии Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΌΡ‹ использовали ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ поддСрТания ссылочной цСлостности Cascade, Ρ‚. Π΅. ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ создания Π½Π°ΡˆΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Create table Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅

Primary_key

Integer

not Null

primary key (Primary_key)


Create table Π”ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅

Foreign_key

Integer

Null

foreign key (Foreign_key) references Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ (Primary_key)

on update Cascade

on delete Cascade

Π’ΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ с ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ? Оно ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π”ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅


Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Cascade обСспСчиваСт каскадноС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ всСх ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° обновлСния ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ.

3. Set Null, ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ присвоСния Null-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Если ΠΆΠ΅ ΠΌΡ‹ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ создания нашСго Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈ объявлСнии Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ примСняСм ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ поддСрТания ссылочной цСлостности Set Null, Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π²Π»Π΅Ρ‡Π΅Ρ‚ Π·Π° собой автоматичСскоС присвоСниС Null-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚Π΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ внСшнСго ΠΊΠ»ΡŽΡ‡Π° Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Null-значСния Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, Ссли Ρ‚Π°ΠΊΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΡƒΠΆΠ΅ использовали Ρ€Π°Π½Π΅Π΅. ΠŸΡƒΡΡ‚ΡŒ Π½Π°ΠΌ Π΄Π°Π½Ρ‹ Π΄Π²Π° Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ:

Β«Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅Β»


Π”ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅


Как ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Null-значСния, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Set Null Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ.

Допустим Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (…, 1), Π° ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (…, 2) ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅


Π’ΠΎΠ³Π΄Π° с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ объявлСнии Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π½Π°ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ»ΠΎΡΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ поддСрТания ссылочной цСлостности Set Null, Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π”ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅


На ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (…, 1) Π½Π΅ ссылался Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡŽΡ‡ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, поэтому Π΅Π³ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ Π²Π»Π΅Ρ‡Π΅Ρ‚ Π·Π° собой Π½ΠΈΠΊΠ°ΠΊΠΈΡ… послСдствий.

Π‘Π°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ создания Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ с использованиСм ΠΏΡ€Π°Π²ΠΈΠ»Π° Set Null ΠΏΡ€ΠΈ объявлСнии Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Create table Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅

Primary_key

Integer

not Null

primary key (Primary_key)


Create table Π”ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅

Foreign_key

Integer

Null

foreign key (Foreign_key) references Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ (Primary_key)

on update Set Null

on delete Set Null

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» поддСрТания ссылочной цСлостности ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎ Ρ„Ρ€Π°Π·Π°Ρ… on update ΠΈ on delete Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ.

НСобходимо ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ вставка ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡Π° Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, Ссли это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ ссылочной цСлостности, Ρ‚. Π΅. ΠΊ появлСнию Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… висящих ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΆΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π½ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… условиях Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ ссылочной цСлостности.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ со своими ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ поддСрТания ссылочной цСлостности, Ссли внСшниС ΠΊΠ»ΡŽΡ‡ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠ°ΠΊ Π½Π° ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ.

Если Ρƒ программистов Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ссылочной цСлостности ΠΊΠ°ΠΊΠΈΠΌΠΈ-Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… стандартных ΠΏΡ€Π°Π²ΠΈΠ», Ρ‚ΠΎ процСдурная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π°ΠΊΠΈΡ… нСстандартных ΠΏΡ€Π°Π²ΠΈΠ» поддСрТания ссылочной цСлостности обСспСчиваСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ². К соТалСнию, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ рассмотрСниС этого понятия Π½Π΅ сходит Π² наш курс Π»Π΅ΠΊΡ†ΠΈΠΉ.

5. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ индСксов

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… автоматичСски связано с созданиСм индСксов.

Π”Π°Π΄ΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ понятия индСкса.

ИндСкс – это систСмная структура Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ размСщаСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ упорядочСнный ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠ»ΡŽΡ‡Π° со ссылками Π½Π° Ρ‚Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… эти значСния Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ.

Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π² систСмах управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ²:

1) простыС.

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ индСкс бСрСтся для подсхСмы схСмы Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°;

2) составныС.

БоотвСтствСнно составной индСкс – это индСкс для подсхСмы, состоящСй ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

Но, ΠΊΡ€ΠΎΠΌΠ΅ дСлСния Π½Π° простыС ΠΈ составныС индСксы, Π² систСмах управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… сущСствуСт Π΄Π΅Π»Π΅Π½ΠΈΠ΅ индСксов Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅. Π˜Ρ‚Π°ΠΊ:

1) ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ индСксы – это индСксы, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° ΠΎΠ΄ΠΈΠ½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚.

Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ индСксы, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ;

2) Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ индСксы – это индСксы, ΠΌΠΎΠ³ΡƒΡ‰ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСскольким Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

ΠΠ΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Ρ‡Π°Ρ‰Π΅ всСго ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ внСшним ΠΊΠ»ΡŽΡ‡Π°ΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ индСксов Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅, Ρ‚. Π΅. рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ:




Π—Π΄Π΅ΡΡŒ соотвСтствСнно Primary key – ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Foreign key – внСшний ΠΊΠ»ΡŽΡ‡. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² этих ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ…, индСкс Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Primary key – ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ соотвСтствуСт ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ, Ρ‚. Π΅. ΠΎΠ΄Π½ΠΎΠΌΡƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ, Π° индСкс Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Foreign key – Π½Π΅ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ, вСдь ΠΎΠ½ соотвСтствуСт ΠΊΠ»ΡŽΡ‡Π°ΠΌ внСшним. И Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«20Β» соотвСтствуСт ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строкам Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹-ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ.

Но ΠΈΠ½ΠΎΠ³Π΄Π° индСксы ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ ΠΊΠ»ΡŽΡ‡Π°ΠΌ. Π­Ρ‚ΠΎ дСлаСтся Π² систСмах управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сортировки ΠΈ поиска.

НапримСр, дихотомичСский поиск значСния индСкса Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² систСмах управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ. ΠžΡ‚ΠΊΡƒΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ эти свСдСния? Они Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ нСслоТных вычислСний, Ρ‚. Π΅. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

106 = (103)2 = 220;

Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ индСксы Π² систСмах управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΠΆΠ΅ извСстного Π½Π°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Create, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова index. Выглядит Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Create index имя индСкса

On имя Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ (имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°,..);

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ Π½Π°ΠΌ мСталингвистичСский символ Β«,..Β», ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, Ρ‚. Π΅. Π² этом ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создан индСкс, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ нСскольким Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ.

Если трСбуСтся ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс, ΠΏΠ΅Ρ€Π΅Π΄ словом index Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово unique, ΠΈ Ρ‚ΠΎΠ³Π΄Π° вСсь ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ создания Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ индСкса ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Create unique index имя индСкса

On имя Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ (имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°);

Π’ΠΎΠ³Π΄Π° Π² самом ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅, Ссли Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ обозначСния Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов (мСталингвистичСский символ []), ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ создания индСкса Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Create [unique] index имя индСкса

On имя Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ (имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°,..);

Если трСбуСтся ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ индСкс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Drop, Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΆΠ΅ извСстный Π½Π°ΠΌ:

Drop index {имя Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ. Имя индСкса},.. ;

ΠŸΠΎΡ‡Π΅ΠΌΡƒ здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½Π½ΠΎΠ΅ имя индСкса «имя Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ. Имя индСкса»? Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ удалСния индСкса всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΅Π³ΠΎ ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½Π½ΠΎΠ΅ имя, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ имя индСкса Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Π½ΠΎ Π½Π΅ большС.

6. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ

Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΡ‡Π΅Π½ΡŒ часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ.

КакиС основныС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ проСктирования Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…? ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌ ΠΈΡ…:

1) вставка ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ.

ΠžΡ‡Π΅Π½ΡŒ часто Π½ΡƒΠΆΠ½ΠΎ Π² ΡƒΠΆΠ΅ сформированноС Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ;

2) ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

А Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ этой ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ программирования встрСчаСтся Π΅Ρ‰Π΅ Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ прСдыдущая, вСдь ΠΏΡ€ΠΈ поступлСнии Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… вашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΌΠΈΠ½ΡƒΠ΅ΠΌΠΎ придСтся ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ;

3) ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ.