Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
79
Добавлен:
01.05.2014
Размер:
1.57 Mб
Скачать

СПБГЭТУ “ЛЭТИ”

Кафедра МО ЭВМ

Пояснительная записка

к курсовой работе по дисциплине Базы Данных

Выполнил: студент группы 3341

Гвоздякова Е. И.

Проверила: Чебоксарова Т.Н.

2006 год

Оглавление

Содержательная постановка задачи стр 3

Разработка модели стр 3

Описание элементов базы данных

Описание таблиц стр 6

Описание запросов стр 7

Описание отчётов стр 12

Описание макросов стр 15

Описание форм стр 19

Вывод стр 25

Приложения стр 26

Задание

Пусть требуется создать программную систему, предназначенную для менеджера музыкальных групп. Такая система должна обеспечивать хранение сведений о группах, включающих название группы, год образования и страну, состав исполнителей, положение в последнем хит-параде; репертуар группы. Сведения о каждой песне из репертуара группы - это ее название, композитор, автор текста. Необходимо также хранить данные о последней гастрольной поездке каждой группы: название гастрольной программы, названия населенных пунктов, дата начала и окончания выступлений, средняя цена билета (зависит от места выступления и положения группы в хит-параде). Возможно появление новой группы и изменение состава исполнителей. Каждая песня может быть в репертуаре только одной группы.

Менеджеру могут потребоваться следующие сведения:

  • Автор текста, композитор и дата создания песни с данным названием? В репертуар какой группы она входит?

  • Репертуар наиболее популярной группы?

  • Цена билета на последний концерт указанной группы?

  • Состав исполнителей группы с заданным названием, их возраст и амплуа?

  • Место и продолжительность гастролей группы с заданным названием?

  • Какие группы в текущем году отмечают юбилей

  • Самый молодой вокалист? Какую группу он представляет?

  • В каких группах средний возраст исполнителей не превышает 55 лет?

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

  1. Разработка модели

Рассмотрим сущности, присутствующие в данной предметной области. На основе них построим концептуальную модель базы данных.

В модели присутствуют следующие сущности

Группа(Название группы, …) Ключевое поле - название

Исполнитель(ФИО,…) положено, что исполнителей с одинаковыми фамилиями, именами и отчествами нет Ключевое поле - ФИО

Песня(Название,…) По заданию каждая песня может быть в репертуаре только одной группы. Ключевое поле - Песня

Гастроль(Название гастрольной программы,…) Ключевое поле – название_гастрольной_программы

Концерт(Дата, Место, Названии гастрольной программы,…)

Рассмотри теперь связи между сущностями, описанными в данном параграфе

Название сущности

Группа

Исполнитель

Песня

Гастроль

Концерт

Группа

 

1:n, обязательны обе стороны

1:n, обязательны обе стороны

1:n, обязательны обе стороны

Не связаны

Исполнитель

n:1, обязательны обе стороны

 

не связаны

не связаны

не связаны

Песня

n:1, обязательны обе стороны

не связаны

 

n:1 сущность песня является необязательной

Не связаны

Гастроль

n:1, обязательны обе стороны

не связаны

1:n сущность песня является необязательной

 

1:n, обязательны обе стороны

Концерт

не связаны

не связаны

не связаны

n:1,

обязательны

обе стороны

 

Диаграмма ER

Т.к При связи таблиц Гастроли и Песни у нас будет связь много-ко-многим, то для их связи мы используем промежуточную таблицу Репертуар

По правилам генерирования отношений по ER диаграмме создадим схему данных.

Диаграмма схемы данных

По правилам генерации отношений

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

Из связи сущностей Группа, Песня мы получим два объектных отношения, при этом поле Название группы будет добавлено атрибутом в отношение Песня.

Из связи сущностей Группа, Гастроль мы получим два объектных отношения, при этом поле Название группы будет добавлено атрибутом в отношение Гастроли.

Из связи сущностей Гастроль, Концерт мы получим два объектных отношения, при этом поле Название гастрольной программы будет добавлено атрибутом в отношение Концерт.

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

Описание элементов базы данных

Описание таблиц

Описание таблицы "Группа"

Название поля

Тип данных

Размер поля

Ключевое

Индексированное

Название

Текстовый

50

Да

Да (совпадения не допускаются)

Год создания

Числовой

Длинное целое

Нет

Нет

Страна

Текстовый

50

Нет

Нет

Место в хит-параде

Числовой

Длинное целое

Нет

Нет

Описание таблицы "Исполнитель"

Название поля

Тип данных

Размер поля

Ключевое

Индексированное

ФИО

Текстовый

50

Да

Да (совпадения не допускаются)

Возраст

Числовой

Длинное целое

Нет

