Типы связей информационных объектов
Связи информационных объектов могут быть разного типа: одно-однозначные (1:1); одно-многозначные (1:М); много-многозначные (M:N).
Одно-однозначные связи имеют место, когда каждому экземпляру первого объекта (А) соответствует только один экземпляр второго объекта (В) и наоборот, каждому экземпляру второго объекта (В) соответствует только один экземпляр первого объекта (А). Следует заметить, что такие объекты легко могут быть объединены в один, структура которого образуется объединением реквизитов обоих исходных объектов, а ключевым реквизитом может быть выбран любой из альтернативных ключей, т. е. ключей исходных объектов. Графическое изображение одно-однозначной связи приведено на рис. 6. Примером одно-однозначных связей являются группа-староста, фирма — расчетный счет в банке и т. п.
Одно-многозначные связи (1:М) — это такие связи, когда каждому экземпляру одного объекта (А) может соответствовать несколько экземпляров другого объекта (В), а каждому экземпляру второго объекта (В) может, соответствовать только один экземпляр первого объекта (А). Графическое изображение одно-многозначной связи приведено на рисунке 7.
В такой связи объект А является главным объектом, а объект В — подчиненным, т. е. имеет место иерархическая подчиненность объекта В объекту А. Примером одно-многозначных связей являются подразделения-сотрудники, кафедра-преподаватель, группа-студенты, и т. п.
Много-многозначные связи (М:М) — Это такие связи, когда каждому экземпляру одного объекта (А) могут соответствовать несколько экземпляров второго объекта (В) и наоборот, каждому экземпляру второго объекта (В) может соответствовать тоже несколько экземпляров первого объекта (А), Графическое изображение связи типа M:N показано на рис. 8.
Много-многозначные связи не могут непосредственно реализовываться в реляционной базе данных. Если такие связи выявлены, может потребоваться их преобразование путем введения дополнительного объекта-связки. Исходные объекты будут связаны с этим объектом одно-многозначным связями. Таким образом, в одно-многозначных связях объект-связка является подчиненным по отношению к каждому из исходных объектов.
Объект-связка должен иметь идентификатор, образованный из идентификаторов исходных объектов: КА и КВ.
Примером много-многозначных связей является связь поставщики-товары, если один поставщик поставляет разные наименования товаров, а товар одного наименования, доставляется несколькими поставщиками.
Требования нормализации.
Процесс нормализации данных заключается в устранении избыточности данных в таблицах.
Существует несколько нормальных форм, но для практических целей интерес представляют только первые три нормальные формы.
Первая нормальная форма (1НФ) требует, чтобы каждое поле таблицы БД было неделимым (атомарным) и не содержало повторяющихся групп.Неделимость означает, что в таблице не должно быть полей, которые можно разбить на более мелкие поля. Например, если в одном поле мы объединим фамилию студента и группу, в которой он учится, требование неделимости соблюдаться не будет. Первая нормальная форма требует, чтобы мы разбили эти данные по двум полям.
Вторая нормальная форма (2НФ) требует, чтобы таблица удовлетворяла всем требованиям первой нормальной формы, и чтобы любое не ключевое поле однозначно идентифицировалось полным набором ключевых полей. В соответствие с требованиями второй нормальной формы, каждое не ключевое поле должно однозначно зависеть от ключа.
Третья нормальная форма (3НФ) требует, чтобы в таблице не имелось транзитивных зависимостей между не ключевыми полями, то есть, чтобы значение любого поля, не входящего в первичный ключ, не зависело от другого поля, также не входящего в первичный ключ.
Таким образом, нормализация данных подразумевает, что вы вначале проектируете свою базу данных: планируете, какие таблицы у вас будут, какие в них будут поля, какого типа и размера. Затем вы приводите каждую таблицу к первой нормальной форме. После этого приводите полученные таблицы ко второй, затем к третьей нормальной форме, после чего можете утверждать, что ваша база данных нормализована.
53. СУБД Microsoft Access. Свойства полей базы данных.
Поля - это основные элементы структуры базы данных. Они обладают свойствами. От свойств полей зависит, какие типы данных можно вносить в поле, а какие нет, а также то, что можно делать с данными, содержащимися в поле.
1) Основным свойством любого поля является его длина. Длина поля выражается в символах или, что, то же самое, в знаках. От длины поля зависит, сколько информации в нем может поместиться. Мы знаем, что символы кодируются одним или двумя байтами, поэтому можно условно считать, что длина поля измеряется в байтах.
2) Очевидным уникальным свойством любого поля является его Имя. Разумеется, одна база данных не может иметь двух полей с одинаковым именем, поскольку компьютер запутается в их содержимом.
3) Но кроме имени у поля есть еще свойство Подпись. Подпись - это та информация, которая отображается в заголовке столбца. Ее не надо путать с именем поля, хотя если подпись не задана, то в заголовке отображается имя поля. Разным полям, например, можно задать одинаковые подписи. Это не помешает работе компьютера, поскольку поля при этом по-прежнему сохраняют разные имена.
4) Тип данных:
1. Основное свойство текстового поля - размер.
2. Числовое поле служит для ввода числовых данных. Оно тоже имеет размер, но числовые поля бывают разными, например для ввода целых чисел и для ввода действительных чисел.
В последнем случае кроме размера поля задается также размер десятичной части числа.
3. Поля для ввода дат или времени имеют тип Дата/время. Для ввода логических данных, имеющих только два значения (Да или Нет; 0 или 1; Истина или Ложь и т. п.), служит специальный тип - Логическое поле. Нетрудно догадаться, что длина такого поля всегда равна 1 байту, поскольку этого более чем достаточно, чтобы выразить логическое значение.
4. Особый тип поля - Денежный. Из названия ясно, какие данные в нем хранят. Денежные суммы можно хранить и в числовом поле, но в денежном формате с ними удобнее работать. В этом случае компьютер изображает числа вместе с денежными единицами, различает рубли и копейки, фунты и пенсы, доллары и центы, в общем, обращается с ними элегантнее.
5. В современных базах данных можно хранить не только числа и буквы, но и картинки, музыкальные клипы и видеозаписи. Поле для таких объектов называется полем объекта OLE.
6. У текстового поля есть недостаток, связанный с тем, что оно имеет ограниченный размер (не более 256 символов). Если нужно вставить в поле длинный текст, для этого служит поле типа MEMO. В нем можно хранить до 65 535 символов. Особенность поля MEMO состоит в том, что реально эти данные хранятся не в поле, а в другом месте, а в поле хранится только указатель на то, где расположен текст.
7. Очень интересно поле Счетчик. На первый взгляд это обычное числовое поле, но оно имеет свойство автоматического наращивания. Если в базе есть такое поле, то при вводе новой записи в него автоматически вводится число, на единицу большее, чем значение того же поля в предыдущей записи. Это поле удобно для нумерации записей.
5) Является ли поле ключевым;
6) Обязательное ли поле для заполнения;
7) Уникальное ли поле;
8) Условие на значение: позволяет ввести проверку на вводимые данные;
9) Сообщение об ошибке.
54. СУБД Microsoft Access Основные объекты (таблицы, запросы, формы, отчеты), их назначение и способы создания. Типы данных.
Таблицы, формы, запросы, отчеты, модули и макросы являются самостоятельными объектами, но при этом хранятся вместе в едином файле БД (файл имеет расширение .MDB).
Реляционная база данных представляет собой множество взаимосвязанных двумерных таблиц. Совокупность реляционных таблиц, между которыми установлена связь, образуют логическую структуру реляционной базы данных. В таблицах реляционной базы данных должна сохраняться все данные, необходимые для решения задач предметной области, причём каждый элемент данных должен храниться в базе только в одном экземпляре. Поэтому таблицы являются основой базы данных. Таблицы содержат описание реальных объектов.
Запросы используются для выборки из базы данных информации, необходимой для пользователя. Под выборкой будем понимать динамическую таблицу с записями данных, которые удовлетворяют соответствующим условиям. Запросы обеспечивают быстрый и эффективный доступ к данным, хранящимся в таблице. Благодаря запросам можно не только выполнить сортировку или вычислить выражение, но и свести данные из связанных таблиц. Запросы не хранятся базой данных, информация храниться лишь в таблицах. Но полученная в результате запроса таблица может использоваться в качестве источника данных в формах отчётах и других запросах. Можно ввести поправки в запрос, которые отобразятся в соответствующей таблице.
В таблице данные всегда отсортированы по первичному ключу. Чтобы выполнить сортировку по иным критериям, используются запросы.
Как правило, при составлении таблиц нужно стараться не нагромождать их данными. Создание вычисляемого поля осуществляется путём простого ввода выражений для вычисления в пустом столбце бланка запроса. В квадратные скобки заключаются только имена полей. В результате запроса, в таблице присутствует поле, в котором находится результат вычисления.
Запросы можно разделить на несколько типов: по результатам их действий, особенностям их выполнения, по способу формирования. Чаще всего используются стандартные запросы выбора, используемые для того, чтобы отобрать и представить в виде таблицы интересующие пользователя данные. Нарду со стандартными запросами выбора, можно выделить запросы на выполнение действий, которые используются для создания новых таблиц базы данных.
Наиболее часто встречающимися запросами являются запросы с итогами, с параметром и на вычисление. Запрос с параметром представляет собой запрос на выборку, который отображает диалоговое окно, предназначенное для ввода параметров запроса. Для создания такого запроса в строке Условие отбора в квадратных скобках указывается необходимый параметр. Запрос с итогами – это запрос на выборку, который предназначен не для отображения содержимого записей, а для выполнения итоговых вычислений над хранящимися в них данными.
Формы являются наиболее удобным средством отображения данных в таблице. Преимущество формы для ввода данных состоит в простоте и наглядности. Ещё одним преимуществом формы является то, что в формах на экран выводится вся информация, в то время как в запросах и таблицах часть информации может выходить за пределы экрана.
При помощи формы, а в частности при помощи фильтра, можно отображать лишь те поля, которые содержат необходимую информацию. Формы также можно конструировать, т.е. изменять их внешний вид.
Форма, в сущности, представляет собой окно, куда можно поместить элементы управления, предназначенные для ввода и отображения данных.
Форма состоит из главной формы, базирующейся на определённой таблице. Помимо этого, форма может включать подчинённые формы, связанные с другими таблицами. Основными элементами формы являются надписи, в которых указывается текст, непосредственно отображающийся в форме, и поля, содержащие значение полей таблицы.
Отчёты позволяют представить данные в требуемом виде. Средства Microsoft Access по разработке отчётов предназначены для конструирования макета отчётов, в соответствии с которым может быть осуществлён вывод данных в виде печатного документа.
Отчёты очень похожи на формы. При работе над отчётом можно использовать те же области, что и при создании таблиц.
Microsoft Access выводит верхний колонтитул вверху страницы, то же происходит и с нижним колонтитулом. Заголовок печатается один раз в начале, а примечание – в конце. Пользователь может определить несколько полей, по которым проводится группировка данных.
Большинство отчётов по своему внешнему виду относятся к ленточным или отчётам в столбец. Отчёт в столбец вводит данные каждого поля в отдельной строке, в результате чего они организуются в один столбец. Такой вариант более широко используется для вывода отчёта в напечатанном виде.
Тип данных поля вводится в поле ввода столбцаТип данных.В MS Access допустимыми являются данные следующих типов:
1. Текстовый;
2. Числовой;
3. Денежный;
4. Счетчик;
5. Даты/времени;
6. Логический;
7. Поле MEMO:
8. Поле объекта OLE;
Каждый из типов данных наделен собственными свойствами, которые отображаются в разделе “Свойства поля” окна конструктора.
Текстовые поля могут содержать буквы, цифры и специальные символы. Максимальная ширина поля составляет 255 символов.
Только над числовыми полями возможно выполнение математических операций.
Для указания количества десятичных знаков используется свойство поля Число десятичных знаков. Оно может принимать значение от 0 до 15. АтрибутАвтоданного свойства служит для автоматической установки количества знаков после запятой. Размер поля: Байт (Числа от 0 до 255), Целое (Числа от -32768 до 32767), Длинное целое и др.
Поле типа Счетчик предназначены для хранения данных, значения которых не редактируются, а устанавливаются автоматически при добавлении каждой новой; записи в таблицу. Их значения являются уникальными, последовательно возрастающими на 1 при добавлении каждой новой записи или могут быть любыми случайными числами.Такие поля позволяют проводить автоматическую перенумерацию данных вне зависимости от того, в какое место таблицы вставляются данные, что бывает очень удобно при ведении различных кодификаторов, ключей и упорядоченных массивов данных, так как создает условия для применения алгоритмов быстрой сортировки и поиска данных.
Поля дат/время Использование для хранения дат и времени полей, в которых данные представлены в специальном формате, предоставляет Вам ряд дополнительных преимуществ:
1. MS Access позволяет вводить и отображать даты в нескольких форматах. Конкретный вариант отображения даты/времени устанавливается в свойстве Формат поля окна конструктора таблиц. При хранении данных эти форматы автоматически преобразуются во внутреннее представление данных.
2. При вводе дат MS Access осуществляет проверку формата данных и допускает ввод только правильных дат.
Данные этого типа занимают 8 байт.
Логические поля используются для хранения данных, которые могут принимать одно из двух возможных значений. Свойство Формат поля логического поля позволяет использовать специальные форматы или один из трех встроенных: Истина/Ложь,Да/НетилиВкл/Выкл. При этом значения Истина, Да и Вкл эквивалентны логическому значению True, а значения Ложь, Нет и Выкл эквивалентны логическому значению False.
Если Вы выберете встроенный формат, а затем будете вводить эквивалентное логическое значение, то введенное значение будет отображаться в выбранном формате. Например, если значениеTrue илиВкл вводится в элемент управления типаПоле, для которого в свойствеФормат поля указано Да/Нет, то введенное значение тут же преобразуется в Да.
При создании специального формата удалите текущее значение из свойства Формати введите свой собственный формат.
Текстовые поля произвольной длины (поля MEMO) могут содержать те же типы данных, что и простые текстовые поля. Отличие между этими полями заключается в том, что длина полей типа MEMO может быть очень велика по сравнению с размером текстовых полей.
Поля объекта OLE позволяет хранить в таблицах изображения и другие двоичные данные (например, электронную таблицу MS Excel, документ MS Word, рисунок звукозапись). Фактический объем данных, который Вы можете ввести в поле данного типа, определяется объемом жесткого диска Вашего компьютера (до 1 Гигабайта).