Обзор СУБД
На ПЭВМ большое распространение получили так называемые dBase- подобные системы СУБД, которые для размещения таблиц используют файлы с расширением *.dbf. Например, dBase, Faxbase и Clipper. Они в какой-то мере стали стандартом для небольших систем (DOS). В них реализован реляционный подход. Каждому столбцу в таблице- файле.dbf соответствует поле одного из пяти типов (N- числовое, С- символьное, D- дата, L- логическое, М- примечание).
Есть средства разработки, которые часто также представляют пользователям как МБД- Paradox, Clarion, Vista, однако для них нужно всегда пройти всю цепочку проекта (алгоритмизация, программирование, отладка, сопровождение). Хотя с развитием таких систем все большее количество работы возможно сделать с помощью специальных средств «программирования без программиста»- ассистентов.
В настоящее время наиболее развитой системой при максимальной доступности является MS Access. Дополнительным достоинством этой системы является то, что она является частью интегрированной системы MS Office Professional Edition. Это позволяет легко использовать в качестве источников данных электронные таблицы Excel- для фактографической подсистемы и текстовый редактор Word для документальной подсистемы. Для программирования используется один и тот же язык VBA.
Обычно проект БД в Access содержится в одном файле (в отличие от dBase- подобных), что в какой-то мере дает преимущества.
При открытии или создании нового файла пользователь имеет дело со стандартным интерфейсным окном.
Виды объектов: Таблицы (Table), Запросы (Query), Формы (Form), Отчеты (Report), Макросы(Macros), Модуль (Modul).
Открывание таблицы. С этой операции рекомендуется начинать, поскольку, обычно, в системе такого класса всегда есть хорошо поставленные примеры и начинать знакомство нужно с них (обычно это каталоги SAMPLES).
Если нажать кнопку «Открыть», то это соответствует открытию в режиме «Таблица». Если нажать «Конструктор», то это будет режим «Конструктор таблицы».
Имея режим «Таблица» в любой момент можно переключиться в режим «Конструктора» и наоборот- для этого нужно нажать мышью в левом элементе в ряду кнопок
конструктор. таблица.
Открытие таблиц в режиме «Таблицы» приводит к появлению следующего экрана:
Tab- перемещение по столбцам.
End- в последний столбец текущей страницы.
Home- в первый столбец текущей страницы.
Shift + Tab- на столбец влево.
Если нужно попасть на определенный номер записи, то необходимо ввести искомую запись в окне.
Можно вводить новые записи и изменять существующие. Среди полей таблицы могут быть поля с выбираемыми значениями
Такой вид они приобретают при наличии Фокуса ввода.
Можно перейти в режим конструктора. Это необходимо при создании или изменении таблицы (добавление новых полей, например), получим:
При создании таблицы, как и любого другого объекта возможно использование заготовок, но можно начать и с нуля.
Первое, что нужно сделать- дать имена полям. Заметим, что это будут внутренние имена (имена разработчика). Поэтому здесь лучше придерживаться традиций VBA и давать имена краткие. Если имя состоит из нескольких слов, то каждое следует начинать с заглавной буквы: ДатаДняРождения- это очень длинно- лучше сократить: ДатРожд, поскольку это, возможно, будет писаться в программах VBA. От возможности писать имена с пробелами лучше отказаться.
Пользователь увидит на экране внешний вариант имени – ПОДПИСЬ (Caption) поля, которую указывают в свойствах поля.
Затем определяют ТИПЫ полей (типы данных полей).
Типы полей.
Текстовый (Text) - текстовая информация длиной до 256 символов, короткие текстовые характеристики (имена, адреса, комментарии).
МЕМО - поля этого типа используются для хранения длинных текстовых блоков до 32 тысяч символов (около 8 страниц информации).
Числовой (Number) - для числовых данных, используемых в математических расчетах.
Дата / Время (Data / Time) - значения вводятся в стандартном виде:
1/1/97, 12:53:00 РМ.
Длинный (Carrency) - хранит точные значения очень больших (900 трл.) чисел и произвольные точные вычисления.
Счетчик (Counter) - полям такого типа автоматически присваивается уникальное числовое значение для каждой записи начиная с 1 для первой записи и т.д. Это значение изменить или присвоить- невозможно (нет доступа). При удалении- это число вновь автоматически используется и т.д.
Логический (Yes / No) -или ИСТИНА / ЛОЖЬ.
Объект OLE (OLE object) - этот тип связан с технологией Object Lin King and Embeddiny- связывание и встраивание объектов. Позволяет хранить документы: таблицы, графики, рисунки, звуковые сигналы, видео- все, что может быть создано приложениями Windows
Свойства поля.
1. Размер поля (Текстовое, числовое). По умолчанию 50. Большой размер поля не означает, что это даст расход дисковой памяти. В отличие от dBase, Paradox и FoxPro- Access не использует полей фиксированной длины и «пустые места» не хранит.
Для числовых полей:
Уст. Свойство | Пределы | Количество | Память |
Байт | 0 - 255 | - | 1 байт |
Целое | от -32,768 до 32,768 | - | 2 байт |
Дл целое | от -2147483648 до 2… | - | 4 байт |
Простое | от -3.402823Е38 до 3.4… | до 7 | 4 байт |
Двойной точности | от -1.79769313486232Е308 | до 15 | 8 байт |
По умолчанию – Двойной (Double).
Счетчик- Long Integer.
2. Форматы полей (кроме OLE)- оформляет вводимые данные в удобочитаемой, стандартной форме (например: 1100.0 -> $1,100.00). в зависимости от типа- добавляется незначащие типы $ и т.п. По форматам- отдельно.
3. Маска ввода (Input Mask). Используется, когда у данных предварительно определена структура даты, номера телефонов и факсов и т.п.
(###)-###_#### вместо # данные при вводе ставят либо цифра либо пробел.
Функции масок:
- ограничивает ввод за счет фиксации длины;
- вставляет фиксированные символы.
Если описывают свойства и формата и маски, то формат используется (работает) при выводе содержимого поля, а маска- активизируется при редактировании поля.
Для создания новых масок существует «Построитель масок» (Mask Builder, Wizard).
4. Число десятичных знаков (после точки). Для типа «Денежный»- не устанавливает автоматически 2, поэтому нужно изменить с Auto на 2.
-Влияет только на вывод, но не на ввод
5. Условие на значение – вводимой информацией. Например, так можно ограничить дату «окном» в один месяц:
Between Date () - 15 And Date () + 15
Содержание: (введенное вами значение не может быть принято на хранение в БД в соответствии с установленным правилом для данного поля).
6. Значение по умолчанию - это значение автоматически вставляется в поля как фоновое. Например, 0 для поля «Количество», значение, возвращаемое функцией Date(), для заполнения поля текущей датой.
Ели вы хотите вставить конкретную константу, то это называется Литерал:
100- числовой литерал.
«Сумма»- текстовый литерал
# 1 / 15 / 95 # - установить дату 15 января 1995 года.
Значение по умолчанию добавляется один раз в момент добавления новой записи.
7. Обязательное поле. Если установить «Да» для этого свойства, то система заставит его заполнить не-NULL (не путать с 0) значением. Сообщение вынуждающее вводить значение возникает только при попытке сохранить запись в БД. Смысл этого свойства раскрывается в разделе Справки по Access «Задание свойств, определяющих допустимость пустых значений»
8. Пустые строки (только для Text) - это возможность оставлять поля.
Особенность. Изучить взаимодействие с «Обязательным полем» и Null.
Совет. Для различия пустых строк и Null, которые выглядят одинаково нужно с помощью Формата внести слова «Пусто» или «Неизвестно» (конкретное выражение скопировать из Справки).
9. Индексированное поле. Индекс- для первичного ключа генерируется автоматически, может также установить и для любого поля для организации быстрых поисков по нему (механизм поиска- обсужден ранее).
Теперь перейдем к другой вкладке- «Подстановка».
Здесь задается способ получения для поля набора значений, которые оно может принимать- это может быть фиксированный набор значений или таблица или запрос (далее).
Определение связей между таблицами.
Связи определяются (вводятся) в окне Схемы данных. Оно открывается либо кнопкой , либо «Правка / Схема данных» в меню. Открывается окно схемы и диалог добавления таблицы- это дает возможность добавить к схеме таблицу. Есть также кнопка для добавления таблицы к уже имеющейся схеме. После закрытия окна.добавления таблицы можно установить связь между таблицами путем «Перемещения» поля из одной таблицы на эквивалентное поле другой таблицы. Обычно связывают ключевое поле одной таблицы с одноименным полем в другой. При отпускании кнопки мыши открывается окно диалога установления параметров связи
Тип отношения один ко многим
Это же окно открывается при изменении / удалении связи при ее выборе в схеме и нажатии на левую кнопку мыши (дважды).
ПРАВИЛО: Поля, используемые для создания связи могут иметь разные имена, но (за одним исключением) должны иметь одинаковый тип данных и содержать данные одного рода. Кроме того, связываемые поля типа «Числовой» должны иметь одинаковые значения свойства поля, Размер поля.
Единственным исключением является возможность связывания поля типа «Счетчик» с полем типа «Числовой» (со свойством «Длинное целое»).
Если связь создана с включенным параметром «Обеспечение целостности данных», то не допускается удаление любой из таблиц или связанных полей до удаления связи.
Условие целостности не позволяет ввод во внешнее ключевое поле связанной таблицы значения, отсутствующего в ключевом поле главной таблицы. Однако возможен ввод во внешнее ключевое поле пустого значения, показывающего, что записи не являются связанными. Например, невозможно ввести в таблицу заказ на имя несуществующего клиента, однако, допускается ввод заказа, не относящегося ни к одному из клиентов с пустым значением в поле «Код клиента».
Это типичная связь один ко многим. Иногда возникает необходимость в связи «многие ко многим», при которых с каждой записью в одной таблице могут быть связаны несколько записей в другой таблице.
Для реализации такой связи создается третья- объединяющая таблица, в которую должны быть включены ключевые поля из обеих объединяемых таблиц в качестве внешних ключей. Другие поля добавляются как в любую другую таблицу.
В объединяющей таблице задается ключ, включающий все ключевые поля из обеих первичных таблиц.
Далее задаются связи «один ко многим» между каждой из первичных таблиц и объединяющей.
В заказ может быть включено много товаров. Товар может быть включен во много заказов.