Опубликован: 13.03.2008 | Уровень: специалист | Доступ: платный
Лекция 11:

Информационное обеспечение САПР (окончание)

< Лекция 10 || Лекция 11: 12 || Лекция 12 >
Аннотация: Рассматриваются реляционная, сетевая и иерархическая модели баз данных, о которых в общем излагалось в предыдущей лекции. Дать более глубокие, подробные сведения об использовании различных моделей при формировании
Ключевые слова: набор, алгебраические, операции, теория реляционных баз данных, формализм, отношение, арность, список, схема отношения, домен, БД, алгебра, реляционное исчисление, запрос, операция включения, кортеж, ключ, значение, печать, файл, ПО, операции реляционной алгебры, представление, объединение отношений, разность, декартово произведение, конкатенация, проекция, селекция, операторы, пересечение, запись, кортеж отношения, соединение отношений, эквисоединение, естественное соединение, композиция, декомпозиция, операция композиции, время доступа, законы коммутативности, законы ассоциативности, сетевая модель, базы данных, data system, Сетевые БД, элемент данных, единица, агрегат данных, произвольное, область записей, схема базы данных, подсхема базы данных, циклы, сети, корнем дерева, дерево, очередь, структура данных, синтаксис, иерархическая модель, information, management, IMS, связь, иерархические базы данных, база данных, HSAM, метод доступа, прямой, DAM, access method, загрузка, пространство, сегменты

11.1. Реляционная модель баз данных

Реляционная база данных, разработанная Э.Ф. Коддом (Е. F. Codd) в 1970 г., – это конечный набор конечных отношений (таблиц) вида рис. 10.3,б. Над отношениями можно осуществлять различные алгебраические операции. Тем самым теория реляционных баз данных становится областью приложения математической логики и современной алгебры и опирается на точный математический формализм.

Каждое отношение имеет свое имя; столбцы отношения соответствуют тому или иному атрибуту, имеющему имя и значения. Элементы отношения, соответствующие одной строке, составляют кортеж отношения ( рис. 10.3, б). Арность кортежа – число значений атрибутов в кортеже, т.е. число атрибутов в отношении [7,13, 31].

Схема отношениясписок имен атрибутов вместе с именем отношения; так, для рис. 10.3схема отношения – ТРАНЗИСТОРЫ ( p, Iк max, Pк, Cк ), для рис. 10.3, б – ИМЯ ОТНОШЕНИЯ ( A, B, С, D ).

Домен – множество значений атрибутов (в том числе и только одного атрибута – один столбец). Вообще столбцы не обязательно являются поименованными, а порядок следования элементов в кортежах также несущественен.

Существует три подхода к анализу реляционных БД и формированию запросов в них: реляционная алгебра, реляционное исчисление на переменных-кортежах и реляционное исчисление на переменных- доменах.

В реляционных базах данных основные операции – включение, удаление, модификация и запрос данных – применяются к кортежам и доменам.

Для осуществления операции включения данных задаются новый кортеж и отношение, в которое он должен быть включен. Тогда значения нового кортежа образуют ключ файла включения данных.

При удалении данных должны быть заданы отношение и значения атрибутов, образующих ключ удаляемых кортежей.

При модификации данных задаются отношение, значения атрибутов ключа и новые значения для применяемых атрибутов. Преобразуются ключевые значения в значения полей. К файлу применяется процедура модификации.

Запрос в реляционных базах данных может быть сформулирован к одному или нескольким отношениям (таблицам). Например имеется запрос: указать типы всех транзисторов и их Pк, для которых Ск > 15 пФ. Тогда значение атрибута Ск = 15 пФ. Затем на печать выдается новый файл-отношение "Тип\  транзистора, Р_{к}, \beta ". Могут быть более сложные запросы: например, определить мощности рассеивания транзисторов, для которых \beta  \ge  40, Iк max > 2а, Ск < 150 пФ и т. д. Тогда эти значения составляют ключ, и по ним составляется новое отношение Рк.

Все эти запросы реализуются с помощью специальных языков манипулирования данными, ряд из которых основан на реляционной алгебре.

