тут все
БД 1 лаба
Создать физическую модель бд в 3НФ и саму базу данных по следующим условиям. Даны таблицы "Студенты", "Учебные группы", "Дисциплины", "Оценки", "Преподаватели". Таблица "Студенты" связана с таблицей "Учебные группы" и "Оценки", таблица "Дисциплины" связана с таблицами "Оценки" и "Преподаватели".
Задание: писать запросы к созданной БД. В запросах вместо“X” подставьте своё значение, смотря что вбивали в качестве данных. Прикрепить скрины результатов и код SQL в отчете
11. Получить список всех студентов, у которых оценка по предмету “X” выше средней оценки по этому предмету:
12. Получить список всех студентов, которые обучаются в группе, в которой нет студентов с именем "X":
13. Получить список всех предметов, которые преподают только учителя с именем "X":
14. Получить средний балл по всем предметам для каждого студента:
15. Получить список всех студентов, у которых есть оценки по всем предметам:
БД 2 лаба
https://learn.microsoft.com/ru-ru/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver16 - свежая статья по теме
Практика: для любой имеющейся БД написать 3 различных запроса разного уровня сложности. Затем отобразить для них предполагаемый и фактический планы выполнения, выполнить анализ полученных данных, сделать вывод о проделанной работе 🙂
БД 3 лаба
https://otus.ru/journal/vse-chto-neobhodimo-znat-pro-indeksy-ms-sql/ - must have, особенно заострить внимание на кластерных и некластерных индексах
https://www.schoolsw3.com/sql/sql_create_index.php - синтаксис и примеры
- Для любой имеющейся в наличии БД создать 3 запроса различного уровня сложности, для них посмотреть ожидаемый и фактические планы выполнения запросов (в целом можно взять из прошлой ЛР).
- Для различных столбцов вашей БД, используемых в вышеуказанных запросах, создать 3 индекса различных типов (по индексу на столбец, соответственно)
- Проанализировать изменения в ожидаемом и фактическом плане выполнения запросов
- Внести произвольные изменения в индексе. Например, можно добавить или удалить столбец из ключа индекса или изменить значение параметра индекса
- Удалить созданные ранее индексы
В отчет нужно приложить скриншоты по каждому пункту, а также дать ответы на контрольные вопросы 🙂
- Что такое индекс в SQL?
- Назовите существующие типы индексов, опишите их
- Когда рационально использовать индексы, а когда нет?
БД 4 лаба
Если очень кратко, то представление - это результат запроса, который сохраняется в отдельную таблицу. Ответы на вопросы “Как, зачем и почему” можно узнать ниже:
https://metanit.com/sql/sqlserver/10.1.php - лучший сайт(не реклама)
https://learn.microsoft.com/ru-ru/sql/relational-databases/views/create-views?view=sql-server-ver16 - официальная документация, что тоже неплохо
По аналогии с прошлыми ЛР, создать 3 логичных представления для различных наборов данных в вашей БД. То есть нужно аргументировать, почему именно для этого набора данных рационально создать представление. Также нужно воспользоваться командой ALTER VIEW для изменения представления, к примеру, добавить к нему еще один столбец. Далее создать по одному произвольному запросу любой сложности с использованием этих представлений. Результат в скриншотах, как обычно.
- Что такое представление в SQL?
- Для каких целей используются представления в SQL?
- Перечислите существующие типы представлений с кратким их описанием
БД 5 лаба
Создание хранимых процедур и определенных пользователем функций
https://metanit.com/sql/sqlserver/11.1.php - сведения о назначении и синтаксисе процедур в SQL
https://learn.microsoft.com/ru-ru/sql/t-sql/statements/create-function-transact-sql?view=sql-server-ver16 - много текста про функции, точно стоит ознакомиться с примерами и тем, что перед ними
https://learn.microsoft.com/ru-ru/sql/relational-databases/user-defined-functions/create-user-defined-functions-database-engine?view=sql-server-ver16 - еще примеры функций
Собственно, практика. Варианты по первой букве фамилии, и делаем именно свой вариант. Объединяться в команды можно сугубо по варианту на этот раз. Далее задания:
Напишите хранимую процедуру, которая принимает на входе имя таблицы и добавляет новую колонку типа INTEGER. Создайте хранимую процедуру, которая принимает на входе имя таблицы и имя колонки, а затем удаляет все строки, где значение этой колонки равно заданному. Напишите функцию, которая принимает на входе строку и возвращает ее длину. Создайте функцию, которая принимает на входе строку и возвращает количество гласных букв в ней.
БД 6 лаба
Создание, модификация и удаление триггеров
https://www.youtube.com/watch?v=AXn7uZFrcs4&ab_channel=ITVDN - видео по триггерам именно в MS SQ
https://metanit.com/sql/sqlserver/12.1.php - снова лучший сайт
https://learn.microsoft.com/ru-ru/sql/relational-databases/triggers/modify-or-rename-dml-triggers?view=sql-server-ver16 - оф. документация
Практика: создать 4 триггера по своей БД, 2 с AFTER, 2 с INSTEAD OF. Самостоятельно определить их назначение (что они будут делать). 1 триггер удалить, 1 отключить и затем включить. Все пункты продемонстрировать скринами/фрагментами кода.
БД 7 лаба
https://learn.microsoft.com/ru-ru/sql/t-sql/language-elements/transactions-transact-sql?view=sql-server-ver16 - официальная документация по транзакциям. В конце страницы будут ссылки на инструкции транзакций, их смотрим обязательно. Далее источники, которые стоит смотреть если вы в отчаянии
https://habr.com/ru/articles/446662/ - этот душный
https://metanit.com/sharp/adonet/2.13.php - в этом мало инфы, хотя сайт категорически хорош
https://studfile.net/preview/3675162/ - еще более душный
https://learn.microsoft.com/ru-ru/sql/t-sql/language-elements/transaction-isolation-levels?view=sql-server-ver16 - про уровни транзакций, полезно
На этот раз не будет конкретного задания по лабе. Вы читаете материал про транзакции, пробуете использовать их у себя в БД, при том разные виды транзакций, и затем пишете отчет по проделанной работе в текстовом документе, желательно со скринами. То есть балл будет зависеть сугубо от того, сколько времени вы потратили на использование транзакций так сказать в песочнице, и на отчет соответственно
БД 8 лаба
https://learn.microsoft.com/ru-ru/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-server-ver16 - создание пользователя
https://studfile.net/preview/3833895/page:41/ - разграничение прав доступа к бд
https://coderlessons.com/tutorials/bazy-dannykh/uchebnik-sql-server/15-sql-server-sozdat-polzovatelia#1 - всё сразу
Практика: создать произвольную группу пользователей с различными типами пользователя (с паролем, сопоставленный с ключом и т.д), раздать им различные права пользования базой данных. Использовать как команды SSMS, так и transact-sql запросы для создания пользователей и раздачи им прав. Отчет в произвольной форме (кроме устной), в идеале со скринами
P.S. по сути такая же песочница, как в лр 24
БД 9 лаба
https://learn.microsoft.com/ru-ru/sql/relational-databases/backup-restore/backup-overview-sql-server?view=sql-server-ver16 - обзор резервного копирования
https://learn.microsoft.com/ru-ru/sql/relational-databases/backup-restore/create-a-full-database-backup-sql-server?view=sql-server-ver16 - создание резервной копии БД
https://learn.microsoft.com/ru-ru/sql/relational-databases/backup-restore/restore-a-sql-server-database-to-a-point-in-time-full-recovery-model?view=sql-server-ver16 - восстановление БД
https://learn.microsoft.com/ru-ru/sql/relational-databases/backup-restore/differential-backups-sql-server?view=sql-server-ver16 - что такое разностные резервные копии
https://learn.microsoft.com/ru-ru/sql/relational-databases/backup-restore/create-a-differential-database-backup-sql-server?view=sql-server-ver16 - Создание разностной резервной копии БД
Практика: аналогично предыдущим, песочница. Посмотреть повертеть варианты создания резервной копии БД, варианты восстановления. Так же как в прошлых лабах отчётик красивый запилить
- Зачем нужно резервное копирование БД?
- Какие существуют виды резервного копирования?
- Какие преимущества и недостатки имеет резервное копирование данных?
- Какие меры безопасности следует принять при хранении и использовании резервных копий данных?
БД 10 лаба
https://learn.microsoft.com/ru-ru/sql/relational-databases/security/securing-sql-server?view=sql-server-ver16 - обеспечение безопасности sql server
Можно еще глянуть вот этот файлик глянуть, если вы крутой или хотите преисполниться: https://docs.google.com/document/d/1bYw1etMWjXBMSzMFtstFry9swgmm95bq9JJBcFVE0Vo/edit?usp=sharing (это перевод вот этой документации: https://learn.microsoft.com/ru-ru/archive/blogs/sqlsecurity/security-best-practice-and-label-security-whitepapers )
Задание: проще некуда. Записать изученные вами методы обеспечения безопасности MS SQL Server в отчёт. Это как вывод по лабе, только без лабы
БД 11 лаба
Главная кнопочная форма. Создание простых ленточных форм для работы с данными - древний фолиант, но просто чтоб понимать, что нужно
Разработка шаблона формы на основе базы данных Microsoft SQL Server - Служба поддержки Майкрософт
C# + MSSQL | Создаём и подключаем базу данных к Windows Forms | SQL Запросы - вы вроде как c# учили и пишете на нем что-то, то вот видео по теме с шарпами. там в цикле 3 видео, на каждое уже не буду ссылку оставлять, должно появиться в предложке
- создать БД на 2+ таблицы с произвольной спецификой (предприятие, университет, магазин, т.п.), внести строк по 20 любых.
- На любом языке программирования реализовать форму для работы с данными. Пункты такие: внести запись в произвольную таблицу, вывести все записи, удалить запись.
- Опционально: вывод записей с заданным фильтром/по критериям, возможность в форме добавить пользователей для работы с бд.