73033

Пользовательские типы данных на примере MS SQL Server

Лабораторная работа

Информатика, кибернетика и программирование

Изучить возможности по определению и использованию пользовательских типов данных, DML и DDL триггеров, ограничений целостности в постреляционной СУБД. Освоить методы и технологии создания пользовательских типов данных на CLR.Net.

Русский

2014-12-03

51 KB

3 чел.

абораторная работа 3              Постреляционные базы данных, 2014 г.                ИУ5-93 2

Лабораторная работа «Пользовательские типы данных на примере MS SQL Server»
по дисциплине «Постреляционные базы данных»

Цель работы: 

  1.  Изучить возможности по определению и использованию пользовательских типов данных, DML и DDL триггеров, ограничений целостности в постреляционной СУБД.
  2.  Освоить методы и технологии  создания пользовательских типов данных  на CLR.Net.  
  3.  Получить навыки задания ограничений целостности и правил для постреляционной БД.

Литература:

  1.  Пирогов В. SQL Server 2005. Программирование клиент-серверных приложений. - Спб.: БХВ-Петербург. - 2006 г.

Литература дополнительная:

  1.  Уолтерс У. и др. SQL Server 2008: ускоренный курс для профессионалов: пер. с англ. – М.: ООО «И.Д. Вильямс», 2009. – 768с.
  2.  Основы программирования на C#. - Электронный ресурс [http://www.intuit.ru]

Время выполнения:

Время выполнения лабораторной работы 2 часа.

Пункты задания для выполнения: 

Задание 1. Создание и заполнение таблиц

В среде SQL Server Management Studio  создать БД lab3_93. 

В БД создать таблицу "Student"(студент), содержит свойства:

  •  fio - ФИО - строковое, varchar(15), (КЛЮЧ),
  •  vuz – вуз – строковое, varchar(10), (ОБЯЗАТЕЛЬНОЕ),
  •  year – год поступления – целое, (ПО УМОЛЧАНИЮ 2014).

Создать таблицу "Ozenka" (оценка), содержит свойства:

  •  subject - дисциплина – строковое, varchar(10),
  •  ball - оценка – целое, (от 2 до 5, ОБЯЗАТЕЛЬНОЕ)
  •  stud — студентvarchar(15),(ВНЕШНИЙ КЛЮЧ – каскадом, обновление – каскадом),
  •  id  - идентификатор (КЛЮЧ - PK) – целое, автоинкремент.
  •  Сочетание  subject и ball является УНИКАЛЬНЫМ.

Открыть таблицы на редактирование и заполнить тестовыми данными.

Проверить ограничения целостности.

Задание 2. Пользовательский тип данных - UDT

2.1. Создание UDT

В среде MS Visual Studio на языке С# создать пользовательский тип данных Square с полями:

Len - длина, скрытое,

sqr() - метод экземпляра — возвращает площадь квадрата,

inf() - метод класса — строка, содержащая пояснение к строке для инициализации объекта.

Переопределить метод Parse — разбор строки инициализации. Содержит «Число» или «Число S». Если указано просто число, то присвоить его длине. Если указано число c буквой S, то считать его площадью, а длину вычислить.

И  toString() - обратная к Parse, возвращает значение длины, площадь и объем.

Вычисляемое поле P – периметр (доступны методы Get и Set, изменяет длину).

Создать сборку,  подсоединить ее к БД на  SQL Server, создать тип данных в БД.

2.2. Работа с переменной пользовательского типа

В среде SQL Server Management Studio в окне запроса создать переменную типа Square и проверить методы работы с ней:

 declare @c тип

set @c='значение'

select @c.ToString(), @c.поле, @c.метод_экз()

set @c.поле=значение

select @c.ToString(), @c.поле

set @c=NULL

select @c.ToString()

select @c::метод_класса()

2.3. Добавление переменной пользовательского типа в таблицу

Добавить поле Sqr нового типа к новой таблице Фигуры (название, квадрат). Продемонстрировать в окне запросов выполнение запросов select и update к таблице с обращением к новому полю.

Открыть таблицу на редактирование и заполнить значения нового поля.

В окне запросов составить и выполнить запросы к таблице, например

- отобразить фигуры с площадью более 100,

- увеличить периметр в 2 раза для всех фигур.

Задание 3. Триггеры DDL - DML 

3.1.  Создание представления

В среде SQL Server Management Studio создать представление Bests, которое выводит:

- ФИО и предметы для отличных оценок.

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

3.2.  Создание DML триггера

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

Проверить работу триггера.

