ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ„ΠΈΠ»ΡŒΠΌΠ°Ρ… ΠΈ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°Ρ…

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов ΠΎΠ½Π° состоит ΠΈΠ· 4 классов: Π’ΠΈΠΏΡ‹, ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Атрибуты ΠΈ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ классС, ΠΊΡ€ΠΎΠΌΠ΅ класса ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, имССтся 3 Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ΄ΠΈΠ½ — это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса. Π’ ΠΊΠ»Π°ΡΡΡ‹ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Π’ΠΈΠΏΡ‹. Класс ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ своСго ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π½ΠΎ Π² Π½Π΅Π³ΠΎ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΎΠ² Атрибуты ΠΈ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π˜ΡΡ…ΠΎΠ΄Ρ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ„ΠΈΠ»ΡŒΠΌΠ°Ρ… ΠΈ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°Ρ… (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

  • 1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы
  • 2.1 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования
  • 2.2 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий
  • 2.3 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов
  • 3. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСляционной ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  • 4. ΠœΠ°ΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСляционной ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΡŒ
  • 4.1 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов для ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΠΈ
  • 4.2 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  • 5. ЛогичСская рСализация Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  • 6. ЀизичСская рСализация Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  • 6.1 Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹
  • 7. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ
  • Π’Ρ‹Π²ΠΎΠ΄Ρ‹
  • Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Ρ‹ (информация для Π·Ρ€ΠΈΡ‚Π΅Π»Π΅ΠΉ):

Ρ„ΠΈΠ»ΡŒΠΌΡ‹: Π½Π°Π·Π²Π°Π½ΠΈΠ΅, описаниС, ΠΆΠ°Π½Ρ€, Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΈΡ… ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°Ρ… показываСтся, Ρ†Π΅Π½Ρ‹ Π½Π° Π±ΠΈΠ»Π΅Ρ‚Ρ‹;

ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Ρ‹: Π½Π°Π·Π²Π°Π½ΠΈΠ΅, адрСс, схСма ΠΏΡ€ΠΎΠ΅Π·Π΄Π°, описаниС, число мСст, акустичСская систСма, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.

2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы

2.1 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования

На ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ исслСдования выяснСно, Ρ‡Ρ‚ΠΎ основная Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ систСмы — сопровоТдСниС процСсса.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования прСдставлСна Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅:

Рисунок 2.1 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, Ρƒ ΠΏΠΎΡΠ΅Ρ‚итСля Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ Π±ΠΈΠ»Π΅Ρ‚. ΠŸΡ€ΠΈ этом Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΈΠ»ΡŒΠΌ. Π›ΠΈΠ±ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ критСриям ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€, ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΠΌΡ‹ Π² Π½Π΅ΠΌ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚.

информационная систСма Π±Π°Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

2.2 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий

НиТС прСдставлСна Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий:

Рисунок 2.2 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий

Π§Π΅Ρ€Π΅Π· интСрфСйс ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ„ΠΈΠ»ΡŒΠΌΡƒ ΠΈΠ»ΠΈ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Ρƒ. Π’Ρ‹Π±Ρ€Π°Π² Ρ„ΠΈΠ»ΡŒΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π΅ΠΌ (ΠΆΠ°Π½Ρ€, Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³, Ρ†Π΅Π½Ρƒ Π½Π° Π±ΠΈΠ»Π΅Ρ‚, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ), Π° Ρ‚Π°ΠΊ ΠΆΠ΅ список ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΠΌ. Из ΡΠΏΠΈΡΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π΅ΠΌ (адрСс, Π½Π°Π·Π²Π°Π½ΠΈΠ΅, число мСст, акустичСская систСма, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ экрана).

2.3 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ прСдставлСна Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов:

Рисунок 2.3 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ 2 класса: Ѐильм ΠΈ ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€. Π’ ΠΊΠ»Π°ΡΡ Ѐильм входят 6 Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ID_Ρ„ΠΈΠ»ΡŒΠΌΠ° являСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ Ρ„ΠΈΠ»ΡŒΠΌΠ°. Класс ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ 6 Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ID_ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π° являСтся Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ. ΠšΠ»Π°ΡΡΡ‹ соСдинСны ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ΠΌ «ΠœΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ» .

3. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСляционной ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ классы сущностями. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·-Π·Π° постоянного Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° классов. Π‘Ρ‚ΠΎΠΉΠΊΠΈΠ΅ классы ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ постоянного хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, для всСх постоянных классов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡƒΡ‰Π½ΠΎΡΡ‚ях. Π­Ρ‚ΠΎΡ‚ процСсс называСтся «ΠœΠ°ΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅» (ΠΎΡ‚. Π°Π½Π³Π». Mapping).

Π’ΠΎΠ³Π΄Π° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Ѐильм ΠΈ ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€, выявлСнныС Π½Π° ΡΡ‚Π°ΠΏΠ΅ построСния ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ (Ρ‚Π°Π±Π».3.1)

Π’Π°Π±Π»ΠΈΡ†Π° 3.1 Атрибуты ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «Π€ΠΈΠ»ΡŒΠΌ»

Атрибут

ОписаниС

ID_Ρ„ΠΈΠ»ΡŒΠΌΠ°

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

НазваниС_Ρ„ΠΈΠ»ΡŒΠΌΠ°

НазваниС Ρ„ΠΈΠ»ΡŒΠΌΠ°

Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π–Π°Π½Ρ€ Π Π΅ΠΉΡ‚ΠΈΠ½Π³ Π¦Π΅Π½Π° Π±ΠΈΠ»Π΅Ρ‚Π°

Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΠΌΠ° Π–Π°Π½Ρ€ Ρ„ΠΈΠ»ΡŒΠΌΠ° Π Π΅ΠΉΡ‚ΠΈΠ½Π³ Ρ„ΠΈΠ»ΡŒΠΌΠ° Π¦Π΅Π½Π° Π±ΠΈΠ»Π΅Ρ‚Π°

ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ Ѐильм соотвСтствуСт полная Π€Π—: ID_Ρ„ΠΈΠ»ΡŒΠΌΠ° > НазваниС Ρ„ΠΈΠ»ΡŒΠΌΠ°, Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΆΠ°Π½Ρ€, Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³, Ρ†Π΅Π½Π° Π±ΠΈΠ»Π΅Ρ‚Π°. ВсС поля ΠΊΡ€ΠΎΠΌΠ΅ «ID_Ρ„ΠΈΠ»ΡŒΠΌΠ°» Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

Π’Π°Π±Π»ΠΈΡ†Π° 3.2 Атрибуты ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€»

Атрибут

ОписаниС

ID_ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°

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

АдрСс

АдрСс ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°

НазваниС_ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π° Число_мСст АкустичСская_систСма Π€ΠΎΡ€ΠΌΠ°Ρ‚_экрана

НазваниС ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π° Число мСст АкустичСская систСма Π€ΠΎΡ€ΠΌΠ°Ρ‚ экрана

ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ соотвСтствуСт полная Π€Π—: ID_ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π° > адрСс, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°, число мСст, акустичСская систСма, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ экрана. ВсС поля ΠΊΡ€ΠΎΠΌΠ΅ «ID_ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°» Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

Анализ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ мСсто для ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ Ѐильм ΠΈ ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π½Ρ‹Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€-Ѐильм Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ.

Бущности Ѐильм ΠΈ ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ соСдинСны связью «ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ» (М: N). ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ связи ΠΌΠ½ΠΎΠ³ΠΈΠ΅-ΠΊΠΎ-ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ связи экзСмпляров сущностСй. Для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΡΡ‚Π°Π²Π½ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ids. Она состоит ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ соСдиняСмых сущностСй.

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ рСляционная модСль Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Рисунок 3.1 — РСляционная модСль Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

4. ΠœΠ°ΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСляционной ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΡŒ

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

Одним ΠΈΠ· ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΈΠΊΠΎΠ² ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΠΈ стал Анатолий Π’Π΅Π½Ρ†Π΅Ρ€. Он ΠΎΠΏΠΈΡΠ°Π» ΠΏΡΡ‚ΡŒ основных тСзисов, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ проСктируСмая Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…:

1. КаТдая ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, информация ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранится Π² Π‘Π”, — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

2. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π‘Π” ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

3. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ свойства (строковыС, числовыС, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, пСрСчислимыС), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ сущности.

4. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ связаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Бвязь характСризуСтся связанными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ Ρ‚ΠΈΠΏΠΎΠΌ связи.

5. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ. Π’ ΡΡ‚ΠΎΠΌ случаС допускаСтся Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² Π½Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Вакая структура Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Π½Π° Π½ΠΈ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ бизнСс-ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡΡ‚ΠΎΠΉ основС практичСски Π»ΡŽΠ±ΡƒΡŽ бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ.

4.1 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов для ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΠΈ

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ, Π±Ρ‹Π»Π° спроСктирована Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов, которая удовлСтворяСт этим тСзисам (рис. 4.1).

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов ΠΎΠ½Π° состоит ΠΈΠ· 4 классов: Π’ΠΈΠΏΡ‹, ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Атрибуты ΠΈ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ классС, ΠΊΡ€ΠΎΠΌΠ΅ класса ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, имССтся 3 Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ΄ΠΈΠ½ — это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса. Π’ ΠΊΠ»Π°ΡΡΡ‹ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Атрибуты ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Π’ΠΈΠΏΡ‹. Класс ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ своСго ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π½ΠΎ Π² Π½Π΅Π³ΠΎ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΎΠ² Атрибуты ΠΈ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Рисунок 4.1 — Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов

4.2 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π’ΠΈΠΏΡ‹, ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Атрибуты ΠΈ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, выявлСнныС Π½Π° ΡΡ‚Π°ΠΏΠ΅ построСния ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ (Ρ‚Π°Π±Π».3.1).

Π’Π°Π±Π»ΠΈΡ†Π° 3.1 Атрибуты ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «Π’ΠΈΠΏΡ‹»

Атрибут

ОписаниС

ID_Ρ‚ΠΈΠΏΠ°_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

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

НазваниС

НазваниС Ρ‚ΠΈΠΏΠ°

ОписаниС

ОписаниС Ρ‚ΠΈΠΏΠ°

Π’Π°Π±Π»ΠΈΡ†Π° 3.2 Атрибуты ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹»

Атрибут

ОписаниС

ID_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

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

ID_Ρ‚ΠΈΠΏΠ°_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «Π’ΠΈΠΏΡ‹»

НазваниС_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

НазваниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π’Π°Π±Π»ΠΈΡ†Π° 3.3 Атрибуты ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «ΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹»

Атрибут

ОписаниС

ID_Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

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

ID_Ρ‚ΠΈΠΏΠ°_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «Π’ΠΈΠΏΡ‹»

НазваниС_Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

НазваниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

Π’Π°Π±Π»ΠΈΡ†Π° 3.3 Атрибуты ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹»

Атрибут

ОписаниС

ID_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹»

ID_ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ

ID_Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π’Π½Π΅ΡˆΠ½ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ «ΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹»

ВСкстовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НомСрноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ПолС для тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… ПолС для числовых Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ связи «ΠœΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠœΠ½ΠΎΠ³ΠΈΠΌ», Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ID_ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ эту связь.

5. ЛогичСская рСализация Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ cf_types. Для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ записСй Π²Π²Π΅Π΄Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ object_type_id.

Π’Π°Π±Π»ΠΈΡ†Π° 5.1 ОбоснованиС Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ cf_types:

Атрибут

Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ID_Ρ‚ΠΈΠΏΠ°_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

object_type_id

NUMBER

Primary Key

НазваниС

name

VARCHAR2 (50)

НазваниС

ОписаниС

description

VARCHAR2 (100)

ОписаниС

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ cf_obj. Для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ записСй Π²Π²Π΅Π΄Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ object_id.

Π’Π°Π±Π»ΠΈΡ†Π° 5.2 ОбоснованиС Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ cf_obj:

Атрибут

Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ID_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

object_id

NUMBER

Primary Key

ID_Ρ‚ΠΈΠΏΠ°_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

object_type_id

NUMBER

Foreign Key

НазваниС_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

name

VARCHAR2 (150)

НазваниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ cf_attr. Для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ записСй Π²Π²Π΅Π΄Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ attr_id.

Π’Π°Π±Π»ΠΈΡ†Π° 5.3 ОбоснованиС Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ cf_attr:

Атрибут

Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ID_Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

attr_id

NUMBER

Primary Key

ID_Ρ‚ΠΈΠΏΠ°_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

object_type_id

NUMBER

Foreign Key

НазваниС_Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

name

VARCHAR2 (50)

НазваниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ cf_par. ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚.

Π’Π°Π±Π»ΠΈΡ†Π° 5.4 ОбоснованиС Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ cf_par:

Атрибут

Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ†

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

ΠœΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ID_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

object_id

NUMBER

НомСр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Foreign Key

ID_ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ

relation_id

NUMBER

НомСр ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ

ID_Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

attr_id

NUMBER

НомСр Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°

Foreign Key

ВСкстовоС_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

text_value

VARCHAR2 (150)

ПолС для тСкстовых Π΄Π°Π½Π½Ρ‹Ρ…

НомСрноС_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

number_value

NUMBER

ПолС для Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Π‘Ρ…Π΅ΠΌΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… cf_meta Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ‚Π°ΠΊ:

Рисунок 5.1 — Π‘Ρ…Π΅ΠΌΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… cf_meta

6. ЀизичСская рСализация Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

6.1 Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, согласно схСмС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅:

Create table cf_types (

object_type_id Number NOT NULL,

name Varchar2 (50),

description Varchar2 (100),

Constraint pk_cf_types primary key (object_type_id));

Create table cf_attr (

attr_id Number NOT NULL,

object_type_id Number,

name Varchar2 (50),

Constraint pk_cf_attr primary key (attr_id));

Create table cf_obj (

object_id Number NOT NULL,

object_type_id Number,

name Varchar2 (150),

Constraint pk_cf_obj primary key (object_id));

Create table cf_par (

object_id Number NOT NULL,

relation_id Number,

attr_id Number,

text_value Varchar2 (150),

number_value Number);

Alter table cf_attr add Constraint r12 foreign key (object_type_id) references cf_types (object_type_id);

Alter table cf_obj add Constraint r11 foreign key (object_type_id) references cf_types (object_type_id);

Alter table cf_par add Constraint r14 foreign key (attr_id) references cf_attr (attr_id);

Alter table cf_par add Constraint r13 foreign key (object_id) references cf_obj (object_id);

7. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ

Π—Π°Π΄Π°Π½ΠΈΠ΅ 1

ВывСсти список Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΆΠ°Π½Ρ€ΠΎΠ² Ρ„ΠΈΠ»ΡŒΠΌΠ°.

SELECT DISTINCT text_value FROM cf_par par WHERE attr_id IN (SELECT attr_id FROM cf_attr WHERE name='genre')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 2

ВывСсти Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 5-я Π±ΡƒΠΊΠ²Π° «ΠΎ»

SELECT name

FROM cf_obj

WHERE SUBSTR (name, 5,1) ='ΠΎ' AND object_type_id IN (SELECT object_type_id FROM cf_types WHERE name LIKE 'Film')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 3

ВывСсти Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ², ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΆΠ°Π½Ρ€, названия ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоят ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ слов

SELECT obj. name, genre. text_value, dur. number_value

FROM cf_obj obj

JOIN cf_par genre ON genre. object_id=obj. object_id

AND obj. name LIKE '% %'

AND obj. object_type_id= (SELECT object_type_id FROM cf_types WHERE name='Film')

AND genre. attr_id= (SELECT attr_id FROM cf_attr WHERE name='genre')

JOIN cf_par dur ON dur. object_id=obj. object_id

WHERE dur. attr_id= (SELECT attr_id FROM cf_attr WHERE name='duration')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 4

ВывСсти Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΠΌΠ°, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³. Π¦Π΅Π½Π° ΠΈ ΠΆΠ°Π½Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… описываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… (30.75, 35) ΠΈ (УТасы, ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ)

SELECT obj. name, genre. text_value, dur. number_value, price. number_value

FROM cf_obj obj

JOIN cf_par genre ON genre. object_id=obj. object_id

AND obj. object_type_id= (SELECT object_type_id FROM cf_types WHERE name='Film')

AND genre. text_value IN ('УТасы','ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ')

JOIN cf_par price ON price. object_id=obj. object_id

AND price. number_value IN (35,30.75)

JOIN cf_par dur ON dur. object_id=obj. object_id

WHERE attr_id= (SELECT attr_id FROM cf_attr WHERE name='duration')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 5

ВывСсти список Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ проходят Π² ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π΅ Космос

SELECT obj. name

FROM cf_obj obj

JOIN cf_par rel ON rel. relation_id=obj. object_id

AND rel. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='ids')

