- •Введение
- •Глава 1 информационные системы
- •1.1 Информация как ресурс
- •1.2 Файловые системы
- •1.3 Информационные системы, использующие базы данных
- •1.3.1 Иерархические и сетевые модели данных
- •1.3.2 Реляционные системы управления базами данных
- •1.4 Компоненты информационных систем
- •1.4.1 Технические средства
- •1.4.2 Программное обеспечение
- •1.4.3 Данные
- •1.4.4 Пользователи
- •1.4.5 Организационное обеспечение
- •1.4.6 Отношения между компонентами системы
- •1.5 Основы проектирования информационных систем
- •1.5.1 Жизненный цикл программного обеспечения
- •1.5.2 Модели жизненного цикла по
- •1.5.3 Подходы к проектированию ис
- •1.6 Задания и вопросы для повторения
- •2.2 Подходы к проектированию баз данных
- •2.3 Создание базы данных
- •2.4 Основы концептуального проектирования баз данных
- •Объекты и отношения
- •2.3.2. Атрибуты
- •2.3.3 Ключи
- •2.3.4 Наследование
- •2.3.5 Составные объекты
- •2.3.6 Моделирование концептуальных и физических объектов
- •2.4 Реляционная модель данных
- •2.4.1 Поддержка целостности данных
- •Процесс нормализации таблиц
- •2.4.3 Пример построения нормализованной базы данных
- •2.4.4 Преобразование концептуальной модели в реляционную
- •2.5 Элементы er-моделирования
- •2.5.1 Основные понятия модели «сущность-связь»
- •2.5.2 Основные графические обозначения элементов модели
- •2.6 Заключительный этап проектирования
- •2.7 Сравнение концептуального и реляционного моделирования
- •2.8 Вопросы и задания для повторения
- •2.9 Упражнения и задачи
- •2.10 Проекты и профессиональные вопросы
- •Глава 3 реляционная алгебра и реляционное исчисление
- •3.1 Реляционная алгебра
- •3.1.1 Обзор реляционной алгебры
- •3.1.2 Теоретико-множественные операторы
- •3.1.3 Специальные реляционные операторы
- •3.1.4 Зависимые реляционные операторы
- •3.1.5 Примитивные реляционные операторы
- •3.2 Реляционное исчисление
- •3.2.1 Целевой список и определяющее выражение
- •3.2.2 Квантор существования
- •3.2.3 Квантор всеобщности
- •3.3 Заключение
- •3.4 Вопросы на повторение
- •3.5 Упражнения и задачи
- •Глава 4 управление реляционной базой данных с помощью sql
- •4.1 Элементы Transact-sql
- •Комментарии
- •4.1.2 Алфавит
- •4.1.3 Идентификаторы
- •Выражения
- •4.1.5 Ключевые слова
- •Операторы
- •4.1.7 Логические операторы
- •Типы данных
- •- Функции Transact-sql
- •4.2 Выборка данных из таблиц
- •4.2.1 Структура команды select
- •Результаты выборки
- •Отбор столбцов
- •Select Фамилия, Город from Гостиница.Dbo.Клиент
- •4.2.4 Определение заголовков столбцов
- •Выражения в выборках
- •Отбор записей
- •Порядок вывода данных
- •Котов Кузьма Кузьмич
- •Группировка данных
- •Отбор данных для групп
- •4.2.10 Директива compute
- •Выборка данных из нескольких таблиц
- •Объединение с помощью предложения where
- •Внутреннее объединение
- •4.2.14 Объединение и опция join
- •Оператор union
- •Подзапросы и структурированные запросы
- •Создание таблицы на основе выборки
- •Предложение for browse
- •4.3 Модификация данных
- •Добавление данных
- •Изменение данных
- •Удаление строк
- •Управляющие конструкции
- •Создание таблиц базы данных
- •4.6 Транзакции и блокировки
- •4.6.1 Понятие транзакций и блокировок
- •Управление транзакциями
- •Явные транзакции
- •Автоматические транзакции
- •Неявные транзакции
- •Управление блокировками
- •4.7 Хранимые процедуры
- •4.7.1 Типы хранимых процедур
- •Создание хранимых процедур
- •4.8 Триггеры
- •Создание триггера
- •Ограничения при создании триггеров
- •Использование триггеров
- •Вопросы на повторение
- •4.10 Упражнения и задачи
- •4.11 Проекты и профессиональные вопросы
- •Заключение
- •Приложение а sql скрпит, для создания таблиц согласно модели бд "Университет"
- •Литература
Вопросы на повторение
Объясните своими словами смысл терминов:
Комментарий
Алфавит
Идентификаторы
Выражения
Ключевые слова
Арифметические операции
Логические операции
Типы данных
Агрегатные функции
Выборка данных
Внутреннее объединение таблиц
Внешнее объединение таблиц
DISTINCT
Фраза GROUP BY
INSERT
DELETE
EXISTS
UPDATE
Ассоциативный поиск данных
Символы маски
Хранимые процедуры
Триггеры
Какая фирма первой предложила коммерческую реализацию SQL?
Опишите, что может стоять в каждом из следующих предложений, входящих в состав команд SQL:
SELECT
FROM
INTO
WHERE
GROUP BY
HAVING
ORDER BY
Опишите действие каждой из операций:
UNION
INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL JOIN
4.10 Упражнения и задачи
1) Установите соответствие между терминами и объяснениями к ним:
Псевдоним |
а |
Содержит основные или действительные данные |
LEFT OUTER JOIN |
б |
Альтернативное имя, данное таблице |
Фраза FROM |
в |
Перечисляет существующие таблицы, на которые ссылается запрос |
Декартово произведение |
г |
Специальные символы, замещающие неопределенные строки символов |
Подзапрос |
д |
Спаривает каждую строку одной таблицы с каждой строкой другой таблицы |
Оператор EXISTS |
е |
Левое внешнее объединение таблиц |
Фраза HAVING |
ж |
Служит для создания теоретико-множественного пересечения двух таблиц |
Команда SELECT |
з |
Запрос внутри запроса |
Оператор NOT EXISTS |
и |
Команда удаления данных |
Таблица |
к |
Условие для отбора строк в выборке |
Фраза WHERE |
л |
Объединение нескольких команд SELECT |
Символы шаблона |
м |
Условия отбора данных в группы |
UPDATE |
н |
Выборка данных из таблиц |
UNION |
о |
Денежный тип данных |
COMPUTE |
п |
Полное объединение таблиц |
DELETE |
р |
Данные не определены |
NULL |
с |
Служит для определения теоретико-множественной разности таблиц |
MONEY |
т |
Команда модификации данных |
FULL JOIN |
у |
Получение итоговых значений в группах |
2) Напишите команды SQL для работы с таблицами базы данных ГОСТИНИЦА.
Простые запросы:
Фамилия и имя клиента, код которого равен 10.
Фамилии клиентов из Рязани.
Цена проживания в одноместных номерах.
Выдать список номеров пятого этажа гостиницы.
Выдать список двухместных номеров.
Каков код клиента Иванова из Пензы?
Выдать список клиентов, Фамилии которых начинаются с буквы «К».
Выдать список клиентов, третья буква фамилии которых «и».
Выдать названия всех городов, из которых клиенты прибывали в гостиницу.
Объединение таблиц
Какова цена проживания в номере 55?
Фамилии клиентов, прибывших в гостиницу 23 февраля 2001 года.
Список номеров, в которых останавливался Суворов из Владимир.
Фамилии клиентов, проживающих в настоящее время в гостинице.
Список номеров гостиницы, в которых в настоящее время проживают клиенты, с указанием стоимости проживания в сутки.
Подзапросы
Перечислить города, клиенты из которых останавливались в номерах 15 и 66.
Перечислить фамилии клиентов, которые в текущем году останавливались в одноместных номерах.
Перечислить номера, цена проживания в которых не превышает 500 рублей.
Встроенные функции
Какова максимальная цена проживания в гостинице?
Каково среднее количество мест в номерах гостиницы?
Из скольких городов приезжали в гостиницу клиенты?
Сколько всего мест в гостинице?
Сколько в гостинице одноместных номеров?
GROUP BY и HAVING
Сколько номеров имеется на каждом этаже гостиницы?
Каково максимальное количество мест на каждом этаже гостиницы?
Каково среднее число клиентов, приезжающих в гостиницу ежемесячно?
Количество клиентов из каждого города, приезжавших в гостиницу.
Кто из клиентов проживал в 2001 году в гостинице более двух раз?
Операции изменения данных
Добавьте клиента Курочкина Афанасия Егоровича, прибывшего из Калуги, в таблицу КЛИЕНТЫ.
Увеличьте цену проживания в гостинице на 15%.
Удалите из базы данных клиента Иванова Ивана Ивановича ил Костромы. Не забудьте при этом удалить все записи других таблиц, связанные с ним.
3) Дана реляционная схема базы данных для работников ГИБДД:
ВОДИТЕЛЬ (номер удостоверения, ФИО, адрес), АВТОМОБИЛЬ (регистрационный №, марка, цвет, № водительского удостоверения), НАРУШЕНИЕ (код нарушения, № водительского удостоверения, тип нарушения, дата), ОБСТОЯТЕЛЬСТВА (дата, время, место, погода). Необходимо разработать select-запросы, позволяющие получить ответ на поставленные вопросы:
Кто из водителей имеет более одного автомобиля?
Кто из водителей в течение 2006 года нарушал правила дорожного движения более трех раз?
Предоставить регистрационные номера автомобилей, нарушивших правила дорожного движения с 20.11.2006 г. по 20.12.2006г.
Сколько нарушений правил дорожного движения было зарегистрировано сотрудниками ГАИ в течение 25 ноября 2006г.
4) Дана реляционная схема базы данных фирмы, осуществляющей междугородные грузовые перевозки: КЛИЕНТ (код клиента, тип (производитель, оптовый продавец, торговая компания), название, годовой доход), ОТГРУЗКА (номер отгрузки, код клиента, вес груза, номер грузовика, пункт назначения, дата отправки груза, дата прибытия груза), ВОДИТЕЛЬ (ФИО водителя, номер отгрузки), ПУНКТ НАЗНАЧЕНИЯ (название города, адрес, число жителей). ). Необходимо разработать select-запросы, позволяющие получить ответ на поставленные вопросы:
Для каждого города с населением свыше 1 млн. человек выяснить минимальный вес отправленного груза.
Для каждого города, в который было отправлено не менее 15 грузов, выяснить средний вес отправленных грузов.
Каков общий вес всех грузов, перевозимых машиной с регистрационным номером М234РА?
Каков средний вес грузов каждого клиента фирмы?
Какие города в БД имеют наименьшую и наибольшую численность населения?
Каков средний вес грузов, отправленных в Санкт-Петербург?
Кто из водителей доставлял грузы клиентам с годовым доходом более 5 млн. рублей?
Выдать названия и средний годовой доход всех клиентов, отправлявших грузы в города, названия которых заканчиваются на «ва».
Получить перечень клиентов фирмы, чей средний месячный доход превышает 500 тысяч рублей.
Получить названия клиентов, отправлявших грузы в Казань и Москву.
Предоставить список названий всех торговых компаний, который воспользовались услугами данной фирмы для доставки собственных грузов.
Перечислить имена водителей, доставлявших грузы весом более 1 тонны.
Перечислить названия городов с населением свыше 500 тысяч человек, в которые водитель Иванов доставлял грузы весом более 1 центнера.
Необходимо предоставить все данные о грузах весом свыше 20 кг.
Создать алфавитный список клиентов с годовым доходом более 1 млн. рублей.
Получить список клиентов, грузы которых имеют вес мене 100 кг.
Напишите операции изменения БД: удалите из БД все города с населением до 5 тысяч человек. Не забудьте обновить таблицу «ОТГРУЗКА».
Напишите операции изменения БД: преобразуйте вес каждого груза из кг в тонны.
Напишите операции изменения БД: введите грузовик с регистрационным номеров К352РА и закрепите его за водителем с фамилией Иванов.
5) Дано описание базы данных (перечень таблиц с указанием соответствующих полей). Необходимо установить отношения между таблицами и разработать SQL-скрипты создания базы данных и таблиц в конкретной СУБД.
База данных университета должна состоять из таблиц, позволяющих хранить следующие данные: сведения о факультетах (код факультета, название, адрес, телефон), сведения обо всех кафедрах каждого факультета (код кафедры, название, телефон, аудитория), о преподавателях (табельный номер, ФИО, должность, ученая степень), о дисциплинах (название, объем часов, категория занятия).
База данных фирмы, занимающейся доставкой грузов, должна состоять из таблиц, позволяющих хранить следующие данные: сведения о клиенте (тип заказчика (производитель, оптовый продавец, торговая компания), название юридического лица/ФИО физического лица), данные о доставке груза (номер отгрузки, вес, номер грузовика, город, дата), личные данные водителя (ФИО, номер автомобиля), сведения о месте назначения груза (город, адрес, число жителей).
База данных предназначена для хранения информации, специфичной для товарищества собственников жилья. БД должна обеспечивать хранение следующих сведений о собственниках жилья в многоквартирных домах (ФИО владельца лицевого счета на квартиру, паспортные данные, количество собственников, номер квартиры, номер договора управления), о праве собственности (номер свидетельства о государственной регистрации права собственности, номер договора на передачу квартиры в собственность) а также сведения о собственности (адрес (номер дома, номер квартиры), общая площадь, жилая площадь, количество комнат).
База данных менеджера по персоналу крупной организации (предприятия) должна состоять из таблиц, позволяющих хранить следующие данные: сведения о том, из каких отделов (подразделений) состоит организация (код, название, количество сотрудников), сведения о сотрудниках каждого отдела (табельный номер, ФИО, занимаемая должность), а также данные о договорах, заключенных с сотрудниками при приеме на работу (номер, дата заключения, дата прекращения договора, тип договора (трудовой, договор подряда и т.д.))
База данных, предназначенная для сотрудников туристической фирмы, должна состоять из таблиц, позволяющих хранить следующие данные: сведения о клиенте (ФИО, паспортные данные, телефон, адрес), сведения о менеджерах турфирмы (код сотрудника, ФИО, телефон e-mail), основную информацию о предлагаемых турах (тип, страна, дата начала, дата окончания, стоимость) и условиях переезда (вид транспорта, номер транспортного средства, пункт отправления, пункт назначения).