3.3.  Создание DDL триггера

Создать DDL триггер на создание представлений, который отображает сведения о событии.

Проверить работу триггера.

Вопросы для самопроверки: 

  1.  Как создать таблицы, их связи и ограничения используя мастера и DDL-запросы?
  2.  Что такое ограничения целостности, каких типов они бывают и как их задавать?
  3.  Что такое DML триггер, как и когда он запускается и как его создать? Как из триггера определить изменяемые данные?
  4.  Конструкции языка Transact SQL: условие, перехват исключений, создание исключений, присваивание переменных.
  5.  Что такое DDL триггер, как и когда он запускается и как его создать? Как из триггера определить возникшее событие и его параметры?
  6.  Что такое пользовательский тип данных? Как определить его поля (открытые и закрытые) и методы (экземпляра и класса)?  
  7.  Как создать и инициализировать переменную пользовательского типа? Как обратиться к ее полям и методам из запроса?


 

А также другие работы, которые могут Вас заинтересовать

22912. Системи лінійних рівнянь 22 KB
  Система лінійних рівнянь називається сумісною якщо вона має принаймні один розв’язок. Система лінійних рівнянь називається несумісною якщо вона не має розв’язків. Сумісна система лінійних рівнянь називається визначеною якщо вона має єдиний розв’язок.
22913. ТЕОРЕМА КРАМЕРА 43.5 KB
  Αn1x1αn2x2αnnxn=βn Складемо визначник з коефіцієнтів при змінних α11 α12 α1n Δ= α21 α22 α2n αn1 αn2 αnn Визначник Δ називається головним визначником системи лінійних рівнянь 1. Якщо головний визначник Δ квадратної системи лінійних рівнянь 1 не дорівнює нулю то система має єдиний розв’язок який знаходиться за правилом: 2 Формули 2називаються формулами Крамера. Домножимо перше рівняння системи 1 на A11 друге рівняння – на А21 і продовжуючи так далі nе рівняння системи домножимо на Аn1. Отримаємо рівняння яке...
22914. Обчислення рангу матриці 20.5 KB
  Основними методами обчислення рангу матриці є методи оточення мінорів теоретичний і метод елементарних перетворень практичний. Методи оточення мінорів полягає в тому що в ненульовій матриці шукається базисний мінор. Тоді ранг матриці дорівнює порядку базисного мінору.
22915. Теорія систем лінійних рівнянь 24 KB
  Основною матрицею системи 1 називаються матриці порядку m x n. Ранг основної матриці системи A називається рангом самої системи рівнянь 1. Розміреною матрицею системи рівнянь 1 називається матриця порядку mxn1.
22916. Теорема Кронекера – Капелі (критерій сумісної системи лінійних рівнянь) 46 KB
  Припустимо що система сумісна і числа λ1λ2λn утворюють розв’язок системи. Вертикальний ранг основної матриці системи дорівнює рангу системи векторів a1a2an вертикальний ранг розширеної матриці співпадає з рангом системи векторів a1a2anb. Оскільки вектор b лінійно виражається через a1a2an за теоремою 2 про ранг ранги системи векторів a1a2an і a1a2anb співпадають.
22917. Розв’язки системи лінійних рівнянь 50 KB
  Оскільки система сумісна ранги матриці A і рівні і дорівнюють r. Система переписується таким чином: Всі розв’язки системи можна одержати таким чином. Одержується система лінійних рівнянь відносно базисних змінних x1x2xr.
22918. Еквівалентні системи лінійних рівнянь 29.5 KB
  Дві системи лінійних рівнянь з однаковим числом змінних називаються еквівалентними якщо множники їх розв’язків співпадають. Зокрема дві несумісні системи з однаковим числом змінних еквівалентні. Еквівалентними перетвореннями системи лінійних рівнянь називаються перетворення які зводять систему до еквівалентних систем.
22919. Метод Гауса розв’язання систем лінійних рівнянь (метод виключення змінних) 84.5 KB
  Отже за теоремою Крамера система має єдиний розв’язок. Але на практиці цей розв’язок зручніше знаходити не за формулами Крамера. Система має нескінчену кількість розв’язків змінні системи діляться на дві частини – базисні та вільні змінні.
22920. Поняття підпростору 47 KB
  1 в підпросторі M існують два лінійно незалежні вектори a1 і a2. З іншого боку пара лінійно незалежних векторів утворює базис площини R2. Це означає що будьякий вектор простору лінійно виражається через a1 і a2. 2 в підпросторі M існує лише лінійно незалежна система що складається з одного вектора a.