- •Введение
- •Глава 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 скрпит, для создания таблиц согласно модели бд "Университет"
- •Литература
3.2.3 Квантор всеобщности
Квантор всеобщности – это выражение реляционного исчисления, обозначающее, что некоторое условие применяется к каждой строке определенного типа.
Он используется в тех же целях, что и операция деления реляционной алгебры. Проиллюстрируем его применение на примере. В таблицу решения включим только тех клиентов, которые покупали каждый товар. Если проанализировать приведенные в разделе 3.2.2 таблицы, что только один клиент (Петров) покупал каждый товар. Решение в реляционном исчислении таково:
(r.CustName : r IN Customer AND there exists t IN Product AND exists s IN Sale)
(s.CustId = r.CustId AND s.ProdId = t.ProdId)
3.3 Заключение
В этой главе мы рассмотрели реляционную алгебру и реляционное исчисление Кодда. Оба этих теоретических языка манипулируют таблицами реляционной базы данных на основе их логических характеристик, не обращаясь к их физической структуре. Реляционная алгебра – это процедурный язык, дающий пошаговые решения задач создания запросов. Реляционное исчисление – непроцедурный язык, в котором решение формулируется в виде определения нужной таблицы, а не процесса получения желаемого результата. Кодд показал, что реляционная алгебра и реляционное исчисление логически эквивалентны. Другими словами, любой запрос, выполнимый на одном из этих языков, может быть выполнен и на другом.
Часто считают, что непроцедурным языком проще пользоваться, чем процедурным. Однако при выполнении некоторых сложных запросов пошаговый подход процедурного языка обеспечивает гибкость, необходимую людям для формулирования запросов.
3.4 Вопросы на повторение
Объясните своими словами смысл терминов:
Реляционная алгебра
Непроцедурный
Реляционно полный
Пересечение
Вычитание
Проектирование
Естественное соединение
Тета-соединение
Деление
Квантор всеобщности
Опишите, в каких обстоятельствах вы могли бы воспользоваться каждой из следующих операций реляционной алгебры:
Выборка
Создание проекции
Соединение
Присвоение
Вычитание
Пересечение
Деление
Объясните функции каждого из следующих элементов формулировки запроса в реляционном исчислении:
Целевой список
Определяющее выражение
Булевы операции (И, ИЛИ, НЕ)
Квантор существования
Квантор всеобщности
3.5 Упражнения и задачи
1) Пользуясь приведенной реляционной схемой базы данных, определите, какая(ие) операция(ии) может быть использована для ответа на поставленные вопросы:
КЛИЕНТ (идентификатор_клиента, имя, доход)
ПЕРЕВОЗКА (номер, идентификатор_клиента, вес, пункт_назначения, водитель)
Какие клиенты имеют годовой доход свыше 5 миллионов рублей?
Как называется клиент 555?
Какой пункт назначения перевозки №4566?
Как называются клиенты, отправлявшие грузы в Иваново?
В какие пункты назначения компании с годовым доходом более 10 миллионов рублей отправляли грузы?
2) Дайте решение следующих задач создания запросов в реляционной алгебре:
Список всех номеров грузов свыше 500 кг.
Название клиентов с годовым доходом более 10 миллионом рублей.
Названия городов, получавших грузы свыше 600 кг.
Имена водителей, доставлявших грузы в Кострому.
Клиенты, чьи грузы доставлял водитель Петров.
Клиенты с годовым доходом более 5 миллионов рублей, отправлявших грузы весом менее 1 кг.
Дайте список клиентов с максимальным годовым доходом.
Клиенты, чьи грузы перевозились каждым водителем.
3) Сформулируйте вопросы задания 2 в реляционном исчислении.
4) Над представленными отношениями выполнить теоретико-множественные и/или специальные реляционные операторы. При необходимости обеспечить совместимость отношений по типу.
Даны два отношения, кортежи которых содержат личные данные абитуриентов, поступающих в университет. Проиллюстрировать выполнение следующих теоретико-множественных операторов над отношениями А и В: объединение, пересечение и вычитание.
Таблица А
Фамилия |
Имя |
Отчество |
№ паспорта |
Адрес |
Иванов |
Иван |
Иванович |
1500607231 |
Владимир |
Петров |
Петр |
Александрович |
1300247882 |
Муром |
Сидоров |
Михаил |
Викторович |
1603549855 |
Владимир |
Таблица В
Фамилия |
Имя |
Отчество |
№ паспорта |
Прописка |
Соколов |
Иван |
Сергеевич |
1600163481 |
Москва |
Петров |
Петр |
Александрович |
1300247882 |
Муром |
Сергеев |
Алексей |
Викторович |
1582449833 |
Ковров |
Даны отношения А и В, кортежи которых содержат личные данные абитуриентов, поступающих в университет. Проиллюстрировать выполнение следующих теоретико-множественных операторов над отношениями А и В: объединение, пересечение и вычитание.
Таблица А
Фамилия |
Имя |
Отчество |
№ паспорта |
Адрес |
Соколов |
Сергей |
Викторович |
1400248912 |
Ковров |
Иванов |
Иван |
Иванович |
1500607231 |
Владимир |
Петров |
Петр |
Александрович |
1300247882 |
Муром |
Сидоров |
Михаил |
Викторович |
1603549855 |
Владимир |
Таблица В
Фамилия |
Имя |
Отчество |
Паспортные данные |
Прописка |
Соколов |
Иван |
Сергеевич |
1600163481 |
Москва |
Петров |
Петр |
Александрович |
1300247882 |
Муром |
Соколов |
Сергей |
Викторович |
1544248912 |
Ковров |
Сергеев |
Алексей |
Викторович |
1582449833 |
Ковров |
Дано отношение В, кортежи которого содержат информацию о сдаче вступительных экзаменов в университет. Проиллюстрировать выполнение реляционных операторов, позволяющих ответить на следующие вопросы: кто из абитуриентов получил положительные оценки на вступительных экзаменах в университет? когда и по каким предметам проводятся вступительные экзамены в университет?
Таблица В
№ экз. листа |
Предмет |
Дата экзамена |
Оценка |
1 |
Математика |
20.06.2006 |
отлично |
2 |
Информатика |
25.06.2006 |
хорошо |
1 |
Информатика |
25.06.2006 |
отлично |
2 |
Математика |
20.06.2006 |
хорошо |
3 |
Физика |
23.06.2006 |
удовлетворительно |
3 |
Математика |
20.06.2006 |
хорошо |
4 |
Информатика |
25.06.2006 |
отлично |
4 |
Математика |
20.06.2006 |
хорошо |
Даны отношения А и В, кортежи которых содержат информацию об абитуриентах и результатах сдачи экзаменов. Проиллюстрировать выполнение реляционных операторов, позволяющих ответить на следующие вопросы: какие оценки получил каждый студент на вступительных экзаменах в университет?кто из студентов получил на вступительных экзаменах хотя бы одну оценку «отлично»?кто из студентов получил оценку «отлично» по всем трем вступительным экзаменам?
Таблица А
№ Экз. листа |
Фамилия |
Имя |
Отчество |
1 |
Соколов |
Сергей |
Викторович |
2 |
Иванов |
Иван |
Иванович |
3 |
Петров |
Петр |
Александрович |
4 |
Сидоров |
Михаил |
Викторович |
Таблица В
№ экз. листа |
Предмет |
Дата экзамена |
Оценка |
1 |
Математика |
20.06.2006 |
отлично |
2 |
Информатика |
25.06.2006 |
хорошо |
1 |
Информатика |
25.06.2006 |
отлично |
2 |
Математика |
20.06.2006 |
хорошо |
3 |
Физика |
23.06.2006 |
удовлетворительно |
3 |
Математика |
20.06.2006 |
хорошо |
4 |
Информатика |
25.06.2006 |
отлично |
4 |
Математика |
20.06.2006 |
хорошо |
Даны отношения А и В, кортежи которых содержат информацию о проходных баллах по специальностям факультета информационных технологий и результатах сдачи экзаменов абитуриентами.Проиллюстрировать выполнение реляционных операторов, позволяющих ответить на следующие вопросы: кто из студентов и на какие специальности поступил, исходя из суммы баллов за два экзамена?Кто из студентов не поступит на специальность 230101?
Таблица А
№ абитуриента |
Фамилия |
Имя |
Отчество |
Сумма баллов за два экзамена |
1 |
Соколов |
Сергей |
Викторович |
20 |
2 |
Иванов |
Иван |
Иванович |
18 |
3 |
Петров |
Петр |
Александрович |
20 |
4 |
Сидоров |
Михаил |
Викторович |
19 |
Таблица В
Специальность |
Проходной балл |
230201 |
19 |
230202 |
18 |
230101 |
20 |
351400 |
20 |
