Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

Sysadminium

Π‘Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ систСмного администратора

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ внСшний ΠΊΠ»ΡŽΡ‡ SQL

Из ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ внСшний ΠΊΠ»ΡŽΡ‡ Π² SQL. Π—Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π― ΠΏΠΎΠΊΠ°ΠΆΡƒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² PostgreSQL.

ВСория

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ это ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΏΠΎΠ»Π΅ΠΉ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Он Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ любой строки. ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния:

К ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅:

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ:

Π― сам Π½Π΅ имСю большого ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SQL, Π½ΠΎ Π² ΠΊΠ½ΠΈΠ³Π°Ρ… ΠΏΠΈΡˆΡƒΡ‚ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ СстСствСнный ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡. ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, я ΠΏΠΎΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ смогу.

Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ

ΠŸΠ΅Ρ€Π²ΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½Π°Ρ Π·Π°Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° – это ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ идСнтификация ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки. Но ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ. Π’ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ связывания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†. Для Ρ‚Π°ΠΊΠΎΠΉ связи ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ внСшний ΠΊΠ»ΡŽΡ‡ sql. Π’ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ† ΡΠΎΠ·Π΄Π°ΡŽΡ‚ внСшний ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся Π½Π° поля Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Но внСшний ΠΊΠ»ΡŽΡ‡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π»ΡŽΠ±Ρ‹Π΅ поля Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅:

НапримСр, Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° β€œΠ£Ρ‡Π΅Π½ΠΈΠΊΠΈβ€ (pupils) ΠΈ выглядит ΠΎΠ½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ЀИО
full_name
Возраст
age
Класс
class
Иванов Иван Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡159А
Π‘ΡƒΠΌΠΊΠΈΠ½ Π€Ρ‘Π΄ΠΎΡ€ АндрССвич159А
ΠŸΠ΅Ρ‚Ρ€ΠΎΠ² АлСксСй НиколаСвич148Π‘
Π‘ΡƒΠ»Π³Π°ΠΊΠΎΠ² АлСксандр Π“Π΅Π½Π½Π°Π΄ΡŒΠ΅Π²ΠΈΡ‡148Π‘

Π’Π°Π±Π»ΠΈΡ†Π° pupils

И Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° β€œΠ£ΡΠΏΠ΅Π²Π°Π΅ΠΌΠΎΡΡ‚ΡŒβ€ (evaluations):

ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚
item
ЀИО
full_name
ΠžΡ†Π΅Π½ΠΊΠ°
evaluation
Русский ΡΠ·Ρ‹ΠΊΠ˜Π²Π°Π½ΠΎΠ² Иван Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡4
Русский ΡΠ·Ρ‹ΠΊΠŸΠ΅Ρ‚Ρ€ΠΎΠ² АлСксСй НиколаСвич5
ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°Π‘ΡƒΠ»Π³Π°ΠΊΠΎΠ² АлСксандр Π“Π΅Π½Π½Π°Π΄ΡŒΠ΅Π²ΠΈΡ‡3
Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°Π‘ΡƒΠΌΠΊΠΈΠ½ Π€Ρ‘Π΄ΠΎΡ€ АндрССвич5

Π’Π°Π±Π»ΠΈΡ†Π° evaluations

