Database

max Π°Π²Π°Ρ‚Π°Ρ€

  Oracle SQL Developer: НС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ dbms_output.put_line()

100
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Бтолкнулся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· dbms_output.put_line() Π² SQL Developer. 

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ

 

Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ». 

ΠŸΠΎΠ³ΡƒΠ³Π»ΠΈΠ², оказалось, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π² мСню View -> DBMS OUTPUT.

Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΏΠ°Π½Π΅Π»ΡŒΠΊΡƒ Π²Π½ΠΈΠ·Ρƒ ΠΎΠΊΠ½Π°. 

max Π°Π²Π°Ρ‚Π°Ρ€

  Π”Π΅Π½ΡŒ 1. ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с использованиСм java + hibernate + mysql

78
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚.


Π’ Π΄Π°Π½Π½ΠΎΠΌ постС попытаСмся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Π΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ\сохранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π±Π΄ MySQL с использованиСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° java ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° Π½Π° Hibernate.

НС Π±ΡƒΠ΄Π΅ΠΌ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² подробности, Π° ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ сразу ΠΊ Π΄Π΅Π»Ρƒ. 

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ тонкости настройки Hibernate, спСрва создадим скСлСт пустого прилоТСния ΠΈ настроим Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. 

 

Установка MySQL Server  ΠΈ созданиС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Tutorial

Если Π΅Ρ‰Π΅ Π½Π΅ стоит MySQL - стягиваСм ΠΎΡ‚ΡΡŽΠ΄Π° http://dev.mysql.com/downloads/mirror.php?id=394757#mirrors ΠΈ устанавливаСм. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ администратора Π² Π²ΠΈΠ·Π°Ρ€Π΄Π΅.

Π—Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° установка Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, создадим Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Π² Ρ„Π°Ρ€Π΅ ΠΈΠ»ΠΈ консоли ΠΈ ΠΈΠ΄Π΅ΠΌ Π² ΠΏΠ°ΠΊΡƒ "C:\Program Files\MySQL\MySQL Server 5.1\bin\". Ну ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π° Ρ‚Π°ΠΌ Ρƒ вас назвалась.

Логинимся ΠΏΠΎΠ΄ Ρ€ΡƒΡ‚ΠΎΠΌ Π² mysql:

  Grails. Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ SQL Logging.

78
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Π’ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния Π½Π° Grails сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС запросы ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠΈ development ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ loggingSql = true:

Вся информация ΠΎ запросах Π±ΡƒΠ΄Π΅Ρ‚ выводится Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΠΊΠ½Π΅ консоли, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ запускаСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π·

  Grails HSQL Database. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π²Π½ΡƒΡ‚Ρ€ΡŒ.

77
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Π’ основС Grails Π»Π΅ΠΆΠ°Ρ‚ Π΄Π²Π° Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΈΡ‚Π° ΠΊΠ°ΠΊ Spring ΠΈ Hibernate, Π° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ настроСн любой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Grails - это HSQLDB.

Как ΠΆΠ΅ Π½Π°ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ просмотр Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² HSQLDB? А Π·Π°Ρ‡Π΅ΠΌ спроситС Π’Ρ‹ Π½Π°ΠΌ ΠΈΡ… Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ?
Ну, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ,  ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ GORM (Grails Object Relational Mapping);
ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ наши классы ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области;
ΠΈΠ»ΠΈ - ΠΌΡ‹ Π½Π΅ довСряСм Grails ΠΈ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π‘Π” ΠΏΠΎΠ΄ своим ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ.

  MySQL. Π–ΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

74
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

MySQL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько Ρ‚ΠΈΠΏΠΎΠ² Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ·Π²Π°Π½Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС Ρ‚Π΅ события
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ происходят Π² mysqld:

  • The error log - содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅Π»ΠΈ мСсто ΠΏΡ€ΠΈ запускС, Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΠ»ΠΈ
    остановС mysql.
  • The general query log - содСрТит Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ клиСнтских ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ… ΠΈ ΠΎ всСх Ρ‚Π΅Ρ… запросах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ Π½ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹.
  • The binary log - Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя свСдСния ΠΎΠ±ΠΎ всСх запросах, вслСдствиС выполнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ‹ измСнСния Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… ΠΈΠ»ΠΈ самой Π±Π°Π·Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ UPDATE, DELETE, Π½ΠΎ Π½Π΅ SELECT.
  • The slow query log - содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅Ρ… запросах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСвысили Π»ΠΈΠΌΠΈΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния (long_query_time) ΠΈΠ»ΠΈ ΠΆΠ΅ Π½Π΅ использовали индСксы.

  Grails. Domain Class. ЗначСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

