Какими свойствами должна обладать таблица
ОСНОВНЫЕ ПОНЯТИЯ БАЗ ДАННЫХ
База данных (БД) – именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области данных.
Примеры предметных областей данных: склад, магазин, вуз, больница, учебный процесс и т. д. Именно предметная область определяет совокупность данных, которые должны храниться в базе данных.
Система управления базами данных (СУБД) – совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования базы данных многими пользователями.
Другие определения, имеющие отношение к БД и СУБД.
Банк данных (БнД) – это система специальным образом организованных данных – баз данных, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и многоцелевого использования данных.
Информационная система (ИС) – взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной задачи.
Основой практически любой информационной системы является база данных.
Сервер – компьютер или программа, владеющая определенным информационным ресурсом и предназначенная для обработки запросов от программ-клиентов.
Основными моделями данных, определяющие структуру базы данных, являются:
иерархическая модель;
сетевая модель;
реляционная модель.
РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ
Теоретической основой этой модели является теория отношений и основной структурой данных – отношение. Именно поэтому модель получила название реляционной (от английского слова relation — отношение).
Отношениепредставляет собой множество элементов, называемых кортежами. Наглядной формой представления отношения является двумерная таблица. Смысловые значения некоторых элементов реляционной модели приведены в следующей таблице.
Обычное представление | База данных | Реляционная модель |
Таблица | Таблица | Отношение |
Строка | Запись | Кортеж |
Название столбца | Поле | Атрибут |
Множество значений столбца | Множество значений поля | Домен (множество значений атрибута) |
Подавляющее число создаваемых и используемых баз данных являются реляционными. Их создание и развитие связано с научными работами известного американского математика, специалиста в области систем баз данных Э. Кодда.
Свойства реляционной таблицы
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
· каждый элемент таблицы — один элемент данных;
· все столбцы (поля, атрибуты) в таблице однородные, т.е. все элементы в одном столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
· каждый столбец имеет уникальное имя;
· одинаковые строки (записи, кортежи) в таблице отсутствуют;
· порядок следования строк и столбцов может быть произвольным.
Каждое поле содержит одну характеристику объекта предметной области. В записи собраны сведения об одном экземпляре этого объекта.
Ключи
Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Ключ, состоящий из нескольких полей называется составным ключом. В СУБД Access в качестве ключа может быть использован Счетчик, который автоматически возрастает на единицу при вводе в таблицу новой записи. Такой ключ называют искусственным. Он семантически не связан ни с одним полем таблицы. Из-за этого он допускает повторный ввод одних и тех же записей. Но с помощью него просто устанавливать связь между таблицами. Основное свойство ключа – уникальность, неповторимость.
Типы связей между таблицами
Структура базы данных определяется структурой таблиц и связями между ними.
Связи между таблицами бывают трех типов:
«один-к-одному» (1:1) – одной записи в главной таблице соответствует одна запись в подчиненной таблице,
«один-ко-многим» (1:М) – одной записи в главной таблице соответствует несколько записей в подчиненной таблице,
«многие-ко-многим» (М:М) – нескольким записям в главной таблице соответствуют несколько записей в подчиненной таблице. Или одной записи в первой таблице может соответствовать несколько записей во второй таблице. И одной записи во второй таблице могут соответствовать несколько записей в первой таблице.
Создание связей между таблицами
Связь между таблицами устанавливается с помощью ключей. Главной называют таблицу, первичный ключ которой используется для установления связи с другой таблицей, которая в этом случае называется подчиненной.
Чтобы связать две реляционные таблицы, необходимо ключ главной таблицы ввести в состав подчиненной таблицы. Название ключа может быть другим, но обязательно одинаковыми с первичным ключом должны быть тип и размер вторичного ключа в подчиненной таблице. Для удобства лучше обозначение вторичного ключа оставлять таким же, как и первичного. Однако если ключом выбран Счетчик, то вторичный ключ должен иметь тип Числовой — длинное целое (но не Счетчик!). Вторичный ключ – это или обычное поле, или часть первичного ключа в подчиненной таблице.
СУБД Access для реализации связи «многие-ко-многим» требует создать таблицу связи и ввести в нее в качестве вторичных ключей первичные ключи двух таблиц, которые должны иметь такую связь (М:М). После этого устанавливается связь 1:М каждой из двух таблиц с таблицей связи. Между двумя таблицами таким образом реализуется связь М:М. Если в БД «Моя библиотека» создать таблицы Книги и Авторы, то связь между ними будет вида М:М, так как одной записи в таблице Книги (реквизиты одной книги) может соответствовать несколько записей в таблице Авторы. Потому что у одной книги может быть несколько авторов. В свою очередь, одной записи в таблице Авторы могут соответствовать несколько записей в таблице Книги, так как один автор может написать несколько книг. Таблицу связи можно назвать КнигиАвторы, в которую будут включены ключи обеих таблиц – Книги и Авторы. Если требуется, в таблицу связи можно включить и другие поля.
Среди реляционных баз данных следует различать корпоративные и настольные базы данных.
Из корпоративных реляционных СУБД наиболее распространенными являются: Oracl, IBM DB2, Sybase, Microsoft SQL Server, Informix. Из постреляционных СУБД известна СУБД Cache компании InterSystems.
Наиболее известны в настоящее время следующие настольные БД: Microsoft Access, Paradox (фирмы Borland), FoxPro (Microsoft), dBase IV (IBM), Clarion.
Эти СУБД занимают более 90% всего рынка СУБД.
В следующем разделе дана краткая характеристика СУБД Microsoft Access.
Этот диалог определяет или изменяет форматирование, размещение и
появление всех таблиц и выбранных частей таблиц. Появляется
автоматически, когда Вы создаете новую таблицу. Для деталей
относительно создания и использования таблиц см. Работа с таблицами.
Отображение диалога для существующих
таблиц
Отображается
точно тот же диалог, когда Вы отображаете для
существующей таблицы, только с другим заголовком.
Вкладка Размещение
таблицы:
Свойства в
этой вкладке применяются ко всей таблице. Если Вы должны применить
любое из этих свойств к отдельным строкам, столбцам или ячейкам, Вы
можете достигнуть этого при использовании вложенных таблиц и установки
свойств таблицы в пределах таблицы.
Строки и
столбцы
Если Вы создаете новую таблицу, эти значения определяют общее |
Печать
Таблицы могут теперь разбиваться автоматически на страницы для |
Опция повторяет первые x |
Размер
таблицы
Создает таблицу, которая вычисляет свой размер на основе Первоначально, авторазмерная таблица занимает полную доступную Отметьте, что, когда Вы делаете это, это блокирует ширину обоих |
Создает таблицу, которая постоянно развертывается по ширине Таблицы, установленные по этой опции, всегда занимают То же самое касается таблиц в других таблицах: Если параграф, |
Создает таблицу с неподвижной шириной в процентах или пикселях Здесь также, значения процента — всегда относительно параграфа, Отметьте, что как в таблицах HTML, значения пикселей — |
· | Отметьте, что все особенности автоматической настройки ширины могут работать, только если ширина по крайней мере одного из столбцов таблицы является динамической (то есть не имеет никакой установленной ширины). |
· | К установитьу/сбросить щелкните в столбце таблицы или выберите один или более столбцов. Потом выберите или щелкните правой кнопкой мыши и выберите . |
Фон и
рамки
Эти установки
определяют фон для всей таблицы. Вы можете определить цвет фона для
отдельных ячеек во вкладке Выбранные
ячейки.
Это делает фон страницы видимым через таблицу. |
Это выбирает непрозрачный цвет фона. |
Это позволяет Вам использовать графический файл как фон для |
Границы
ячейки
Эта установка
работает точно так же, как опции форматирования для границ и
отступов ячеек в таблицах HTML. Во всех установках значение нуля
отключает свойство (то есть никаких границ).
Это определяет ширину границ вокруг ячеек в таблице. |
Это определяет границу вокруг краев таблицы. |
Это определяет цвет всех границ |
Это определяет вид границы. Это проще увидеть, чем описать – |
Вы не можете определить разные цвета для отдельных границ ячейки. Однако, Вы можете достигнуть этого, вставляя вторую таблицу в вашу основную таблицу. См. Вложенные таблицы для деталей. |
Поле и
интервал ячейки
Это — пространство между краем содержимого ячейки и границей |
Это — пространство между границей одной ячейки и границей |
Вы можете определить поле и интервал только для всей таблицы. Если Вы нуждаетесь в других установках для отдельных строк, столбцов или ячеек, Вы можете достигнуть этого при использовании вложенных таблиц. |
Вкладка Выбранные
ячейки:
Свойства в
этой вкладке применяются только к выбранным ячейкам. Если никакие
ячейки не выбраны, свойства будет применены к ячейке, в которой
расположен курсор.
Чтобы применить эти опции к единственной ячейке, просто нажмите в ячейке, которую Вы хотите форматировать, перед выбором . Вы не должны выделять, чтобы выбрать единственную ячейку. |
Опции
ячейки
Отметьте, что
корректировка размера ячеек вручную мышью автоматически сбрасывает
установки, конфигурированные в этой секции.
Это устанавливает целевую ширину выбранных ячеек/столбцов в Если Вы установите предпочтительную ширину на ненулевой процент |
Это — минимальная высота ячейки/строки. Если это — 0, высота |
Устанавливает разный цвет фона для отдельных ячеек. |
Вертикальное выравнивание
Эти опции управляют вертикальным позиционированием текста и |
См. также:
Работа с
таблицами
База данных – это совокупность сведений о каких-либо объектах реального мира.
Например, совокупность сведений о владельцах автомобилей (ФИО, адрес, марка автомобиля, когда приобретён, номерной знак и т.д.)
СУБД – система управления базами данных. СУБД – это программный комплекс для работы с базой данных.
Информационная система (ИС) – совокупность базы данных и аппаратно-программного комплекса для работы с базой данных.
ИС служат для того, чтобы обрабатывать запросы пользователя и давать на них ответы.
Мы будем изучать ИС, в которых информация в базе данных хранится в виде таблиц. Такие базы данных называют реляционными.
Таблицы реляционных баз данных обладают определёнными свойствами.
Каждая таблица имеет фиксированное число столбцов, а число строк может изменяться в процессе эксплуатации.
Строки называются записями, а столбцы полями.
Для каждого поля должны быть определены уникальное имя, тип данных, содержащихся в поле, и другие свойства поля. Надо различать имя поля и значение поля. Например, если имя поля «Фамилия», то Иванов – это значение этого поля.
Каждая таблица должна иметь первичный ключ.
Первичный ключ – минимальный набор полей, однозначно определяющий запись в таблице.
Поскольку количество полей в первичном ключе должно быть минимальным, то идеальный случай, когда первичный ключ состоит из одного поля. Поэтому подбор полей для первичного ключа надо начинать с одного поля. Если подходящего поля не окажется, то следующий этап будет состоять в подборе пары полей и т.д., пока не будет найдена подходящая совокупность полей. Если всех полей записи недостаточно, чтобы образовать первичный ключ, то необходимо добавить в таблицу новые поля.
При создании базы данных стоит задача представления исходных данных в виде таблиц.
Процесс преобразования исходных данных в двумерные таблицы называется нормализацией.
Рассмотрим конкретный пример.
Пусть некоторая фирма занимается торговлей кондитерскими изделиями. Клиентами фирмы являются рестораны, кафе, клубы и т.д. Для учета заказов фирма заносит в учетную тетрадь следующую информацию:
Номер заказа;
Дата;
Наименование клиента;
Адрес клиента;
Название продукта;
Количество товара (кг);
Цена продукта (руб/кг);
Стоимость заказа (руб).
Итак, сначала надо произвести нормализацию данных, т.е. определить какие будут нужны таблицы для хранения этих данных.
В принципе можно базу данных создать из одной таблицы, в которой полями будут служить названия столбцов учетной тетради. Первичным ключом такой таблицы может служить номер заказа.
Однако организация этой базы данных одной таблицей содержит ряд недостатков.
Например, в таблице имеются поля наименование клиента и адрес клиента, которые не зависят от номера заказа. Набирая их каждый раз, мы будем проделывать массу лишней работы. Кроме того, при удалении записи, в которой сведения о данном клиенте больше нигде не содержаться, мы потеряем информацию о нём.
Чтобы избавиться от этого недостатка поступают так. Создают ещё одну таблицу с полями:
Код клиента;
Наименование клиента;
Адрес клиента.
Из первой таблицы удаляют поля наименование клиента и адрес клиента и добавляют поле код клиента. Первичным ключом второй таблицы, очевидно, служит поле код клиента.
Еще один недостаток заключается в том, что стоимость заказа определяется произведением цены продукта на количество товара и, следовательно, всегда может быть вычислена, если в этом возникнет необходимость. Поэтому поле стоимость вообще должно быть исключено из таблицы.
Ну и наконец, можно выделить в отдельную таблицу сведения о продукте. Полями такой таблицы будут: код продукта, наименование продукта и цена.
Итак, проектируемая база данных должна содержать три таблицы, которые можно назвать «Заказы», «Клиенты», «Продукты».
Заказы | ||||
Номер заказа | Код клиента | Код продукта | Количество | Дата |
Первичный ключ у этой таблицы – «номер заказа».
Клиенты | ||
Код клиента | Наименование | Адрес |
Первичный ключ у таблицы клиенты — поле «код клиента».
Продукты | ||
Код продукта | Название | Цена |
Первичный ключ – «код продукта».
Теперь надо определить какой тип данных будет содержаться в каждом из полей таблиц.
Свойства полей. Типы данных
Поля номер заказа, код клиента, код продукта, количество и цена будут числовыми. Но числа бывают разные целые и с плавающей точкой. Логично поля номер заказа, код клиента и код продукта сделать целыми числами, а количество и цена – с плавающей точкой.
Поле дата будет иметь специальный тип – дата.
Поля наименование, название, адрес будут иметь текстовый тип данных.
Кроме указания типа данных бывает нужно указать размер поля и формат поля.
Для всех текстовых полей рекомендуется обязательно указать размер поля. В нашем случае, для полей «наименование» и «название» достаточно будет указать размер в 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. Что такое значение по умолчанию и когда имеет смысл задавать это значение?