СПБГЭТУ. Пояснительная записка к курсовой работе по дисциплине Базы Данных студент группы 3341 Гвоздякова Е. И
Скачать 1.49 Mb.
|
СПБГЭТУ “ЛЭТИ” Кафедра МО ЭВМ Пояснительная записка к курсовой работе по дисциплине Базы Данных Выполнил: студент группы 3341 Гвоздякова Е. И. Проверила: Чебоксарова Т.Н. 2006 год Оглавление Содержательная постановка задачи стр 3 Разработка модели стр 3 Описание элементов базы данных Описание таблиц стр 6 Описание запросов стр 7 Описание отчётов стр 12 Описание макросов стр 15 Описание форм стр 19 Вывод стр 25 Приложения стр 26 Задание Пусть требуется создать программную систему, предназначенную для менеджера музыкальных групп. Такая система должна обеспечивать хранение сведений о группах, включающих название группы, год образования и страну, состав исполнителей, положение в последнем хит-параде; репертуар группы. Сведения о каждой песне из репертуара группы - это ее название, композитор, автор текста. Необходимо также хранить данные о последней гастрольной поездке каждой группы: название гастрольной программы, названия населенных пунктов, дата начала и окончания выступлений, средняя цена билета (зависит от места выступления и положения группы в хит-параде). Возможно появление новой группы и изменение состава исполнителей. Каждая песня может быть в репертуаре только одной группы. Менеджеру могут потребоваться следующие сведения: Автор текста, композитор и дата создания песни с данным названием? В репертуар какой группы она входит? Репертуар наиболее популярной группы? Цена билета на последний концерт указанной группы? Состав исполнителей группы с заданным названием, их возраст и амплуа? Место и продолжительность гастролей группы с заданным названием? Какие группы в текущем году отмечают юбилей Самый молодой вокалист? Какую группу он представляет? В каких группах средний возраст исполнителей не превышает 55 лет? Необходимо предусмотреть возможность выдачи отчета о составе групп и их репертуаре, а также отчета о последней гастрольной поездке указанной группы (места и сроки выступлений, цены на билеты, количество проданных билетов, репертуар с указанием авторов песен, общая сумма выручки). Разработка модели Рассмотрим сущности, присутствующие в данной предметной области. На основе них построим концептуальную модель базы данных. В модели присутствуют следующие сущности Группа(Название группы, …) Ключевое поле - название Исполнитель(ФИО,…) положено, что исполнителей с одинаковыми фамилиями, именами и отчествами нет Ключевое поле - ФИО Песня(Название,…) По заданию каждая песня может быть в репертуаре только одной группы. Ключевое поле - Песня Гастроль(Название гастрольной программы,…) Ключевое поле – название_гастрольной_программы Концерт(Дата, Место, Названии гастрольной программы,…) Рассмотри теперь связи между сущностями, описанными в данном параграфе
Диаграмма ER Т.к При связи таблиц Гастроли и Песни у нас будет связь много-ко-многим, то для их связи мы используем промежуточную таблицу Репертуар По правилам генерирования отношений по ER диаграмме создадим схему данных. Диаграмма схемы данных По правилам генерации отношений Из связи сущностей Группа, Исполнитель мы получим два объектных отношения, при этом ключ отношения Группа т. е. Название группы будет добавлено атрибутом в отношение исполнитель. Из связи сущностей Группа, Песня мы получим два объектных отношения, при этом поле Название группы будет добавлено атрибутом в отношение Песня. Из связи сущностей Группа, Гастроль мы получим два объектных отношения, при этом поле Название группы будет добавлено атрибутом в отношение Гастроли. Из связи сущностей Гастроль, Концерт мы получим два объектных отношения, при этом поле Название гастрольной программы будет добавлено атрибутом в отношение Концерт. Из связи Песня, Гастроль получим два объектных и одно связное отношение, при этом объектные отношение мы описали выше, а связное будет состоять из ключевых полей объектных отношения, то есть из Название песни, Название гастрольной программы. Описание элементов базы данных Описание таблиц
Описание запросов Отчёт о гастроли Начальные данные: Таблицы Гастроли, Концерт Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Выбор требуемых данных для итогового отчёта о гастрольной программы по названию гастрольной программы. SQL: SELECT Гастроли.Название_группы, Гастроли.Название_гастрольной_программы, Гастроли.Дата_начала, Гастроли.Дата_окончания, Концерт.Дата, Концерт.Место, Концерт.Цена_билета, Концерт.Количество_проданных_билетов, Репертуар.Песня2, Песня.[Год написания], Песня.Композитор, Песня.Автор FROM Песня INNER JOIN ((Гастроли INNER JOIN Концерт ON Гастроли.Название_гастрольной_программы = Концерт.[Название гастрольной программы]) INNER JOIN Репертуар ON Гастроли.Название_гастрольной_программы = Репертуар.[Название гастрольной программы]) ON Песня.Песня = Репертуар.Песня2 WHERE (((Гастроли.Название_гастрольной_программы)=[Forms]![Гастроль]![ПолеСоСписком2])); Редактировать исполнителя Начальные данные: Таблица Исполнитель Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Выборка данных о исполнителе по одному из элементов формы
SQL: SELECT Исполнитель.ФИО, Исполнитель.Возраст, Исполнитель.Амплуа FROM Исполнитель WHERE (((Исполнитель.ФИО)=[Forms]![группа просмотр]![Список0])); Редактировать песню Начальные данные: Таблица Песня Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Выборка данных о песне по одному из элементов формы
SQL: SELECT Песня.Песня, Песня.[Год написания], Песня.Композитор, Песня.Автор FROM Песня WHERE (((Песня.Песня)=[Forms]![группа просмотр]![Список2])); Средний возраст Начальные данные: Таблица Исполнитель Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Получение название группы, средний возраст исполнителей у которой меньше 55 лет. SQL: SELECT [Название группы], [Avg-Возраст] FROM (SELECT Исполнитель.[Название группы], Avg(Исполнитель.Возраст) AS [Avg-Возраст] FROM Исполнитель GROUP BY Исполнитель.[Название группы]) WHERE [Avg-Возраст]<=55; Удаление исполнителя Начальные данные: Таблица Исполнитель Выходные данные: Модифицированная входная таблица Тип данного запроса: удаление Назначение: Удаление строки данных из таблицы Исполнитель по одному из элементов формы.
SQL: DELETE Исполнитель.ФИО, Исполнитель.Возраст, Исполнитель.Амплуа, Исполнитель.[Название группы] FROM Исполнитель WHERE (((Исполнитель.ФИО)=[Forms]![группа просмотр]![Список0])); Удаление песни Начальные данные: Таблица Песня Выходные данные: Модифицированная входная таблица Тип данного запроса: удаление Назначение: Удаление строки данных из таблицы Песня по одному из элементов формы.
SQL: DELETE Песня.Песня, Песня.[Название группы], Песня.[Год написания], Песня.Композитор, Песня.Автор FROM Песня WHERE (((Песня.Песня)=[Forms]![группа просмотр]![Список2])); Юбилейные Начальные данные: Таблица Группа Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Получение информации о группах, имеющих юбилей в данном году.
SQL: SELECT Группа.Название, Группа.[Год создания], Группа.Страна FROM Группа GROUP BY Группа.Название, Группа.[Год создания], Группа.Страна HAVING (((Right([Год создания],1))=5)); Новая группа Начальные данные: Нет Выходные данные: Модифицированная таблица Песня Тип данного запроса: добавление Назначение: Добавление новой группы.
SQL: INSERT INTO Группа ( Название, Страна, [Год создания] ) SELECT Forms![Новая группа]!Поле0 AS Выражение1, Forms![Новая группа]!Поле2 AS Выражение2, Forms![Новая группа]!Поле4 AS Выражение3; Новая песня Начальные данные: Нет Выходные данные: Модифицированная таблица Песня Тип данного запроса: добавление Назначение: Добавление новой песни.
SQL: INSERT INTO Песня ( Песня, [Год написания], Композитор, Автор, [Название группы] ) SELECT Forms![Добавление песни]!Поле4 AS Выражение1, Forms![Добавление песни]!Поле6 AS Выражение2, Forms![Добавление песни]!Поле8 AS Выражение3, Forms![Добавление песни]!Поле12 AS Выражение4, Forms!Группа!ПолеСоСписком2 AS Выражение5; Новый исполнитель Начальные данные: Нет Выходные данные: Модифицированная таблица Исполнитель Тип данного запроса: добавление Назначение: Добавление нового исполнителя.
SQL: INSERT INTO Исполнитель ( ФИО, Возраст, Амплуа, [Название группы] ) SELECT Forms![Добавление исполнителя]!Поле4 AS Выражение1, Forms![Добавление исполнителя]!Поле6 AS Выражение2, Forms![Добавление исполнителя]!Поле8 AS Выражение3, Forms!Группа!ПолеСоСписком2 AS Выражение4; Вокалист Начальные данные: Таблица Исполнитель Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Получение информации о певце с минимальным возрастом. SQL: SELECT p1.ФИО, p1.Возраст FROM Исполнитель AS p1 WHERE (((p1.Возраст)=(SELECT Min([Возраст]) FROM [Исполнитель]))); Репертуар программы Начальные данные: Таблица Песня, Репертуар Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Получение всей информации о песнях данной гастрольной программы. SQL: SELECT Песня, [Год написания], Автор, Композитор FROM Песня AS p2 WHERE p2.Песня IN ( SELECT [Песня2] FROM [Репертуар] WHERE [Название гастрольной программы] =[Forms]![Гастроль]![ПолеСоСписком2]); Вспомогательный Начальные данные: Таблица Концерт, Гастроли Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Получение информации о датах прохождения и ценах билетов концертов выбранной пользователем группы . SQL: SELECT p2.Дата, p2.Цена_билета FROM Концерт AS p2 WHERE (((p2.[Название гастрольной программы]) In (SELECT Гастроли.Название_гастрольной_программы FROM Гастроли WHERE (((Гастроли.Название_группы)=[Forms]![Группа]![ПолеСоСписком2]))))); Цена билета Начальные данные: Запрос Вспомогательный Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Получение информации о цене билета на последний концерт группы . SQL: SELECT h2.Цена_билета FROM Вспомогательный AS h2 WHERE (((h2.Дата)>=All (SELECT Дата FROM Вспомогательный))); Название песня Начальные данные: Таблица Песня Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Получение информации о песне по названию . SQL: SELECT Песня.Песня, Песня.[Название группы], Песня.[Год написания], Песня.Автор, Песня.Композитор FROM Песня WHERE (((Песня.Песня)=[Forms]![Поиск песни]![Поле2])); Отчёт репертуар Начальные данные: Таблица Песня Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Получение информации о песнях по названию группы SQL: SELECT Песня.Песня, Песня.[Год написания], Песня.Композитор, Песня.Автор FROM Песня WHERE (((Песня.[Название группы])=[Forms]![Группа]![ПолеСоСписком2])); Отчёт состав Начальные данные: Таблица Исполнитель Выходные данные: Временная таблица Тип данного запроса: выборка Назначение: Получение информации о составе по названию группы SQL: SELECT Исполнитель.ФИО, Исполнитель.Возраст, Исполнитель.Амплуа FROM Исполнитель WHERE (((Исполнитель.[Название группы])=[Forms]![Группа]![ПолеСоСписком2])); Описание отчётов Для репертуара Внешний вид отчёта |