77
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Для Ρ‚Π΅Ρ… свойст ΠΎΠ±ΡŒΠ΅ΠΊΡ‚Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΆΠ΅Π»Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ нСдопустимо Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, дСлаСтся это Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ обьявлСния свойства  Π² классС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области:

ВсС.

  Grails. Domain Class. Π—Π°Π΄Π°Π΅ΠΌ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

77
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

ΠΊΠΎΠ³Π΄Π° GORM Π½Π° основании класса ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области создаСт Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΎΠ½ присваиваСт Π΅ΠΉ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ имя, ΠΊΠ°ΠΊ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ класса ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. Однако сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ Π½Π°ΠΌ имя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

ВсС.

max Π°Π²Π°Ρ‚Π°Ρ€

  Websphere. Π’Π°ΠΉΠΌΠ°ΡƒΡ‚ Π½Π° транзакциях. Transaction has timed out after 120 second

84
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Если Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Stateless Session Π±ΠΈΠ½Ρ‹ Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ DAO (Data Access Objects) для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ:

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° Π² ΠΏΠ°Π½Π΅Π»ΠΈ администратора websphere. 

Для этого Π·Π°Π»ΠΎΠ³ΠΈΠ½ΡŒΡ‚Π΅ΡΡŒ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΡƒ. 

select websphere server

max Π°Π²Π°Ρ‚Π°Ρ€

  Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ всС-Ρ‚Π°ΠΊΠΈ Ρ‚Π°ΠΊΠΎΠ΅ курсоры Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹?

115
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ любого SQL- выраТСния рСзСрвируСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ участок ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. PL/SQL позволяСт ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ этот участок. Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ sql области ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ΡΡ курсорами. PL/SQL ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ с использованиСм курсора. ΠšΡƒΡ€ΡΠΎΡ€ прСдставляСт структуру Π² памяти.

 

ΠŸΡ€ΠΈ объявлСнии курсора, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ-ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, которая Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚. Когда курсор ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚, выдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ создаСтся структура курсора. ПослС этого пСрСмСнная курсора ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° сам курсора. ΠŸΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Π΅Π³ΠΎ - ΠΏΠ°ΠΌΡΡ‚ΡŒ освобоТдаСтся.

ΠšΡƒΡ€ΡΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ программисту ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ дСйствия Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ рядка Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. БущСствуСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° курсоров: явныС ΠΈ нСявныС

 

НСявныС курсоры

Для SQL запросов, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½ рядок, PL/SQL создаСт нСявныС курсоры. НСявныС курсоры - это простыС select выраТСния. Π˜Ρ… Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ΄ΠΈΠ½ рядок. 

 

Π―Π²Π½Ρ‹Π΅ курсоры

Π―Π²Π½Ρ‹Π΅ курсоры ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² запросах для возвращСния мноТСства рядков. Набор рядков извлСкаСтся запросом.

max Π°Π²Π°Ρ‚Π°Ρ€

  ЛСнивая инициализация ΠΈΠ»ΠΈ Lazy Initialization Π² Hibernate

117
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ для получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ID.  Π”ля Π½Π΅Π³ΠΎ ΠΌΡ‹ Π·Π°Π΄Π°Π»ΠΈ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ <many-to-one>, поэтому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ издатСля, связанный с Π½ΠΈΠΌ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½. 

Но ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ пытаСмся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ издатСля Ρ‡Π΅Ρ€Π΅Π· book.getPublisher() ΠΈΠ·Π²Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, кидаСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Если ΠΌΡ‹ создадим ΠΊΠΎΠ΄ доступа Π²Π½ΡƒΡ‚Ρ€ΠΈ try-Π±Π»ΠΎΠΊΠ° Π² Ρ‚Π΅Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, всС ΠΎΠΊ. Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠ² смысл ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ? Π­Ρ‚ΠΎ всС ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Hibernate Π½Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ наш ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ издатСля ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ доступС. Π’ Hibernate  ΡΡ‚ΠΎ называСтся "lazy initialization",  Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… запросов ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Π΅ΠΌ самым повысив ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.  ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Π±Ρ‹Π» Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ снаруТи сСссии (которая Π±Ρ‹Π»Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°), ΠΏΠΎΡ€ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

