ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.01.2024

Просмотров: 1782

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

РАБОТА №1 ПРАКТИЧЕСКАЯ. ПОСТРОЕНИЕ БАЗЫ ДАННЫХ В СРЕДЕ ОДНОЙ ИЗ СУБД

Общие сведения о базах данных

Точные числа:

Символьные строки:

Двоичные данные:

Прочие типы данных:

РАБОТА №2 ПРАКТИЧЕСКАЯ. ПОСТРОЕНИЕ СХЕМЫ И СЛОВАРЯ БАЗЫ ДАННЫХ

РАБОТА №3 ПРАКТИЧЕСКАЯ. ИЗУЧЕНИЕ КОМАНД АДМИНИСТРИРОВАНИЯ ДАННЫХ

Привилегии

Команда GRANT

Операторы языка определения данных ddl и модификации отношений

Создание хранимой процедуры

Изменение хранимой процедуры

Удаление хранимой процедуры

Использование переменных в хранимых процедурах

Преимущества использования процедур

Пользовательские функции UDF (user-defined function)

Multi-Statement Table

Удаление функции

РАБОТА №6 ЛАБОРАТОРНАЯ. РАЗРАБОТКА

РАБОТА №7 ПРАКТИЧЕСКАЯ. УСТАНОВКА

РАБОТА №8 ПРАКТИЧЕСКАЯ. УСТАНОВКА И НАСТРОЙКА СУБД MY SQL

Восстановление базы данных

РАБОТА №10 ПАРКТИЧЕСКАЯ. КОПИРОВАНИЕ БАЗ ДАННЫХ СРЕДСТВАМИ КОМАНД SQL

РАБОТА №11 ПРАКТИЧЕСКАЯ. ПЕРЕНОС БАЗЫ ДАННЫХ НА ДРУГОЙ ТИП СЕРВЕРА

РАБОТА №12 ПРАКТИЧЕСКАЯ. СОЗДАНИЕ МЕХАНИЗМОВ СЕРВЕРА ДЛЯ ОБСЛУЖИВАНИЯ БАЗЫ ДАННЫХ

sp_delete_backuphistory [ @oldest_date = ] «oldest_date»

РАБОТА №14 ПРАКТИЧЕСКАЯ. МОНИТОРИНГ НАГРУЗКИ СЕРВЕРА

Системная процедура sp_who.

USE master; GO

РАБОТА №15 ПРАКТИЧЕСКАЯ. УСТАНОВКА И НАСТРОЙКА СЕРВЕРА БД ORACLE

Задание опций установки

Описание служб Oracle

СОДЕРЖАНИЕ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ПО ДИСЦИПЛИНЕ

Дополнительная литература

Программное обеспечение и интернет-ресурсы

ПРИЛОЖЕНИЕ

Вставка строки

Изменение значения поля в строке

Удаление строки

Стандартные функции SQL Server Агрегативные функции

Функции манипуляции датой и временем

Niladic-функции

Функции для манипуляции со строками

Функции для преобразования различных типов данных

Атрибуты:

Связи:

Диаграмма связей в БД

Пример выполнения работы №5

Multi-Statement Table

Другой тип UDF – Multi-Statement Table-valued Function. Какследует из названия, этот тип функции возвращает тип данных table.Тело такой функции может быть достаточно сложным и включатьмножествооператоров,находящихсямеждуключевымисловамиBEGIN…END. В данном простом примере в БД Pubs создается функ-ция, которая может возвращать фамилию и имя либо автора книги,либо служащегоиздательства.CREATEFUNCTIONFunMult(@bnvarchar(8))RETURNS@Fun_Authtable([First Name] nvarchar(80) not null,[LastName]nvarchar(80)notnull)ASBEGINIF@b=«author»INSERT @Fun_Auth SELECT au_fname, au_lnameFROMauthorsELSEIF@b=«employee»INSERT @Fun_Auth SELECT fname, lnameFROMemployeeRETURNENDВ зависимости от входного параметра, указываемого в конст-рукции select при вызове функции, получаем разный результат, об-ращаяськтаблицеauthorиликemployee:SELECT*FROMdbo.FunMult(«author»)SELECT*FROMdbo.FunMult(«employee»)Функция InLine тоже возвращает значение типа table, но отли-чаетсяотMulti-StatementTable-valuedтем,чтоможетсостоятьтолькоиз однойкомандыselect.CREATEFUNCTIONFunInLine@State nvarchar(30))RETURNStableASRETURN (SELECT pub_name, cityFROMPubs.dbo.publishersWHEREstate=@State)Обращение к функции происходит в предложении from конст-рукции select:SELECT*FROMFunInLine(«Texas»)

Удаление функции

