Diplom (Разработка АРМ научно-технической библиотеки университета), страница 5
Описание файла
Документ из архива "Разработка АРМ научно-технической библиотеки университета", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "Diplom"
Текст 5 страницы из документа "Diplom"
Описанные выше приемы проектирования помогают эффективно связывать данные. При создании таблиц, в каждую новую таблицу включается поле, связывающее новую и старую таблицы. Эти связующие поля называются внешними ключами. В хорошо спроектированной базе данных использование внешних ключей обеспечивает эффективность использования приложения. В процессе проектирования нужно внимательно следить за созданием внешних ключей. Заключительный этап логического проектирования базы данных заключается в определении связей между таблицами. Задаваемые при создании таблиц связи первичных ключей с внешними ключами используются для объединения данных из нескольких таблиц.
В большинстве случаев, как уже описывалось выше, таблицы связываются между собой отношением «один ко многим», гораздо реже «один к одному» и «многие ко многим». Если в базе данных существует связь между таблицами типа «многие ко многим», то необходимо создать таблицу пересечения, с помощью которой одна связь «многие ко многим» будет сведена к двум связям типа «многие к одному». В настоящей базе данных все таблицы будут связываться между собой отношением типа «многие к одному». Непосредственно для работы данного приложения необходимо связать данные из таблиц с данными о заголовках разделов и изданиями. Связь между этими таблицами будет типа «один ко многим», так как в одном разделе может содержаться множество изданий, но любое издание содержится только в одном разделе. Для связи таблицы Раздел с таблицей Издание необходимо, чтобы первичный ключ этой таблицы – Код_раздела - присутствовал в связанной с ней таблице. В таблице Издание первичным ключом является Код_издания через который производится связь с таблицами Авторы, Составители, Редакторы и Переплёты, в соотношении «один ко многим», так как у одного издания может быть несколько авторов, составителей и редакторов, а так же в библиотеке может храниться несколько экземпляров данного издания. В свою очередь у таблицы Создатели тоже есть первичный ключ Код_создателя через который определяем связь с таблицами Авторы, Составители и Редакторы, в отношении «один ко многим». Таблица Вид_издания связана с таблицей Издание по первичному ключу Вид_издания в соотношении «один ко многим, так же таблица Издательства связана с таблицей Издание по первичному ключу Код_издательства в отношении «один ко многим». Таблица Переплёты имеет первичный ключ Номер_переплёта по которому связана с таблицей Выдача в отношении «один ко многим».
Аналогично таблица Группа будет связываться с таблицей Читатель отношением типа «один ко многим» через первичный ключ Код_группы, потому как в любой группе может содержаться множество читателей, но каждый читатель содержится в одной группе. Таблица Города, имеющая первичный ключ Код_города связана с таблицей Читатель в отношении «один ко многим», аналогично связаны таблицы Улицы, Фамилии, Имена и Отчества, у которых первичными ключами являются Код_улицы, Код_Фамилии, Код_имени и Код_отчества соответственно. Так же таблица Читатель, имеющая первичный ключ Номер_читателя, связана с таблицей Выдача в отношении «один ко многим».
3.2 Разработка таблиц.
3.2.1 Построение таблиц.
После разработки проекта приложения можно приступать к непосредственному его созданию.
В Microsoft VFP существует три способа создания таблицы:
-
Использование мастера баз данных для создания всех таблиц входящих в базу данных, содержащей все требуемые представления, индексы, хранимые процедуры и связи за одну операцию. Мастер баз данных создает новую базу данных, его нельзя использовать для добавления новых таблиц, индексов, представлений, связей и хранимых процедур в уже существующую базу данных.
-
Использование мастера таблиц позволяет выбрать поля для данной таблицы из множества определенных ранее таблиц, таких как деловые контакты, список личного имущества или указать произвольную таблицу. Добавить в существующую базу данных, назначить типы полей, индексы и связи.
-
Определение всех параметров таблицы в режиме конструктора.
Независимо от метода, примененного для создания таблицы, всегда имеется возможность использовать режим конструктора для дальнейшего изменения макета таблицы, например, для добавления новых полей, определения типов, индексов и связей.
В дальнейшем, используя, конструктор базы данных создаём проекты таблиц, указываем типы данных и свойства полей, определяем индексы и устанавливаем связи между таблицами, назначаем методы контроля целостности.
Рис.3.2 Окно конструктора таблиц
В верхней части дизайнера таблиц расположены столбцы, в которых вводится название поля, тип данных, размер поля, наличие простого индекса, направление индексации (по возрастанию, по убыванию), возможность использования значения .NULL., в нижней части окна вводятся формат поля, формат маски ввода, заголовок поля, процедуры для проверки вводимых значений, сообщения, значение по умолчанию и комментарий для поля.
Для оптимизации работы с таблицами существует несколько возможностей:
-
Проектировать таблицы, в которых не содержится избыточных данных.
-
Выбирать наиболее подходящий тип данных для поля – это приведёт к уменьшению размера таблицы и увеличит скорость выполнения операций. При описании таблицы следует задавать для него тип данных наименьшего размера, позволяющий хранить нужные данные.
Microsoft Visual FoxPro поддерживает тринадцать типов данных:
Тип данных | Использование | Размер |
Character | Алфавитно-цифровые данные | До 254 байт |
Currency | Денежные суммы | 8 байт |
Numeric/ Float | Числовые данные | До 20 байт |
Date | Дата | 8 байт |
Data/Time | Дата-время | 8 байт |
Double | Числа двойной точности с плавающей точкой (18 разрядов) | 8 байт |
Integer | Целые числа | 4 байта |
Logical | Логические данные (.T./.F.) | 1 байт |
Memo | Алфавитно-числовые данные | Ограничено свободным местом на диске |
General | Графические изображения, диаграммы, OLE объекты | Ограничено свободным местом на диске |
Character (binary) | Алфавитно-цифровые данные с символами ASCII от 0 до 255 | Ограничено свободным местом на диске |
Memo (binary) | Алфавитно-цифровые данные с символами ASCII от 0 до 255 | Ограничено свободным местом на диске |
3.2.2 Назначение типов данных для полей таблиц.
Исходя из выше описанной модели, определим типы полей для таблиц.
Для таблицы Создатели:
-
Код_создателя – тип данных Integer;
-
Создатель – тип данных Character, размер порядка 50 символов.
Для таблицы Издательства:
-
Код_издательства – тип данных Integer;
-
Название – тип Character, размером 30 символов;
-
Город – тип Character, размером 20 символов.
Для таблицы Виды издания:
-
Вид_издания – тип данных Integer;
-
Название_вида – тип Character, размером 30 символов.
Для таблицы Раздел:
-
Название_раздела – тип Character, размером 100 символов;
-
Библиотечный_код – тип Character, размером 20 символов;
-
Код_раздела – тип данных Integer;
-
Код_родителя – тип данных Integer.
Для таблицы Издание:
-
Код_издания – тип данных Integer;
-
Код_раздела – тип данных Integer;
-
Заглавие – тип Character, размером 30 символов;
-
Вид_издания – тип данных Integer;
-
Код_издательства – тип данных Integer;
-
Авторский_знак – тип Character, размером 10 символов;
-
Год_издания – тип Numeric, размером 4 символов;
-
Аннотация – тип Memo.
Для таблицы Переплёты:
-
Номер_переплёта – тип данных Integer;
-
Код_издания – тип данных Integer;
-
Дата_приобретения – тип Date.
Для Таблицы Группа:
-
Код_группы – тип данных Integer;
-
Название_группы – тип Character, размером 30 символов;
-
Код_родителя – тип данных Integer.
Для таблицы Читатели:
-
Номер_читателя – тип данных Integer;
-
Код_группы – тип данных Integer;
-
Код_фамилии – тип данных Integer;
-
Код_имени – тип данных Integer;
-
Код_отчества – тип данных Integer;
-
Код_города – тип данных Integer;
-
Код_улицы – тип данных Integer;
-
Дом_Квартира – тип Character, размером 20 символов;
-
Номер_телефона – тип Character, размером 15 символов;
-
Дата_рождения – тип Date;
-
Дата_регистрации – тип Date;
-
Комментарий – тип Memo.
Для таблицы Авторы:
-
Код_создателя – тип данных Integer.
-
Код_издания – тип данных Integer.
Для таблицы Составители:
-
Код_создателя – тип данных Integer.
-
Код_издания – тип данных Integer.
Для таблицы Редакторы:
-
Код_создателя – тип данных Integer.
-
Код_издания – тип данных Integer.
Для таблицы Выдача:
-
Номер_переплёта – тип данных Integer.
-
Номер_читателя – тип данных Integer.
-
Дата_выдачи – тип Date;
-
Дата_сдачи – тип Date.
Для таблицы Фамилии:
-
Код_фамилии – тип данных Integer.
-
Фамилия – тип Character, размером 30 символов.
Для таблицы Имена:
-
Код_имени – тип данных Integer.
-
Имя – тип Character, размером 30 символов.
Для таблицы Отчества:
-
Код_отчества – тип данных Integer.
-
Отчество – тип Character, размером 30 символов.
Для таблицы Города:
-
Код_города – тип данных Integer.
-
Город – тип Character, размером 30 символов.
Для Таблицы Улицы:
-
Код_улицы – тип данных Integer.
-
Улица – тип Character, размером 30 символов.
На основе выше изложенного создадим следующую структуру таблиц для использования при разработке АРМ.
Раздел (Issue.dbf) | ||||
№ | Название | Тип | Значение | |
размер | ||||
1 | Id | Integer | 4 | Уникальный номер раздела |
2 | Bbk | Character | 20 | Номер по ББК |
3 | Name | Character | 100 | Название раздела |
4 | Parent | Integer | 4 | Номер вышестоящего раздела |
Издания (Books.dbf) | ||||
№ | Название | Тип | Значение | |
размер | ||||
1 | IssId | Integer | 4 | Номер раздела (Issue.Id) |
2 | BookId | Integer | 4 | Уникальный номер книги |
3 | Name | Character | 30 | Название книги |
4 | BookType | Integer | 4 | Код вида издания |
5 | PublId | Integer | 4 | Номер издательства (Publisher.PublId) |
6 | PublYear | Numeric | 4 | Год издания |
7 | AutorId | Character | 10 | Авторский знак |
6 | Date | Date | 8 | Дата поступления |
7 | Comment | Memo | 4 | Аннотация |
Создатели (Creators.dbf) | ||||
№ | Название | Тип | Значение | |
размер | ||||
1 | NameId | Integer | 4 | Уникальный номер значения |
2 | Name | Character | 50 | Значение |