Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
10.6 Mб
Скачать

2.2. База данных и проект HomeLibrary

База данных HomeLibrary содержит сведения о книгах домашней библиотеки и их авторах. Ее таблицы перечислены в табл. 2.1.

Таблица 2.1

Таблицы базы данных HomeLibrary

Таблица

Назначение

Authors

Хранит сведения об авторах

Books

Хранит сведения о книгах библиотеки

WorkType

Содержит перечень видов произведений: повесть, рассказ и др.

BooksAuthors

Позволяет указать авторов каждой книги; введена, поскольку книга в общем случае может иметь нескольких авторов

BooksContent

Позволяет описать содержание книги

База данных, ее таблицы, а также их индексы сохраняются в виде файлов, имеющих соответственно расширения DBC, DBF и CDX. Файлы, сопутствующие этим файлам, с расширениями DCT и FPT хранят данные неограниченной длины – так называемые memo-данные.

В приведенной модели содержатся сведения о трех объектах: книгах, их авторах и видах литературных произведений.

Поля рассматриваемых таблиц описаны в табл. 2.2.

Таблица 2.2

Поля таблиц базы данных HomeLibrary

Таблица

Поле

Тип

Назначение

Authors

AuthorId

Integer

Номер (код) автора

Author

Character(50)

Фамилия, имя и отчество автора

InputDate

Date

Дата ввода в базу данных сведений об авторе

Information

Memo

Прочие сведения об авторе

Books

BookId

Integer

Номер книги

Book

Character(50)

Название книги

PDate

Date

Дата приобретения книги

Price

Numeric(10, 2)

Цена покупки

BooksAuthors

BookId

Integer (AutoInc)

Номер книги; записи с одним значением поля BooksAuthors.BookId позволяют выбрать авторов книги с таким же значением Books.BookId

AuthorId

Integer

Номер автора

BooksContent

BookId

Integer

Номер книги; записи с одним значением поля BooksContent.BookId позволяют составить содержание книги с таким же значением Books.BookId

Name

Character(50)

Название статьи, повести и пр., имеющейся в книге с номером BooksContent.BookId

TypeId

Integer

Номер вида произведения

WorkType

TypeId

Integer (AutoInc)

Номер вида произведения

WorkType

Character(20)

Содержит наименование вида произведения: рассказ, роман и т. д.

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

При проектировании таблиц устраняются избыточность данных и описанные в разд. 14.3.2 аномалии. В частности, для этих целей введена таблица BooksAuthors.

Поля AuthorId и BookId введены для однозначного распознавания объектов – авторов и их книг. Имена подобных полей принято завершать первыми двумя буквами глагола Identify – опознавать.

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

В рассматриваемой базе такой тип указан для полей BookId и TypeId соответственно таблиц Books и WorkType.

Таблицы, несущие дополнительные сведения об объектах, собственных полей-идентификаторов не имеют. К таковым относятся таблицы BooksAuthors и BooksContent.

Индексы таблиц базы данных перечислены в табл. 2.3.

Таблица 2.3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]