WHERE rel. object_id IN (SELECT object_id FROM cf_obj WHERE name='Космос')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 6

ВывСсти список ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ΠΎΠ² ΠΈ Π²Π΅ΡΡŒ список Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² ΠΈΡ… Ρ†Π΅Π½, ΠΆΠ°Π½Ρ€ΠΎΠ², ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ проходят Π² ΡΡ‚ΠΈΡ… ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°Ρ…, отсортированных ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡŽ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°

SELECT cin. name, film. name, price. number_value, genre. text_value, duration. number_value

FROM cf_obj cin

JOIN cf_par par ON par. object_id=cin. object_id

AND par. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='ids')

JOIN cf_obj film ON film. object_id=par. relation_id

JOIN cf_par price ON price. object_id=film. object_id

AND price. attr_id= (SELECT attr_id FROM cf_attr WHERE name='price')

JOIN cf_par genre ON genre. object_id=film. object_id

AND genre. attr_id= (SELECT attr_id FROM cf_attr WHERE name='genre')

JOIN cf_par duration ON duration. object_id=film. object_id

WHERE duration. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='duration')

ORDER BY cin. name

Π—Π°Π΄Π°Π½ΠΈΠ΅ 7

ВывСсти список Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ², ΠΆΠ°Π½Ρ€ ΠΈ Ρ†Π΅Π½Ρƒ, Ρ†Π΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находится Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅ ΠΎΡ‚ 25 Π΄ΠΎ 30

