- •90 Символы, отношения и графы
- •Введение План:
- •Введение. Предмет и задачи курса, понятие предметной области
- •Документальные информационно - поисковые системы
- •Сетевые технологии передачи данных
- •Информационно - поисковые системы в Интернет
- •Фактографические информационные системы
- •Экспертные системы, базовые понятия
- •Компоненты и свойства системы
- •Понятие системы Основные составляющие системы.
- •Состояние системы3
- •Виды состояний4
- •Статическое и динамическое состояние
- •Установившееся и переходное динамическое состояние
- •Исходное и возмущенное состояние
- •Устойчивое и неустойчивое состояние
- •Свободное и вынужденное состояние
- •Обратимые и необратимые состояния.
- •Тема. Данные Общие понятия и определения
- •Концепция трех схем хранения данных
- •Технология анализа предметной области
- •Анализ концептуальных требований и информационных потребностей
- •Выявление информационных объектов и связей между ними
- •Построение концептуальной модели предметной области
- •Логическое проектирование
- •Реляционная модель данных
- •Понятия математической логики
- •Сетевая модель данных
- •Организация веерного отношения в памяти эвм
- •Алгоритм получения двухуровневой структуры сети
- •Отображение информационной схемы на сетевую модель данных
- •Иерархическая модель данных
- •Сравнение моделей данных
- •Средства для описания данных Символы
- •Отношения
- •Некоторые свойства графов
- •Деревья
- •Раскрашенные графы как инструмент представления данных
- •Методы ускорения доступа к данным
- •Адресная функция
- •Построение хеш-функции.
- •Ключи состоящие из нескольких слов, ключи переменной длины
- •Разрешение коллизий методом "цепочек".
- •Индексы
- •Тема 7. Проектирование реляционных бд на основе принципов нормализации
- •Системный анализ предметной области
- •Дата логическое проектирование
- •Формы нормальных отношений
- •Тема 8 Нормализация отношений
- •. Вторая нормальная форма
- •Третья нормальная форма
- •Нормальная форма Бойса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •Лекция информационные системы Понятие информационной системы
- •Компоненты информационной системы
- •Архитектура информационной системы
- •История развития информационных систем
- •Процессы, обеспечивающие работу информационной системы
- •Принципы построения информационной системы
- •Структура информационной системы
- •2.3.1. Информационное обеспечение
- •2.3.2. Техническое обеспечение
- •2.3.3. Математическое и программное обеспечение
- •2.3.4. Организационное обеспечение
- •2.3.5. Правовое обеспечение
- •Типы, оценка и области применения информационных систем Классификация информационных систем по функциональному признаку
- •Система обработки данных
- •Автоматизированная система управления
- •Информационно-поисковые системы
- •Классификация информационных систем по профессиональному признаку
- •Типы информационных систем
- •Информационная система оперативного уровня
- •Информационные системы специалистов
- •Информационные системы для менеджеров среднего звена
- •Стратегические информационные системы
- •Классификация по сфере применения
- •Использование информационных систем в практической деятельности Информационные системы в бизнесе
- •Бухгалтерские информационные системы (буис)
- •Особенности функционирования буис на крупных предприятиях
- •Особенности функционирования буис на предприятиях малого и среднего бизнеса
- •Банковские информационные системы
- •Справочно-правовые информационные системы
- •Рассмотрим наиболее известные системы, существующие в нашей стране. Система "Консультант Плюс"
- •Система "Гарант"
- •Информационная система «Договор»
- •Системы распознавания и перевода текста Системы оптического распознавания текста
- •Системы электронного перевода
- •Электронные словари
- •Корпоративные информационные системы: технологии и решения Общий взгляд на предприятия с точки зрения информационной системы
- •Основные этапы создания корпоративной ис
- •Информационное обследование
- •Архитектура ис
- •Выбор субд
- •Выбор системы автоматизации документооборота
- •Выбор программных средств для управления документами
- •Выбор специализированных прикладных программных средств.
- •Общие выводы
Реляционная модель данных
Ее построение основано на аппарате математической теории отношений. Результатом разработок в данной области является построение теоретико-множественной модели базы данных, получившей название реляционной модели, и выделение набора процедур манипулирования хранимыми в ней данными. Подобные наборы положены в основу целого спектра возможных языков.
Реляционная модель данных характеризуется следующими компонентами:
• информационной конструкцией - отношением с двухуровневой структурой,
• допустимыми операциями: проекцией, выборкой, соединением и некоторыми другими,
• ограничениями - функциональными зависимостями между атрибутами отношения.
Каждому классу объектов Р материального мира ставится в соответствие некоторое множество атрибутов, например А 1, А2,...,Ап. Отдельный объект класса Р описывается строкой величин (а1, а2,..., an), где ai - значение атрибута Ai.
Строка (а1, а2,..., an) называется кортежем. Всему классу объектов соответствует множество кортежей, называемое отношением. Обозначим отношение, описывающее класс объектов Р, также через Р.
Выражение Р(А1, А2,...,Ап) называется схемой отношения Р.
Для каждого компонента кортежа должна быть указана ее связь с соответствующим атрибутом. В реляционной модели данных для обеспечения этой связи порядок компонентов кортежа совпадает с порядком следования атрибутов в схеме отношения.
Каждое отношение представляет состояние класса объектов в некоторый момент времени. Следовательно, одной схеме отношения в разные моменты времени могут соответствовать разные отношения.
Множество значений отношения можно представить в виде таблицы, в которой соблюдаются следующие соответствия:
• название таблицы и перечень названий граф соответствуют схеме отношения,
• строке таблицы соответствует кортеж отношения,
• все строки таблицы (и соответственно все кортежи) различны,
• порядок строк и столбцов произвольный (в частности, реляционная модель данных не предполагает специальную сортировку строк).
Отношение реляционной БД может быть описано в терминах теории множеств. Рассмотрим множество доменов
D = { Dl, D2, D3,..., Dk } и создадим декартово произведение доменов
U=Dl-D2.D3.....Dk.
Каждый элемент U имеет вид (dl, d2, d3,...,dk),
где dl - элемент домена Dl, d2 - элемент D2 и т.д. В множестве U представлены всевозможные сочетания значений доменов, полученные по названному принципу.
Среди элементов из U содержатся такие, которые не соответствуют реально имеющимся сообщениям и не могут храниться в БД. Отношение R, включающее истинные сообщения, является подмножеством U. Атрибуты отношения R используют домены из D в качестве своих областей определения.
Реляционная база данных представляет собой множество отношений.
Схема реляционной БД содержит следующие компоненты
S(rel) = <A,R,Dom,Rel,V(s)>,
где А - множество имен атрибутов,
R - множество имен отношений, Dom - вхождение атрибутов в домены, Rel - вхождение атрибутов в отношения,
V(s) - множество ограничений (в том числе функциональных зависимостей).
Описание процессов обработки отношений может быть выполнено двумя способами:
• указанием перечня операций, выполнение которых приводит к требуемому результату (процедурный подход),
• описанием свойств, которым должно удовлетворять результирующее отношение (декларативный подход).
Приводимые далее операции над отношениями ориентированы на процедурное описание процессов обработки данных.
Множество отношений и операций над ними образует реляционную алгебру.
При рассмотрении операций над отношениями будем использовать как алгебраическую форму записи операций, так и запись на языке реляционных СУБД семейства dBASE. Далее будут рассмотрены аналогичные конструкции языка SQL.
Как правило, список операций содержит:
проекцию,
выборку,
объединение,
пересечение,
вычитание,
соединение
деление.
Проекцией называется операция, которая переносит в результирующее отношение те столбцы исходного отношения, которые указаны в условии операции. Алгебраическая запись проекции имеет вид:
Т = R[X],
где R - исходное отношение,
Т - результирующее отношение,
Х - список атрибутов в структуре отношения Т (условие проекции).
Пример
Р
W2
|
|
||
Продукция
|
Цена
|
Комплект
|
|
Гидрокостюм Лыжи Лыжи Коньки
|
3500 1200 1200 700 |
А1 В23 С23 С2 |
|
ассмотрим два отношения: W1, содержащее сведение о продаже, и W2, в котором указаны цены на продукцию и комплектующие изделия для соответствующих видов продукции.
W1 |
|||
Магазин
|
Продукция
|
План
|
Факт
|
Динамо Динамо Спорттовары Спорттовары
|
Гидрокостюм Лыжи Лыжи Коньки
|
1200 2000 800 500
|
1400 20001700 500
|
Если требуется отношение XI, содержащее сведения только о фактическом выпуске продукции, то оно получается в результате выполнения проекции
XI = Wl[Maгазин, Продукция, Факт] и имеет вид:
Столбцы результирующего отношения могут указываться в любом порядке:
Х
Х1
|
||
Магазин
|
Продукция
|
Факт
|
Динамо Динамо Спорттовары Спорттовары
|
Гидрокостюм Лыжи Лыжи Коньки
|
1400 2000 1700 500 |
2 = Wl[Пpoдyкция, Магазин, Факт].
Х2
|
||
Продукция
|
Магазин
|
Факт
|
Гидрокостюм Лыжи Лыжи Коньки
|
Динамо Динамо Спорттовары Спорттовары
|
1400 2000 1700 500 |
В СУБД DBASE проекция реализуется двумя командами
use W1 && открыть отношение W1
copy to XI field Магазин, Продукция, Факт && проекция
Следующий пример проекции - это получение справочника ХЗ цен на продукцию:
useW2
сopy to ХЗ field Продукция, Цена
Х3
|
|
Продукция
|
Цена
|
Гидрокостюм Лыжи Лыжи Коньки
|
3500 1200 1200 700 |
Значительным неудобством в ХЗ является наличие одинаковых строк. В реляционной алгебре требуется, чтобы результат проекции не содержал одинаковых строк, однако практически такие СУБД, как dBASE, не обеспечивают этого. Правильным результатом проекции Х4 = W2[Продукция, Цена] является отношение
О
Х4
|
|
Продукция
|
Цена
|
Гидрокостюм Лыжи Коньки
|
3500 1200 700 |
тношение с заданной структурой зачастую можно получить из различных исходных отношений БД. В этом случае, естественно, не гарантируются одинаковые результаты.
Пусть нам необходим список отделов учреждения. В базе данных имеются отношения Служащий (Фамилия, Отдел,...) и Технолог (Фамилия,0тдел,...). Проекция Служащий[0тдел] формирует полный список отделов, а Технолог[0тдел] может содержать меньше значений, если в некоторых отделах не работают технологи.
Выборкой называется операция, которая переносит в результирующее отношение те строки из исходного отношения, которые удовлетворяют условию выборки. Условие выборки проверяется в каждой строке отношения по отдельности и не может охватывать информацию из нескольких строк. Существуют две простейшие разновидности условия выборки:
Условие вида Имя_атрибута <знак сравнения> Значение,
где допускаются знаки сравнения =,#,>,=>,<,<=. Например, Цена > 100.
2. Условие вида Имя_атрибута_1 <знак сравнения> Имя_ атрибута_2. Например, Факт > План.
И
Х5 |
|||
Магазин
|
Продукция
|
План
|
Факт
|
Динамо Спорттовары
|
Лыжи Лыжи
|
2000 800
|
1400 2000
|
мена атрибутов должны содержаться в структуре исходного отношения. Алгебраическая запись выборки имеет вид
T=R[p],
где R - исходное отношение;
Т - результирующее отношение;
р - условие выборки.
В качестве примера получим значения Х5 = W 1 [Продукция = "Лыжи"]
В СУБД dBASE выборка реализуется командой copy с опцией for,
например, use W1 copy to X6 for Факт => План
Х6 |
|||
Магазин
|
Продукция
|
План
|
Факт
|
Динамо |
Лыжи |
2000 |
1400 |
В команде copy условия выборки и проекции могут присутствовать одновременно, но атрибуты условия выборки должны включаться в условие проекции.
Операции объединения, пересечения и вычитания производятся над двумя исходными отношениями с одинаковой структурой. Точных аналогов этих операций в dBASE нет.
Обозначим исходные отношения через R1 и R2, а результирующее через Т.
Объединение Т = U(R1, R2) содержит строки, присутствующие либо в отношении R1, либо в R2.
Пересечение Т = I(R1, R2) содержит строки, присутствующие в отношениях R1 и R2 одновременно.
Вычитание Т = M(R1, R2) содержит те строки из R 1, которые отсутствуют в R2.
Если справочник цен на продукцию Х4 необходимо дополнить новыми сведениями из отношения W3, то надо выполнить объединение
Х7 |
|
Продукция
|
Цена
|
Лодка ка |
5600 9000 |
Палатка |
9000 |
Лыжи |
1200 |
Коньки |
700 |
Гидрокостюм |
3500 |
Х7 = U (Х4, W3).
W3 |
|
Продукция
|
Цена
|
Лодка Палатка |
5600 9000 |
В dBASE предусмотрена операция добавления append, которая для нашего примера реализуется командами
useX4
append from W3,
что приводит к добавлению в отношение Х4 всех строк из отношения W3. Отличия добавления от объединения создание результирующего отношения на месте исходного отношения и возможность появления одинаковых строк в результирующем отношении.
Операция соединения отношений выполняется над двумя исходными отношениями и создает одно результирующее. Каждая строка первого исходного отношения сопоставляется по очереди со всеми строками второго отношения, и если для этой пары строк соблюдается условие соединения, то они сцепляются и образуют очередную строку в результирующем отношении. Условие соединения имеет вид:
Имя_атрибута_1 <знак сравнения> Имя_атрибута_2,
где Имя_атрибута_1 находится в одном исходном отношении, а Имя_атрибута_2 - в другом. Будем использовать следующее обозначение операции соединения:
T=Rl[p]R2,
где R1 и R2 - исходные отношения,
Т - результирующее отношение, р - условие соединения.
Практически наиболее важный частный случай соединения называется натуральным соединением и имеет следующие особенности:
• знаком сравнения в условии соединения является "=",
• Имя_атрибута_1 и Имя_атрибута_2 должны совпадать, а точнее, содержать пересечение списков атрибутов исходных отношений,
• список атрибутов результирующего отношения образуется в результате объединения списков атрибутов исходных отношений.
Обозначение натурального соединения не содержит условия соединения и имеет вид Т = R1 * R2.
Если требуется сведения о продаже продукции из отношения W1 дополнить данными о ценах на продукцию из отношения Х, то задача решается с помощью соединения
|
|||||
Х8
|
|||||
Магазин
|
Продукция
|
План
|
Факт
|
Продукция
|
Цена
|
Динамо Динамо Спорттовары Спорттовары |
Гидрокостюм Лыжи Лыжи Коньки
|
1200 2000 800 500 |
1400 200 170 100
|
Гидрокостюм Лыжи Лыжи Коньки
|
3500 1200 1200 700 |
Первая строка из W1 и первая строка из Х7 удовлетворяют условию Продукция = Продукция, поэтому сцепляются. Остальные строки из Х7 не будут сцепляться с первой строкой из W1 (условие не соблюдается). Вторая строка из W1 при сравнении со всеми строками из Х7 сцепится только с третьей строкой и т. д. Если применять операцию натурального соединения, то в отношении Х8 будет отсутствовать второй столбец с именем Продукция.
В СУБД DBASE для проведения соединения необходимо использовать две области для исходных отношений:
SELECT 1
USE W1 && открытие отношения W1
SELECT 2
USE Х7 && открытие отношения Х7
SELECT 1
JOIN WITH Х7 TO X9 FOR Продукция=Х7->Продукция FIELDS Магазин, Продукция, Х7->Цена, План, Факт
Опция with называет второе исходное отношение, опция for содержит условие соединения, опция fields перечисляет имена атрибутов результирующего отношения. В приведенном примере выполнено натуральное соединение и передвинут столбец Цена.
В ряде случаев соединение дает некорректные результаты, например:
X10=W1*W2
содержит неоднократно одинаковые сообщения о выпуске продукции только потому, что эти виды продукции используют несколько комплектующих изделий.Х10
|
|||||
Магазин
|
Продукция
|
План
|
Факт
|
Цена
|
Компл
|
Динамо |
Гидрокостюм |
1200 |
1400
|
3500
|
А1
|
Динамо |
Лыжи |
2000 |
2000
|
1200
|
В23
|
Динамо
|
Лыжи
|
2000 |
2000
|
1200
|
С23
|
Спорттовары |
Лыжи |
800 |
1700
|
1200 |
В23 |
Спорттовары |
Лыжи |
800 |
1700
|
1200 |
С23 |
Спорттовары |
Коньки |
500 |
500
|
700
|
С2
|
|
|
|
|
|
|
Вообще говоря, ограничения, которые присутствуют в исходных отношениях, определенным образом трансформируются в ограничения для отношений, полученных в результате применения операций реляционной алгебры. Соответствующие закономерности будут рассмотрены в п. 2.2 в связи с анализом ограничений, присущих реляционной модели данных.
Натуральное соединение определено и в тех случаях, когда соединяемые отношения совпадают по структуре или не содержат общих атрибутов. Если структура отношений R и S одинакова, то R * S выполняет фактически пересечение I(R,S).
Когда отношения R и S не содержат общих атрибутов, считается, что условие соединения выполнено для любой пары сопоставляемых строк отношений, и R * S сцепляет каждую строку из R со всеми строками из S.
Операция натурального соединения имеет ряд свойств, например коммутативность и ассоциативность.
Свойство коммутативности означает, что операции
X1=R*S и X2=S*R
порождают, в сущности, одно и то же отношение.
Свойство ассоциативности означает, что операция
Y1=(R*S)*T и операция Y2=R*(S*T)
дают одинаковый результат. Различия, безусловно, состоят в неодинаковом порядке строк XI и Х2 (Y1 и Y2 соответственно). Кроме того, промежуточные отношения при вычислении Y1 и Y2 могут иметь резко различающиеся размеры (число строк), хотя Y1 и Y2 содержат равное число строк.
О
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Необходимо выделить фамилии программистов, знающих языки Си и Фортран одновременно. Попытка воспользоваться операцией выборки
X11 = Y[ ЯП = "Си" AND ЯП = "Фортран"]
(через AND обозначена логическая операция "и") будет безуспешной, так как в одной строке отношения нет информации о двух языках программирования сразу, и отношение X11 будет пустое.
Определим операцию, называемую "образ". В отношении Т(А,В) образом значения атрибута А является множество значений атрибута В, и каждый элемент b этого множества образует вместе с а некоторую строку (или часть строки) отношения Т.
imB(a)={bl,b2,...,bk},
где im - знак операции "образ",
а - значение, образ которого вычисляется, В - имя атрибута для образа значения а, b1, b2,...,bk - значения атрибута В.
Стоящая перед нами задача решается путем вычисления образов значений "Си" и "Фортран" и последующего пересечения найденных образов.
im ФИО("Си") = {"Иванов","Петpoв» , «Семин»}
im ФИО(«Фортран») = {"Иванов","Семин","Яшин"}
im ФИО("Си")ФИО("Фортран")= {"Иванов","Семин")
Z |
ЯП
|
Си Фортран
|
Такая связка операций взятия образа и пересечения полученных множеств (количество значений, для которых вычисляется образ, может быть произвольным, а не 2, как в нашем примере) требуется достаточно часто, поэтому вводится специальная
Операция - деление.
Условимся, что существует отношение-делимое W(A,B) (в нашем примере это Y) и отношение-делитель V(A). Для необходимого нам запроса отношение-делитель имеет вид;
Результатом операции деления является отношение Q(B), содержащее пересечение образов всех строк отношения-делителя V(A), вычисленных на основе отношения-делимого W(A,B).
Q = D (W,V).
где D - знак операции деления.
Результат деления XI 2 = D (Y,Z) содержит следующие значения:
XI 2
|
ФИО
|
Иванов Семин
|
В СУБД семейства DBASE отсутствует операция деления отношений, и для реализации деления отношений необходима специальная программа
Декларативный подход к обработке реляционных баз данных основан на интерпретации понятий и методов математической логики. В частности, реляционное исчисление базируется на исчислении предикатов.