max Π°Π²Π°Ρ‚Π°Ρ€

  Hibernate. Many-to-one ассоциации

115
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Π’ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ ΠΎ hibernate.  Π’ постах:

2.  Java. Object-oriented mapping. Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с чистым Hibernate Π±Π΅Π· прямого использования JDBC.

1.  Hibernate. Object-oriented mapping. ΠžΡΠ½ΠΎΠ²Ρ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с использованиСм HSQLDB

 

И Ρ‚Π°ΠΊ, Π² нашСм ΠΊΠ½ΠΈΠΆΠ½ΠΎΠΌ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ каТдая ΠΊΠ½ΠΈΠ³Π° связана с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»Π΅ΠΌ, Π² Ρ‚ΠΎ врСмя, ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ мноТСство ΠΊΠ½ΠΈΠ³. Ассоциация ΠΎΡ‚ ΠΊΠ½ΠΈΠ³ΠΈ ΠΊ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŽ называСтся "many-to-one". 

Π£ нас Π΅ΡΡ‚ΡŒ класс Publisher, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ спроСцирован (mapped) Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. НСобходимо Π·Π°Π΄Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎ-Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ свойство id.

max Π°Π²Π°Ρ‚Π°Ρ€

  Доступ ΠΊ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Oracle ΠΈΠ· java прилоТСния с использованиСм jdbc

119
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

БСйчас попытаСмся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ oracle database ΠΈΠ· java прилоТСния, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ select  ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ guest
  • Π’Π°Π±Π»ΠΈΡ†Π° temp1 с полями (id, desc1) Π² схСмС sys с привилСгиями Π½Π° Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈΠ·-ΠΏΠΎΠ΄ guest
  • jdbc Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для oracle, скачанный ΠΎΡ‚ΡΡŽΠ΄Π° http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_112010.html
ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ.
Π‘ΠΏΠ΅Ρ€Π²Π° создадим пустой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ скачанный jar-Ρ„Π°ΠΉΠ» с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ.
ΠŸΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€:
max Π°Π²Π°Ρ‚Π°Ρ€

  Как Π² Oracle PL/SQL ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ?

112
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Если Π’Ρ‹ ΡƒΠΆΠ΅ Π·Π°Π»ΠΎΠ³ΠΈΠ½Π΅Π½Ρ‹ ΠΊΠ°ΠΊ sys, Ρ‚ΠΎ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ dba_users простым сСлСктом:

max Π°Π²Π°Ρ‚Π°Ρ€

  ВыраТСния INSERT, UPDATE, DELETE

122
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

INSERT   ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вариациях:

Π’Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Π°Ρ инструкция Π²Ρ€ΠΎΠ΄Π΅ нСплохая, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ свои нСдостатки. 

РСкомСндуСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ использования:

Π’Π°ΠΊΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ INSERT вмСстС с SELECT ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

max Π°Π²Π°Ρ‚Π°Ρ€

  Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ (database trigger)?

121
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Π’Ρ€ΠΈΠ³Π³Π΅Ρ€ - это Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСтся Π΄ΠΎ ΠΈΠ»ΠΈ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π°. БущСствуСт Ρ‚Ρ€ΠΈ события, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запуск Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°:

  • INSERT event (новая запись Π±Ρ‹Π»Π° вставлСна Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…)
  • UPDATE event (запись Π±Ρ‹Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°)
  • DELETE event (запись Π±Ρ‹Π»Π° ΡƒΠ΄Π°Π»Π΅Π½Π°)
Π’Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡ€Π΅Π·Π°Ρ‚ΡŒ доступ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ логирования ΠΈ Ρ‚.Π΄.
info picture Как ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС измСнСния Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…?
Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ записи, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΡ‚ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π» запись, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±Ρ‹Π» ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½, ΠΈ ΠΊΠΎΠ³Π΄Π° модификация записи ΡΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ, Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ любоС событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅. НапримСр, INSERT Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π½, ΠΊΠΎΠ³Π΄Π° опрСдСлСнная Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»Π° вставлСна.
max Π°Π²Π°Ρ‚Π°Ρ€

  Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ прСдставлСниС (view)? Каково ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