DROPFUNCTIONИмяфункцииОсобенностью функции InLine является то, что код функциипри выполнении программы вставляется непосредственно в испол-няемыйнаборкоманд.Другимисловами,происходитневызовфункции,австраивание.В среде SQL server хранимую процедуру или функцию можносоздать в приложении Management Studio в разделе хранимых про-цедур с помощью контекстного меню. Или выполнением запроса
соответствующего содержания из любого доступного приложения,напримервQuery Analyzer.

    1. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

  1. Уточнить задание применительно к сформированным отно- шениям.

  2. Схематично описать необходимые запросы по заданию для своей БД.

  1. Утвердить у преподавателя эскиз лабораторной работы.

  2. Создать хранимые процедуры и функции с использованием описанных операторов в методичке (также использовать по одной из стандартных функций по выбору преподавателя).

  3. Подготовить и предоставить контрольные примеры с ис- пользованием хранимых процедур.
4.ЗАДАНИЯ

  1. Создать хранимую процедуру, в которой будет выполняться гибкий запрос на группировку по различным полям в зависимости от входного параметра

  2. Создать пользовательскую функцию, которая возвращает значение, вычисленное, на основе одного или нескольких атрибутов отношения по заданным критериям поиска.

  3. Создать хранимую процедуру, использующую созданную пользовательскую функцию.

  4. Создать хранимые процедуры для вставки, изменения и удаления данных, переданных через входные параметры.

  1. КОНТРОЛЬНЫЕ ВОПРОСЫ

  1. Что такое хранимая процедура, общий формат описания и вызов?

  2. Каков формат описания переменных в хранимых процеду-

рах?


  1. Тип параметров функций и процедур.

  2. Описать типы пользовательских функций.

  3. Формат описания конструкций цикла и ветвления.

  4. Чем отличается хранимая процедура от пользовательской


функции?

  1. Что дает использование ХП при разработке БД?

РАБОТА №6 ЛАБОРАТОРНАЯ. РАЗРАБОТКА

МЕХАНИЗМОВСЕРВЕРАБАЗДАННЫХ.ТРИГГЕРЫ

    1. ЦЕЛЬ РАБОТЫ
Получитьпрактическийнавыкиспользованиятриггеровдляорганизациибизнес-логикина сторонесервера.Всвязисэтимзадачамиработыявляются:

    • Изучить принципы работы и особенности построения триг- геров в среде MS SQL Server.

    • Создать триггеры, выполняющие действия, согласно инди- видуальному заданию.

    1. ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
Триггер–этооткомпилированнаяпроцедура,используемаядля выполнения действий, инициируемых происходящими в базеданныхсобытиями.Такимисобытиямиявляютсязапросыкбазеданным, генерируемые операторами языка манипуляции данными –DML (INSERT, DELETE или UPDATE). Триггер может выполнять-ся вместо или после операторов. С помощью триггеров можно от-менять транзакции, атакжемодифицировать данные однихтаблици читать данные других даже из других баз данных. Таким образом,результатомработытриггеровявляетсяобеспечениецелостностибазыданных.Чаще всего триггеры использовать очень удобно, однако, ихиспользование приводит к значительному увеличению числа опера-ций ввода-вывода. Триггеры не следует использовать тогда, когдасохраненная процедура или программа может добиться тех же ре-зультатовсменьшиминакладнымирасходами.ВMicrosoftSQLServerсинтаксисоператорадлясозданиятриггеравыглядитследующимобразом.CREATE TRIGGER имяТриггераONимяТаблицыПредставления{{FOR|AFTER|INSTEADOF}{[INSERT],[DELETE],[UP-DATE]}AS
операторыSQL[IFUPDATE(ПОЛЕ)[{AND|OR}UPDATE(ПОЛЕ)]]итд…ИзменеиетриггераALTERTRIGGERимяТриггераOn………Удалениетриггера:DROPTRIGGERимяТриггераТриггер может быть создан только в текущей базе данных, нодопускается обращение внутри триггера к другим базам данных, втомчисле ирасположенным наудаленномсервере.Имя триггера должно быть уникальным в пределах базы дан-ных.Дополнительно можноуказатьимявладельца.При использовании триггеров, действия, выполняемые с таб-лицами,предварительновыполняютсясвременнымитаблицами.При вставке строк данные предварительно помещаются в таблицуinserted, при удалении – удаляемые данные помещаются в таб-лицуdeleted,аналогичнопримодификацииданных.Работатриггерастроитсянапредварительномконтролевво-димых, удаляемых или модифицируемых данных с помощью вре-менных таблиц. Данные таблицы имеют такую же структуру, как итаблицы, на которыесоздаютсясоответствующие триггеры.Пример1Использование триггера для реализации ограничений на зна-чение. В добавляемой в таблицу Сделка записи количество продан-ного товара должно быть не меньше, чем его остаток из таблицыСклад.Команда вставки записи в таблицуСделка может быть, на-пример,такой:INSERTINTOСделкаVALUES(3,1,-299,»01/08/2002»)Создаваемый триггер должен отреагировать на ее выполнениеследующим образом: необходимо отменить команду, если в таблицеСклад величина остатка товара оказалась меньше продаваемого ко-личества товара с введенным кодом (в примере код товара=3). Вовставляемой записи количество товара указывается со знаком «+»,еслитоварпоставляется,исознаком«-»,еслионпродается.