Модели данных
Лекция
Модели данных: РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ. РЕЛЯЦИОННАЯ АЛГЕБРА.
Определение модели данных предусматривает указание множества допустимых информационных конструкций, множества допустимых операций над данными и множества ограничений для хранимых значений данных.
Информационные конструкции, операции и ограничения моделей данных выбираются из достаточно небольшого множества вариантов.
Классификация информационных конструкций (информационных объектов) тесно связана с областью их использования в ЭИС:
1. Объекты для технологии баз данных - отношения и веерные отношения.
2. Объекты для технологии искусственного интеллекта - предикаты, фреймы и семантические сети.
3. Объекты для технологии мультимедиа - тексты, графические изображения, фонограммы и видеофрагменты.
Количество существенно различных моделей данных определяется наличием различных множеств информационных конструкций: принципиальными различиями обладают три модели данных - реляционная, сетевая и иерархическая.
Рекомендуемые материалы
Реляционная модель данных характеризуется следующими компонентами:
• информационная конструкция - отношение (таблица) с двухуровневой структурой,
• допустимые операции - проекция, выборка, соединение и др.,
• ограничения - функциональные зависимости между атрибутами отношения.
Каждому классу объектов Р материального мира ставится в соответствие некоторое множество атрибутов, например А1, А2,...,Аn. Отдельный объект класса Р описывается строкой величин (а1, а2,..., an), где ai - значение атрибута Ai.
Строка (а1, а2,..., an) называется кортежем. Всему классу объектов соответствует множество кортежей, называемое отношением. Обозначим отношение, описывающее класс объектов Р, также через Р. Выражение Р(А1, А2,...,Аn) называется схемой отношения Р.
Каждое отношение представляет состояние класса объектов в некоторый момент времени. Следовательно, одной схеме отношения в разные моменты времени могут соответствовать разные отношения.
Множество значений отношения можно представить в виде таблицы, в которой соблюдаются следующие соответствия:
• название таблицы и перечень названий граф соответствуют схеме отношения,
• строке таблицы соответствует кортеж отношения,
• все строки таблицы различны,
• порядок строк и столбцов произвольный.
Реляционная база данных представляет собой множество отношений.
Схема реляционной БД содержит следующие компоненты: S(rel) = <A, R, Dom, Rel, V(s)>,
где А - множество имен атрибутов,
R - множество имен отношений,
Dom - вхождение атрибутов в домены,
Rel - вхождение атрибутов в отношения,
V(s) - множество ограничений (функциональных зависимостей).
Описание процессов обработки отношений может быть выполнено двумя способами:
• указанием перечня операций, выполнение которых приводит к требуемому результату (процедурный подход),
• описанием свойств, которым должно удовлетворять результирующее отношение (декларативный подход).
Декларативный подход основан на интерпретации понятий и методов математической логики, в частности, реляционное исчисление базируется на исчислении предикатов. В последнее время наиболее распространенным декларативным языком запросов является SQL (структурированный язык запросов).
Приводимые далее операции над отношениями ориентированы на процедурное описание процессов обработки данных. Множество отношений и операций над ними образует реляционную алгебру. Как правило, список операций содержит проекцию, выборку, объединение, пересечение, вычитание, соединение и деление.
Проекцией называется операция, которая переносит в результирующее отношение те столбцы исходного отношения, которые указаны в условии операции. Алгебраическая запись проекции имеет вид: R=I [X],
где I - исходное отношение,
R - результирующее отношение,
Х - список атрибутов в структуре отношения R (условие проекции).
Пример 1 - проекция
Рассмотрим два отношения: W1, содержащее сведения о продаже продукции и W2, в котором указаны цены на продукцию и комплектующие изделия для соответствующих видов продукции.
W1 | |||
Магазин | Продукция | План | Факт |
Динамо Динамо АТЭ АТЭ | Эдв-12 ЭВИ Эдв-12 Эдв-30 | 120 200 80 150 | 140 200 170 100 |
W2 | |||
Продукция | Цена | Компл. | |
Эдв-12 | 40 | Вх-15 | |
Эдв-12 | 40 | Р-20 | |
Эдв-30
| 20
| Вк-15
| |
Эдв-30 ЭВИ | 20 120 | Р-20 Р-20 | |
Отношение R1, содержит сведения только о фактическом выпуске продукции (столбцы результирующего отношения могут указываться в любом порядке): R1 = Wl [Maгaзин, Продукция, Факт]
R1 | ||
Магазин | Продукция | Факт |
Динамо Динамо АТЭ АТЭ | Эдв-12 ЭВИ Эдв-12 Эдв-30 | 140 200 170 100 |
Пример 2 - проекция
Получение справочника цен на продукцию: R21 = W2 [Продукция, Цена]
R21 | |
Продукция | Цена |
Эдв-12 Эдв-12 Эдв-30 Эдв-30 ЭВИ | 40 40 20 20 120 |
Правильным результатом проекции является R22 (исключены повторения строк):
R22 | |
Продукция | Цена |
Эдв-12 Эдв-30 ЭВИ | 40 20 120 |
Отношение с заданной структурой можно получить из различных исходных отношений БД. В этом случае не гарантируются одинаковые результаты. Пусть нам необходим список отделов учреждения. В БД имеются отношения Служащий (Фамилия, Отдел,...) и Технолог (Фамилия, Отдел,...). Проекция Служащий[Отдел] формирует полный список отделов, а Технолог[Отдел] может содержать меньше значений, если в некоторых отделах не работают технологи.
Выборкой называется операция, которая переносит в результирующее отношение те строки из исходного отношения, которые удовлетворяют условию выборки. Условие выборки проверяется в каждой строке отношения по отдельности и не может охватывать информацию из нескольких строк. Существуют две простейшие разновидности условия выборки:
1. Имя_атрибута <знак сравнения> Значение,
где допускаются знаки сравнения =, #, >, =>, <, <=. Например, Цена > 100.
2. Имя_атрибута_1 <знак сравнения> Имя__атрибута_2
Например, Факт > План.
Имена атрибутов должны содержаться в структуре исходного отношения.
Алгебраическая запись выборки имеет вид R = I [X],
где I - исходное отношение;
R - результирующее отношение;
X - условие выборки.
Проекция – обработка по вертикали, выборка – по горизонтали.
Пример 3 - выборка
Получим значения R3= W1[Продукция = "Эдв-12"]
R3
| |||
Магазин
| Продукция
| План
| Факт
|
Динамо АТЭ | Эдв-12 Эдв-12 | 120 80 | 140 170 |
Пример 4 - выборка
Получим значения R4= W1[Факт => План]
R4 | |||
Магазин | Продукция | План | Факт |
Динамо Динамо АТЭ | Эдв-12 ЗВИ Эдв-12 | 120 200 80 | 140 200 170 |
В команде Copy условия выборки и проекции могут присутствовать одновременно, но атрибуты условия выборки должны включаться в условие проекции.
Операции объединения, пересечения и вычитания производятся над двумя исходными отношениями с одинаковой структурой.
Обозначим исходные отношения через I1 и I2, а результирующее - R.
Объединение R = U(I1, I2) содержит строки, присутствующие либо в отношении I1, либо в I2.
Пересечение R = C(I1, I2) содержит строки, присутствующие в отношениях I1 и I2 одновременно.
Вычитание R = S(I1, I2) содержит те строки из I1, которые отсутствуют в I2.
Пример 5. Если справочник цен на продукцию R22 необходимо дополнить новыми сведениями из отношения W3, то надо выполнить объединение R5 = U (R22, W3):
W3 | R5 | |||
Продукция | Цена | Продукция | Цена | |
Эдв-42 | 40 | Эдв-12 | 40 | |
Тэн-10 | 15 | Эдв-30 | 20 | |
ЗВИ | 120 | |||
Эдв-42 | 40 | |||
Тэн-10 | 15 |
Операция соединения отношений выполняется над двумя исходными отношениями и создает одно результирующее. Каждая строка первого исходного отношения сопоставляется по очереди со всеми строками второго отношения, и если для этой пары строк соблюдается условие соединения, то они образуют очередную строку в результирующем отношении. Условие соединения имеет вид:
Имя_атрибута_1 <знак сравнения> Имя_атрибута_2,
где Имя_атрибута_1 находится в одном исходном отношении, а Имя_атрибута_2 - в другом. Будем использовать следующее обозначение операции соединения: R=Il [J] I2,
где I1 и I2 - исходные отношения,
R - результирующее отношение,
J - условие соединения.
На практике наиболее важный частный случай соединения называется натуральным соединением и имеет следующие особенности:
• знаком сравнения в условии соединения является "=",
• Имя_атрибута_1 и Имя_атрибута_2 должны содержать пересечение списков атрибутов исходных отношений,
• список атрибутов результирующего отношения образуется в результате объединения списков атрибутов исходных отношений.
Пример 6. Сведения о продаже продукции из отношения W1 дополнить данными о ценах на продукцию из отношения R22:
R6 = Wl [ Продукция = Продукция ] R22:
R6 | |||||
Магазин | Продукция | План | Факт | Продукция | Цена |
Динамо | Эдв-12 | 120 | 140 | Эдв-12 | 40 |
Динамо | ЭВИ | 200 | 200 | ЗВИ | 120 |
АТЭ | Эдв-12 | 80 | 170 | Эдв-12 | 40 |
АТЭ | Эдв-30 | 150 | 100 | Эдв-30 | 20 |
Первая строка из W1 и первая строка из R22 удовлетворяют условию Продукция = Продукция, поэтому сцепляются. Остальные строки из R22 не будут сцепляться с первой строкой из W1 (условие не соблюдается). Вторая строка из W1 при сравнении со всеми строками из R22 сцепится только с третьей строкой и т. д. Если применять операцию натурального соединения, то в отношении R6 будет отсутствовать второй столбец с именем Продукция.
Примечание: В ряде случаев соединение дает некорректные результаты, например, соединение W1 и W2 содержит одинаковые сообщения о выпуске продукции, потому что эти виды продукции используют несколько комплектующих изделий.
Операция деления отношений.
Пусть существует отношение W4(ФИО,ЯП), где для каждого программиста с фамилией ФИО указываются языки программирования ЯП, которые он знает.
W4 | |
ФИО | ЯП |
Иванов | Си |
Иванов | Фортран |
Иванов | Паскаль |
Петров | Си |
Петров | Паскаль |
Семин | Си |
Семин | Фортран |
Люди также интересуются этой лекцией: Эффективность социальной работы с молодежью. Яшин | Фортран |
Яшин | Паскаль |
Выборка R71 = W4 [ЯП = "Си" AND ЯП = "Фортран"] создаст пустое отношение (в одной строке отношения нет информации о двух языках программирования сразу).
В теории, как правило, вводится вспомогательная операция "образ". В изученных Вами электронных таблицах (Excel) и СУБД (Access) это задание реализуется через фильтры и запросы.