Основные операции реляционной алгебры приведены в табл. 11.1. В ней даны исходные отношения, результаты операций, а также в ряде случаев теоретико-множественное представление операций. Первые пять операций являются основными, остальные – дополнительные, которые могут быть выражены через пять основных.

Объединение отношений R \cup  S – это множество кортежей (отношений), принадлежащих отношениям R, S или им обоим; отношения R и S должны иметь одинаковую арность.

Разность отношений R – S – множество кортежей, принадлежащих R, но не принадлежащих S. Отношения R и S также должны иметь одинаковую арность.

Декартово произведение отношений R x S – одна из основных операций по затратам машинного времени при формировании запросов к реляционной БД. При умножении отношений к каждому кортежу первого отношения ( R ) присоединяется каждый кортеж второго отношения ( S ) – конкатенация кортежей; при этом отношения R и S могут иметь одинаковую или различную арность. При декартовом умножении арности исходных отношений складываются, а количества кортежей – перемножаются.

Проекция отношения R[\pi _{X,Y} (R)]операции выборки по столбцам (атрибутам), приведенным в обозначении проекции.

Например, \pi _{C,A} (R)отношение, составленное из атрибутов С и А отношения R; \pi _{2,3} (R)отношение, составленное из 2-го и 3-го атрибутов отношения R, при этом арность проекции равна числу имен в ее обозначении.

Селекция отношения R [\sigma _{F} (R)] — операция выборки по строкам (кортежам), удовлетворяющим формуле F. В формулу входят операнды, являющиеся константами или номерами (именами) атрибутов, арифметические операторы сравнения: <, =, >, \le , \ge , \ne и логические операторы \cap  (И), \cup  (ИЛИ), (НЕ).

Например, \sigma _{B=" f ";} (R) обозначает множество кортежей, в которых компоненты атрибута В равны f, или \sigma _{2>3\cup D=A}(R) обозначает множество кортежей, в которых компоненты 2-го атрибута больше компонентов 3-го атрибута и одновременно равны компоненты атрибутов А и D ).

Пересечение отношений R\cup S есть краткая запись для отношения R – (R – S) и обозначает множество кортежей, принадлежащих одновременно R и S.

Частное отношений R\div S — множество кортежей, содержащих r – s первых компонентов кортежей отношения R, в которых остальные (s) компонентов принадлежат отношению S.

Соединение ( \theta -соединение) отношений R\triangleright _0\triangleleft S — это селекция (с формулой \theta ) декартова произведения отношений R и S:

В частности, R\triangleright\triangleleft_{A<D} S означает, что сначала надо выполнить декартово произведение отношений R и S, а затем в новом отношении выполнить селекцию по формуле А < D.

Эквисоединение отношений R_0 \triangleright\triangleleft S — это \theta -соединение, если в формуле \theta используются только равенства (см. таблицу 11.1, строку 9).

Естественное соединение R\triangleright\triangleleft S — это эквисоединение, которое выполняется для атрибутов отношений R и S с одинаковыми именами (см таблицу 11.1, строку 10). Так как для указанных атрибутов имена и значения полностью совпадают, то один из них в каждой паре в результирующем отношении устраняют. Естественное соединение — одна из основных операций при формировании запросов к реляционной БД.

Композиция отношений — это проекция \theta -соединения или проекции селекции декартова произведения. По сути, естественное соединение — тоже частный случай композиции. Декомпозиция отношений — это операция, обратная композиции, т. е. восстановление двух отношений из одного, естественное соединение которых образует исходное отношение.

Таблица 11.1. Операции реляционной алгебры
Операции Исходные отношения Результат операции
1 Объединение


2 Разность См. п. 1

3 Декартово произведение


4 Проекция


5 Селекция


6 Пересечение


7 Частное


8 Соединение ( \theta -соединение)


9 Эквисоединение См п. 8

10 Естественное соединение


11 Композиция См п. 8

12 Декомпозиция Операция, обратная композиции

В терминах реляционной алгебры легко записываются запросы к реляционной базе данных. Если задано несколько отношений, то запрос выражается в виде операции композиции к этим отношениям. Однако формальное применение композиции — последовательное применение декартова произведения всех отношений, селекции и проекции — приводит к неоправданным затратам машинного времени. Поскольку арность и число кортежей в исходных отношениях могут быть велики (десятки, сотни), нецелесообразно формировать сначала все декартово произведение, а только затем применять селекцию и проекцию. Так, если два отношения имеют по n кортежей и время доступа к каждой записиt0, то общее время доступа к памяти для формирования полного декартова произведения Tдоступа = n2t0. Если n = 104, t0 = 10 мс, то Tдоступа = 106 11,5 сут. Поэтому с

R_0 \triangleright\triangleleft S = \sigma_\theta (R\times S)
целью экономии машинного времени необходимо выполнять предварительную оптимизацию запросов к реляционной базе данных. Общая стратегия оптимизации заключается в следующем:

  • выполнять селекции и проекции как можно раньше до декартова умножения (с целью сокращения арности и количества кортежей);
  • собирать в каскады селекции и проекции, чтобы выполнять их за один просмотр файла;
  • обрабатывать (сортировать, индексировать) файлы перед выполнением соединения;
  • комбинировать проекции с предшествующими или последующими двуместными операциями.

Для осуществления этой стратегии применяются эквивалентные выражения реляционной алгебры, приведенные в табл. 11.2. Законы коммутативности и ассоциативности означают произвольный выбор в очередности соединений и умножений. При перестановках проекции или селекции с декартовым произведением следует обращать внимание на принадлежность тех или иных имен атрибутов к исходным отношениям.

Таблица 11.2. Эквивалентные выражения реляционной алгебры
Название Результат операции
1 Закон коммутативности для соединений и декартовых произведений
E_1\times E_2 \equiv E_2\times E_1\\E_1\triangleright _F \triangleleft E_2 = E_2\triangleright _F \triangleleft E_1
2 Закон ассоциативности для соединений и произведений
\left(E_1\triangleright_{F_1}\triangleleft E_2\right)\triangleright_{F_2}\triangleleft E_3 \equiv E_1\triangleright_{F_1}\triangleleft\left(E_2\triangleright_{F_2}\triangleleft E_3\right)\\(E_1\times E_2)\times E_3 \equiv E_1\times (E_2\times E_3)
3 Каскад проекций
\pi_{A_1,\ldots,A_n}\left(\pi_{B_1,\ldots,B_n}(E)\right)\equiv \pi_{A_1,\ldots,A_n}(E),A_i\in B_i
4 Каскад селекций
\sigma_{F_1}\left(\sigma_{F_2}(E)\right)\equiv \sigma_{F_1\cap F_2}(E)
5 Перестановка селекции и проекции
\sigma_F\left(\pi_{A_1,\ldots,A_n}(E)\right)\equiv \pi_{A_1,\ldots,A_n}\left(\sigma_F(E)\right),\\ \mbox{если }F \mbox{ только }\left(A_1,\ldots,A_n\right)
6 Перестановка селекции с произведением
\sigma_{F_1\cap F_2}(E_1\times E_2)=\sigma_{F_1}(E_1)\times \sigma_{F_2}(E_2);F_1\in E_1;(E_2);\\ F_2\in E_2\\ \sigma_F(E_1\times E_2)=\sigma_F(E_1)\times E_2;F\in E_1\\ \sigma_{F_1\cap F_2}(E_1\times E_2)=\sigma_{F_2}\left(\sgma_{F_1}(E_1)\times E_2\right);F_1\in E_1;\\ F_2\in E_2
7 Перестановка проекции с произведением
\pi_{A_1,\ldots,A_n}(E_1\times E_2)\equiv \pi_{B_1,\ldots,B_m}(E_1)\times \pi_{C_1,\ldots,C_k}(E_2)\\ \mbox{при }B_i\in E_1, C_i\in E_2, A_i\equiv\{B_i,C_i\}
< Лекция 10 || Лекция 11: 12 || Лекция 12 >
Ярославй Грива
Ярославй Грива
Россия, г. Санкт-Петербург
Оксана Грицай
Оксана Грицай
Россия