Нет

Амплуа

Текстовый

50

Нет

Нет

Название группы

Текстовый

50

Нет

Нет

Описание таблицы "Песня"

Название поля

Тип данных

Размер поля

Ключевое

Индексированное

Песня

Текстовый

50

Да

Да (совпадения не допускаются)

Название группы

Числовой

Длинное целое

Нет

Нет

Год написания

Текстовый

50

Нет

Нет

Композитор

Текстовый

50

Нет

Нет

Автор

Текстовый

50

Нет

Нет

Описание таблицы "Гастроли"

Название поля

Тип данных

Размер поля

Ключевое

Индексированное

Название_гастрольной_программы

Текстовый

50

Да

Да (совпадения не допускаются)

Название_группы

Текстовый

50

Нет

Нет

Дата_начала

Дата/время

MM/DD/YYYY

Нет

Нет

Дата_окончания

Дата/время

MM/DD/YYYY

Нет

Нет

Описание таблицы "Концерт"

Название поля

Тип данных

Размер поля

Ключевое

Индексированное

Дата

Дата/время

MM/DD/YYYY

Нет

Нет

Место

Текстовый

50

Нет

Нет

Название гастрольной программы

Текстовый

50

Нет

Нет

Цена_билета

Числовой

Длинное целое

Нет

Нет

Количество_проданных_билетов

Числовой

Длинное целое

Нет

Нет

Описание таблицы "Репертуар"

Название поля

Тип данных

Размер поля

Ключевое

Индексированное

Название гастрольной программы

Текстовый

50

Нет

Нет

Песня2

Текстовый

50

Нет

Нет

Описание запросов

  • Отчёт о гастроли

Начальные данные: Таблицы Гастроли, Концерт

Выходные данные: Временная таблица

Тип данного запроса: выборка

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

SQL: SELECT Гастроли.Название_группы, Гастроли.Название_гастрольной_программы, Гастроли.Дата_начала, Гастроли.Дата_окончания, Концерт.Дата, Концерт.Место, Концерт.Цена_билета, Концерт.Количество_проданных_билетов, Репертуар.Песня2, Песня.[Год написания], Песня.Композитор, Песня.Автор

FROM Песня INNER JOIN ((Гастроли INNER JOIN Концерт ON Гастроли.Название_гастрольной_программы = Концерт.[Название гастрольной программы]) INNER JOIN Репертуар ON Гастроли.Название_гастрольной_программы = Репертуар.[Название гастрольной программы]) ON Песня.Песня = Репертуар.Песня2

WHERE (((Гастроли.Название_гастрольной_программы)=[Forms]![Гастроль]![ПолеСоСписком2]));

  • Редактировать исполнителя

Начальные данные: Таблица Исполнитель

Выходные данные: Временная таблица

Тип данного запроса: выборка

Назначение: Выборка данных о исполнителе по одному из элементов формы

Поле

Таблица

Вывод на экран

Условие отбора

Группировка

ФИО

Исполнитель

да

[Forms]![группа просмотр]![Список0]

нет

Возраст

Исполнитель

да

нет

нет

Амплуа

Исполнитель

да

нет

нет

SQL: SELECT Исполнитель.ФИО, Исполнитель.Возраст, Исполнитель.Амплуа

FROM Исполнитель

WHERE (((Исполнитель.ФИО)=[Forms]![группа просмотр]![Список0]));

  • Редактировать песню

Начальные данные: Таблица Песня

Выходные данные: Временная таблица

Тип данного запроса: выборка

Назначение: Выборка данных о песне по одному из элементов формы

Поле

Таблица

Вывод на экран

Условие отбора

Группировка

Песня

Песня

да

[Forms]![группа просмотр]![Список2]

нет

Год написания

Песня

да

нет

нет

Композитор

Песня

да

нет

нет

Автор

Песня

да

нет

нет

SQL: SELECT Песня.Песня, Песня.[Год написания], Песня.Композитор, Песня.Автор

FROM Песня

WHERE (((Песня.Песня)=[Forms]![группа просмотр]![Список2]));

  • Средний возраст

Начальные данные: Таблица Исполнитель

Выходные данные: Временная таблица

Тип данного запроса: выборка

Назначение: Получение название группы, средний возраст исполнителей у которой меньше 55 лет.

SQL: SELECT [Название группы], [Avg-Возраст] FROM (SELECT Исполнитель.[Название группы], Avg(Исполнитель.Возраст) AS [Avg-Возраст]

FROM Исполнитель

GROUP BY Исполнитель.[Название группы]) WHERE [Avg-Возраст]<=55;

  • Удаление исполнителя

Начальные данные: Таблица Исполнитель

Выходные данные: Модифицированная входная таблица

Тип данного запроса: удаление

Назначение: Удаление строки данных из таблицы Исполнитель по одному из элементов формы.

Поле

Таблица

Вывод на экран

Условие отбора

ФИО

Исполнитель

-

[Forms]![группа просмотр]![Список0]

Возраст

Исполнитель

-

нет

Амплуа

Исполнитель

-

нет

Название группы

Исполнитель

-

нет

SQL: DELETE Исполнитель.ФИО, Исполнитель.Возраст, Исполнитель.Амплуа, Исполнитель.[Название группы]

FROM Исполнитель

WHERE (((Исполнитель.ФИО)=[Forms]![группа просмотр]![Список0]));

  • Удаление песни

Начальные данные: Таблица Песня

Выходные данные: Модифицированная входная таблица

Тип данного запроса: удаление

Назначение: Удаление строки данных из таблицы Песня по одному из элементов формы.

Поле

Таблица

Вывод на экран

Условие отбора

Песня

Песня

-

[Forms]![группа просмотр]![Список2]

Название группы

Песня

-

нет

Год написания

Песня

-

нет

Композитор

Песня

-

нет

Автор

Песня

-

нет

SQL: DELETE Песня.Песня, Песня.[Название группы], Песня.[Год написания], Песня.Композитор, Песня.Автор

FROM Песня

WHERE (((Песня.Песня)=[Forms]![группа просмотр]![Список2]));

  • Юбилейные

Начальные данные: Таблица Группа

Выходные данные: Временная таблица

Тип данного запроса: выборка

Назначение: Получение информации о группах, имеющих юбилей в данном году.

Поле

Таблица

Вывод на экран

Условие отбора

Группировка

Название

Группа

да

нет

группировка

Год создания

Группа

да

нет

группировка

Страна

Группа

да

нет

группировка

Right([Год создания],1)

 

нет

5

Выражение

SQL: SELECT Группа.Название, Группа.[Год создания], Группа.Страна

FROM Группа

GROUP BY Группа.Название, Группа.[Год создания], Группа.Страна

HAVING (((Right([Год создания],1))=5));

  • Новая группа

Начальные данные: Нет

Выходные данные: Модифицированная таблица Песня

Тип данного запроса: добавление

Назначение: Добавление новой группы.

Поле

Таблица

Вывод на экран

Добавление

Forms![Новая группа]!Поле0

Группа

-

Название

Forms![Новая группа]!Поле2

Группа

-

Страна

Forms![Новая группа]!Поле4

Группа

-

Год создания

SQL: INSERT INTO Группа ( Название, Страна, [Год создания] )

SELECT Forms![Новая группа]!Поле0 AS Выражение1, Forms![Новая группа]!Поле2 AS Выражение2, Forms![Новая группа]!Поле4 AS Выражение3;

  • Новая песня

Начальные данные: Нет

Выходные данные: Модифицированная таблица Песня

Тип данного запроса: добавление

Назначение: Добавление новой песни.

Поле

Таблица

Вывод на экран

Добавление

Forms![Добавление песни]!Поле4

Песня

-

Песня

Forms![Добавление песни]!Поле6

Песня

-

Год написания

Forms![Добавление песни]!Поле8

Песня

-

Композитор

Forms![Добавление песни]!Поле12

Песня

-

Автор

Forms!Группа!ПолеСоСписком2

Песня

-

Название группы

SQL: INSERT INTO Песня ( Песня, [Год написания], Композитор, Автор, [Название группы] )

SELECT Forms![Добавление песни]!Поле4 AS Выражение1, Forms![Добавление песни]!Поле6 AS Выражение2, Forms![Добавление песни]!Поле8 AS Выражение3, Forms![Добавление песни]!Поле12 AS Выражение4, Forms!Группа!ПолеСоСписком2 AS Выражение5;

  • Новый исполнитель

Начальные данные: Нет

Выходные данные: Модифицированная таблица Исполнитель

Тип данного запроса: добавление

Назначение: Добавление нового исполнителя.

Поле

Таблица

Вывод на экран

Добавление

Forms![Добавление исполнителя]!Поле4

Исполнитель

-

ФИО

Forms![Добавление исполнителя]!Поле6

Исполнитель

-

Возраст

Forms![Добавление исполнителя]!Поле8

Исполнитель

-

Амплуа

Forms!Группа!ПолеСоСписком2

Исполнитель

-

Название группы

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]);

  • Вспомогательный

Соседние файлы в папке Музыкальные группы1
  • #
    01.05.20141.77 Mб65Группы исправления.mdb
  • #
    01.05.20145.77 Mб49Группы исправления_Backup.mdb
  • #
    01.05.20141.57 Mб79СПБГЭТУ.doc