SELECT film. name, genre. text_value, price. number_value

FROM (SELECT object_id FROM cf_par WHERE number_value BETWEEN 25 AND 30 AND attr_id IN (SELECT attr_id FROM cf_attr WHERE name='price')) ff

JOIN cf_par genre ON genre. object_id=ff. object_id

AND genre. attr_id= (SELECT attr_id FROM cf_attr WHERE name='genre')

JOIN cf_obj film ON film. object_id=ff. object_id

JOIN cf_par price ON price. object_id=ff. object_id

WHERE price. attr_id= (SELECT attr_id FROM cf_attr WHERE name='price')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 8

ВывСсти список Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ΠΎΠ², ΠΈΡ… Π°Π΄Ρ€Π΅Ρ, Π°ΠΊΡƒΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ систСму, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ экрана, число мСст Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ„ΠΈΠ»ΡŒΠΌ «ΠœΠ΅Ρ‚Ρ€ΠΎ»

SELECT cinema. name, address. text_value, acoustic. text_value, format. text_value, place. number_value

FROM (SELECT film. object_id FROM cf_obj film WHERE film. name LIKE 'ΠœΠ΅Ρ‚Ρ€ΠΎ') f

JOIN cf_par rel ON rel. relation_id=f. object_id

JOIN cf_obj cinema ON cinema. object_id=rel. object_id

