- •Введение
- •Глава 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 скрпит, для создания таблиц согласно модели бд "Университет"
- •Литература
2.9 Упражнения и задачи
Определите функции информационной системы, которая может использовать следующие наборы данных:
Для универмага: номер товара, поставщик, цена закупки, цена при продаже, проданное количество, дата продажи, отдел, торговый агент, сумма комиссионных. (Например, используя цену закупки, цену продажи, количество и дату, можно определить полученную наценку за определенный период времени).
Для консультационной фирмы: консультант, ранг консультанта, почасовая ставка в соответствии с рангом, клиент, тип клиента, часы работы консультанта с конкретным клиентом, дата выставления счета. (Например, на основе данных о консультанте, его ранге, ставки, часах работы и даты выставления счета можно подсчитать общую сумму счетов, выставленных клиенту за месяц).
В каждой из следующих задач требуется создать концептуальную модель данных, состоящую из объектных множеств, отношений с указанием мощности и атрибутов, которая давала бы ответы на вопросы:
Сколько преподавателей работает на факультете информатики и прикладной математики? Их фамилии?
Какие студенты специализируются в математике, физике ?
Кто из преподавателей читает курсы по программированию? Какие курсы они читают?
Какие товары имеют продажную цену более 200 рублей? Какие из них имеют закупочную цену менее 150 рублей? Какие товары произведены в восточных регионах России? Какие фирмы производят эти товары?
Кто из продавцов оформил наибольшее количество продаж? Даты этих продаж? Каков оклад этих продавцов?
Какой процент обладателей текущих счетов банка составляют его служащие?
Сколько кассиров и сколько менеджеров имеют в банке сберегательные счета? Сколько кассиров не имеют таких счетов?
В каких соревнованиях и в каком году участвовал спортсмен? Кто из спортсменов участвовал в данных соревнованиях?
Спортсмены каких стран участвовали в данных соревнованиях? Кто занял призовые места?
Из каких материалов изготавливается деталь? Чем можно заменить недостающий материал?
Какие поезда и в какое время проходят через железнодорожную станцию? На каких станциях останавливается поезд? Время стоянки каких поездов на данной станции превышает 5 минут?
Для каждого из следующих утверждений нарисуйте модель данных, показывающую отношение между объектными множествами, составное объектное множество и его атрибут:
Студенты изучают предметы и получают по ним оценки.
Лекции по данному предмету начинаются в определенное время в определенной аудитории.
Каждая школьная четверть может быть представлена как время года и год; она начинается и заканчивается в определенных числах.
Каждый день служащие работают определенное количество часов.
Люди подписываются на журналы. Каждая подписка имеет дату начала и окончания.
Летчики имеют определенное число налетов на каждом типе самолета.
Расход топлива автомобиля зависит от его марки и времени года.
Управляющая организация заключает договора у правления с собственниками жилья в многоквартирных домах на определенный срок.
Аптека заказывает медикаменты у поставщиков из разных городов. Прайс-лист определенного поставщика получают в определенный день и определенное время.
За каждой рубрикой газеты бесплатных объявлений закреплен определенный менеджер по рекламе, который принимает объявления установленного размера в указанное время.
Рассмотрите следующую реляционную таблицу, (заглавные буквы обозначают имена атрибутов, строчные буквы и цифры – значения атрибутов):
Таблица X
A |
B |
C |
D |
E |
a1 |
b2 |
c1 |
d3 |
e2 |
a3 |
b2 |
c3 |
d2 |
e4 |
a1 |
b3 |
c1 |
d1 |
e2 |
а1 |
b4 |
c1 |
d4 |
e2 |
Обведите кружком те функциональные зависимости, которые кажутся Вам выполненными для таблицы Х.
A->C D->E C->A E->B E->A C->B B->D
Определите возможный ключ таблицы Х.
Для каждой из следующих реляционных таблиц определите, каким нормальным формам удовлетворяют таблицы, и покажите, как разбить исходную таблицу на несколько таблиц, каждая из которых удовлетворяет нормальной форме самого высокого порядка:
СДУЖАЩИЙ (ТАБЕЛЬНЫЙ НОМЕР, ИМЯ, АДРЕС, ТЕЛЕФОН, ПРОФЕССИЯ)
Функциональная зависимость: АДРЕС -> ТЕЛЕФОН
РАБОТНИК (ИДЕНТИФИКАТОР РАБОТНИКА, ИМЯ, ИДЕНТИФИКАТОР СУПРУГА, ИМЯ СУПРУГА)
Функциональная зависимость:
ИДЕНТИФИКАТОР СУПРУГА -> ИМЯ СУПРУГА
ПРОДАЖА (ДАТА, КЛИЕНТ, ТОВАР, ПРОДАВЕЦ, ГОРОД ПРОДАВЦА)
Функциональная зависимость:
ПРОДАВЕЦ -> ГОРОД ПРОДАВЦА
Дано словесное описание информационной системы, хранящей специфичную информацию, характерную для данной предметной области. Необходимо построить реляционную схему БД и выполнить нормализацию таблиц.
База данных компании по страхованию жизни: у компании имеется большое количество полисов. Для каждого полиса необходимо знать номер полиса, имя, дату рождения, сумму выплаты в случае смерти, сумму страхового взноса, идентификатор агента, имя и адрес агента. Держатель полиса может иметь несколько полисов, один агент может выписывать много полисов.
База данных торговой фирмы, представленной сетью магазинов и складов, предназначена для хранения информации о магазинах, складах и имеющихся товарах. Каждый магазин характеризуется классом, номером, названием и имеет несколько отделов. Каждым отделом управляет собственный заведующий. О каждом товаре содержится следующая информация: наименование, сорт, количество в наличие, цена. Розничные цены магазинов на товары зависят от класса магазина и сорта товара.
База данных, предназначенная для сотрудников ГАИ, должна обеспечивать хранение сведений о водителях (номер водительского удостоверения, ФИО, адрес), принадлежащих им автомобилям (регистрационный номер, марка, цвет, год выпуска), нарушениях ПДД (код нарушения, наименование нарушения, мера пресечения) и данные об обстоятельствах совершенных нарушений (дата, время, место, погодные условия).
База данных, предназначенная для использования сотрудниками почтового отделения, должна обеспечивать хранение следующих сведений о газетах (название, индекс, цена, ФИО редактора, номер типографии, где печатается газета (газета может издаваться в нескольких типографиях)), о типографиях (адрес, количество печатаемых экземпляров газет каждого наименования (в типографии могут печатать несколько газет)), о почтовых отделениях (адрес, номер, количество экземпляров газет каждого наименования, поступающих в отделение).
База данных, предназначенная для использования сотрудниками администрации гостиничного комплекса, должна обеспечивать хранение следующей информации: сведения о клиенте (код клиента, город, ФИО клиента), о том, когда и в какой номер был заселен клиент, когда планирует убыть из гостиницы; сведения о номерах гостиницы (типы номеров, количество номеров каждого типа, их номера, этаж).
База данных фирмы, занимающейся доставкой грузов, должна обеспечивать хранение следующей информации: сведения о клиентах фирмы (код клиента, название, тип заказчика (производитель, оптовый продавец, торговая компания)), сведения о месте нахождения клиента (город, число жителей, адрес) данные о доставках грузов (номер отгрузки, вес, номер грузовика, город, дата) и сведения о водителях, осуществляющих перевозки грузов (имя водителя, номер отгрузки,). Построить реляционную схему БД и выполнить нормализацию таблиц.
Дано словесное описание информационной системы, хранящей специфичную информацию, характерную для данной предметной области. Необходимо построить концептуальную модель и перейти от нее к реляционной схеме БД:
База данных для почтового отделения должна обеспечивать хранение сведений о газетах (название, индекс, цена, ФИО редактора, номер типографии, где печатается газета (газета может издаваться в нескольких типографиях)) о типографиях (адрес, количество печатаемых экземпляров газет каждого наименования (в типографии могут печатать несколько газет)) о почтовых отделениях (адрес, номер, количество экземпляров газет каждого наименования, поступающих в отделение).
База данных для сотрудников ГАИ должна обеспечивать хранение сведений о водителях (номер водительского удостоверения, ФИО, адрес), принадлежащих им автомобилям (регистрационный номер, марка, цвет, год выпуска), нарушениях ПДД (код нарушения, наименование нарушения, мера пресечения) и данные об обстоятельствах совершенных нарушений (дата, время, место, погодные условия).
База данных предназначена для использования сотрудниками кадровых агентств. Необходимо обеспечить хранение следующих сведений о сотрудниках кадровой службы (агентах): шифр агента, ФИО, рабочий телефон, мобильный телефон, e-mail; о каждой из вакансий, которыми располагает агентство, должны хранится ее номер, предлагаемая должность, требуемое образование, специальность, пол претендента, возраст и т.д. О каждом работодателе необходимо иметь следующие сведения: название фирмы (организации, предприятия), адрес, телефон, ФИО контактного лица.
База данных предназначена для продюсера музыкальных групп. Необходимо обеспечить хранение сведений о группах (название, страна, год образования, количество исполнителей и музыкантов), о музыкантах и исполнителях (ФИО, адрес, год рождения), о репертуаре группы (название песен, ФИО автора текса, ФИО композитора), о последних гастролях (название гастрольной программы, дата начала и дата окончания) и местах проведения концертов (город, место проведения, средняя цена билета, количество билетов).
База данных предназначена для сотрудников страховой компании. Необходимо обеспечить хранение следующих сведений: о каждом страховом агенте должны быть известны его шифр, ФИО, рабочий телефон, мобильный телефон; сведения о видах страхования обязательно должны включать тип страхования, минимальный и максимальный сроки действия; О клиенте в БД должны заноситься следующие данные: ФИО, паспортные данные, дата рождения, род деятельности; по каждому заключенному полису страхования БД должна располагать сведениями о его типе, серии, номере, дате заключения, дате окончания срока действия страховки, кроме того, для каждого полиса должна предоставляться возможность хранения информации, зависящей от типа страховки.
База данных предназначена для почтовых работников. Необходимо обеспечить хранение сведений о подписчиках газет данного почтового отделения. К обязательным данным о подписчиках относятся: ФИО, домашний адрес, дата оформления подписки, срок действия подписки. Каждое издание, на которое оформляется подписка, характеризуется подписным индексом, названием и подписной ценой. За каждым почтальоном почтового отделения закрепляется свой участок (возможно несколько участков), включающий в себя несколько близлежащих домов. База данных также должна содержать служебную информацию о почтальонах отделения и данные о принадлежности подписчиков к участкам.
База данных предназначена для использования сотрудниками агентств недвижимости. Необходимо обеспечить хранение сведений о штатных и внештатных агентах (шифр агента, ФИО, рабочий телефон, домашний телефон, мобильный телефон, домашний адрес), о совершенных сделках с недвижимостью (дата заключения, ФИО клиента, номер паспорта клиента), сведений об объектах недвижимости (тип объекта, город, район, улица, общая площадь, полезная площадь, количество комнат, цена, дополнительная информация). Кроме этого, база данных должна содержать сведения о том, какие операции с недвижимостью вправе осуществлять агентство (название операции, дата получения лицензии, дата окончания лицензии).
База данных предназначена для использования сотрудниками Городской Управляющей организации. БД должна обеспечивать хранение сведений о собственниках жилья в многоквартирных домах (ФИО владельца лицевого счета на квартиру, номер паспорта, количество собственников, номер квартиры, номер договора управления), о праве собственности (номер свидетельства о государственной регистрации права собственности, номер договора на передачу квартиры в собственность), сведения о собственности (номер дома, номер квартиры, общая площадь, жилая площадь, количество комнат), о договоре управления (номер договора, дата заключения, размер тарифов (отопление, горячая и холодная вода, электроэнергия, газ, содержание жилого фонда, сточные воды, вывоз бытовых отходов, обслуживание лифтов и т.д.).
База данных предназначена для использования работниками приемной комиссии университета. БД должна обеспечивать хранение следующей информации о каждом абитуриенте: личные данные абитуриента (ФИО, дата рождения, адрес, школа), номер экзаменационного листа, информация о кафедре и факультете, номер группы и потока сдачи экзаменов, экзаменационные оценки, даты консультаций и экзаменов по предметам для каждого потока.
