Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример БД сдал.docx
Скачиваний:
12
Добавлен:
14.03.2016
Размер:
1.2 Mб
Скачать

2.3 Концептуальная модель

Ниже на рисунке (рис. 1) представлена концептуальная модель решаемой задачи.

Рис.1 схема базы данных

Таблица 1.2. Связи между информационными объектами.

Главный объект

Подчиненный объект

Тип связи

код_альбома

код_альбома

1:М

код_исполнителя

код_исполнителя

1:М

код_стиля

код_стиля

1:М

код_хранилища

код_хранилища

1:М

3. Реализация базы данных

3.1 Создание базы «База меломана»

Все элементы базы данных: таблицы, запросы, формы и другие хранятся в отдельных файлах и имеют различные расширения. При создании приложения используется проект, в котором хранится информация об используемых файлах, а также подключенных модулях и библиотеках. Посредством этой информации файл проекта объединяет элементы приложения Visual FoxPro и группирует их по типам в менеджере проекта, используя при этом их расширение. Информация о проекте хранится в специальной таблице, которая, в отличие от обычных таблиц Visual FoxPro, имеет расширение *.pjx. Memo-поля таблицы содержат наименование элемента проекта, его описание и другие текстовые атрибуты. Файл с Memo-полями таблицы имеет расширение PJT. Использование файла проекта значительно облегчает работу с проектом и упрощает разработку приложения.

В таблице 1.3. указаны основные элементы базы данных, а также их расширения и назначение.

Таблица 1.3. Элементы базы

Объект

Имя и разрешение

Назначение

Проект

Muzbd.pjx

Файл проекта

База

Music.dbc

База данных «База меломана»

Альбом

код_альбома

Код альбома

название

Название

код_исполнителя

Код исполнителя

код_стиля

Код стиля

студия

Студия

год

Год

формат

Формат

количество_треков

Количество треков

код_хранилища

Код хранилища

Треки

код_трека

Код трека

номер_трека

Номер трека

название

Название

длительность

Длительность

код_альбома

Код альбома

Стиль

код_стиля

Код стиля

название

Название

Артист

код_исполнителя

Код исполнителя

имя

Имя

страна

Страна

дата_рождения

Дата Рождения

Хранилище

код_хранилища

Код хранилища

номер_стелажа

Номер стелажа

номер_полки

Номер полки

другое

Другое

3.2 Создание таблиц

Таблицы являются основной частью базы данных. Они содержат всю необходимую информацию об информационных объектах и их реквизитах. При дальнейшей работе с базой данных данные будут добавляться в таблицы, удаляться из них и редактироваться по мере необходимости. Все эти действия можно осуществлять при помощи специально созданных форм. Информация, содержащаяся в таблицах, также может быть использована для составления отчетов.

Таблица состоит из столбцов и строк, в которых хранится информация одного типа.

В Visual FoxPro таблицы можно создавать двумя способами, при помощи конструктора таблиц и при помощи мастера, выбирая в окне создания таблицы «New Table» кнопки «Table Wizard» (мастер таблиц) и «New Table» (конструктор таблиц) соответственно.

В базе данных «База меломана» все таблицы были созданы при помощи конструктора таблиц (рис 3.1). На вкладке «Fields» задаём свойства полей таблицы: имя, тип, размер, индексное поле.

Рис. 3.1 Окно конструктора для создания таблицы «albums»

На вкладке «Index» определяем тип индексных полей (Рис.3.1.). Связь «Primary» позволяет создает уникальный индекс, который используется для связывания таблиц и определения условий целостности данных. Поля, входящие в первичный ключ, не должны допускать ввода пустых или повторяющихся значений

Связь «Regular» создает индекс, в котором для каждой записи таблицы хранится значение индексного выражения. Если несколько записей имеют одинаковое значение индексного выражения, то каждое значение хранится отдельно и содержит ссылку на связанную с ней запись.

Для всех главных таблиц определяем первичные ключи по полям которое будет однозначно определять таблицы, такими полями будут поля со словом “cod”. Для связи главной и дочерних таблиц в дочерних таблицах установим внешний ключ типы «Regular». В таком случае у нас есть одна главная (albums) и три подчиненных (artists, styles и tracks) таблицы (рис 3.2).

Рис. 3.2 Схема связей

В обоих случаях у нас будет осуществляться отношение «один-ко-многим», т.е. одной записи родительской таблицы могут соответствовать несколько записей из дочерней.

Необходимо обеспечить ссылочную целостность. Главное требование ссылочной целостности заключается в том, чтобы записи дочерних таблиц имели ссылки на записи в родительской таблице. Для этого кликом по связи вызываем диалоговое окно «Referential Integrity» (рис.3.2), где устанавливаем правила на добавление, удаление и изменение записи в дочерней таблице. В окне «Referential Integrity» справа указаны имена главной и дочерней таблиц, слева – поля по которым они связанны.

На вкладках «Update» и «Delete» выбираем «Cascade», что означает, что при изменении/удалении значений полей первичного ключа или ключа-кандидата в родительской таблице автоматически осуществляется изменение/удаление всех соответствующих значений в дочерней таблице — каскадное изменение/удаление. Вкладка «Insert» содержит правила для добавления записей применимых со стороны дочерней таблицы, здесь выбираем «Restrict», т.е. запрещается добавление записи к дочерней таблице, если в родительской таблице отсутствует запись, значение первичного ключа или ключа-кандидата которой не совпадает со значением внешнего ключа добавляемой записи.