JOIN cf_par address ON address. object_id=cinema. object_id

AND address. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='address')

JOIN cf_par acoustic ON acoustic. object_id=cinema. object_id

AND acoustic. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='acoustic')

JOIN cf_par format ON format. object_id=cinema. object_id

AND format. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='format')

JOIN cf_par place ON place. object_id=cinema. object_id

AND place. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='place')

Π—Π°Π΄Π°Π½ΠΈΠ΅ 9

ВывСсти вСсь список Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² находящихся Π² ΠΏΡ€ΠΎΠΊΠ°Ρ‚Π΅ ΠΈ Π²ΡΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π½ΠΈΠΌ.

SELECT film. object_id, film. name, genre. text_value, duration. number_value, rait. number_value, price. number_value

FROM cf_obj film

JOIN cf_par genre ON genre. object_id=film. object_id

JOIN cf_par duration ON duration. object_id=film. object_id

JOIN cf_par rait ON rait. object_id=film. object_id

JOIN cf_par price ON price. object_id=film. object_id

WHERE film. object_type_id= (SELECT object_type_id FROM cf_types WHERE name='Film')

AND genre. attr_id IN (SELECT attr_id FROM cf_attr WHERE name=LOWER ('GENRE'))

AND duration. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='duration')

AND rait. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='rait')

AND price. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='price')

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’ Ρ€ΠΎΠ±ΠΎΡ‚Π΅ создана Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, которая Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ„ΠΈΠ»ΡŒΠΌΠ°Ρ… ΠΈ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π°Ρ…. Для хранСния Π΄Π°Π½Π½Ρ‹Ρ… использована ΠΌΠ΅Ρ‚Π°ΠΌΠΎΠ΄Π΅Π»ΡŒ. Данная модСль ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… записСй, Ρ‚Π°ΠΊ ΠΈ Ρ†Π΅Π»Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, ΠΏΡ€ΠΈ этом, Π½Π΅ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΠ² структуры Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ строку запроса, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΈΡ… Ρ„ΠΈΠ»ΡŒΠΌΡƒ ΠΈΠ»ΠΈ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Ρƒ, Π»ΠΈΠ±ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π΅ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΠΌΡ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ процСсс Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ΠΌ для любого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π΄Π°ΠΆΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

1. Codd E.F. Relational completeness of data base sublanguages. — Ibid. 1972, p.65−98.

2. А. Π§Π΅ΠΊΠ°Π»ΠΎΠ². Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ирования Π΄ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ — БПб.: Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2003. — 384 с.

3. Ульман Π”ΠΆ. ΠžΡΠ½ΠΎΠ²Ρ‹ систСм Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… /ΠŸΠ΅Ρ€. c Π°Π½Π³Π». М. Π . Когаловского. — Πœ.: Ѐинансы ΠΈ ΡΡ‚атистика, 1983. — 334 с.

4. Анатолий Π’Π΅Π½Ρ†Π΅Ρ€. Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… — Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — М.: «ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠŸΡ€Π΅ΡΡ», http://www.compress.ru, 2001

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Код заполнСния Ρ‚Π°Π±Π»ΠΈΡ†:

INSERT INTO cf_types VALUES (1,'Cinema','Cinema');

INSERT INTO cf_types VALUES (2,'Film','Film');

INSERT INTO cf_types VALUES (3,'ids','ids');

INSERT INTO cf_attr VALUES (1,1,'address');

INSERT INTO cf_attr VALUES (2,1,'place');

INSERT INTO cf_attr VALUES (3,1,'acoustic');

INSERT INTO cf_attr VALUES (4,1,'format');

INSERT INTO cf_attr VALUES (5,2,'genre');

INSERT INTO cf_attr VALUES (6,2,'duration');

INSERT INTO cf_attr VALUES (7,2,'rait');

INSERT INTO cf_attr VALUES (8,2,'price');

INSERT INTO cf_attr VALUES (9,3,'ids');

INSERT INTO cf_obj VALUES (11,1,'ΠœΠ΅Ρ‚Ρ€ΠΎΠΏΠΎΠ»ΠΈΡ 5D');

INSERT INTO cf_obj VALUES (12,1,'IMAX БлокбастСр');

INSERT INTO cf_obj VALUES (13,1,'Алмаз');

INSERT INTO cf_obj VALUES (14,1,'Π–ΠΎΠ²Ρ‚Π΅Π½ΡŒ');

INSERT INTO cf_obj VALUES (15,1,'ΠšΠΈΠ½ΠΎΠΏΠ°Π»Π°Ρ†');

INSERT INTO cf_obj VALUES (16,1,'Π£ΠΊΡ€Π°ΠΈΠ½Π°');

INSERT INTO cf_obj VALUES (17,1,'Π”Ρ€ΡƒΠΆΠ±Π°');

INSERT INTO cf_obj VALUES (18,1,'Космос');

INSERT INTO cf_obj VALUES (21,2,'ΠΠ»ΡŒΡ„Π° ΠΈ ΠžΠΌΠ΅Π³Π°');

INSERT INTO cf_obj VALUES (22,2,'Π‘Π°Π±Π» Π”Π°Π±Π»');

INSERT INTO cf_obj VALUES (23,2,'Π‘ΡƒΠ½Π΄ΠΈΡˆΠ²Π°Π½ΡΠΊΠΈΠ΅ Π³ΠΎΡ€ΠΊΠΈ');

INSERT INTO cf_obj VALUES (24,2,'БурлСск');

INSERT INTO cf_obj VALUES (25,2,'Π’ ΠΏΠ»Π΅Π½Ρƒ Ρƒ Ρ‚ΡŒΠΌΡ‹');

INSERT INTO cf_obj VALUES (26,2,'Выкрутасы');

INSERT INTO cf_obj VALUES (27,2,'Π›ΡŽΠ±ΠΎΠ²ΡŒ-ΠœΠΎΡ€ΠΊΠΎΠ²ΡŒ 3');

INSERT INTO cf_obj VALUES (28,2,'ΠœΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ');

INSERT INTO cf_obj VALUES (29,2,'ΠœΠ΅Ρ€Ρ‚Π²Ρ‹ΠΉ Π΄ΠΎΠΌ');

INSERT INTO cf_obj VALUES (210,2,'ΠœΠ΅Ρ‚Ρ€ΠΎ');

INSERT INTO cf_obj VALUES (211,2,'НастоящСС муТСство');

INSERT INTO cf_obj VALUES (212,2,'НСбоскрСбки');

INSERT INTO cf_obj VALUES (213,2,'ΠžΡ€Π΅Π» дСвятого Π»Π΅Π³ΠΈΠΎΠ½Π°');

INSERT INTO cf_obj VALUES (214,2,'ΠžΡ‚ΠΊΡƒΠ΄Π° Ρ‚Ρ‹ Π·Π½Π°Π΅ΡˆΡŒ');

INSERT INTO cf_obj VALUES (215,2,'Π― — Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ');

INSERT INTO cf_par VALUES (11,NULL, 1,'Малиновского 12', NULL);

INSERT INTO cf_par VALUES (12,NULL, 1,'Московский 34-Π’', NULL);

INSERT INTO cf_par VALUES (13,NULL, 1,'ΠœΠΈΡ€ΠΎΠΏΠΎΠ»ΡŒΡΠΊΠ°Ρ 17А', NULL);

INSERT INTO cf_par VALUES (14,NULL, 1,'ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΠ½ΠΎΠ²ΡΠΊΠ°Ρ 26', NULL);

INSERT INTO cf_par VALUES (15,NULL, 1,'Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚ΡΠΊΠ°Ρ 1', NULL);

INSERT INTO cf_par VALUES (16,NULL, 1,'Π“ΠΎΡ€ΠΎΠ΄Π΅Ρ†ΠΊΠΎΠ³ΠΎ 5', NULL);

INSERT INTO cf_par VALUES (17,NULL, 1,'просп. Π¨Π΅Π²Ρ‡Π΅Π½ΠΊΠΎ 20', NULL);

INSERT INTO cf_par VALUES (18,NULL, 1,'ΠžΠΊΡ‚ΡΠ±Ρ€ΡŒΡΠΊΠ°Ρ 12', NULL);

INSERT INTO cf_par VALUES (11,NULL, 2, NULL, 80);

INSERT INTO cf_par VALUES (12,NULL, 2, NULL, 278);

INSERT INTO cf_par VALUES (13,NULL, 2, NULL, 100);

INSERT INTO cf_par VALUES (14,NULL, 2, NULL, 100);

INSERT INTO cf_par VALUES (15,NULL, 2, NULL, 326);

INSERT INTO cf_par VALUES (16,NULL, 2, NULL, 250);

INSERT INTO cf_par VALUES (17,NULL, 2, NULL, 180);

INSERT INTO cf_par VALUES (18,NULL, 2, NULL, 165);

INSERT INTO cf_par VALUES (11,NULL, 3,'Dolby Digital', NULL);

INSERT INTO cf_par VALUES (12,NULL, 3,'Dolby Suround', NULL);

INSERT INTO cf_par VALUES (13,NULL, 3,'Dolby Suround', NULL);

INSERT INTO cf_par VALUES (14,NULL, 3,'Dolby Suround', NULL);

INSERT INTO cf_par VALUES (15,NULL, 3,'Dolby Suround', NULL);

INSERT INTO cf_par VALUES (16,NULL, 3,'Dolby Digital', NULL);

INSERT INTO cf_par VALUES (17,NULL, 3,'Dolby Suround', NULL);

INSERT INTO cf_par VALUES (18,NULL, 3,'Dolby Digital', NULL);

INSERT INTO cf_par VALUES (11,NULL, 4,'Π¨ΠΈΡ€ΠΎΠΊΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹ΠΉ 16: 9', NULL);

INSERT INTO cf_par VALUES (12,NULL, 4,'Π¨ΠΈΡ€ΠΎΠΊΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹ΠΉ 16: 9', NULL);

INSERT INTO cf_par VALUES (13,NULL, 4,'ΠŸΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ 5: 4', NULL);

INSERT INTO cf_par VALUES (14,NULL, 4,'Π¨ΠΈΡ€ΠΎΠΊΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹ΠΉ 16: 9', NULL);

INSERT INTO cf_par VALUES (15,NULL, 4,'Π¨ΠΈΡ€ΠΎΠΊΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹ΠΉ 16: 9', NULL);

INSERT INTO cf_par VALUES (16,NULL, 4,'ΠŸΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ 5: 4', NULL);