Π’ ΠΎΠ±ΠΎΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅: ЀИО. ΠŸΡ€ΠΈ этом Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ β€œΠ£ΡΠΏΠ΅Π²Π°Π΅ΠΌΠΎΡΡ‚ΡŒβ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ЀИО, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ β€œ Π£Ρ‡Π΅Π½ΠΈΠΊΠΈβ€œ. Π’Π΅Π΄ΡŒ нСльзя ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡƒΡ‡Π΅Π½ΠΈΠΊΡƒ ΠΎΡ†Π΅Π½ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ сущСствуСт.

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π² нашСм случаС ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ β€œΠ€Π˜Πžβ€ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ β€œ Π£Ρ‡Π΅Π½ΠΈΠΊΠΈβ€œ. А внСшним ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ β€œΠ€Π˜Πžβ€ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ β€œΠ£ΡΠΏΠ΅Π²Π°Π΅ΠΌΠΎΡΡ‚ΡŒβ€œ. ΠŸΡ€ΠΈ этом, Ссли ΠΌΡ‹ удаляСм запись ΠΎ ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΡƒΡ‡Π΅Π½ΠΈΠΊΠ΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ β€œΠ£Ρ‡Π΅Π½ΠΈΠΊΠΈβ€œ, Ρ‚ΠΎ всС Π΅Π³ΠΎ ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒΡΡ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ β€œΠ£ΡΠΏΠ΅Π²Π°Π΅ΠΌΠΎΡΡ‚ΡŒβ€œ.

Π•Ρ‰Ρ‘ стоит Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² PostgreSQL автоматичСски создаСт индСкс. ИндСкс ускоряСт доступ ΠΊ строкам Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²ΡƒΡ… Π˜Π²Π°Π½ΠΎΠ²Ρ‹Ρ… Иванов Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡Π΅ΠΉ Ρƒ нас Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ это ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эти Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠΈ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ с Π½ΠΈΠΌΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… school ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ ΠΊ Π½Π΅ΠΉ. Π—Π°Ρ‚Π΅ΠΌ создадим Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ pupils. ΠŸΡ€ΠΎ созданиС Ρ‚Π°Π±Π»ΠΈΡ† я ΡƒΠΆΠ΅ писал Ρ‚ΡƒΡ‚, Π° ΠΏΡ€ΠΎ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚. Π—Π°Ρ‚Π΅ΠΌ посмотрим Π½Π° Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \d:

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ создаётся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции PRIMARY KEY (имя_поля) Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \d Π½Π°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ Ρƒ нас Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ сдСлал Π΄Π²Π° ограничСния:

ИндСкс Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π°Π»ΠΎΠΆΠΈΠ» Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ – записи Π² ΠΏΠΎΠ»Π΅ full_name Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом создадим Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ evaluations:

Π’ этом случаС ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ \d Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ создался внСшний ΠΊΠ»ΡŽΡ‡ (Foreign-key), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ относится ΠΊ полю full_name ΠΈ ссылаСтся Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ pupils.

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструкции FOREIGN KEY (имя_поля) REFERENCES Ρ‚Π°Π±Π»ΠΈΡ†Π°_Π½Π°_ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ_ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ.

Боздавая внСшний ΠΊΠ»ΡŽΡ‡ ΠΌΡ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΎΠΏΡ†ΠΈΡŽ ON DELETE CASCADE. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строки с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠΌ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ pupils, всС строки связанныС с этим ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠΌ удалятся ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ evaluations автоматичСски.

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌΠΈ

Π—Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ β€œpupilsβ€œ:

Π—Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ β€œevaluationsβ€œ:

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΡƒ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡƒΡ‡Π΅Π½ΠΈΠΊΡƒ:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ (insert) ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ (update) Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ evaluations, Π² ΠΏΠΎΠ»Π΅ full_name ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² этом ΠΆΠ΅ ΠΏΠΎΠ»Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ pupils.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ΄Π°Π»ΠΈΠΌ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡƒΡ‡Π΅Π½ΠΈΠΊΠ° ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ pupils:

И посмотрим Π½Π° строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ evaluations:

Как Π²ΠΈΠ΄Π½ΠΎ, строка с full_name равная β€˜Π˜Π²Π°Π½ΠΎΠ² Иван Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡β€™ Ρ‚ΠΎΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΈΠ»Π°ΡΡŒ. Если Π±Ρ‹ Ρƒ Иванова Π±Ρ‹Π»ΠΎ Π±Ρ‹ большС ΠΎΡ†Π΅Π½ΠΎΠΊ, ΠΎΠ½ΠΈ всё Ρ€Π°Π²Π½ΠΎ Π±Ρ‹ всС ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈΡΡŒ. Π—Π° это, Ссли ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ опция ON DELETE CASCADE.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Π½ΠΈΠΊΠ° с Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ-ΠΆΠ΅ ЀИО, ΠΊΠ°ΠΊ Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…:

НичСго Π½Π΅ Π²Ρ‹ΡˆΠ»ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ такая запись ΡƒΠΆΠ΅ сущСствуСт Π² ΠΏΠΎΠ»Π΅ full_name, Π° это ΠΏΠΎΠ»Π΅ Ρƒ нас ΠΈΠΌΠ΅Π΅Ρ‚ индСкс. Π—Π½Π°Ρ‡ΠΈΡ‚ значСния Π² Π½Ρ‘ΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅.

Боставной ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡

Π•ΡΡ‚ΡŒ большая Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ школС Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π΄Π²Π° ΡƒΡ‡Π΅Π½ΠΈΠΊΠ° с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ЀИО. Но мСньшС вСроятности Ρ‡Ρ‚ΠΎ эти Π΄Π²Π° ΡƒΡ‡Π΅Π½ΠΈΠΊΠ° Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ классС. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π·ΡΡ‚ΡŒ Π΄Π²Π° поля, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ full_name ΠΈ class.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΠΌ наши Ρ‚Π°Π±Π»ΠΈΡ‡ΠΊΠΈ ΠΈ создадим ΠΈΡ… Π·Π°Π½ΠΎΠ²ΠΎ, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ создадим ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ составной ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡:

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ€Π°Π·Π½ΠΈΡ†Π° Π½Π΅ большая. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π² PRIMARY KEY ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π²Π° поля вмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ. И Π² FOREIGN KEY Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π²Π° поля вмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ. Ну ΠΈ Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ evaluations ΠΏΡ€ΠΈ создании Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ class, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Ρ‚Π°ΠΌ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π½Π° структуры этих Ρ‚Π°Π±Π»ΠΈΡ†:

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ pupils ΡƒΠΆΠ΅ состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΏΠΎΠ»Π΅ΠΉ, поэтому внСшний ΠΊΠ»ΡŽΡ‡ ссылаСтся Π½Π° эти Π΄Π²Π° поля.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ЀИО Π²Π±ΠΈΡ‚ΡŒ Π² Π½Π°ΡˆΡƒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΏΡ€ΠΈ условии Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… классах:

И Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ссылаСтся другая Ρ‚Π°Π±Π»ΠΈΡ†Π° Π²Ρ‹ Π½Π΅ смоТСтС:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΠ΄Π°Π»ΠΈΠΌ наши Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС:

Π›ΠΈΠ±ΠΎ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ каскадно Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ pupils вмСстС с внСшним ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ evaluations:

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, послС каскадного удалСния Ρƒ нас вмСстС с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ pupils удался внСшний ΠΊΠ»ΡŽΡ‡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ evaluations.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ связи Π² ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…

Π’Ρ‹ΡˆΠ΅ я постоянно создавал ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ внСшний ΠΊΠ»ΡŽΡ‡ΠΈ ΠΏΡ€ΠΈ создании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Но ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†.

Π’Π½Π°Ρ‡Π°Π»Π΅ ΡƒΠ΄Π°Π»ΠΈΠΌ ΠΎΡΡ‚Π°Π²ΡˆΡƒΡŽΡΡ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ:

И сдСлаСм Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π΅Π· ΠΊΠ»ΡŽΡ‡Π΅ΠΉ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ pupils:

И создадим внСшний ΠΊΠ»ΡŽΡ‡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ evaluations:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Ρ‡Ρ‚ΠΎ Ρƒ нас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ:

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я рассказал ΠΏΡ€ΠΎ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ внСшний ΠΊΠ»ΡŽΡ‡ sql. А Ρ‚Π°ΠΊΠΆΠ΅ продСмонстрировал, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ связанныС ΠΌΠ΅ΠΆΠ΄Ρƒ собой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ связь ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. Π’Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ ограничСния Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ½ Ρ€Π΅ΡˆΠ°Π΅Ρ‚. И Π²Π΄ΠΎΠ±Π°Π²ΠΎΠΊ, ΠΊΠ°ΠΊΠΈΠ΅ трСбования ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊ Π½Π΅ΠΌΡƒ. ВмСстС с Ρ‚Π΅ΠΌ я ΠΏΠΎΠΊΠ°Π·Π°Π» Π²Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с составным ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ внСшний ΠΊΠ»ΡŽΡ‡ sql ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΈ внСшний ΠΊΠ»ΡŽΡ‡ Ρ‚Π°Π±Π»ΠΈΡ† рСляционных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

ВступлСниС

Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ (устройство рСляционной Π‘Π”) ΠΌΡ‹ Ρ€Π°Π·Π±ΠΈΡ€Π°Π»ΠΈ, ΠΊΠ°ΠΊ устроСна рСляционная (табличная) Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ выяснили, Ρ‡Ρ‚ΠΎ основными элСмСнтами рСляционной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ: Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, столбцы ΠΈ строки, Π° Π² матСматичСских понятиях: ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ. Π’Π°ΠΊΠΆΠ΅ часто, строки Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ записями, столбцы Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ, Π° пСрСсСчСниС записи ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ячСйкой.

Π’Π°ΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ содСрТаниС строки ΠΈ названия столбцов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Π°Ρ…

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±Π°Π·Ρ‹ для Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…: тСкстов, Π΄Π°Ρ‚, Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, событий, Ρ†ΠΈΡ„Ρ€. Π’ зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ рСляционныС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… дСлят Π½Π° Ρ‚ΠΈΠΏΡ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚) ΠΈΠΌΠ΅Π΅Ρ‚ своС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Π­Ρ‚ΠΎ основныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π° самом Π΄Π΅Π»Π΅ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ язык программирования ΠΈΠΌΠ΅Π΅Ρ‚ свой Π½Π°Π±ΠΎΡ€ систСмных Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΈ внСшний ΠΊΠ»ΡŽΡ‡ Ρ‚Π°Π±Π»ΠΈΡ† рСляционных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡

Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ вспоминали: каТдая строка (запись) Π‘Π” Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°. ИмСнно ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, максимально ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ запись. МоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡: Π½Π°Π±ΠΎΡ€ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ², ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, ΠΊΠ°ΠΊ primary key.

Primary key (PK) ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Поясню ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

На логичСской связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, стоит ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠšΠ»ΡŽΡ‡ внСшний

Foreign key, ΠΊΡ€Π°Ρ‚ΠΊΠΎ FK. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ связь, ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π‘Π”.

НапримСр, Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ А ΠΈ Π’. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ А (ΠΎΠ±ΡƒΠ²ΡŒ), Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡: Ρ€Π°Π·ΠΌΠ΅Ρ€, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π’ (Ρ†Π²Π΅Ρ‚) Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€. Π’ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Β«Ρ€Π°Π·ΠΌΠ΅Ρ€Β» это ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ внСшний ΠΊΠ»ΡŽΡ‡ для логичСской связи Ρ‚Π°Π±Π»ΠΈΡ† Π’ ΠΈ А.

Π‘ΠΎΠ»Π΅Π΅ слоТный ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π”Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: Π›ΡŽΠ΄ΠΈ ΠΈ НомСра Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ².

Π’Π°Π±Π»ΠΈΡ†Π°: Π›ΡŽΠ΄ΠΈ

primary keyИмя
1Π—Π°ΠΉΡ†Π΅Π²
2Π‘Π΅Π»ΠΊΠΈΠ½
3Π’ΠΎΠ»ΠΊΠΎΠ²

