База данных – это совокупность сведений о каких-либо объектах реального мира.

Например, совокупность сведений о владельцах автомобилей (ФИО, адрес, марка автомобиля, когда приобретён, номерной знак и т.д.)

СУБД – система управления базами данных. СУБД – это программный комплекс для работы с базой данных.

Информационная система (ИС) – совокупность базы данных и аппаратно-программного комплекса для работы с базой данных.

ИС служат для того, чтобы обрабатывать запросы пользователя и давать на них ответы.

Мы будем изучать ИС, в которых информация в базе данных хранится в виде таблиц. Такие базы данных называют реляционными.

Таблицы реляционных баз данных обладают определёнными свойствами.

Каждая таблица имеет фиксированное число столбцов, а число строк может изменяться в процессе эксплуатации.

Строки называются записями, а столбцы полями.

Для каждого поля должны быть определены уникальное имя, тип данных, содержащихся в поле, и другие свойства поля. Надо различать имя поля и значение поля. Например, если имя поля «Фамилия», то Иванов – это значение этого поля.

Каждая таблица должна иметь первичный ключ.

Первичный ключ – минимальный набор полей, однозначно определяющий запись в таблице.

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

При создании базы данных стоит задача представления исходных данных в виде таблиц.

Процесс преобразования исходных данных в двумерные таблицы называется нормализацией.

Рассмотрим конкретный пример.

Пусть некоторая фирма занимается торговлей кондитерскими изделиями. Клиентами фирмы являются рестораны, кафе, клубы и т.д. Для учета заказов фирма заносит в учетную тетрадь следующую информацию:

Номер заказа;

Дата;

Наименование клиента;

Адрес клиента;

Название продукта;

Количество товара (кг);

Цена продукта (руб/кг);

Стоимость заказа (руб).

Итак, сначала надо произвести нормализацию данных, т.е. определить какие будут нужны таблицы для хранения этих данных.

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

Однако организация этой базы данных одной таблицей содержит ряд недостатков.

Например, в таблице имеются поля наименование клиента и адрес клиента, которые не зависят от номера заказа. Набирая их каждый раз, мы будем проделывать массу лишней работы. Кроме того, при удалении записи, в которой сведения о данном клиенте больше нигде не содержаться, мы потеряем информацию о нём.

Чтобы избавиться от этого недостатка поступают так. Создают ещё одну таблицу с полями:

Код клиента;

Наименование клиента;

Адрес клиента.

Из первой таблицы удаляют поля наименование клиента и адрес клиента и добавляют поле код клиента. Первичным ключом второй таблицы, очевидно, служит поле код клиента.

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

Ну и наконец, можно выделить в отдельную таблицу сведения о продукте. Полями такой таблицы будут: код продукта, наименование продукта и цена.

Итак, проектируемая база данных должна содержать три таблицы, которые можно назвать «Заказы», «Клиенты», «Продукты».

Заказы

Номер заказа

Код клиента

Код продукта

Количество

Дата

Первичный ключ у этой таблицы – «номер заказа».

Клиенты

Код клиента

Наименование

Адрес

Первичный ключ у таблицы клиенты - поле «код клиента».

Продукты

Код продукта

Название

Цена

Первичный ключ – «код продукта».

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

Свойства полей. Типы данных

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

Поле дата будет иметь специальный тип – дата.

Поля наименование, название, адрес будут иметь текстовый тип данных.

Кроме указания типа данных бывает нужно указать размер поля и формат поля.

Для всех текстовых полей рекомендуется обязательно указать размер поля. В нашем случае, для полей «наименование» и «название» достаточно будет указать размер в 50 символов, а для «адреса» – 80 символов.

В СУБД Microsoft Access поля могут содержать следующие типы данных.

Текстовый (Текст или числа, не требующие проведения расчетов, например номера телефонов. Число знаков, не превышающее 255).

Числовой (Числовые данные, используемые для проведения расчетов. 1, 2, 4 или 8 байт.).

Дата/время (Даты и время, относящиеся к годам с 100 по 9999.).

Логический (одно из двух возможных значений (Да/Нет, True/False или Вкл/Выкл).

Гиперссылка (Текст или комбинация текста и чисел, хранимые как текст и используемые в качестве адреса гиперссылки.)

Счётчик (Уникальные, последовательно возрастающие на 1 или случайные числа, автоматически вводящиеся при добавлении каждой новой записи в таблицу).

Денежный (Денежные значения и числовые данные (от одного до четырех знаков в дробной части), используемые в математических расчетах, проводящихся с точностью до 15 знаков в целой и до 4 знаков в дробной части.).

Поле объекта ОLE (Объект (например, электронная таблица Microsoft Excel, документ Microsoft Word, рисунок, звукозапись или другие данные в двоичном формате), связанный или внедренный в таблицу Microsoft Access.)

Свойства поля зависят от типа данных. Наиболее важные следующие свойства.

Общими для всех типов данных являются следующие свойства:

Обязательное поле – (допустимые значения – Да или Нет. Если поле обязательное, то пока в него не внесут данные, перейти к следующей записи будет невозможно);

Индексированное поле – (допустимые значения - (да(допускаются совпадения), да(совпадения не допускаются), нет. Если поле индексированное, то в случае поиска данных по этому полю время поиска будет минимальным. Если совпадения не допускаются, то таблица не может иметь записи с одинаковым значением данного поля.)

Для числовых данных

Размер поля (байт 0-255, целое –32768 +32767, длинное целое –2 109 +2 109, одинарное с плавающей точкой –3 1035 +3 1038, двойное с плавающей точкой).

Формат поля (основной, денежный, евро, фиксированный, процентный, экспоненциальный).

Число десятичных знаков (влияет на отображаемые данные, только если формат поля фиксированный).

Значение по умолчанию (то значение, которое будет присутствовать в поле, до ввода первого значения).

Обязательное поле.

Индексированное поле.

Для текстовых данных

Размер поля (сколько символов может содержать поле).

Обязательное поле.

Пустые строки (возможные значения - да, нет. Может ли поле не иметь данных).

Для данных Дата/время

Формат поля (краткий формат даты, полный формат даты…).

Контрольные вопросы

1. Что такое база данных?

2. Какие базы данных называются реляционными?

3. Какие базы данных называются фактографическими?

4. Что такое СУБД?

5. Какими обязательными свойствами должны обладать таблицы реляционной базы данных?

6. Что такое поле и запись в реляционных базах данных?

7. Что такое первичный ключ?

8. Что такое нормализация данных?

9. Какие типы данных могут содержать поля таблиц СУБД Microsoft Access?

10. Какими свойствами обладают поля данных?

11. Что такое индексированное поле?

12. Когда индексированное поле может содержать повторяющиеся данные, а когда нет?

13. Какими свойствами должно обладать поле, чтобы в нём отображалось определённое число десятичных знаков после запятой?

14. Что такое значение по умолчанию и когда имеет смысл задавать это значение?