INSERT INTO cf_par VALUES (17,NULL, 4,'Π¨ΠΈΡ€ΠΎΠΊΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹ΠΉ 16: 9', NULL);

INSERT INTO cf_par VALUES (18,NULL, 4,'ΠŸΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ 5: 4', NULL);

INSERT INTO cf_par VALUES (21,NULL, 5,'ΠœΡƒΠ»ΡŒΡ‚Ρ„ΠΈΠ»ΡŒΠΌ', NULL);

INSERT INTO cf_par VALUES (22,NULL, 5,'ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ', NULL);

INSERT INTO cf_par VALUES (23,NULL, 5,'ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ', NULL);

INSERT INTO cf_par VALUES (24,NULL, 5,'Π”Ρ€Π°ΠΌΠ°', NULL);

INSERT INTO cf_par VALUES (25,NULL, 5,'ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ', NULL);

INSERT INTO cf_par VALUES (26,NULL, 5,'Ѐантастика', NULL);

INSERT INTO cf_par VALUES (27,NULL, 5,'КомСдия', NULL);

INSERT INTO cf_par VALUES (28,NULL, 5,'КомСдия', NULL);

INSERT INTO cf_par VALUES (29,NULL, 5,'УТасы', NULL);

INSERT INTO cf_par VALUES (210,NULL, 5,'УТасы', NULL);

INSERT INTO cf_par VALUES (211,NULL, 5,'Π”Ρ€Π°ΠΌΠ°', NULL);

INSERT INTO cf_par VALUES (212,NULL, 5,'ΠŸΡ€ΠΈΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ', NULL);

INSERT INTO cf_par VALUES (213,NULL, 5,'Π‘ΠΎΠ΅Π²ΠΈΠΊ', NULL);

INSERT INTO cf_par VALUES (214,NULL, 5,'Π”Ρ€Π°ΠΌΠ°', NULL);

INSERT INTO cf_par VALUES (215,NULL, 5,'Π‘ΠΎΠ΅Π²ΠΈΠΊ', NULL);

INSERT INTO cf_par VALUES (21,NULL, 6, NULL, 1.37);

INSERT INTO cf_par VALUES (22,NULL, 6, NULL, 1.42);

INSERT INTO cf_par VALUES (23,NULL, 6, NULL, 1.35);

INSERT INTO cf_par VALUES (24,NULL, 6, NULL, 1.35);

INSERT INTO cf_par VALUES (25,NULL, 6, NULL, 1.51);

INSERT INTO cf_par VALUES (26,NULL, 6, NULL, 1.28);

INSERT INTO cf_par VALUES (27,NULL, 6, NULL, 1.51);

INSERT INTO cf_par VALUES (28,NULL, 6, NULL, 2.12);

INSERT INTO cf_par VALUES (29,NULL, 6, NULL, 1.32);

INSERT INTO cf_par VALUES (210,NULL, 6, NULL, 1.24);

INSERT INTO cf_par VALUES (211,NULL, 6, NULL, 1.42);

INSERT INTO cf_par VALUES (212,NULL, 6, NULL, 1.27);

INSERT INTO cf_par VALUES (213,NULL, 6, NULL, 1.45);

INSERT INTO cf_par VALUES (214,NULL, 6, NULL, 1.22);

INSERT INTO cf_par VALUES (215,NULL, 6, NULL, 1.36);

INSERT INTO cf_par VALUES (21,NULL, 7, NULL, 47);

INSERT INTO cf_par VALUES (22,NULL, 7, NULL, 67);

INSERT INTO cf_par VALUES (23,NULL, 7, NULL, 77);

INSERT INTO cf_par VALUES (24,NULL, 7, NULL, 51);

INSERT INTO cf_par VALUES (25,NULL, 7, NULL, 71);

INSERT INTO cf_par VALUES (26,NULL, 7, NULL, 74);

INSERT INTO cf_par VALUES (27,NULL, 7, NULL, 87);

INSERT INTO cf_par VALUES (28,NULL, 7, NULL, 88);

INSERT INTO cf_par VALUES (29,NULL, 7, NULL, 81);

INSERT INTO cf_par VALUES (210,NULL, 7, NULL, 83);

INSERT INTO cf_par VALUES (211,NULL, 7, NULL, 70);

INSERT INTO cf_par VALUES (212,NULL, 7, NULL, 68);

INSERT INTO cf_par VALUES (213,NULL, 7, NULL, 63);

INSERT INTO cf_par VALUES (214,NULL, 7, NULL, 68);

INSERT INTO cf_par VALUES (215,NULL, 7, NULL, 75);

INSERT INTO cf_par VALUES (21,NULL, 8, NULL, 25);

INSERT INTO cf_par VALUES (22,NULL, 8, NULL, 32.5);

INSERT INTO cf_par VALUES (23,NULL, 8, NULL, 35);

INSERT INTO cf_par VALUES (24,NULL, 8, NULL, 28);

INSERT INTO cf_par VALUES (25,NULL, 8, NULL, 30.75);

INSERT INTO cf_par VALUES (26,NULL, 8, NULL, 34);

INSERT INTO cf_par VALUES (27,NULL, 8, NULL, 35);

INSERT INTO cf_par VALUES (28,NULL, 8, NULL, 37.3);

INSERT INTO cf_par VALUES (29,NULL, 8, NULL, 35);

INSERT INTO cf_par VALUES (210,NULL, 8, NULL, 35.5);

INSERT INTO cf_par VALUES (211,NULL, 8, NULL, 33.5);

INSERT INTO cf_par VALUES (212,NULL, 8, NULL, 30);

INSERT INTO cf_par VALUES (213,NULL, 8, NULL, 31.65);

INSERT INTO cf_par VALUES (214,NULL, 8, NULL, 27);

INSERT INTO cf_par VALUES (215,NULL, 8, NULL, 29);

INSERT INTO cf_par VALUES (11,23,9,NULL, NULL);

INSERT INTO cf_par VALUES (11,25,9,NULL, NULL);

INSERT INTO cf_par VALUES (11,28,9,NULL, NULL);