122
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

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

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для:

 

  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡ бСзопасности, выдавая лишь Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования SQL Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½ΠΈΠ·Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ скорытия Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².
ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡ с мноТСствСнными объСдинСниями ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прСдставлСния Π½Π΅ содСрТат Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ любоС ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ нуТдаСтся Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. РСшСниСм этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ являСтся использованиС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… прСдставлСний ΠΈΠ»ΠΈ создания Π΄Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† для хранСния Π΄Π°Π½Π½Ρ‹Ρ….
max Π°Π²Π°Ρ‚Π°Ρ€

  Как ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…?

126
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

 

  • Π”Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ваши Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ индСксы столбцов: ИндСкс, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅, Π±ΠΎΠ»Π΅Π΅ эффСктивСн, Ρ‡Π΅ΠΌ индСкс, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… столбцах.
  • Π‘ΠΎΠΊΡ€Π°Ρ‰Π°ΠΉΡ‚Π΅ количСство столбцов, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² создании составного ΠΊΠ»ΡŽΡ‡Π°.
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ пространство Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ создавайтС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ пространство для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ CLOB, BLOB.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π° посрСдством использования Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π½Π° сторонС сСрвСра.
max Π°Π²Π°Ρ‚Π°Ρ€

  Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ one-to-one, one-to-many, many-to-many ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π²ΠΎ врСмя проСктирования Ρ‚Π°Π±Π»ΠΈΡ†?

120
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:
  • One-to-One relationship ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ  Ρ€Π΅ΠΆΠ΅ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΡ… Ρ‚Π°Π±Π»ΠΈΡ† с ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ внСшним ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ.
  • One-to-Many relationship рСалиуСтся Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ внСшним ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ.
  • Many-to-Many relationship рСализуСтся с использованиСм объСдинСния Ρ‚Π°Π±Π»ΠΈΡ† с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈΠ· ΠΎΠ±ΠΎΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡.
max Π°Π²Π°Ρ‚Π°Ρ€

  Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ нормализация? Когда слСдуСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π΅Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ?

126
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

Нормализация - Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π΄ΠΈΠ·Π°ΠΉΠ½Π°, которая ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡƒΡ‚Π΅Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Нормализация - это Π΄Π²ΡƒΡ…ΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠ»Π°Π΄Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΡƒ, удаляя ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π³Ρ€ΡƒΠΏΠΏΡ‹, Π° Π·Π°Ρ‚Π΅ΠΌ удаляСт Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†. 

Π˜Π·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅  Π·Π°Π±ΠΈΠ²Π°ΡŽΡ‚ диск ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ мноТСство ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Если Π΄Π°Π½Π½Ρ‹Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅, Ρ‡Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… мСстополоТСниС. ИзмСнСниС Π² ΠΏΠΎΠ»Π΅ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π΄Π°Π½Π½Ρ‹Π΅ хранятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Customers ΠΈ Π½ΠΈΠ³Π΄Π΅ Π±ΠΎΠ»Π΅Π΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

 

ΠŸΠ΅Ρ€Π²Π°Ρ  Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°

Вторая Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°

Π’Ρ€Π΅Ρ‚ΡŒΡ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°

О Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… говорят, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅, ΠΊΠΎΠ³Π΄Π° всС сущности ΠΈΠΌΠ΅ΡŽΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡, ΠΈ ΠΊΠΎΠ³Π΄Π° каТдая ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ лишь ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π΅ содСрТит ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π³Ρ€ΡƒΠΏΠΏ  ΠΈΠ»ΠΈ составного поля.

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… находится Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° находится Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ + ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° Π½Π΅ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ зависит ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°,  Π° Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ.

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

max Π°Π²Π°Ρ‚Π°Ρ€

  Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sub-query? Как ΠΎΠ½ влияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ?

127
Находится Π² Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…:

БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ sql запрос Π²Π½ΡƒΡ‚Ρ€ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ запроса. Когда это дСлаСтся ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ выраТСниям WHERE ΠΈΠ»ΠΈ HAVING, конструируСтся Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ запрос. И Ρ‚Π°ΠΊ, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½? Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объСдинСния Ρ‚Π°Π±Π»ΠΈΡ† Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° коррСляция Ρ‚Π°Π±Π»ΠΈΡ† Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° лишь с использованиСм Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… запросов.