07 октября 2010

Разминка

Вопрос 1.

Что произойдет в результате выполнения скрипта:


CREATE TABLE A (
  a1 INT, a2 VARCHAR, a3 NUMERIC, UNIQUE (a1, a2))


CREATE TABLE B (
  b1 VARCHAR, b2 NUMERIC, b3 INT,
  FOREIGN KEY (b1, b2) REFERENCES A(a2,a3))


  1. Скрипт не выполнится, потому что внешний ключ не может быть составным
  2. Скрипт не выполнится, потому что ссылочные атрибуты не являются ключом
  3. Скрипт не выполнится, потому что имена ссылающихся и ссылочных атрибутов разные
  4. Скрипт выполнится без ошибок

Вопрос 2.

Вы делаете связь многие-ко-многим между товарами и поставщиками у которой есть собственный атрибут, например, цена данного товара у данного поставщика. Вы хотите чтоб цена была уникальна для пары (товар, поставщик). Чего не хватает в этом операторе?


CREATE TABLE Goods_Supplier(
  goods_id INT FOREIGN KEY REFERECES Goods,
  supplier_id INT FOREIGN KEY REFERENCES Supplier,
  price NUMERIC (10, 2) CHECK (price >= 0))

  1. Да вроде всё на месте
  2. Ограничения UNIQUE для цены
  3. Ограничения UNIQUE для каждого из внешних ключей
  4. Ограничения UNIQUE для пары внешних ключей
  5. Ограничения UNIQUE для всей тройки атрибутов
Слайды

30 сентября 2010

Практика 30 сентября

Разминка


Вопрос 1. Что произойдет в результате выполнения скрипта:

1: CREATE TABLE A (a1 INT, a2 VARCHAR)
2: INSERT INTO A (a2, a1) VALUES ('12345', 12345)


  1. Скрипт упадет потому что порядок атрибутов в добавляемом кортеже не соответствует порядку атрибутов в таблице
  2. Скрипт упадет потому что строчка '12345' не поместится в отведенный атрибуту a2 тип
  3. Скрипт выполнится успешно


Вопрос 2. Вам даны синтаксические правила:

<рецепт> := <тип_блюда> название_блюда : <список_ингредиентов>
<тип_блюда> := СУП | САЛАТ | ЗАКУСКА
<список_ингредиентов> := <ингредиент> [,...n]
<ингредиент> := <название продукта> [<число> <единица измерения>]
<название_продукта> := ЛУК | ПОМИДОР | CОЛЬ | ВОДА | ХЛЕБ | МАСЛО
<единица_измерения> := ГР. | ШТ. | СТ.Л. | СТАК.
<число> -- вещественное число с точкой

В каком из этих рецептов есть синтаксическая ошибка и почему?

  1. СУП томатный : ПОМИДОР 1000 ГР., ВОДА 2 ШТ.
  2. САЛАТ пикантный : ЛУК 1 ШТ., ПОМИДОР 2 ШТ., МАСЛО СТ.Л.
  3. ЗАКУСКА Хлеб-Соль : ХЛЕБ, СОЛЬ

Слайды

23 сентября 2010

Практика 23 сентября

Разминка

Вопрос 1.
Пусть существует связь R между множествами сущностей A и B. Кардинальность участника A равна 1, кардинальность участника B равна *. Какое из этих утверждений является верным?


1. Один экземпляр сущности A может участвовать только в одном экземпляре связи
2. Один экземпляр сущности B может участвовать только в одном экземпляре связи
3. В одном экземпляре связи участвует один экземпляр сущности A и неограниченное количество экземпляров сущности B

Вопрос 2.
Пусть класс A наследует класс B, а тот наследует класс С. Пусть есть еще класс D. Какое из этих утверждений является НЕверным?


1. В сущности А есть все свойства определенные в классе С
2. Сущности A и B могут принимать участие во всех связях, в которых могут принимать участие сущности C
3. При удалении какой-либо сущности C удаляются все сущности A и B
4. Сущность C не может участвовать в связи R(A,D)

Слайды (полноэкранные)

16 сентября 2010

Практика 16 сентября

Разминка

Что из нижеперечисленного можно делать в компьютерном классе?

  1. Разговаривать по мобильному телефону с мамой
  2. Пытаться сотворить интересные вещи с вашим любимым новостным сайтом путем вбивания HTML кода в форуме
  3. Пробовать запускать SQL скрипты, написанные для MS SQL Server'а, в программе MS Access
  4. Сидеть в углу, жевать бутерброд и запивать его чаем, громко прихлебывая
Что можно сгенерировать из ER модели данных?
  1. SQL код
  2. Java код
  3. И то и другое
  4. Ничего


Практика, часть 1 (полнозкранные слайды)



Практика, часть 2 (полноэкранные слайды)

09 сентября 2010

СУБД: что, где, когда и у кого.

Коротко о главном.

Правила проведения сессии


Обратите дражайшее внимание на правила проведения сессии. Где найти присланный "сверху" 70-страничный документ не знаю (не на сайте матмеха же, на самом деле), но некоторые неленивые преподаватели сделали из него выжимку.


Где и когда

Лекции читаю я, Дмитрий Барашев, по четвергам на третьей паре, пока что в аудитории 03.

Практику в группах 423 и 424 тоже веду я и тоже по четвергам, практику в группах 421 и 422 ведёт Александр Дольник Анастасия Григорьева по средам.


Зачёт и экзамен

По курсу начная с этого, 2010 года сдаётся экзамен и это хорошо. Зачёта нет, но сдать экзамен без допуска по практике не получится.

На практике нужно научиться выполнять практические действия с настоящей живой СУБД и доказать ваше умение преподавателю. Качественное выполнение двух контрольных работ является необходимым условием, преподаватель волен добавлять дополнительные условия (например, домашние работы).

На экзамене, традиционно, два вопроса, подготовка, беседа с экзаменатором, получение оценки.

На экзамене можно пользоваться любой литературой и конспектами. На него не надо приходить, не прочитав хотя бы конспект. На нём не надо заниматься ручным ксерокопированием текста из конспекта на листочек.

Контакты

Дмитрий Барашев:

  • почта для общения на тему этого курса: dbms гавгав barashev.net
  • веб: http://barashev.net
  • вконтакте: http://vkontakte.ru/id6171*
    *не нужно нарываться на дружбу до окончания курса

Практика 10 сентября

Приступаем к анализу предметной области.

Слайды (полноэкранные)

Практические работы на весь семестр

Большое практическое задание, которое делается в течении семестра, на факультете во время практики или дома. Цель его -- подготовиться к контрольной. Считается, что тот, кто к домашней работе даже не притрагивался, тот к контрольной не готов, и только зря будет терять на ней время. Поэтому домашнюю работу надо делать и не имеет смысла списывать (даже если и получится подсунуть списанное, к контрольной это вас не подготовит). Ее можно делать вдвоем, можно (и нужно) консультироваться с о мной если вдруг что непонятно (и даже если всё понятно), можно делать дома и в аудитории, можно и нужно присылать результаты по почте.

Варианты работы (можно выбирать любой, если только все не кинутся делать один и тот же):

  1. Авиакомпания
  2. Звукозапись
  3. Багтрекер
  4. Кофе