INSERT INTO cf_par VALUES (11,211,9,NULL, NULL);

INSERT INTO cf_par VALUES (12,211,9,NULL, NULL);

INSERT INTO cf_par VALUES (12,21,9,NULL, NULL);

INSERT INTO cf_par VALUES (12,24,9,NULL, NULL);

INSERT INTO cf_par VALUES (13,21,9,NULL, NULL);

INSERT INTO cf_par VALUES (13,22,9,NULL, NULL);

INSERT INTO cf_par VALUES (13,23,9,NULL, NULL);

INSERT INTO cf_par VALUES (13,24,9,NULL, NULL);

INSERT INTO cf_par VALUES (14,22,9,NULL, NULL);

INSERT INTO cf_par VALUES (14,24,9,NULL, NULL);

INSERT INTO cf_par VALUES (14,25,9,NULL, NULL);

INSERT INTO cf_par VALUES (14,29,9,NULL, NULL);

INSERT INTO cf_par VALUES (14,211,9,NULL, NULL);

INSERT INTO cf_par VALUES (14,212,9,NULL, NULL);

INSERT INTO cf_par VALUES (15,212,9,NULL, NULL);

INSERT INTO cf_par VALUES (15,215,9,NULL, NULL);

INSERT INTO cf_par VALUES (15,213,9,NULL, NULL);

INSERT INTO cf_par VALUES (15,27,9,NULL, NULL);

INSERT INTO cf_par VALUES (16,23,9,NULL, NULL);

INSERT INTO cf_par VALUES (16,25,9,NULL, NULL);

INSERT INTO cf_par VALUES (16,215,9,NULL, NULL);

INSERT INTO cf_par VALUES (16,214,9,NULL, NULL);

INSERT INTO cf_par VALUES (16,210,9,NULL, NULL);

INSERT INTO cf_par VALUES (17,27,9,NULL, NULL);

INSERT INTO cf_par VALUES (17,21,9,NULL, NULL);

INSERT INTO cf_par VALUES (17,24,9,NULL, NULL);

INSERT INTO cf_par VALUES (17,29,9,NULL, NULL);

INSERT INTO cf_par VALUES (17,211,9,NULL, NULL);

INSERT INTO cf_par VALUES (18,21,9,NULL, NULL);

INSERT INTO cf_par VALUES (18,23,9,NULL, NULL);

INSERT INTO cf_par VALUES (18,26,9,NULL, NULL);

INSERT INTO cf_par VALUES (18,27,9,NULL, NULL);

INSERT INTO cf_par VALUES (18,29,9,NULL, NULL);

INSERT INTO cf_par VALUES (18,210,9,NULL, NULL);

INSERT INTO cf_par VALUES (18,214,9,NULL, NULL);

Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ:

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ " Запрос" ΠΈ Π΄Π²ΡƒΡ… Ρ€Π°Π΄ΠΈΠΎ-ΠΊΠ½ΠΎΠΏΠΎΠΊ

void CcifiDlg: OnBnClickedRadio1 ()

{

bFilm=false;

bCinema=true;

// TODO: Add your control notification handler code here

}

void CcifiDlg: OnBnClickedRadio2 ()

{

bCinema=false;

bFilm=true;

// TODO: Add your control notification handler code here

}

void CcifiDlg: OnBnClickedButton1 ()

