Для организации поиска нужных записей используются понятия ключа и связи.
Ключ - уникальное имя записи. С помощью ключа производится идентификация каждой конкретной записи, а также упорядочение записей в файле. Упорядочение по ключу может быть либо прямым, либо выполнено с помощью хеш-функции.
Прямое упорядочение предполагает лексикографическое расположение записей: записи могут быть записаны в порядке увеличения ключа. При этом простой ключ можно рассматривать как некоторое число.
Хэш-функция производит пересчет ключа в адрес записи на файле. Эта операция осуществляется СУБД всякий раз при поиске новой записи по ключу.
[NN5]
Реляционный подход
Реляционные модели данных в последнее время получили широкое распространение вследствие простой формы представления данных, а также благодаря развитому теоретическому аппарату, позволяющему описывать различные преобразования реляционных данных. Основу реляционной модели данных составляет понятие отношения, представляющего собой подмножество декартова произведения доменов. Домен - это некоторое множество элементов, например множество целых чисел или множество допустимых значений, которые может принимать объект по некоторому свойству.
Декартовым произведением доменов D1, D2,..,Dk
D1*D2*....*Dk,
где
..........................................
называется множество всех кортежей длины k, т.е. состоящих из k элементов - по одному из каждого домена
Таким образом, декартово произведение
Пример (рис. 6.1).
Если D1={A, 2}, D2={B, C} D3={4, 5, D}, то k=3 и соответственно декартово произведение D= D1 * D2 *D3 ={(A,B,4),(A,B,5),(A,B,D),
(A,C,4),(A,C,5),(A,C,D),
(2,B,4),(2,B,5),(2,B,D),
(2,C,4),(2,C,5),(2,C,D)}.
Отношением R на множествах D1,D2,...,Dk называется подмножество декартова произведения D1*D2*....*Dk, то есть R, определенное на множествах D1*D2*....*Dk есть некоторое множество кортежей:
Атрибутом А называется некоторе подмножество домена D. Например, для домена D3 атрибутом может быть A3=(4,5).
Для рассмотренного примера отношения имеют следующий вид
.
В ряде случаев отношения удобно представлять в виде таблицы, где каждая строка соответствует кортежу, а столбец атрибуту, например,
R1
A | B | |
A | C |
R2
C |
R3
C | D | |
A | B | |
A | B | |
B | D |
Реляционное исчисление
Реляционное исчисление базируется на теоретических основах исчисления предикатов. Предикат P(x1,x2,...,xn) это функция, принимающая значения «Истина» или «ложь», от аргументов, определенных в конкретных областях D1,D2,...,Dn. При построении высказываний используются логические связки, например
конъюнкция, дизъюнкция, отрицание,
термы сравнения с операциями
и др., а также кванторы существования и общности .
Рассмотрим пример применения кванторов. Высказывание - означает-что среди элементов множества X найдется, по крайней мере, один, при котором оказывается истинным неравенство, заключенное в скобках. Высказывание означает, что для всех элементов множества X некоторая функция f(x) больше заданного a.
В реляционном исчислении принято связывать отношением R(A1,...,An) некоторый предикат P(x1,...,xn), аргументы, которых имеют одинаковые области определения, таким образом, что если P(a1,a2,...,an)=1, то кортеж <a1,a2,...,an> принадлежит отношению, для i=1,n, в противном случае кортеж не входит в состав указанного отношения. Отсюда следует, что посредством задания некоторого предиката может быть задано и соответствующее ему отношение.
Из сказанного видно, что реляционное исчисление позволяет описать самые разнообразные виды искомых отношений. Однако отсутствие процедурности существенно затрудняет реализацию языков, основанных на реляционном исчислении. Решении этой проблемы возможно при использовании методов реляционной алгебры.
D1
A 2
D2 D2
B C B C
D3 D3 D3 D3 5 D 4 5 D 4 5 D 4 5 D
A,B,4 A,C,4 2,B,4 2,C,4
A,B,5 A,C,5 2,B,5 2,C,5
A,B,D A,C,D 2,B,D 2,C,D
Рис.6.1.Графическая интерпретация получения декартова произведения
[NN6] Лекция 6. ЛИНГВИСТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ САПР
Лингвистическое обеспечение САПР представлено совокупностью языков, применяемых для описания процедур автоматизированного проектирования и проектных решений. Основная часть лингвистического обеспечения САПР- языки общения человека с ЭВМ.
В соответствии с принятой классификацией языков САПР(рис.7.1) различают языки программирования и проектирования.
Языки САПР
программирования проектирования
выходные промежуточные входные внутренние сопровождения
описания описания
объектов заданий
схемные графические моделирования
Рис.7.1. Классификация языков САПР
7.1. Языки программирования
Языки программирования- языки, предназначенные для написания программного обеспечения. Эти языки - средство разработчика САПР.
К языкам программирования предъявляют требования удобства использования, универсальности и эффективности объектных программ (т.е. программ полученных после трансляции на машинный язык).
Удобство использования выражается в затратах времени программиста на освоение языка и главным образом на написание программ на нем.
Универсальность определяется возможностями языка для описания разнообразных алгоритмов, характерных для программного обеспечения САПР.
Эффективностьобъектных программ определяется свойствами используемого транслятора, которые в свою очередь зависят от свойств языка. Эффективность оценивается затратами машинных времени и памяти на исполнение программ.
С позиций универсальности и эффективности объектных программ наилучшими свойствами обладают машинно-ориентированные языки. Близость к машинным кодам (языки машинных команд) обуславливают простоту и эффективность трансляторов на машинный язык называемых ассемблерами. Однако языки ассемблера неудобны для человека, их использование снижает производительность труда программистов. Поэтому их применяют для разработки лишь тех модулей программного обеспечения САПР, которые работают в реальном масштабе времени или требуют для своего исполнения чрезмерно больших вычислительных ресурсов.
Среди алгоритмических языков высокого уровня, созданных на ранних этапах развития вычислительной техники, наибольшее распространение получил Фортран. Он легок в освоении и весьма эффективен при решении задач численного анализа. Программное обеспечение таких систем как PARIS, ModAPT-Caspa, APT-CM написаны на языке Фортран. Однако Фортран имеет ограниченные возможности для описания сложных алгоритмов логического характера. Поэтому при создании таких программ, как мониторы или языковые процессоры, используют либо языки ассемблера, либо языки высокого уровня с более развитыми возможностями невычислительных процедур- C, Pascal, Pl-1, Ada.
7.2. Языки проектирования
Языки проектирования- языки, предназначенные для описания информации об объектах и задачах проектирования. Большинство этих языков относится к средствам пользователя САПР.