Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.87 KB | None | 0 0
  1. Домашнее задание 1
  2.  
  3. - Установите систему управления реляционными базами данных.
  4. - Узнайте, как в вашей СУБД исполнять SQL в интерактивном режиме.
  5. - Узнайте, как в вашей СУБД исполнять SQL в пакетном режиме.
  6. - Разберитесь, как в вашей СУБД осуществляется поддержка русского языка.
  7. - Создайте базу данных и наполните ее в соответствии с разобранным примерами.
  8.  
  9. Домашнее задание 2
  10. Спроектируйте базу данных «Деканат», позволяющую хранить информацию о студентах, группах, преподавателях, предметах, оценках.
  11.  
  12. - Составьте модель сущность-связь.
  13. - Преобразуйте модель сущность-связь в физическую модель.
  14. - Запишите физическую модель на языке SQL. Модель должна включать объявления ограничений.
  15. - Создайте базу данных по спроектированной модели.
  16. - Запишите операторы SQL, заполняющие базу тестовыми данными.
  17.  
  18. Домашнее задание 3
  19. Дано отношение с атрибутами Student_id, Student_Name, Group_id, Group_name, Course_Id, Course_Name, Lecturer_Id, Lecturer_Name, Mark.
  20.  
  21. - Найдите функциональные зависимости в данном отношении.
  22. - Найдите ключи данного отношения.
  23. - Найдите неприводимое множество функциональных зависимостей для данного отношения.
  24.  
  25. Домашнее задание 4
  26. Дано отношение с атрибутами Student_id, Student_Name, Group_id, Group_name, Course_Id, Course_Name, Lecturer_Id, Lecturer_Name, Mark.
  27.  
  28. - Инкрементально приведите данное отношение в 5 нормальную форму.
  29. - Постройте соответствующую модель сущность-связь.
  30. - Постройте соответствующую физическую модель.
  31. - Реализуйте SQL-скрипты, создающие схему базы данных.
  32. - Создайте базу данных по спроектированной модели.
  33. - Заполните базу тестовыми данными.
  34.  
  35. Домашнее задание 5
  36. Составьте выражения реляционной алгебры и соответствующие SQL-запросы для базы данных «Деканат», позволяющие получать:
  37.  
  38. - Информацию о студентах с заданной оценкой по предмету «Базы данных».
  39. - Информацию о студентах не имеющих оценки по предмету «Базы данных»:
  40. - среди всех студентов
  41. - среди студентов, у которых есть этот предмет
  42. - Информацию о студентах, имеющих хотя бы одну оценку у заданного лектора.
  43. - Идентификаторы студентов, не имеющих ни одной оценки у заданного лектора.
  44. - Всех студентов, имеющих оценки по всем предметам заданного лектора.
  45. - Для каждого студента имя и курсы, которые он должен посещать.
  46. - По лектору всех студентов, у которых он хоть что-нибудь преподавал.
  47. - Пары студентов, такие, что все сданные первым студентом предметы сдал и второй студент.
  48.  
  49. Домашнее задание 6
  50. Составьте запросы в терминах исчисления кортежей и языков Datalog и SQL для базы данных «Деканат», позволяющие получать:
  51.  
  52. - Информацию о студентах с заданной оценкой по предмету «Базы данных».
  53. - Информацию о студентах не имеющих оценки по предмету «Базы данных».
  54. - среди всех студентов
  55. - среди студентов, у которых есть этот предмет
  56. - Информацию о студентах, имеющих хотя бы одну оценку у заданного лектора.
  57. - Идентификаторы студентов, не имеющих ни одной оценки у заданного лектора.
  58. - Всех студентов, имеющих оценки по всем предметам заданного лектора.
  59. - Для каждого студента имя и курсы, которые он должен посещать.
  60. - По лектору всех студентов, у которых он хоть что-нибудь преподавал.
  61. - Пары студентов, такие, что все сданные первым студентом предметы сдал и второй студент.
  62.  
  63. Домашнее задание 7
  64. Будем считать, что у студента долг по предмету, если он изучает этот предмет и имеет по нему менее 60 баллов.
  65.  
  66. - Напишите запрос, удаляющий всех студентов, не имеющих долгов.
  67. - Напишите запрос, удаляющий всех студентов, имеющих 3 и более долгов.
  68. - Напишите запрос, удаляющий все группы, в которых нет студентов.
  69. - Создайте view Losers в котором для каждого студента, имеющего долги указано их количество.
  70. - Создайте таблицу LoserT, в которой содержится та же информация, что во view Losers. Эта таблица должна автоматически обновляться при изменении таблицы с баллами.
  71. - Отключите автоматическое обновление таблицы LoserT.
  72. - Напишите запрос (один), которой обновляет таблицу LoserT, используя данные из таблицы NewPoints, в которой содержится информация о баллах, проставленных за последний день.
  73. - Добавьте проверку того, что все студенты одной группы изучают один и тот же набор курсов.
  74. - Создайте триггер, не позволяющий уменьшить баллы студента по предмету. При попытке такого изменения, баллы изменяться не должны.
  75.  
  76. Домашнее задание 8
  77.  
  78. - Определите, какие индексы требуется добавить к таблицам базы данных «Деканат».
  79. - Пусть частым запросом является определение среднего балла студентов группы по курсу. Какие индексы могут помочь при исполнении данного запроса?
  80. - Запишите добавление индексов на языке SQL.
  81.  
  82. Домашнее задание 9
  83.  
  84. В базе данных Airline информация о рейсах самолетов задана в виде таблиц Flights(FlightId, FligtTime, PlaneId), Seats(PlaneId, SeatNo).
  85.  
  86. Дополните эту базу данных, так что бы она поддерживала бронирование и покупку мест. При этом, бронь должна автоматически сниматься по таймауту. При этом, должны поддерживаться следующие свойства:
  87.  
  88. - Одно место не может быть продано или забронировано более чем один раз (в том числе, продано и забронировано одновременно).
  89. - Бронь можно обновить, после чего она будет действительна еще одни сутки.
  90. - Бронь автоматически снимается через сутки после последнего обновления, но не позже, чем за сутки, до вылета рейса.
  91. - Бронирование автоматически закрывается за сутки до времени рейса.
  92. - Продажи автоматически закрываются не позднее двух часов до вылета рейса, либо при распродаже всех мест либо по запросу администратора.
  93.  
  94. Спроектируйте соответствующую базу данных, и напишите запросы:
  95.  
  96. - По номеру рейса — список мест, доступных для продажи и бронирования.
  97. - Бронирование места.
  98. - Продление брони.
  99. - Покупка места.
  100. - Покупка места по брони.
  101. - Закрытие продаж на рейс по запросу администратора.
  102. - Статистика по рейсам: возможность бронирования и покупки, число свободных, забронированных и проданных мест.
  103.  
  104. Домашнее задание 10
  105.  
  106. Реализуйте запросы к базе данных Airline с применением хранимых процедур и функций.
  107.  
  108. - FreeSeats(FlightId) — список мест, доступных для продажи и бронирования.
  109. - Reserve(FlightId, SeatNo) — пытается забронировать место. Возвращает истину, если удалось и ложь — в противном случае.
  110. - ExtendReservation(FlightId, SeatNo) — пытается продлить бронь места. Возвращает истину, если удалось и ложь — в противном случае.
  111. - BuyFree(FlightId, SeatNo) — пытается купить свободное место. Возвращает истину, если удалось и ложь — в противном случае.
  112. - BuyReserved(FlightId, SeatNo) — пытается выкупить забронированное место. Возвращает истину, если удалось и ложь — в противном случае.
  113. - FlightStatistics() — возвращает статистику по рейсам: возможность бронирования и покупки, число свободных, забронированных и проданных мест.
  114. - CompressSeats(FlightId) — оптимизирует занятость мест в самолете. В результате оптимизации, в начале самолета должны быть купленные места, затем — забронированные, а в конце — свободные. Примечание: клиенты, которые уже выкупили билеты так же должны быть пересажены.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement