Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание полей




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

Имена таблиц и полей

Базы данных созданные в формате Paradox, Dbase, FoxPro относятся к классу файл – серверных БД.

В БД формата Paradox имя таблицы совпадает с именем файла, в котором размещаются все содержащиеся в ней данные. Поскольку
32-разрядные версии Windows разрешают длинные русскоязычные имена файлов, было бы заманчиво назвать таблицы КНИГИ, НАКЛАДНЫЕ и т.п. Я не советую вам делать этого по причине не полной поддержки кириллицы языками программирования и языками манипулирования данными. По этой же причине не следует использовать кириллицу в именах полей.

В именах полей полезно ставить префикс из одной-двух букв названия таблицы (в таблице WORKER все имена начинать с «W», в ADDRESS – с «A» и т.п.). Это исключит вероятность того, что вы случайно назовете поле одним из зарезервированных слов языков программирования, что может сделать его использование невозможным. И еще одна рекомендация: старайтесь делать имена полей по возможности лаконичными – это сократит код программы и сроки ее создания.

В файл – серверных БД все таблицы размещаются в одном каталоге (папке). Поэтому перед созданием БД создадим ее каталог. Пусть это будет каталог C:\WORKER. В нашем случае для создания контейнера БД будем использовать утилиту Database Desktop, входящей в комплект поставки Delphi.

Утилита Database Desktop решает целый ряд задач, связанных с таблицами файл – серверных БД. С ее помощью можно создавать или изменять структуру таблиц, создавать первичные ключи и индексы, создавать и изменять записи, просматривать их и т.д. Запустите Database Desktop с помощью команды Пуск ® Программы ® Borland Delphi 6 ® Database Desktop. Или, если вы работаете в среде Delphi, для запуска используйте команду Tools ® Database Desktop главного меню. Первое, что необходимо сделать, – это настроить рабочий каталог утилиты. Выберите команду File ® Working Directory и установите в появившемся окне ссылку на каталог C:\WORKER (рис. 2.1).

Рис. 2.1. Установка рабочего каталога

Для создания таблицы WORKER выберите команду File ® New ® Table. Database Desktop откроет окно Create Table, в котором можно выбрать тип таблицы (рис. 2.2).

Рис. 2.2. Выбор типа таблицы

Тип таблицы определяет многие ее свойства. Тип Paradox 7 можно считать наилучшим для таблиц файл – серверных баз данных: щелчком на кнопке ОК согласитесь с вариантом Paradox 7, предложенным по умолчанию. На экране появится окно (рис. 2.3), предназначенное для создания/редактирования структуры таблицы.

Каждому полю создаваемой таблицы соответствует одна запись в перечне полей (Field roster) этого окна. В колонку Field Name нужно поместить имя поля. В колонку Туре – символ, определяющий тип хранимых в поле данных. В колонку Size – число, определяющее длину поля (требуется не для всех типов полей). И, наконец, в колонку Key – символ звездочки (*), если по значениям этого поля нужно построить первичный ключ.

Введите название первого поля IDWorker и нажмите клавишу табуляции (Tab) для перехода к следующей колонке, в которой вводится тип поля. Нажмите клавишу пробела, чтобы утилита Database Desktop показала список возможных типов, и выберите в нем тип Autoincrement (рис. 2.2).

Рис. 2.3. Окно создания структуры таблицы

Поля автоинкрементного типа служат для создания уникального числа, однозначно определяющего запись: для первой записи в это поле будет автоматически помещено число 1, для второй – 2 и т. д. При удалении какой-либо записи выделенное для нее число не используется вновь. После выбора типа поля черный прямоугольник появится в колонке Key. Нажмите клавишу пробела, чтобы пометить поле символом (*) и создать по нему первичный ключ.

Продолжите ввод полей таблицы WORKERS так, как показано на рис. 2.4. Для всех полей установите флажок Required Field, означающий, что при вводе очередной записи в эти поля обязательно должны быть помещены значения – за этим будет следить Borland Database Engine (BDE).

Рис. 2.4. Структура полей таблицы WORKERS


28 Типы полей базы данных формата "Paradox".

Табл. A: Типы полей формата Paradox

Alpha строка длиной 1-255 байт, содержащая любые печатаемые символы
Number числовое поле длиной 8 байт, значение которого может быть положительным и отрицательным. Диапазон чисел - от 10-308 до 10308 с 15 значащими цифрами
$ (Money) числовое поле, значение которого может быть положительным и отрицательным. По умолчанию, является форматированным для отображения десятичной точки и денежного знака
Short числовое поле длиной 2 байта, которое может содержать только целые числа в диапазоне от -32768 до 32767
Long Integer числовое поле длиной 4 байта, которое может содержать целые числа в диапазоне от -2147483648 до 2147483648
# (BCD) числовое поле, содержащее данные в формате BCD (Binary Coded Decimal). Скорость вычислений немного меньше, чем в других числовых форматах, однако точность - гораздо выше. Может иметь 0-32 цифр после десятичной точки
Date поле даты длиной 4 байта, которое может содержать дату от 1 января 9999 г. до нашей эры - до 31 декабря 9999 г. нашей эры. Корректно обрабатывает високосные года и имеет встроенный механизм проверки правильности даты
Time поле времени длиной 4 байта, содержит время в миллисекундах от полуночи и ограничено 24 часами
@ (Timestamp) обобщенное поле даты длиной 8 байт - содержит и дату и время
Memo поле для хранения символов, суммарная длина которых более 255 байт. Может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (1-240) - остальные символы сохраняются в отдельном файле с расширением.MB
Formatted Memo поле, аналогичное Memo, с добавлением возможности задавать шрифт текста. Также может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (0-240) - остальные символы сохраняются в отдельном файле с расширением.MB. Однако, Delphi в стандартной поставке не обладает возможностью работать с полями типа Formatted Memo
Graphic поле, содержащее графическую информацию. Может иметь любую длину. Смысл размера - такой же, как и в Formatted Memo. Database Desktop "умеет" создавать поля типа Graphic, однако наполнять их можно только в приложении
OLE поле, содержащее OLE-данные (Object Linking and Embedding) - образы, звук, видео, документы - которые для своей обработки вызывают создавшее их приложение. Может иметь любую длину. Смысл размера - такой же, как и в Formatted Memo. Database Desktop "умеет" создавать поля типа OLE, однако наполнять их можно только в приложении. Delphi "напрямую" не умеет работать с OLE-полями, но это легко обходится путем использования потоков
Logical поле длиной 1 байт, которое может содержать только два значения - T(true, истина) или F (false, ложь). Допускаются строчные и прописные буквы
+ (Autoincrement) поле длиной 4 байта, содержащее нередактируемое (read-only) значение типа long integer. Значение этого поля автоматически увеличивается (начиная с 1) с шагом 1 - это очень удобно для создания уникального идентификатора записи (физический номер записи не может служить ее идентификатором, поскольку в Парадоксе таковой отсутствует. В InterBase также отсутствуют физические номера записей, но отсутствует и поле Autoincrement. Его с успехом заменяет встроенная функция Gen_id, которую удобней всего применять в триггерах)
Binary поле, содержащее любую двоичную информацию. Может иметь любую длину. При этом размер, указываемый при создании таблицы, означает количество символов, сохраняемых в таблице (0-240) - остальные символы сохраняются в отдельном файле с расширением.MB. Это полнейший аналог поля BLOb в InterBase
Bytes строка цифр длиной 1-255 байт, содержащая любые данные


29 Правила задания имен полей в базе данных формата "Paradox".

Структура полей

1) Наименования полей:

Порядковый номер поля - этот столбец не содержит заголовка и

предназначен лишь для определения порядка следования полей в таблице.

