Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Электронные средства сбора и обработки информации. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
К достоинствам иерархической модели относится возможность реали-
Склад
Наименование
Адрес
Товар
Наименование
Изготовитель
Цена
Кадры
Отдел
Должность
Транспорт
Тип
Отдел
Водители
ФИО
Категория
Менеджеры
ФИО
Стаж работы
зовать быстрый поиск нужных значений, когда условия запроса соответ­ствуют иерархии в схеме базе данных.
Основной недостаток иерархической модели базы данных – невоз­можность реализовать отношения «многие-ко-многим», а также ситуации, когда запись имеет несколько предков. Другим недостатком иерархиче­ской модели является сложность внесения в нее изменений. Если по ка­ким-то причинам изменились условия задачи и модель предметной обла­сти перестала быть иерархической, то очень тяжело будет привести схему базы данных в соответствие с предметной областью.
4.4.2. Сетевая модель данных
Сетевая модель данных является дальнейшим развитием иерархиче­ской модели, хотя в некоторой литературе иерархическая модель описы­вается как частный случай сетевой. Основное отличие сетевой и иерархи­ческой моделей данных заключается в том, что в сетевой модели к каждо­му элементу может идти связь не от одного элемента («родителя»), а от нескольких. Пример сетевой модели представлен на рис. 4.5.
Рис. 4.5. Сетевая модель данных
91
Сетевая модель данных, так же как и иерархическая, основана на по-
нятии элемента данных и связей, которые задают логику взаимоотноше­ния между данными. Каждый элемент может быть связан с произвольным количеством других элементов. Элемент данных описывает некоторое по­нятие из предметной области и характеризуется некоторыми атрибутами. Например, элемент «Товар» описывает, какие виды товаров находятся на складе, а его атрибутами являются «Наименование», «Изготовитель» и «Цена». При этом в реальной базе данных может существовать несколь­ко экземпляров каждого элемента данных. Соответственно, с каждым конкретным экземпляром по конкретной связи может быть связано разное число экземпляров другого элемента, но число видов связи одинаково для всех экземпляров одного элемента.
Основными достоинствами сетевой модели являются высокая ско­рость поиска, сравнимая с иерархической моделью, и более высокая гиб­кость по сравнению с иерархической моделью. Высокая скорость поиска основывается на классическом способе физической реализации сетевой модели – на основе списков.
Основным недостатком сетевой модели является ее жесткость, кото­рая приводит к тому, что при изменении даже части структуры базы дан­ных необходимо перестраивать всю базу данных. Также к недостаткам можно отнести то, что поиск данных и доступ к ним возможны только по существующим связям.
4.4.3. Реляционная модель данных
Реляционная база данных – это набор информации, представленный в виде одной или нескольких таблиц. Таблица представляет собой дву­мерный массив, или набор записей одинаковой (для данной таблицы) структуры. На рис. 4.6 показана реляционная модель данных.
На сегодняшний день реляционные базы данных являются наиболее распространенными.
К основным достоинствам реляционной модели относится очень вы­сокая гибкость, которая позволяет легко менять схему базы данных.
К недостаткам реляционной модели можно отнести более низкую скорость поиска, чем в сетевой и иерархической моделях.
92
Таблица «Склад»
Наименование
Адрес
Склад № 1
ул. Первая, д. 5
Склад № 2
ул. Вторая, д. 15
Наименование
Изготовитель
Цена
Склад
Телевизор
Фирма 1
1000
Склад № 1
Телевизор
Фирма 2
1500
Склад № 1
Компьютер
Фирма 1
5000
Склад № 2
Компьютер
Фирма 2
6000
Склад № 1
Отдел
Должность
Склад
Маркетинга
Менеджер
Склад № 1
Маркетинга
Начальник отдела
Склад № 1
Транспортный
Начальник отдела
Склад № 1
Транспортный
Водитель
Склад № 2
Отдел
Тип
Склад
Маркетинга
Легковой а/м
Склад № 1
Маркетинга
Легковой а/м
Склад № 1
Транспортный
Грузовой а/м
Склад № 2
Транспортный
Легковой а/м
Склад № 1
ФИО
Стаж
Отдел
Склад
Иванов В. А.
10
Маркетинга
Склад № 1
Петров В. К.
5
Маркетинга
Склад № 1
Сидоров К. В.
6
Транспортный
Склад № 1
Смирнов Ф. В.
8
Транспортный
Склад № 2
ФИО
Категория
Отдел
Склад
Жуков В. С.
В, С
Маркетинга
Склад № 1
Петин Р. К.
А, В, С
Маркетинга
Склад № 1
Сидорчук А. С.
А, В, С, Е
Транспортный
Склад № 1
Смирный Б. В.
В
Транспортный
Склад № 2
Таблица «Товар»
Таблица «Кадры»
Таблица «Транспорт»
Таблица «Менеджеры»
Таблица «Водители»
Рис. 4.6. Реляционная модель данных
93
4.5. ОСНОВЫ РЕЛЯЦИОННЫХ СУБД
4.5.1. Термины и определения
Основные термины, используемые в реляционных базах данных [18]:
Отношение – плоская таблица, состоящая из строк и столбцов. В ре­ляционной модели пользователь воспринимает базу данных как набор таблиц, однако это представление относится только к логической структу­ре базы данных, т. е. к пользовательскому и концептуальному уровням. Физический уровень чаще всего реализован с помощью различных струк­тур хранения.
Атрибут – именованный столбец отношения. Атрибут описывает ту или иную именованную характеристику реальной сущности, реального объекта. Атрибуты могут располагаться в любом порядке, при этом неза­висимо от их переупорядочивания таблица будет оставаться одной и той же. Часто атрибут называют полем.
Домен – набор допустимых значений одного или нескольких атрибу­тов. Каждый атрибут реляционной базы данных определяется на некото­ром домене. Домены могут отличаться для каждого атрибута, но несколь­ко атрибутов могут отображаться на одном домене. Фактически домен – это тип данных для каждого атрибута.
Кортеж – строка отношения. Кортежи могут располагаться в любом порядке, при этом отношение будет оставаться тем же самым. Часто кор­теж называют записью.
Степень отношения – количество атрибутов в отношении.
Ключ – набор атрибутов, позволяющий однозначно идентифициро­вать запись внутри таблицы, при этом никакое подмножество этих атри­бутов не будет ключом.
Простой ключ – ключ, состоящий из одного атрибута.
Составной ключ – ключ из двух и более атрибутов.
Ключевой атрибут – атрибут, входящий в тот или иной ключ.
Неключевой атрибут – атрибут, не входящий ни в один из ключей.
Естественный ключ – атрибуты, входящие в ключ, описывают реаль­ные свойства реального объекта.
Искусственный ключ – специально введенный атрибут для выполне­ния роли ключа.
94
4.5.2. Основные операции над таблицами и их интерпретация
Наименование
Изготовитель
Телевизор
Фирма 1
Телевизор
Фирма 2
Компьютер
Фирма 1
Компьютер
Фирма 2
Наименование
Изготовитель
Цена
Склад
Телевизор
Фирма 1
1000
Склад № 1
Телевизор
Фирма 2
1500
Склад № 1
Компьютер
Фирма 2
6000
Склад № 1
Проекция – операция, заключающаяся в удалении некоторых столб-
цов в таблице. Среди оставшихся записей проводится удаление дублика­тов (одинаковых записей). Например, проекция по таблице «Товар» по ат­рибутам «Наименование» и «Изготовитель» (рис. 4.7).
Рис. 4.7. Проекция таблицы «Товар»
Селекция – операция, заключающаяся в удалении некоторых записей в таблице на основе некоторого условия. Условие определяется как логи­ческое выражение над значениями атрибутов. В этом логическом выраже­нии можно использовать операции «больше», «меньше», «равно», «при­надлежит множеству» и др. Операция селекции, как и операция проекции, позволяет выделять из таблицы необходимую информацию, но в отличие от операции проекции выбираются необходимые записи, а не атрибуты. Например, селекция таблицы «Товар» по условию атрибут «Склад» равен «Склад №1» позволит получить список товаров, находящихся на складе № 1 (рис. 4.8).
Рис. 4.8. Селекция таблицы «Товар»
Объединение – операция, заключающаяся в построении новой табли­цы на основе двух других, при этом все таблицы должны иметь одинако­вое число атрибутов. В объединение попадают все записи как первой, так и второй таблицы. Операция объединения позволяет собрать информацию из разных таблиц, при этом результирующее объединение должно быть осмысленным. Результат объединения таблиц «Менеджеры» и «Водите­ли» показан на рис. 4.9.
95
ФИО
Стаж/категория
Отдел
Склад
Иванов В. А.
10
Маркетинга
Склад № 1
Петров В. К.
5
Маркетинга
Склад № 1
Сидоров К. В.
6
Транспортный
Склад № 1
Смирнов Ф. В.
8
Транспортный
Склад № 2
Жуков В. С.
В, С
Маркетинга
Склад № 1
Петин Р. К.
А, В, С
Маркетинга
Склад № 1
Сидорчук А. С.
А, В, С, Е
Транспортный
Склад № 1
Смирный Б. В.
В
Транспортный
Склад № 2
Рис. 4.9. Объединение таблиц «Менеджеры» и «Водители»
Таблица «Список товара»
Таблица «Фирма»
Таблица «Товар-Фирма»
Наименование
Изготовитель
Наименование
Изготовитель
Телевизор
Фирма 1
Телевизор
Фирма 1
Компьютер
Фирма 2
Телевизор
Фирма 2
Компьютер
Фирма 1
Компьютер
Фирма 2
а
б в
Декартово произведение – операция, заключающаяся в построении но-
вого отношения на основе двух других путем комбинации всех возможных записей из первого отношения и второго отношения. Декартово произведе­ние позволяет связать разные объекты, объединить информацию, описыва­ющую разные типы сущностей или объектов предметной области. Например если мы имеем таблицы «Список товара» и «Фирма» (рис. 4.10, а, б), то в ре­зультате их декартового произведения получится таблица «Товар-фирма» (рис. 4.10, в).
Основная цель проектирования реляционной базы данных заключает­ся в группировании атрибутов в таблице таким образом, чтобы минимизи­ровать избыточность данных и тем самым сократить объем памяти, необ­ходимый для физического хранения данных, представленных в виде таб­лиц. Кроме того, при работе с таблицами, содержащими избыточные дан­ные, могут возникать проблемы, которые называются аномалиями обнов­ления. Аномалии обновления подразделяются на аномалии вставки, уда­ления и модификации. Проблемы, связанные с избыточностью данных, можно проиллюстрировать таблицей, показанной на рис. 4.11.
Рис. 4.10. Декартово произведение
4.5.3. Нормализация
96
Товар
Изготовитель
Цена
Склад
Адрес склада
Телевизор
Фирма 1
1000
Склад № 1
ул. Первая, д. 5
Телевизор
Фирма 2
1500
Склад № 1
ул. Первая, д. 5
Компьютер
Фирма 1
5000
Склад № 2
ул. Вторая, д. 15
Компьютер
Фирма 2
6000
Склад № 1
ул. Первая, д. 5
Рис. 4.11. Таблица до нормализации
Эта таблица имеет следующие недостатки:
− избыточность;
− потенциальную противоречивость;
− аномалии включения и удаления.
Избыточность заключается в том, что дублируется информация об ад-
ресе склада. Это приводит к увеличению памяти, необходимой для хранения этой таблицы, и к уменьшению общей производительности системы.
Потенциальная противоречивость заключается в том, что при измене-
нии адреса склада, его необходимо изменить во всех строках таблицы. Ес­ли замена адреса в какой-либо строке будет пропущена, то получится, что один и тот же склад будет иметь два разных адреса.
Аномалия включения – в базу данных не может быть записан адрес
склада, если в нем нет ни одного товара.
Аномалия удаления – при удалении всех товаров со склада утрачива-
ется его адрес.
Исключить эти недостатки таблицы позволяет нормализация. Норма-
лизация – это метод создания набора отношений с заданными свойствами на основе требований к данным, установленных в некоторой организации
[18].
Нормализация включает ряд правил, которые могут использоваться
для проверки отдельных отношений таким образом, чтобы вся база дан­ных могла быть нормализована до желаемой степени. Если некоторое тре­бование не выполняется, то в противоречащей данному требованию таб­лице необходимо изменить структуру или разделить такую таблицу на не­сколько таблиц, каждая из которых будет удовлетворять всем требовани­ям нормализации.
Чаще всего нормализация осуществляется в виде нескольких после-
довательно выполняемых этапов, каждый из которых соответствует опре-
97
деленной нормальной форме. В ходе нормализации структура таблиц ста-
ID товара
Товар
Изготовитель
Цена
Склад
Адрес склада
101
Телевизор
Фирма 1
1000
Склад № 1
ул. Первая, д. 5
111
Телевизор
Фирма 2
1500
Склад № 1
ул. Первая, д. 5
202
Компьютер
Фирма 1
5000
Склад № 2
ул. Вторая, д. 15
211
Компьютер
Фирма 2
6000
Склад № 1
ул. Первая, д. 5
новится все более ограниченной и менее восприимчивой к аномалиям об­новления. При работе с реляционной моделью данных важно понимать, что для создания таблиц приемлемого качества обязательно только вы­полнение требований первой нормальной формы (1НФ). Все остальные формы нормализации могут использоваться по желанию проектировщи­ков. Но для того чтобы избежать аномалий обновления, нормализацию ре­комендуется выполнять как минимум до третьей нормальной формы (ЗНФ).
Отношение (таблица) имеет первую нормальную форму, если значе­ния атрибутов являются простыми, неделимыми значениями [18], т. е. это такая таблица, в которой на пересечении каждой строки и каждого столб­ца содержится одно и только одно значение.
Отношение (таблица) имеет вторую нормальную форму, если она имеет первую нормальную форму и каждый неключевой атрибут полно­стью зависит от любого возможного ключа целиком, а не от его подмно­жества [18]. Таким образом, если ключевой атрибут в отношении простой, то отношение автоматически имеет вторую нормальную форму. Так, таб­лица, показанная на рис. 4.11, не находится во второй нормальной форме, поскольку в качестве ключа она имеет три атрибута: «Товар», «Изготови­тель» и «Склад». При этом неключевой атрибут «Цена» зависит не от все­го ключа, а только от двух ключевых атрибутов: «Товар» и «Изготови­тель». Неключевой атрибут «Адрес склада» зависит только от ключевого атрибута «Склад». Привести данную таблицу ко второй нормальной фор­ме можно несколькими способами. Один из способов заключается во вве­дении искусственного простого ключа «ID товара», в который будет вхо­дить информация о названии товара, производителе и складе, где этот то­вар находится. Тогда таблица будет иметь вид, показанный на рис. 4.12.
Рис. 4.12. Таблица во второй нормальной форме
98
Отношение (таблица) находится в третьей нормальной форме, если оно
Таблица «ID товара»
ID товара
Товар
Изготовитель
Склад
101
Телевизор
Фирма 1
Склад № 1
111
Телевизор
Фирма 2
Склад № 1
202
Компьютер
Фирма 1
Склад № 2
211
Компьютер
Фирма 2
Склад № 1
Таблица «Цена»
Таблица «Адрес склада»
ID товара
Цена
Склад
Адрес склада
101
1000
Склад № 1
ул. Первая, д. 5
111
1500
Склад № 1
ул. Первая, д. 5
202
5000
Склад № 2
ул. Вторая, д. 15
211
6000
Склад № 1
ул. Первая, д. 5
имеет вторую нормальную форму, и каждый неключевой атрибут нетранзи­тивно зависит от любого ключа в данном отношении [18], то есть неключе­вые атрибуты в отношении должны зависеть только от ключей, а не от дру­гих неключевых атрибутов. Таблица, показанная на рис. 4.12, не находится в третьей нормальной форме, так как неключевой атрибут «Цена» зависит от неключевых атрибутов «Товар» и «Изготовитель», неключевой атрибут «Адрес склада» зависит от неключевого атрибута «Склад».
Для приведения данной таблицы в третью нормальную форму необ-
ходимо ее разбить на несколько взаимосвязанных таблиц (рис. 4.13).
Рис. 4.13. Таблицы в третьей нормальной форме
Также существуют нормальная форма Бойса-Кодда, четвертая и пятая
нормальные формы. Но проводить нормализацию до этих нормальных форм имеет смысл только при разработке сверхбольших баз данных [6].
4.6. СУБД MS ACCESS
На сегодняшний день наиболее распространенной реляционной СУБД является MS Access. Она входит в состав пакета Microsoft Office и имеет
широкий спектр функций, поддерживает связанные запросы и связь с внеш­ними таблицами и базами данных [19]. При помощи встроенного языка Visual Basic for Applications (VBA, Visual Basic для приложений) имеется возможность разрабатывать приложения, работающие с базами данных. Не-
смотря на все свои достоинства MS Access чаще всего используется для по­строения небольших баз данных с малым количеством пользователей.
99
Это связано с тем, что в Access отсутствует ряд механизмов, необходимых в многопользовательских базах данных, таких, например, как триггеры.
MS Access состоит из следующих компонентов [20]:
− построитель таблиц;
− построитель экранных форм;
− построитель запросов SQL;
− построитель отчётов, выводимых на печать.
Простые запросы в СУБД MS Access строятся с помощью встроенных
средств, но для построения более сложных запросов применяется специ­альный язык SQL.
4.7. ОСНОВЫ ЯЗЫКА SQL
4.7.1. История создания языка SQL
Прообразом языка SQL был язык SEQUEL, разработанный компанией IBM в начале 1970-х годов для экспериментальной реляционной СУБД IBM System R. Аббревиатура SEQUEL расшифровывалась как Structured English QUEry Language – «структурированный английский язык запросов» [21].
Позже язык SEQUEL был переименован в SQL. Когда в 1986 году первый стандарт языка SQL был принят ANSI (American National Standards Institute), официальным произношением стало [,es kju:' el] – эс-кью-эл. Несмотря на это, даже англоязычные специалисты зачастую продолжают читать SQL как сиквел (по-русски часто говорят «эс-ку-эль») [21].
4.7.2. Типы данных языка SQL
Язык SQL использует следующие типы данных [22]:
INTEGER – целое число размером 4 байта. Диапазон допустимых значений от – 2 147 483 647 до 2 147 483 647.
SMALLINT – короткое целое размером 2 байта. Диапазон допусти- мых значений -32 767 до 32 767.
SERIAL – специальный тип данных для ключевого атрибута. Осно­ван этот тип данных на типе INTEGER. Основной особенностью является наличие только одного атрибута в таблице с этим типом.
FLOAT – число с плавающей запятой размером 8 байт.
SMALLFLOAT – число с плавающей запятой размером 4 байта.
DECIMAL – этот тип предназначен для хранения данных с плаваю-
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]