{

m_list. ResetContent ();

if (! bFilm &&! bCinema)

{

AfxMessageBox («Π’Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ!»);

return;

}

CString s;

e_get. GetWindowTextA (s);

if (s=="")

{

AfxMessageBox («ΠŸΡƒΡΡ‚ая строка запроса!»);

return;

}

CDB db;

db. Open («localhost», FALSE, FALSE," DRIVER={Oracle in XE}; UID=SYSTEM; PWD=1; SERVER=127.0.0.1″);

BOOL check=db. IsOpen ();

if (! check)

{

AfxMessageBox («ΠΠ΅ ΡƒΠ΄Π°Π΅Ρ‚ся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соСдинСниС с Π‘Π”!»);

return;

}

e_get. GetWindowTextA (m_get);

CRecordset rec (&db);

if (bCinema)

{

m_check=1;

m_list. AddString («Π‘писок Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π° «+m_get+»: «);

rec. Open (CRecordset: forwardOnly," SELECT obj. name FROM cf_obj obj JOIN cf_par rel ON rel. relation_id=obj. object_id AND rel. attr_id IN (SELECT attr_id FROM cf_attr WHERE name='ids') WHERE rel. object_id IN (SELECT object_id FROM cf_obj WHERE name='" +m_get+" ')", CRecordset: readOnly);

while (! rec. IsEOF ())

{

rec. GetFieldValue (short (0), s);

m_list. AddString (s);

rec. MoveNext ();

}

}

if (bFilm)

{

m_check=2;

m_list. AddString («Π‘писок ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ΠΎΠ² Π³Π΄Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ «+m_get+»: «);

rec. Open (CRecordset: forwardOnly," SELECT cinema. name FROM (SELECT film. object_id FROM cf_obj film WHERE film. name LIKE '" +m_get+" ') f JOIN cf_par par ON par. relation_id=f. object_id JOIN cf_obj cinema ON cinema. object_id=par. object_id", CRecordset: readOnly);

while (! rec. IsEOF ())

{

rec. GetFieldValue (short (0), s);

m_list. AddString (s);

rec. MoveNext ();

}

}

// TODO: Add your control notification handler code here

}

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ тСкстовых ΠΏΠΎΠ»Π΅ΠΉ, Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π½Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π›Π΅Π²ΠΎΠΉ Кнопки ΠœΡ‹ΡˆΠΈ.

void CcifiDlg: OnLbnSelchangeList1 ()

{

m_list. GetText (m_list. GetCurSel (), m_get);

if (m_list. GetCurSel () ==0)

{

return;

}

if (m_check==1)

{

CDlgFilm cFilm;

cFilm. m_get=m_get;

int result=cFilm. DoModal ();

if (result==IDOK)

{

return;

}

}

if (m_check==2)

{

CDlgCinema cCinema;

cCinema. m_get=m_get;

int result=cCinema. DoModal ();

if (result==IDOK)

{

return;

}

}

// TODO: Add your control notification handler code here

}

void CcifiDlg: OnBnClickedButton2 ()

{

CCfList cf;

int result=cf. DoModal ();

if (result==IDOK)

{

m_FromList=cf. m_FromList;

e_get. SetWindowTextA (m_FromList);

return;

}

// TODO: Add your control notification handler code here

}

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π‘писок»

void CcifiDlg: OnBnClickedButton2 ()

{

CCfList cf;

int result=cf. DoModal ();

if (result==IDOK)

{

m_FromList=cf. m_FromList;

e_get. SetWindowTextA (m_FromList);

return;

}

// TODO: Add your control notification handler code here

}

// Ѐункция ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° " Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΏΠΎ Ρ„ΠΈΠ»ΡŒΠΌΡƒ"

BOOL CDlgFilm: OnInitDialog (void)

{

CDialog: OnInitDialog ();

CString s;

CDB db;

db. Open («localhost», FALSE, FALSE," DRIVER={Oracle in XE}; UID=SYSTEM; PWD=1; SERVER=localhost");

BOOL check=db. IsOpen ();

CRecordset rec (&db);

rec. Open (CRecordset: forwardOnly," SELECT film. name, genre. text_value, duration. number_value, rait. number_value, price. number_value FROM cf_obj film JOIN cf_par genre ON genre. object_id=film. object_id AND genre. attr_id=5 JOIN cf_par duration ON duration. object_id=film. object_id AND duration. attr_id=6 JOIN cf_par rait ON rait. object_id=film. object_id AND rait. attr_id=7JOIN cf_par price ON price. object_id=film. object_id AND price. attr_id=8 AND film. name='" +m_get+" '", CRecordset: readOnly);

while (! rec. IsEOF ())

{

rec. GetFieldValue (short (0), s);

m_fname. SetWindowTextA (s);

rec. GetFieldValue (short (1), s);

m_genre. SetWindowTextA (s);

rec. GetFieldValue (short (2), s);

m_duration. SetWindowTextA (s);

rec. GetFieldValue (short (3), s);

m_rait. SetWindowTextA (s);

rec. GetFieldValue (short (4), s);

m_price. SetWindowTextA (s);

rec. MoveNext ();

}

rec. Close ();

return TRUE;

}

// Ѐункция ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° " Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠšΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Π΅"

BOOL CDlgCinema: OnInitDialog (void)

{

CDialog: OnInitDialog ();

CString s;

CDB db;

db. Open («localhost», FALSE, FALSE," DRIVER={Oracle in XE}; UID=SYSTEM; PWD=1; SERVER=localhost");

BOOL check=db. IsOpen ();

CRecordset rec (&db);

rec. Open (CRecordset: forwardOnly," SELECT c. name, a. text_value, p. number_value, ac. text_value, f. text_value FROM cf_obj c JOIN cf_par a ON a. object_id=c. object_id AND a. attr_id=1 JOIN cf_par p ON p. object_id=c. object_id AND p. attr_id=2 JOIN cf_par ac ON ac. object_id=c. object_id AND ac. attr_id=3 JOIN cf_par f ON f. object_id=c. object_id AND f. attr_id=4 AND c. name='" +m_get+" '", CRecordset: readOnly);

while (! rec. IsEOF ())

{

rec. GetFieldValue (short (0), s);

m_cname. SetWindowTextA (s);

rec. GetFieldValue (short (1), s);

m_address. SetWindowTextA (s);

rec. GetFieldValue (short (2), s);

m_place. SetWindowTextA (s);

rec. GetFieldValue (short (3), s);

m_acoustic. SetWindowTextA (s);

rec. GetFieldValue (short (4), s);

m_format. SetWindowTextA (s);

rec. MoveNext ();

}

rec. Close ();

return TRUE;

}

// Ѐункция ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° " Бписок" с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ списковых тСкстовых ΠΏΠΎΠ»Π΅ΠΉ

BOOL CCfList: OnInitDialog (void)

{

CDialog: OnInitDialog ();

CString s;

CDB db;

db. Open («localhost», FALSE, FALSE," DRIVER={Oracle in XE}; UID=SYSTEM; PWD=1; SERVER=localhost");

BOOL check=db. IsOpen ();

CRecordset rec (&db);

rec. Open (CRecordset: forwardOnly," SELECT name FROM cf_obj WHERE object_type_id=1″, CRecordset: readOnly);

while (! rec. IsEOF ())

{

rec. GetFieldValue (short (0), s);

m_cinema. AddString (s);

rec. MoveNext ();

}

rec. Close ();

rec. Open (CRecordset: forwardOnly," SELECT name FROM cf_obj WHERE object_type_id=2″, CRecordset: readOnly);

while (! rec. IsEOF ())

{

rec. GetFieldValue (short (0), s);

m_film. AddString (s);

rec. MoveNext ();

}

rec. Close ();

return TRUE;

}

void CCfList: OnLbnSelchangeList2 ()

{

m_film. GetText (m_film. GetCurSel (), m_FromList);

OnOK ();

// TODO: Add your control notification handler code here

}

void CCfList: OnLbnSelchangeList1 ()

{

m_cinema. GetText (m_cinema. GetCurSel (), m_FromList);

OnOK ();

// TODO: Add your control notification handler code here

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Рисунок 1 — Π“Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Рисунок 2 — МСню списка ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€ΠΎΠ² ΠΈ Ρ„ΠΈΠ»ΡŒΠΌΠΎΠ² Π² ΠΏΡ€ΠΎΠΊΠ°Ρ‚Π΅

Рисунок 3 — Запрос ΠΏΠΎ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Ρƒ «ΠšΠΎΡΠΌΠΎΡ»

Рисунок 4 — Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ Ρ„ΠΈΠ»ΡŒΠΌΡƒ

Рисунок 5 — Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠΈΠ½ΠΎΡ‚Π΅Π°Ρ‚Ρ€Ρƒ

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