Значения в нем изменяются автоматически, начиная с единицы,

упорядочиваются по возрастанию и их уникальность поддерживается для

каждого поля.

Field Name - столбец содержит название поля таблицы БД.

Имя поля в таблице формата Paradox представляет собой строку, написание которой подчиняется следующим правилам:

  • Имя должно быть не длиннее 25 символов.
  • Имя не должно начинаться с пробела, однако может содержать пробелы. Однако, если Вы предполагаете в будущем переносить базу данных в другие форматы, разумнее будет избегать включения пробелов в название поля. Фактически, в целях переносимости лучше ограничиться девятью символами в названии поля, не включая в него пробелы.
  • Имя не должно содержать квадратные, круглые или фигурные скобки [], () или {}, тире, а также комбинацию символов "тире" и "больше" (->).
  • Имя не должно быть только символом #, хотя этот символ может присутствовать в имени среди других символов. Хотя Paradox поддерживает точку (.) в названии поля, лучше ее избегать, поскольку точка зарезервирована в Delphi для других целей.


30 DataBase Desktop: задание доменов в базе данных формата "Paradox".
31 DataBase Desktop: задание ключей в базе данных формата "Paradox".
32 DataBase Desktop: задание связей в базе данных формата "Paradox".

Организация связей в реляционных БД

Организация связей в реляционных БД возможна благодаря наличию одинаковых данных в связываемых таблицах. Рассмотрим пример связи между таблицами «Сотрудники» и «Должности».

Таблица 1.2

Таблица «Сотрудники»

ИНН Фамилия Имя Отчество
  Иванов Петр Иванович
  Петров Иван Петрович
  Сидоров Михаил Викторович
  Михайлов Виктор Валерьевич

Таблица 1.3

Таблица «Должности»

ID_должности Должность
  Директор
  Бухгалтер
  Экономист

Для организации связи таблицы «Должности» с таблицей «Сотрудники», в таблицу «Сотрудники» необходимо добавить дополнительное поле, в котором для каждой записи будет храниться идентификатор соответствующей записи таблицы «Должности». Это поле – вторичный ключ, который представляет собой отображение первичного ключа связанной таблицы «Должности», так как содержит только те данные, которые содержатся в поле «ID_должности». Пример связи представлен на рис. 1.7.

Рис. 1.7. Связь таблицы «Должности» с таблицей «Сотрудники»

Таким же образом организуются связи между остальными таблицами БД. Окончательный вариант контейнера БД представлен на рис. 1.8.

Рис. 1.8. Контейнер БД сотрудников предприятия

1.6.5. Недостатки нормализованной БД

Недостатком нормализованной БД является необходимость считывать связанные данные из нескольких таблиц при выполнении одного запроса, что негативно сказывается на производительности, т.к. замечено, что ненормализованные или не вполне нормализованные данные отыскиваются быстрее, если они хранятся в одной таблице, по сравнению со случаем поиска данных в связанных таблицах. Подобное ускорение тем заметнее, чем больше число записей в связанных таблицах.

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


33 Компоненты Delphi для работы с БД ТDataвase (назначение, свойства, методы события).

Компонент TDatabase позволяет наиболее эффективно управлять подключениями к базам данных. Это управление включает:

═════? создание постоянного подключения к базе данных;

═════? отмену установленной по умолчанию регистрации на сервере;

═════? создание псевдонима BDE на уровне приложения;

═════? управление транзакциями и определение уровней их разграничения.

 

TObject -> TPersistent->TComponent -> TDatabase

Модуль DB

Страница Палитры компонентов DataAccess

Не используется при создают обычных приложений, работающих с базами данных, однако незаменим в приложениях клиент/сервер. В его функции входят:

  • установление постоянной связи с базой данных;
  • задание параметров сервера;
  • создание локальных псевдонимов BDE;
  • управление транзакциями.



Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 666; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.033 сек.