- •Содержание
- •3.1. Физическое проектирование базы данных.
- •3.2. Типы данных субд InterBase.
- •3.2.1. Целочисленные значения.
- •3.2.2. Значение с плавающей запятой.
- •3.2.3. Фиксировано-десятичные значения.
- •3.2.4. Значения типа даты.
- •3.2.5. Символьные типы данных.
- •3.2.6. Значения типа blob.
- •3.2.7. Совместимость типов столбцов.
- •3.3. Физическая модель базы данных «библиотека».
- •3.4. Краткая характеристика языка sql.
- •3.5. Создание базы данных, доменов, таблиц и ключей в InterBase.
- •3.6. Создание и использование Script-файла.
- •Контрольные вопросы:
3.3. Физическая модель базы данных «библиотека».
На первой лекции вашему вниманию была представлена логическая модель базы данных «Библиотека». Реализуем ее с помощью средств сервера InterBase. Имена базы данных, таблиц и полей таблиц выполним, переведя их русские названия на английский язык. В дальнейшем русские названия полей будут служить их заголовками в объектах пользовательского интерфейса.
Итак. Имя базы данных – LIBRARY.GBD. В таблице 3.2 приведены названия десяти таблиц, которые в нее входят согласно логической модели. В таблицах 3.3 – 3.12 приведены имена полей, типы данных и их размерность согласно спецификациям InterBase. Здесь же показаны ключевые поля, которые обеспечивают ссылочную целостность данных. Буквами “P” и “F” обозначены PRIMARY KEY (первичный ключ) и FOREIGN KEY (внешний ключ) соответственно. Для обеспечения ссылочной целостности первичный ключ должен корреспондироваться с внешним ключом другой (дочерней) таблицы. Данные связи показаны между таблицами на диаграмме (рис. 3.1).
Таблица 3.2.
Имена таблиц в базе данных LIBRARY.GBD.
№ п.п. |
Наименование |
Имя в LIBRARY.GBD |
|
ЧИТАТЕЛИ |
Readers |
|
БИБЛИОТЕКАРИ |
Librarians |
|
КНИГИ |
Books |
|
ПАСПОРТНЫЕ ДАННЫЕ |
PasportData |
|
ТЕЛЕФОНЫ |
Phones |
|
АВТОРЫ КНИГ |
BookAuthors |
|
ИНВЕНТАРНЫЕ НОМЕРА КНИГ |
BookInventaryNumbers |
|
УЧЕТ ВЫДАЧИ КНИГ |
BookGiveOutRecord |
|
ТИПЫ ФОНДОВ КНИГ |
BookFunds |
|
ТИПЫ ТЕЛЕФОНОВ |
PhoneTypes |
Таблица 3.3.
Спецификация таблицы Readers (ЧИТАТЕЛИ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код |
Code |
INTEGER |
|
P |
|
Фамилия |
FamilyName |
CHAR |
30 |
|
|
Имя |
Name |
CHAR |
30 |
|
|
Отчество |
Patronymic |
CHAR |
30 |
|
|
№ читательского билета |
ReaderCardNumber |
INTEGER |
|
|
|
Код паспорта |
PasportCode |
INTEGER |
|
F |
|
Место основной работы |
Job |
CHAR |
60 |
|
|
Должность |
Post |
CHAR |
30 |
|
|
Примечания |
Note |
BLOB |
|
|
Таблица 3.4.
Спецификация таблицы Librarians (БИБЛИОТЕКАРИ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код |
Code |
INTEGER |
|
P |
|
Табельный номер |
ClockNumber |
INTEGER |
|
|
|
Фамилия |
FamilyName |
CHAR |
30 |
|
|
Имя |
Name |
CHAR |
30 |
|
|
Отчество |
Patronymic |
CHAR |
30 |
|
|
Код паспорта |
PasportCode |
INTEGER |
|
F |
|
Должность |
Post |
CHAR |
30 |
|
|
Домашний телефон |
HomePhone |
CHAR |
7 |
|
|
Примечания |
Note |
BLOB |
|
|
Таблица 3.5.
Спецификация таблицы Books (КНИГИ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код |
Code |
INTEGER |
|
P |
|
Название |
Name |
CHAR |
200 |
|
|
Код автора |
AuthorCode |
INTEGER |
|
F |
|
Год издания |
IssueYear |
DATA |
|
|
|
Тираж |
Drawing |
INTEGER |
|
|
|
УДК |
UDK |
CHAR |
20 |
|
|
Шифр |
Cipher |
CHAR |
10 |
|
|
Примечания |
Note |
BLOB |
|
|
Таблица 3.6.
Спецификация таблицы PasportData (ПАСПОРТНЫЕ ДАННЫЕ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код |
Code |
INTEGER |
|
P |
|
Серия паспорта |
Series |
CHAR |
2 |
|
|
№ папорта |
Number |
INTEGER |
|
|
|
Дата рождения |
Birthday |
DATE |
|
|
|
Место рождения |
BirthPlace |
CHAR |
30 |
|
|
Пол |
Sex |
CHAR |
1 |
|
|
Место выдачи паспорта |
IssuePlace |
CHAR |
100 |
|
|
Дата выдачи паспорта |
IssueDate |
DATE |
|
|
|
Прописка |
Note |
BLOB |
|
|
Таблица 3.7.
Спецификация таблицы Phones (ТЕЛЕФОНЫ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код читателя |
ReaderCode |
INTEGER |
|
F |
|
Код типа телефона |
PhoneTypeCode |
INTEGER |
|
F |
|
№ телефона |
PhoneNumber |
CHAR |
20 |
|
Таблица 3.8.
Спецификация таблицы BookAuthors (АВТОРЫ КНИГ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код |
Code |
INTEGER |
|
P |
|
Фамилия |
FamilyName |
CHAR |
30 |
|
|
Имя |
Name |
CHAR |
30 |
|
|
Отчество |
Patronymic |
CHAR |
30 |
|
|
Дата рождения |
Birthday |
DATE |
|
|
|
Дата смерти |
Deatheday |
DATE |
|
|
|
Краткая биография |
ShortBiography |
BLOB |
|
|
|
Примечания |
Note |
BLOB |
|
|
Таблица 3.9.
Спецификация таблицы BookInventaryNumbers (ИНВЕНТАРНЫЕ НОМЕРА КНИГ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код |
Code |
INTEGER |
|
P |
|
Код книги |
BookCode |
INTEGER |
|
F |
|
Код фонда |
FundCode |
INTEGER |
|
F |
|
Инвентарный номер |
InventoryNumber |
INTEGER |
|
|
|
Стоимость |
Cost |
FLOAT |
|
|
Рис. 3.1. Связи между таблицами базы данных LIBRARY.GBD.
Таблица 3.10.
Спецификация таблицы BookGiveOutRecord (УЧЕТ ВЫДАЧИ КНИГ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код |
Code |
INTEGER |
|
P |
|
Код читателя |
ReaderCode |
INTEGER |
|
F |
|
Код библиотекаря, выдавшего книгу |
OutLibrarianCode |
INTEGER |
|
F |
|
Код инвентарного номера книги |
InventoryCode |
INTEGER |
|
F |
|
Дата выдачи |
IssueDate |
DATE |
|
|
|
Дата возврата |
ReturnDate |
DATE |
|
|
|
Фактическая дата возврата |
FactReturnDate |
DATE |
|
|
|
Код библиотекаря, принявшего книгу |
InLibrarianCode |
INTEGER |
|
F |
Таблица 3.11.
Спецификация таблицы BookFunds (ТИПЫ ФОНДОВ КНИГ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код |
Code |
INTEGER |
|
P |
|
Наименование |
Name |
CHAR |
20 |
|
Таблица 3.12.
Спецификация таблицы PhoneTypes (ТИПЫ ТЕЛЕФОНОВ).
№ п.п. |
Заглавие |
Имя поля |
Тип |
Длина |
Ключ |
|
Код |
Code |
INTEGER |
|
P |
|
Наименование |
Name |
CHAR |
20 |
|
В реализации физической модели базы данных нам поможет язык работы с базами данных – это язык структурированных запросов (Structured Query Language), или сокращенно – SQL.