Π’Π°Π±Π»ΠΈΡ†Π°: НомСра Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ²

primary keyΡ‚Π΅Π»Π΅Ρ„ΠΎΠ½foreign key
1123451
2543211
36789102
41098763
5135793

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ НомСра Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² PK ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½. FK этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ являСтся PK Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π›ΡŽΠ΄ΠΈ. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΈ людьми обСспСчиваСт FK Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ². Π’ΠΎ Π΅ΡΡ‚ΡŒ:

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ добавлю, Ρ‡Ρ‚ΠΎ любая Π‘Π£Π‘Π”, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅Π΅Ρ‚ тСхничСскиС возмоТности ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡

ΠŸΠ΅Ρ€Π²ΠΈΜΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (Π°Π½Π³Π». primary key ) β€” Π² рСляционной ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π² качСствС основного ΠΊΠ»ΡŽΡ‡Π° (ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).

Если Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ имССтся СдинствСнный ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, ΠΎΠ½ являСтся ΠΈ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. Если ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ нСсколько, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… выбираСтся Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈΒ».

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ‚Π΅ΠΎΡ€ΠΈΠΈ всС ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ эквивалСнтны, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ свойствами ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Однако Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выбираСтся Ρ‚ΠΎΡ‚ ΠΈΠ· ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π΅Π½ для Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… практичСских Ρ†Π΅Π»Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для создания Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… Π»ΠΈΠ±ΠΎ для создания кластСрного индСкса. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ наимСньший Ρ€Π°Π·ΠΌΠ΅Ρ€ (физичСского хранСния) ΠΈ/ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ наимСньшСС количСство Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° β€” сохранСниС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. ВсСгда сущСствуСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ пСрСстанСт Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π² Π΄ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ пСрспСктивС ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ систСмС. НапримСр, Ссли Π½ΠΎΠΌΠ΅Ρ€ студСнчСской Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ послСднюю Ρ†ΠΈΡ„Ρ€Ρƒ Π³ΠΎΠ΄Π° поступлСния, Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° Π³Ρ€ΡƒΠΏΠΏ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π³Ρ€ΡƒΠΏΠΏ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 10 Π»Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΡΡ‚Π°Ρ€Π°ΡŽΡ‚ΡΡ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ с наибольшСй Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ ΡƒΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡Β» появился ΠΈ стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ сущСствСнно Ρ€Π°Π½Π΅Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° Β«ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡Β». ВслСдствиС этого мноТСство ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π² рСляционной Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π±Ρ‹Π»ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ сформулированы с ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ (Π° Π½Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ) ΠΊΠ»ΡŽΡ‡Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, опрСдСлСния Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ. Π’Π°ΠΊΠΆΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡Β» Π²ΠΎΡˆΡ‘Π» Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΡƒ 12 ΠΏΡ€Π°Π²ΠΈΠ» Кодда ΠΊΠ°ΠΊ основной способ адрСсации любого значСния ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ (Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹) наряду с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ (Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹) ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° (столбца).

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΈ составныС ΠΊΠ»ΡŽΡ‡ΠΈ

Если ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ состоит ΠΈΠ· СдинствСнного Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π΅Π³ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ простым ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

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

ЕстСствСнныС ΠΈ суррогатныС ΠΊΠ»ΡŽΡ‡ΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ primary key ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ΠΉ, содСрТащих ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± описываСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…). Π’Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ СстСствСнным ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. ВСорСтичСски, СстСствСнный ΠΊΠ»ΡŽΡ‡ всСгда ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π² этом случаС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚. Π½. ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠ»ΡŽΡ‡ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ

ΠŸΠ΅Ρ€Π²ΠΈΜΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (Π°Π½Π³Π». primary key ) β€” понятиС Ρ‚Π΅ΠΎΡ€ΠΈΠΈ рСляционных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, минимальноС мноТСство Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ подмноТСством Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, составноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ опрСдСляСт ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅ (столбСц) ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ (ΠΈΠ»ΠΈ комбинация Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° записи (строки) этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Бмысл

Π’ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ рСляционных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π° прСдставляСт собой ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ нСупорядочСнный Π½Π°Π±ΠΎΡ€ записСй. ЕдинствСнный способ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ запись Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ β€” это ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π±Ρ‹ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ для этой записи. ΠžΡ‚ΡΡŽΠ΄Π° ΠΈ происходит понятиС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° β€” Π½Π°Π±ΠΎΡ€Π° ΠΏΠΎΠ»Π΅ΠΉ (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², столбцов) Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° для любой записи (строки) этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° для Π»ΡŽΠ±Ρ‹Ρ… Π΄Π²ΡƒΡ… записСй.

ИспользованиС

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ для записСй. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ запись. На использовании ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ основана организация связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ рСляционной Π‘Π”. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ связь Ρ‚ΠΈΠΏΠ° Β«ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒΒ» ΠΈΠ»ΠΈ Β«ΠΎΠ΄ΠΈΠ½ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ(ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ)Β» Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· связываСмых Ρ‚Π°Π±Π»ΠΈΡ† Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ»Π΅ (поля), содСрТащСС(ΠΈΠ΅) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° записи Π² связанной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ (Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ внСшним ΠΊΠ»ΡŽΡ‡ΠΎΠΌ). Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ связи Ρ‚ΠΈΠΏΠ° Β«ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΒ» ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Β«Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ связи» ΠΈΠ»ΠΈ Β«Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ассоциации»), каТдая запись ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТит ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ Π΄Π²ΡƒΡ… связанных записСй Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΈ составныС ΠΊΠ»ΡŽΡ‡ΠΈ

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· СдинствСнного поля Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, значСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° прСдприятии Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π²ΡƒΡ… Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ, поэтому Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, содСрТащСй записи ΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°Ρ…, Ρ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ простым ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

ЕстСствСнныС ΠΈ суррогатныС ΠΊΠ»ΡŽΡ‡ΠΈ

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ΠΉ, содСрТащих ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± описываСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…). Π’Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ СстСствСнным ΠΊΠ»ΡŽΡ‡ΠΎΠΌ. ВСорСтичСски, СстСствСнный ΠΊΠ»ΡŽΡ‡ всСгда ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π² этом случаС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚. Π½. ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, использованиС СстСствСнных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ наталкиваСтся Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ слоТности:

ВслСдствиС этих ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сообраТСний Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ проСктирования Π‘Π” Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚. Π½. синтСтичСскиС (суррогатныС) ΠΊΠ»ΡŽΡ‡ΠΈ β€” искусствСнно созданныС тСхничСскиС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ поля, Π½Π΅ нСсущиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ….

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

SQL ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово PRIMARY KEY

SQL PRIMARY KEY

Команда PRIMARY KEY ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Π’Π°Π±Π»ΠΈΡ†Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ.

SQL PRIMARY KEY Π² CREATE TABLE

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ SQL создаСт ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π² столбцС «ID» ΠΏΡ€ΠΈ создании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ «Persons»:

SQL Server / Oracle / MS Access:

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ограничСния PRIMARY KEY ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ PRIMARY KEY для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис SQL:

MySQL / SQL Server / Oracle / MS Access:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ (PK_Person). Однако Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° состоит ΠΈΠ· TWO COLUMNS (ID + LastName).

SQL PRIMARY KEY Π² ALTER TABLE

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° для столбца «ID», ΠΊΠΎΠ³Π΄Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΡƒΠΆΠ΅ создана, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ SQL:

MySQL / SQL Server / Oracle / MS Access:

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ограничСния ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… столбцов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис SQL:

MySQL / SQL Server / Oracle / MS Access:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ALTER TABLE для добавлСния ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°, Ρ‚ΠΎ столбСц(Ρ‹) ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ объявлСн Π½Π΅ содСрТащим Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ создании Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹).

ΠžΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ SQL:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *