На выполнение занятий 4 отводится 4ч.
Тема: Проектирование учебной БД
Задание
Разработать БД «Книги», система управления которой предназначена для автоматизации работы крупного оптового поставщика книг.
Исходные данные и условия
Первоначальный вариант БД будет содержать три таблицы:
· В таблице FIRMS будут храниться все нужные сведения о партнерах — с указанием юридического адреса, контактных лиц, телефонов и полного названия каждого партнера. В этой же таблице следует хранить суммарный долг каждого покупателя (или каждому поставщику - сальдо).
· В таблице BOOKS разместить полные сведения о каждой книге, хотя бы раз купленной у какого-либо поставщика.
· Таблица NAKLS предназначена для хранения сведений о накладных. Поля в ней - дата отгрузки или получения партии книг, тип накладной (на покупку или продажу, с возвратом ранее проданных/купленных книг), наименование партнера, общая сумма накладной и т. п.
Таким образом, таблица NAKLS будет центральной. Она должна иметь уникальное поле, которое однозначно определяет каждую накладную.
В дальнейшем по этому полю создадим первичный ключ, чтобы СУБД могла быстро найти нужную накладную.
· Каждой записи в NAKLS будет соответствовать произвольное количество записей в таблице BOOK (связь один ко многим).
· В таблице NAKLS будет также ссылка на уникальный идентификатор партнера из таблицы FIRMS.
Описание основных таблиц БД "Книгторг":
Таблица NAKLS
Имя поля | Назначение | ||
NaklID | + | Уникальный идентификатор накладной. По этому полю создать первичный ключ, поэтому суффикс - ID | |
NDate | D | Дата составления накладной. По этому полю создать индекс для сортировки накладных по мере их поступления | |
NType | S | Тип накладной: 0 —покупка у поставщика; 1 —продажа покупателю; | |
NBook | S | Уникальный код книги (поле BookID таблицы Books) | |
NFirm | S | Уникальный идентификатор партнера (поле FirmID таблицы FIRMS) | |
NPayedSum | $ | Оплаченная сумма. | |
Таблица BOOKS
Имя поля | Назначение | ||
BookID | + | Уникальный код книги (первичный ключ) | |
BName | A | 70 | Название книги (индексное поле) |
BAuthor | A | 40 | Автор(ы) |
BPublish | A | 40 | Издательство |
BYear | S | Год выпуска | |
BPages | S | Количество страниц | |
BISBN | A | 25 | Код ISBN |
BStand | S | Стандарт упаковки - количество книг в пачке | |
BQuan | S | Остаток книг на складе | |
BPrice | $ | Цена покупки книги | |
BRozn | $ | Цена продажи |
Таблица FIRMS
Имя поля | Назначение | ||
FirmID | + | Уникальный идентификатор партнера (первичный ключ) | |
FName | A | 50 | Наименование партнера (индексное поле) |
FAddress | A | 70 | Адрес |
FCity | A | 25 | Город |
FPhone | A | 30 | Телефон(ы) |
FEMail | A | 20 | Адрес электронной почты |
FPerson | A | 50 | Контактное лицо (лица); |
FFinDelta | $ | Финансовое сальдо | |
Рекомендации по именам таблиц и полей
1. В файл-серверных БД имя таблицы совпадает с именем файла, в котором размещаются все содержащиеся в ней данные. Не следует использовать русскоязычные названия таблиц, т.к. кириллицу нельзя использовать в SQL и если приходится использовать SQL-запросы, это может затруднить их формирование. По этой же причине не следует использовать кириллицу в именах полей.
2. В именах полей полезно ставить префикс из одной - двух букв названия таблицы (в таблице NAKLS все имена начинать с «N», в FIRMS — с «F» и т. п.). Это исключит вероятность того, что вы случайно назовете поле одним из зарезервированных в SQL слов и просто не сможете составить нужный запрос.
Порядок выполнения
В файл-серверных БД все таблицы размещаются в одном каталоге (папке).
Поэтому перед созданием БД надо создать ее каталог C:\Мои документы\BIBLDATA.
Создание таблиц файл-серверных БД осуществляется с помощью утилиты Database Desktop (DBD), входящей в комплект поставки Delphi.
1. Запустить DBD с помощью команды Пуск ► Программы ► Borland Delphi ► Tools ► Database Desktop (если вы работаете в среде Delphi, для запуска используйте команду Database Desktop главного меню).
2. Настроить рабочий каталог утилиты. Выберите (в DBD) команду File ► Working Directory и установите в появившемся окне ссылку на каталог C:\ Мои документы\BIBLDATA (рис. 1.3).
3. Создать таблицу NAKLS. Для этого выберите команду File ► New ► Table. DBD откроет окно Create Table, в котором надо выбрать тип таблицы. Тип таблицы Paradox можно считать наилучшим для файл-серверных таблиц: щелчком на кнопке ОК согласитесь с вариантом Paradox7. На экране появится окно (рис. 1.4), предназначенное для создания/редактирования структуры таблицы.
Каждому полю создаваемой таблицы соответствует одна запись в таблице Field roster этого окна: в колонку Field Name нужно поместить имя поля, в колонку Туре — символ, определяющий тип хранимых в поле данных, в колонку Size — число, определяющее длину поля (требуется не для всех), если по значениям поля нужно построить первичный ключ, то в колонку Key — звездочку -*.
Рис. 1.3. Установка рабочего каталога
Рис. 1.4. Окно создания структуры таблицы
4. Введите название первого поля NaklID (первый символ названия поля для таблиц Paradox DBD всегда вводится прописным). Нажмите клавишу таб для перехода к следующей колонке. Нажмите клавишу пробела и утилита DBD покажет список возможных типов, и выберите в нем тип Autoincrement. Поля автоинкрементного типа служат для создания уникального числа, однозначно определяющего запись: для первой записи в это поле будет автоматически помещено число 1, для второй — 2 и т. д. (При удалении какой-либо записи выделенное для нее число не используется вновь). Нажмите клавишу пробела, чтобы создать по полю первичный ключ.
5. Продолжить ввод полей таблицы NAKLS, как показано на рис. 1.5. Для первых четырех полей установите флажок Required Field (означает, что при вводе очередной записи в эти поля обязательно должны быть помещены значения — за этим будет следить BDE). Другие поля могут не определяться в момент ввода очередной записи.
Рис. 1.5. Структура полей таблицы NAKLS (в нашем случае несколько отличается)
6. По полю NDate нужно определить индекс (вторичный). Для этого раскройте список Table Properties в правом верхнем углу окна, выберите пункт Secondary Indexes и щелкните на появившейся кнопке Define. В окне Define Secondary Index (рис. 1.6) в списке полей таблицы выделить поле NDate и перенести (щелчком на кнопке) поле в список Indexed Fields.
Рис. 1.6. Определение индексного поля (полей)
С помощью флажков группы Index options можно определить следующие особенности индекса:
Unique — индекс будет содержать уникальные значения;
Maintained — индексные поля сортируются по возрастанию значений;
Case sensitive — индекс чувствителен к регистру букв в текстовых полях;
Descending — индексные поля сортируются по убыванию значений.
В нашем случае (а также при определении индексов в других таблицах демонстрационной БД) оставить эти флажки без изменений и щелкнуть - ОК.
DBD запросит имя индекса (в таблицах Paradox, как и в большинстве серверов БД, индексы именуются) — введите строку Nakls_date и щелкните на кнопке ОК. Во вновь появившемся окне определения структуры таблицы щелкните на кнопке Save as и затем укажите имя файла — Nakls.
Таким образом, создали таблицу NAKLS.
7. Руководствуясь описанием полей, самостоятельно создать остальные таблицы учебной БД.
8. Заполнить таблицы содержанием так, чтобы число записей о книгах в таблице BOOKS было 50, а в остальных не менее 5.
9. Сохранить базу данных в указанном каталоге.
Тема: Формирование таблиц для размещения данных ИС
Упражнения 02-01
Задание 1
Создать в ACCESS простую базу данных со сведениями о сотрудниках некоторой организации.
Порядок выполнения
1. Открыть ACCESS, создать новую базу с именем Employee1 и сохранить ее в отдельной вложенной папке (MY_Access). Создать таблицу, содержащую набор полей в соответствии с рис. 1, и пять записей (далее будем расширять) с произвольными значениями атрибутов. Сохранить таблицу, как отдельную с именем "Исходн_данн", но в составе базы данных.
2. На основе этой простой таблицы сконструировать простую базу данных Employee1, приведенную к третьей нормальной форме (таблицы Name, Empl, Post) и сохранить ее.
Имя поля должно иметь префикс по начальной букве названия таблицы (т.е одинаковые поля в разных таблицах будут отличаться префиксом, например, N_Id и E_Id –код физического лица в разных таблицах). Рекомендуемые названия полей приведены в таблице 1.
Таблица 1
Содержание | Имя поля (в таблице к имени добавить префикс) | Тип |
Код физ. Лица | Id | |
Имя | Name | Символьный |
Отчество | Patronymic | Символьный |
Фамилия | Surname | Символьный |
Пол | Sex | Логический |
Дата рождения | Birthday | Дата |
Почтовый индекс | Index | Числовой |
Город | City | Символьный |
Улица, дом, кв | Street | Символьный |
Телефон | Fone | Символьный |
Код сотрудника | IdEmpl | |
Код должности | IdPost | |
Рейтинг | Rating | Числовой короткий |
Дата приема | AdmissData | Дата |
Дата увольнения | DismissData | Дата |
Должность | Post | Символьный |
Разряд | Sort | Числовой короткий |
Зарплата | Salary | Денежный |
Примечание