Дипломная работа
Создание информационно-справочной подсистемы САПР конструкторско-технологического назначения. Дискретные элементы
СОДЕРЖАНИЕ
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ, СОКРАЩЕНИЙ И ТЕРМИНОВ
ВВЕДЕНИЕ
1. АНАЛИЗ ТЕХНИЧЕСКОГО ЗАДАНИЯ
1.1 Наименование, область применения, цельсозданияинформационно-справочнойподсистемСАПР конструкторско-технологическогоназначения
1.2 Задачи, решаемые подсистемой
1.3 Функциональные требования к подсистеме
2. АНАЛИЗ ОБЪЕКТА ПОДЛЕЖАЩЕГО ОБРАБОТКИ ИНФОРМАЦИОННО — СПРАВОЧНОЙ ПОДСИСТЕМОЙ
2.1 Логические элементы
2.2 Логический элемент И
2.3 Логический элемент ИЛИ
2.4 Логический элемент НЕ
2.5 Логический элемент И – НЕ
2.6 Логические элементы ИЛИ-НЕ
3. ИФОРМАЦИОННО-СПРАВОЧНАЯ ПОДСИСТЕМА
3.1 Основные положения
3.1.1 Вторая нормальная форма
3.1.2 Третья нормальная форма
3.1.3 Нормальная форма Бойса-Кодда
3.1.4 Четвертая нормальная форма
3.1.5 Пятая нормальная форма
3.2 Семантическое моделирование данных, er-диаграммы
3.2.1 Семантические модели данных
3.2.2 Основные понятия модели Entity-Relationship (Сущность-Связи)
3.2.3 Нормальные формы ER-схем
3.2.4 Более сложные элементы ER-модели
3.2.5 Получение реляционной схемы из ER-схемы
ВЫВОДЫ
ПЕРЕЧЕНЬ ССЫЛОК
ПРИЛОЖЕНИЕ А
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ, СОКРАЩЕНИЙ И ТЕРМИНОВ
БД – База данных
ЭВМ – Электронно-вычислительная машина
САПР – Система автоматизации производства
КМОП — комплиментарный метал окись полупроводник
РТЛ – резистивно–транзисторная логика
ДТЛ – диодно–транзисторная логика
ТТЛ – транзисторно–транзисторная логика
ЭСЛ – эмиттерно–связанная логика
ЛЭ – логический элемент
ДЭ – дискретный элемент
МОП – метал окись полупроводник
ВВЕДЕНИЕ
В современных системах автоматизации и управления находят широкое применение средства обработки данных, основу которых составляют дискретные элементы и устройства. Цифровая электроника за короткий исторический период прошла путь от простейших устройств на дискретных элементах до устройств и целых систем, реализуемых на сверхбольших интегральных схемах.
Развитие элементной базы изменило и подходы к расчету и проектированию цифровых устройств и систем, которые базируются на использовании функционально и конструктивно законченных элементов и устройств, выпускаемых промышленностью в виде цифровых интегральных схем.
Интегральные микросхемы пошли очень далеко. Микросхемы разделились на множество классов и подгрупп. Появились сверхбольшие микросхемы, которые содержат в себе сотни, а иной раз и сотни тысяч различных микросхем.
За относительно короткий период микросхемы сделали огромный шаг в будущее, в некоторых случаях производительность не возможно загрузить до пиковой нагрузке. В последние десять лет изменились несколько технологий, что позволило еще больше повысить производительность.
Производительность в настоящее время не является главным из параметров в современных микросхемах, так как высокая производительность несет с собой большое потребление мощности, что не является экономически выгодным, а также увеличению размеров интегральных схем, что привод к нагромождению элементов и неудобствам при монтаже и проектировании.
Для уменьшения потребления мощности, необходимо правильно спроектированные микросхемы, а также новые технологии производства, что могло бы снизить потребление мощности.
Для уменьшения размеров следует задуматься над проектированием микросхем, а также всевозможно минимизировать внутренние элементы схемы.
Из за выше перечисленных требований возникает вопрос Как этого добиться?
Дискретные элементы это наименьшая составляющая интегральных микросхем, поэтому темой данного дипломного проекта будет рассмотрение характеристик и классификаций, различно спроектированных дискретных элементов, так как в условиях массового производства необходимо внедрять различные автоматизированные системы и для удобства их реализации необходимо создать информационно — справочную систему, которая будет включать описания дискретных элементов.
1. АНАЛИЗ ТЕХНИЧЕСКОГО ЗАДАНИЯ
1.1 Наименование, область применения, цель создания информационно-справочной подсистем САПР конструкторско-технологического назначения
Разрабатываемая подсистема, называемая «Информационно-справочная подсистема САПР конструкторско-технологического назначения. «Дискретные элементы» предназначена для учета, сбора, содержания справочной информации для конструкторско-технологических целей.
Цель разработки – создать информационно-справочную подсистему, которая обеспечит автоматизированный доступ и учет информации с помощью разработанной специально для этих целей базой данных (БД).
Информационно-справочная система – это комплекс программ которые будут реализовывать заданные им функции, поэтому главной задачей дипломного проекта является построение наиболее точной информации об объектах которые будут учтены в информационную систему.
Даная система будет располагаться на производстве, поэтому описание объекта обработки справочной системы должно производиться на техническом языке, с учетом того, что персонал, работающий с данной системой, будет достаточно квалифицирован. Так как увеличение описаний и теоретических сведений невозможно, так как это несет дополнительные затраты (кК материальные так и по времени), а на любом производстве их необходимо снижать до абсолютного минимума.
1.2 Задачи решаемые подсистемой
Даная система должна увеличить производительность труда рабочих которые будут работать с конструкторско-технологическими процессами на производстве.
А значит, данная информационно-справочная подсистема должна обладать такими свойствами:
Распределения дискретных элементов по типу
Распределения дискретных элементов по входным и выходным характеристикам напряжения
По времени выполнения операций(задержка)
Возможность добавления и корректировки информации в данной подсистеме
Обеспечение легкости работы и поиска информации
Учет имеющихся в наличии элементов
1.3 Функциональные требования к подсистеме--PAGE_BREAK--
Подсистема должна обеспечивать следующие функциональные возможности автоматизированная система учёта дискретных элементов:
1) добавление новых объектов в базу данных (БД);
2) изменение характеристик объектов базы данных;
3) удаление объектов из базы данных.
При добавлении базы данных выбор общих характеристик (наименование, код, и т.п.) объекта возлагается на оператора. Параметры учета о изменении количества и наличие микросхем на производстве оператор использующий данную подсистему не имеет право менять эти параметры вручную.
Подсистема обеспечивает обновление существующих микросхем за счёт объектно-ориентированной структуры программного комплекса – перекомпоновка без изменения базовых объектов программного комплекса.
2. АНАЛИЗ ОБЪЕКТА ПОДЛЕЖАЩЕГО ОБРАБОТКИ ИНФОРМАЦИОННО — СПРАВОЧНОЙ ПОДСИСТЕМОЙ.
2.1 Логические элементы
Математической основой цифровой электроники и вычислительной техники является алгебра логики или булева алгебра (по имени английского математика Джона Буля).В булевой алгебре независимые переменные или аргументы (X) принимают только два значения: 0 или 1. Зависимые переменные или функции (Y) также могут принимать только одно из двух значений: 0 или 1. Функция алгебры логики (ФАЛ) представляется в виде:
Y = F (X1; X2; X3… XN ).
Данная форма задания ФАЛ называется алгебраической.
Основными логическими функциями являются:
— логическое отрицание (инверсия)
Y = />;
— логическое сложение (дизьюнкция)
Y = X1 + X2 или Y = X1 V X2 ;
— логическое умножение (коньюнкция)
Y = X1· X2 или Y = X1L X2 .
К более сложным функциям алгебры логики относятся:
— функция равнозначности (эквивалентности)
Y = X1· X2 + />или Y = X1~ X2 ;
— функция неравнозначности (сложение по модулю два)
Y = X1· />+ />· X2 или Y = X1/>X2 ;
— функция Пирса (логическое сложение с отрицанием)
Y = />;
— функция Шеффера (логическое умножение с отрицанием)
Y = />;
Логический элемент – это электронное устройство, реализующее одну из логических операций. Логические элементы представляют собой электронные устройства, в которых обрабатываемая информация закодирована в виде двоичных чисел, отображаемых напряжением (сигналом) высокого и низкого уровня. Термин «логические» пришел в электронику из алгебры логики, оперирующей с переменными величинами и их функциями, которые могут принимать только два значения: «истинно» или «ложно». Для обозначения истинности или ложности высказываний используют соответственно символы 1 или 0. Каждая логическая переменная может принимать только одно значение: 1 или 0. Эти двоичные переменные и функции от них называются логическими переменными и логическими функциями. Устройства, реализующие логические функции, называются логическими или цифровыми устройствами. Условное графическое изображение цифрового устройства показана на рисунке 1. На входы устройства подают комбинации двоичных переменных Х1, Х2, …, Хn, с выхода снимают комбинации двоичных переменных Y1, Y2, …, Ym. Выходные и входные переменные связаны между собой логической функцией λ.
/>
Рис.2.1. – Условное графическое изображение цифрового устройства
Логические элементы по режиму работы подразделяются на статические и динамические. Статические ЛЭ могут работать как в статическом, так и динамическом (импульсном) режимах. Статические элементы наиболее широко используются в современных микросхемах. Динамические ЛЭ могут работать только в импульсном режиме.
Логические элементы классифицируют также по типу применяемых транзисторов. Наибольшее распространение получили ЛЭ на биполярных и МДП — транзисторах и МДП – транзисторах. Кроме того, интенсивно разрабатываются ЛЭ на арсенид – галлиевых МЕП и ГМЕП – транзисторах. Для каждого из перечисленных типов ЛЭ существует число схемотехнических и конструктивно – технологических разновидностей.
2.2 Логический элемент И
/>Логическая операция И для двух переменных А и В представляется как А∙В=С, т. е. С=1 только в том случае, когда А=1 и В=1 (если А истинно и В истинно, тогда С истинно). Она обозначается точкой между двумя переменными А и В, которые обычно называют логическими переменными и соответственно этому цифровые операции называют логическими операциями. Схема, осуществляющая операцию И, называется элементом И. Утверждение «истинно» принято отождествлять с состоянием 1 и противоположное утверждение отождествлять с состоянием 0 в цифровой схеме. В соответствии с этим таблица для операции И, охватывающая все возможные комбинации переменных А и В и соответствующей переменной С, показана в таблице 1. для входных и одной выходной переменной. Она называется таблицей истинности или функциональной таблицей. Обобщить табл. 2.1. На большее число входных переменных. Согласно табл. 2.1. Выходная переменная С=1 (т.е. «С истинно» получается, только если А и В «истинно». Логически символ для элемента И и диодная логическая схема И для элемента с двумя входами и одним выходом показана на рис. 2.2, а и 2.2, б. Блок И обеспечивает логическую 1 на выходе, только если логически представлены все выходы. Такая схема может быть сравнима с системой последовательно включенных ключей (рис. 2.3).
/>
Рис. 2.2 – Диодная логическая схема И
Таблица 2.1 – Функциональная таблица (таблица истинности) И
А
B
Q
1
1
1
1
1
Только если, как это показано на рис. 2.3, все ключи замкнуты (состояние 1), появляется выходное напряжение и включается индикатор. Более практичной формой для блока И является диодная схема, показанная на рис. 2.4. Используя положительное напряжение +V для состояния 1 и V=0 для состояния 0, видим, что схема обеспечивает на выходе состояние 1 для +V, только если на все входы подано напряжение +V, или 1. Любой вход при V=0 поддерживает выход в состоянии 0. В самом деле, диоды смещены в положительном направлении и выходное напряжение равно нулю, что означает, что выходное состояние есть 0. Если ко всем тем входам одновременно приложить положительное напряжение несколько больше чем V, то диоды становятся обратно смещенными и выходное напряжение возрастает до V, т. е. наступает состояние 1. Заметим, что если даже один вход находится в состоянии 0, т. е. на соответствующем диоде имеется прямое смещение, то выходной сигнал остается равным нулю. Это объясняется тем что нулевое напряжение на любом входе дает короткое замыкание выхода на землю. В логической форме это означает, что 0 на любом входе создает 0 на выходе.
Операцию, осуществляемую блоком И, не следует смешивать с математической операцией сложения, так как выход блока И не есть сумма входных сигналов, как это следует из функциональной таблицы. Блок И широко используется в цифровых электрических схемах и обозначается символом, показанным на рис. 2.4, б.
/>
Рис.2.3. – Цепочка последовательных ключей, схема И
/> продолжение
--PAGE_BREAK--
а) б)
Рис.2.4 – а) диодная схема с тремя входами; ключей схемы логического И. б) ее символическое обозначение
Схема простейшего двухвходового элемента И на биполярных транзисторах приведена на рис. 2.5, а, а на рис. 2.5, б – диаграмма его работы. Элемент И называют иногда схемой совпадения, так как из диаграммы работы видно, что сигнал 1 на выходе появляется только в том случае, на обоих входах А и В одновременно действуют напряжения логической 1. Поскольку транзисторы VT1 и VT2 соединены последовательно, то ток в цепи может протекать только в случае, если одновременно открыты оба транзистора. Если открыт только один из транзисторов, то ток протекать не будет и напряжение на выходе будет нулевым. Таким образом, схема выполняет логическое умножение И в соответствии с функциональной таблицей И.
Схема логического элемента И в ТТЛ – варианте исполнения приведена на рис. 2.5, в. Особенность схемы – использование на входе многоэмиттерного транзистора VT1. Если на оба входа А и В поданы напряжения логического 0, то открыты оба перехода база -эмиттер транзистора VT1 и ток проходит только через них, не ответвляясь в переход база – коллектор. Вследствие этого транзистор VT2 закрыт и на выходе Q действует нулевое напряжение. Если на один из входов подается положительное напряжение логической 1, то соответствующий переход база – эмиттер транзистора VT1запирается. Однако основной переход база – коллектор не опирается, ибо конструкция многоэмиттерного транзистора (и режим работы) такова, что ток в цепи база – коллектор может протекать тогда, когда оказываются запертыми все переходы база – эмиттер. Таким образом, только при одновременной подаче на оба входа напряжения логической 1 отпирается переход база – коллектор транзистора VT1, что в свою очередь приводит к отпиранию транзистора VT2 появлению на выходе напряжения логической 1 в полном соответствии с правилом действия логического элемента И. МОП – вариант схемы логического элемента И приведен на рис. 2.5, г. Здесь, как и в предыдущих схемах, вместо сопротивления нагрузки используется МОП – транзистор с отпирающим напряжением на затворе.
/>/>/>/>
а) б) в) г)
Рис.2.5. – Логический элемент И на биполярных транзисторах (а), диаграммы напряжений на его входах А, В я выходеQ (б); элемент И, выполненный на многоэмиттерном (б) и МОП-транзисторах (а)
2.3 Логический элемент ИЛИ
Логическое утверждение «Если А или В истинно, тогда Q истинно» записывается так А+В=Q, где знак «+» есть символ, обозначающий операцию ИЛИ. Соответствующая этому определению Функциональная табл. 2.2. показывает, что выход получается при наличии любого входного сигнала. Принципиальная схема двухвходового логического элемента ИЛИ в ТТЛ- исполнении приведена на рис.2.6, а. В соответствии с правилами логического сложения, если на входах А и В действуют сигналы логических0, переходы база- эмиттер транзисторов VT1 иVT4 открыты и через них протекает ток. При этом, очевидно, через переходы база- кол лектор в транзисторахVT1 иVT4 ток не протекает, вследствие чего закрыты транзисторы VT2 и VT3 и на их общем сопротивлении в цепи эмиттеров R2 нет падения напряжения, т.е. выходной сигнал Q соответствует логическому0. Если на одном из входов А или В действует сигнал положительной полярности, соответствующий логической1, то происходят запирание перехода база— эмиттер транзистораVT1 (илиVT4) и отпирание перехода база— коллектор. Это приводит к отпиранию транзистораVT2 (или VT3) и появлению на резистореR2 - на выходеQ — почти полного напряжения источника питания (за вычетом падения напряжения в несколько десятых долей вольта на полностью открытом транзистореVT2 илиVT3). При подаче сигнала1 на оба входа А и В открываются и оба выходных транзистораVT2 иVT3, что приводит к некоторому увеличению напряжения на выходеQ. Таким образом, рассмотренная электронная схема выполняет логическое сложение ИЛИ.
/>/>
а) б)
Рис.2.6. – Логический элемент ИЛИ, выполненный на биполярных (а) и И МОП-транзисторах (б)
Таблица 2.2 – Функциональная таблица (таблица истинности) ИЛИ
А
B
Q
1
1
1
1
1
1
1
Логический элемент ИЛИ на МОП-транзисторах может быть выполнен по схеме, приведенной на рис.2.6, б. В этой схеме транзисторыVT1 иVT2 включаются при подаче на их затворы положительного напряжения логической1 и выключаются, если действует напряжение логического0. ТранзисторVT3 используется вместо резистора и постоянно открыт, что приводит к потребле нию энергии питания, в то время когда открыты транзисторыVT1 иVT2.
2.4 Логический элемент НЕ
Это операция применяется в случаях, когда требуется иметь противоположные значения переменной. Противоположное значение переменной называется дополнением этой переменной Символически для НЕ оно обозначается чертой над соответствующей переменной величиной: А=Q.
Таблица 2.4 – Функциональная таблица (таблица истинности) НЕ
А
Q
1
1
/>/>/>В простейшем случае элемент НЕ инвертор— может быть выполнен на биполярном (или полевом) транзисторе с общим эмиттером (рис.2.7, а). Когда на входе А действует сигнал0, транзистор VT тока" не проводит и напряжение на выходе Q максимально, практически равно напряжению источника питания и соответствует сигналу1. Если на входе действует положительное напряжение, соответствующее сигналу1, транзисторVT (n — p — n-типа) отпирается, переходит в режим насыщения и напряжение на выходеQ снижается до уровня 0,1—0,3 В, соответствующее сигналу0. Таким образом, схема инвертирует входной сигнал. У рассмотренной схемы НЕ много недостатков: малы быстродействие и нагрузочная способность и весьма низка помехоустойчивость. Поэтому на практике используют более сложные схемы. В частности, на рис.2.7, б приведена схема инвертора семейства ТТЛ на основе многоэмиттерного транзистора VT1. При напряжении логическогона входе А создаются условия для протекания тока в транзисторе VT1 только в цепи перехода эмиттер-база (на рис.2.7, б указаны два параллельно соединенных эмиттера, работающих как один), а переход коллектор-база закрыт, вследствие чего нет тока в цепи базы транзистора VT2 и он за перт. При этом на его кол лекторе имеется напряжение, близкое к напряжению источника питания. Это напряжение действует на базу транзистора VT3, что приводит к его полному отпиранию. В то же время транзистор VT4 заперт, поскольку на его базу не подается никакого напряжения, так как транзисторVT2 закрыт, ток через него не проходит, и на резисторе R2 нет напряжения (которое могло бы открыть транзисторVT4). Таким образом, поскольку транзисторVT3 открыт, аVT4 закрыт, на выходе Q действует положительное напряжение, близкое к напряжению источника питания, что соответствует логической1. Если на вход А подается напряжение логической1, то переход эмиттер — база транзистораVT1 запирается, но создаются условия для протекания тока через его переход коллектор — база и тем самым для протекания тока через базу транзистораVT2, что приводит к его отпиранию и переходу в режим насыщения. При этом транзисторVT3 запирается (так как на коллектореVT2 действует слишком низкое напряжение), а транзисторVT4 отпирается, так как на его базу подается с резистораR2 напряжение в положительной полярности. Таким образом, через малое сопротивление открытого транзистораVT4 выход соединяется с общей шиной «землей» и напряжение на нем оказывается почти нулевым и схема работает как инвертор. Диод VD, включенный на вход А, защищает схему от перегрузки по входу.
Существенно повысить быстродействие инвертора и снизить расход энергии питания позволяет применение диодов Шоттки, включаемых параллельно переходу коллектор– база биполярного транзистора (рис.2.7, в). Такое соединение называется транзистором Шоттки и обозначается в электронных схемах, как показано на рис.2.7, в. Среднее время задержки сигналов в логических элементах ТТЛШ порядка1,5 нс при средней потребляемой мощности около20 мВт на один логический элемент.
Применение МОП-транзисторов позволяет почти в10 раз увеличить число активных элементов на кристалле интегральной микросхемы и более чем в 103 раз уменьшить потребление энергии питания по сравнению с биполярными транзисторами. Однако почти в10—20 раз уменьшается быстродействие (в первую очередь, из-за больших емкостей на входе и выходе транзисторов и очень высоких входных сопротивлений). продолжение
--PAGE_BREAK--
/>Инвертор на МОП-транзисторах с n-каналами может быть выполнен по схеме, приведенной на рис.2.8, а. ТранзисторVT1, на затвор которого подается напряжение в отпирающей полярности, выполняет роль резистора (сопротивление которого может быть сделано любым- в пределах от сотен Омов до сотен кило-Омов- в зависимости от технологии изготовления и напряжения на затворе). Если на входе А действует сигнал0, то транзистор VT2 закрыт и напряжение на выходеQ практически равно напряжению источника питания, т.е. соответствует напряжению логической1. Когда на вход А действует положительное напряжение, соответствующее напряжению логической1, то транзисторVT2 открывается (его сопротивление при этом составляет всего300 — 500 Ом) и напряжение на выходеQ становится весьма малым (десятые доли-единицы вольт), что соответствует логическому0. Существенное повышение быстродействия (и снижение потребления энергии питания) достигается при использовании комплиментарной пары КМОП-транзисторов.
/>Схема КМОП-инвертора приведена на рис.2.8, б. Если на входе А схемы действует напряжение логического нуля, то транзисторVT1, имеющий р-канал, полностью открыт, поскольку его затвор при этом соединен с общим проводом и поэтому на него подается напряжение в отпирающей полярности относительно истока, соединенного с плюсом источника питания. ТранзисторVT2 имеющий n-канал, заперт, вследствие чего напряжение на выходеQ максимально и соответствует напряжению логической1. Когда на вход А подается положительное напряжение логической1, то транзисторVT1 запирается, а транзисторVT2 полностью отпирается, вследствие чего напряжение на входеQ становится нулевым. Быстродействие этой схемы по сравнению с предыдущей существенно увеличивается благодаря тому, что заряд-перезаряд паразитных емкостей происходит через весьма малые сопротивления полностью открытых транзисторовVT1 иVT2. Потребление энергии питания снижается до уровня десятых долей микроватта на один элемент потому, что схема потребляет ток, в сущности, только во время переключения, когда один транзистор открывается, другой закрывается. В остальное время— приили1 — всегда один из транзисторов закрыт и ток от источника питания не потребляется.
/>/>
Рис.2.7. – Логический элемент НЕ, выполненный на обычном биполярном транзисторе (а); многоэмиттерном транзисторе с дополнительным усилителем (б); Транзистор Шоттки и его условное графическое изображение в электронных схемах (в).
/>
Рис.2.8. – Логический элемент НЕ, выполненный на МОП-транзисторах с n-каналом (а), комплиментарной паре МОП-транзисторов с n- и р-каналами (б)
2.5 Логический элемент И – НЕ
/>/>Более универсален элемент И-НЕ, позволяющий одновременно с операцией логического умножения выполнить и отрицание, тем более что в большинстве случаев это не усложняет схемы. Например, на рис.2.9, а приведен МОП-вариант схемы логического элемента И-НЕ. ТранзисторVT1 используется вместо сопротивления нагрузки и постоянно открыт, ибо на его затвор подается напряжение в отпирающей полярности. Если на затворы транзисторовVT2 и VT3 поданы напряжения логического0, то они за перты, тока не проводят и на выходеQ действует почти полное напряжение питания, т. е. напряжение логической1. Если по дается напряжение логической1 только на один из входов А или В, то состояние схемы не изменяется и напряжение на выходе остается неизменным. Однако, если на оба входа действуют напряжения логических1, то оба транзистораVT2 иVT3 отпираются, их внутреннее сопротивление уменьшается (до500 — 1000 Ом) и напряжение на выходеQ также становится весьма малым, т. е. на выходе действует логический0 — в полном соответствии с таблицей истинности И-НЕ (табл. 2.4.).
Таблица 2.4 – Функциональная таблица (таблица истинности) И-НЕ
А
B
Q
1
1
1
1
1
1
1
/>Недостаток схемы — при подаче на входы A и В одновременно напряжений логических1 схема потребляет ток от источника питания. Если же элемент И-НЕ выполнен на КМОП-транзисторах, то этого не происходит. В частности, на рис.2.9, б дается схема подобного элемента. ТранзисторыVT1 иVT2 имеют р-каналы, вследствие чего, когда на их затворах (входах A, В) действуют сигналы логических0, они полностью открыты и на выходеQ имеется положительное напряжение логической1. При этом транзисторыVT3 и VT4 полностью заперты, ибо имеют n-каналы. Когда на оба входа A, В одновременно действуют положительные напряжения логических1, транзисторыVT1 иVT2 запираются и напряжение с выходаQ снимается. При этом транзисторыVT3 иVT4 отпираются и выход оказывается соединенным с общим проводом через малое сопротивление(500 — 1000 Ом). Если на одном из входов действует напряжение логического0, а на другом— напряжение логической1, то один из транзисторов с р — каналом (VT1 илиVT2) запирается, но другой остается открытым, и поскольку они включены параллельно, на выходе остается напряжение логической1.
При этом один из транзисторов с n-каналом (VT3 илиVT4) оказывается открытым; другой- закрытым, и, поскольку они включены последовательно, шунтирования выхода Q малым сопротивлением не происходит и напряжение на выходе оказывается высоким. Таким образом, сама схема тока не потребляет (разве что в те мгновения, когда происходит процесс ее переключения— но это, в среднем, доли микроватта). ТТЛ-вариант схемы логического элемента И-НЕ дан на рис.5, в. Из рассмотрения рисунка вполне очевидно, что схема представляет собой стандартный элемент И (рис.2.5, в), к которому добавлен выходной стандартный усилитель— от инвертора (см. рис.2.7, б). Условные изображения логического элемента И-НЕ показана на рис.2.9, г.
2.6 Логические элементы ИЛИ-НЕ
Изменив схему логического элемента ИЛИ на МОП-транзисторах возможно получить новый, более универсальный элемент ИЛИ-НЕ, осуществляющий одновременно с логическим сложением ИЛИ и логическое отрицание (инверсию) НЕ. Для этого активные элементы должны быть использованы не в режиме повторителей (как в схеме рис.2.6, б), а в режиме усилителей-инверторов, что легко достигается перенесением общего сопротивления нагрузки из цепи истоков в цепь стоков. На рис.2.10, а приведена такая схема логического элемента ИЛИ-НЕ. При сигналах логического 0 на входах А и В транзисторыVT2 иVT3 заперты, а поскольку транзисторVT1 постоянно открыт и играет роль сопротивления нагрузки, то на выходеQ действует положительное напряжение логической1. Если на одном из входов А или В (или одновременно на двух) действует положительное, напряжение, соответствующее логической1, то транзисторVT2 илиVT3 или оба вместе оказываются открытыми и напряжение на выходеQ снижается до нескольких десятых долей-единиц вольт, т. е. до уровня напряжения логического0.
Существенно снизить потребление энергии питания и увели чить быстродействие позволяет использование КМОП-транзисторов. В частности, на рис.2.10, б приведена схема такого вида. ТранзисторыVT1 и VT2 имеют р-каналы и открываются, если на их затворы подается напряжение логического(так как на их затворы, соединенные с плюсом источника питания, подается отрицательное напряжение в отпирающей полярности). При этом транзисторы VT3 и VT4, имеющие n-каналы, оказываются запертыми и напряжение на выходе Q близко к напряжению источника питания, т. е. к напряжению логической1.
/>
Рис.2.9. – Логический элемент И-НЕ, выполненный на МОП-транзисторах с га-каналами (а), многоэмиттерном биполярном транзисторе и дополнительном усилителе (б), комплементарных МОП-транзисторах (в) и условные графические обозначения элементов ИЛИ-НЕ и И-НЕ в электронных схемах (г)
Если хотя бы на одном из входов действует напряжение логической1, то один из транзисторов VT1 илиVT2 закрывается, а поскольку они соединены последовательно, схема отключается от источника питания и на вы ходеQ напряжение равно0. В добавление к этому открывается один из транзисторовVT3 илиVT4 (включенных параллельно) и выход соединяется с общим проводом через весьма малое сопротивление100—300 Ом. Таким образом, элемент действует в полном соответствии с таблицей истинности ИЛИ-НЕ (табл. 5.). Следует отметить, что схема чрезвычайно экономична и потребляет ток только в очень краткие мгновения, во время переключения, когда одни транзисторы открываются, а другие еще не успели закрыться.
/>Таблица 2.5 – Функциональная таблица (таблица истинности) ИЛИ-НЕ
А
B продолжение
--PAGE_BREAK--
Q
1
1
1
1
1
ТТЛ-вариант конструктивного исполнения схемы ИЛИ-НЕ на биполярных транзисторах приведен на рис.2.10, в. Из рассмотрения рисунка видно, что схема объединяет в себе двухвходовый элемент ИЛИ (рис.2.6, а) и инвертор НЕ (см. рис.2.7, б). Если на входах А и В действуют напряжения логических0, то переходы база — эмиттер транзисторовVT1 иVT4 открыты и через них протекает ток, минуя переходы база— коллектор. Вследствие этого заперты суммирующие транзисторыVT2 иVT3. Поэтому на базу транзистора VT5 через резистор R4 подается напряжение питания, полностью его отпирающее, в результате чего на выход Q поступает положительное напряжение, соответствующее логической1.
Транзистор VT6, включенный параллельно выходуQ, при этом заперт и тока не проводит, ибо на его базу не подается напряжение (с резистора R2). Если хотя бы на одном из входов А или В действует напряжение логической1, один из суммирующих транзисторовVT2 илиVT3 отпирается, напряжение в точке соединения их коллекторов резко падает, что приводит к запиранию транзистораVT5 и на вход перестает поступать положительное напряжение. При этом оказывается открытым транзистор VT6 шунтирующий своим малым сопротивлением выход, поскольку на его базу начинает подаваться напряжение, снимаемое с резистораR2, включенного в цепь эмиттеров суммирующих транзисторовVT2, VT3 (один из которых проводит ток). Таким образом, схема работает в полном соответствии с табл. 5. Условное изображения логического элемента ИЛИ-НЕ дана на рис.2.9, г.
/>/>/>/>
/>
Рис.2.10.Логические элементы ИЛИ-НЕ, выполненные на биполярных транзисторах (а), МОП-транзисторах с n-каналами (б), комплиментарных парах МОП-транзисторов (в)
В рассмотренных схемах логических элементов для упрощения показывалось, как правило, лишь два входа. Это совсем не означает, что в реальных схемах их только два- их может быть значительно больше, до8-10. И есть специальные устройства— расширители, которые позволяют увеличить число входов. Однако в случае необходимости можно увеличить число входов элементов И-НЕ или ИЛИ-НЕ способом наращивания, объединяя последовательно-параллельно несколько отдельных микросхем с меньшим числом входов. При этом может возникнуть проблема: что делать с оставшимися свободными входами? Если применены элементы И в ТТЛ-исполнении, то все свободные входы надо соединить вместе и подключить через резистор в1 – 2 кОм к плюсу источника питания(+5 В). Свободные входы можно соединить с используемыми, но это не всегда желательно, ибо увеличивается нагрузка на источник сигнала. В МОП и КМОП-схемах И свободные входы можно соединять непосредственно с плюсом источника питания.
Несколько сложнее наращивание в случае элементов ИЛИ-НЕ, И-НЕ, где приходится использовать дополнительные инверторы.
В современной цифровой технике в настоящее время доминируют четыре семейства логических микросхем в интегральном исполнении: ТТЛ; ТТЛШ; КМОП и ЭСЛ, выпускаемые во всем мире сотнями миллионов штук ежегодно. При этом наиболее широко применяются для построения цифровых информационно-измерительных геофизических устройств микросхемы ТТЛ, ТТЛШ и КМОП. Цифровые микросхемы семейства ЭСЛ, пока не имеющие себе равных по быстродействию (доли наносекунды), потребляют слишком много энергии питания и используются преимущественно для создания сверхбыстродействующих ЭВМ универсального применения.
Все логические элементы выпускаются в виде микросхем в интегральном исполнении и маркируются стандартным семиэлементным кодом. При этом третий элемент маркировки— две буквы— обозначает: ЛИ— элемент И; ЛН— элемент НЕ; ЛЛ— элемент ИЛИ; ЛА— элемент И-НЕ; ЛЕ— элемент ИЛИ-НЕ; ЛС— элемент И-ИЛИ; ЛБ— элемент И-НЕ/ИЛИ-НЕ; ЛР— элемент И-ИЛИ-НЕ; Л К— элемент И-ИЛИ-НЕ/И-ИЛИ; ЛМ— элемент ИЛИ-НЕ/ИЛИ; ЛД— расширители; ЛП— прочие типы элементов (в том числе исключающее ИЛИ); ХЛ— многофункциональные элементы.
3. ИФОРМАЦИОННО-СПРАВОЧНАЯ ПОДСИСТЕМА
3.1 Основные положения
Сначала я рассмотрю классический подход, при котором весь процесс проектирования производится в терминах реляционной модели данных методом последовательных приближений к удовлетворительному набору схем отношений. Исходной точкой является представление предметной области в виде одного или нескольких отношений, и на каждом шаге проектирования производится некоторый набор схем отношений, обладающих лучшими свойствами. Процесс проектирования представляет собой процесс нормализации схем отношений, причем каждая следующая нормальная форма обладает свойствами лучшими, чем предыдущая.
Каждой нормальной форме соответствует некоторый определенный набор ограничений, и отношение находится в некоторой нормальной форме, если удовлетворяет свойственному ей набору ограничений. Примером набора ограничений является ограничение первой нормальной формы – значения всех атрибутов отношения атомарны. Поскольку требование первой нормальной формы является базовым требованием классической реляционной модели данных, мы будем считать, что исходный набор отношений уже соответствует этому требованию.
В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:
первая нормальная форма (1NF);
вторая нормальная форма (2NF);
третья нормальная форма (3NF);
нормальная форма Бойса-Кодда (BCNF);
четвертая нормальная форма (4NF);
пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).
Основные свойства нормальных форм:
каждая следующая нормальная форма в некотором смысле лучше предыдущей;
при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.
В основе процесса проектирования лежит метод нормализации, декомпозиция отношения, находящегося в предыдущей нормальной форме, в два или более отношения, удовлетворяющих требованиям следующей нормальной формы.
Наиболее важные на практике нормальные формы отношений основываются на фундаментальном в теории реляционных баз данных понятии функциональной зависимости. Для дальнейшего изложения потребуется несколько определений.
Определение 1. Функциональная зависимость
В отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y: R.X (r) R.Y.
Определение 2. Полная функциональная зависимость
Функциональная зависимость R.X (r) R.Y называется полной, если атрибут Y не зависит функционально от любого точного подмножества X.
Определение 3. Транзитивная функциональная зависимость
Функциональная зависимость R.X (r) R.Y называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости R.X (r) R.Z и R.Z (r) R.Y и отсутствует функциональная зависимость R.Z --> R.X. (При отсутствии последнего требования мы имели бы «неинтересные» транзитивные зависимости в любом отношении, обладающем несколькими ключами.)
Определение 4. Неключевой атрибут
Неключевым атрибутом называется любой атрибут отношения, не входящий в состав первичного ключа (в частности, первичного).
Определение 5. Взаимно независимые атрибуты
Два или более атрибута взаимно независимы, если ни один из этих атрибутов не является функционально зависимым от других.
3.1.1 Вторая нормальная форма
Рассмотрим следующий пример схемы отношения: продолжение
--PAGE_BREAK--
СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ (СОТР_НОМЕР, СОТР_ЗАРП, ОТД_НОМЕР, ПРО_НОМЕР, СОТР_ЗАДАН)
Первичный ключ:
СОТР_НОМЕР, ПРО_НОМЕР
Функциональные зависимости:
СОТР_НОМЕР (r) СОТР_ЗАРП
СОТР_НОМЕР (r) ОТД_НОМЕР
ОТД_НОМЕР (r) СОТР_ЗАРП
СОТР_НОМЕР, ПРО_НОМЕР (r) СОТР_ЗАДАН
Как видно, хотя первичным ключом является составной атрибут СОТР_НОМЕР, ПРО_НОМЕР, атрибуты СОТР_ЗАРП и ОТД_НОМЕР функционально зависят от части первичного ключа, атрибута СОТР_НОМЕР. В результате мы не сможем вставить в отношение СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ кортеж, описывающий сотрудника, который еще не выполняет никакого проекта (первичный ключ не может содержать неопределенное значение). При удалении кортежа мы не только разрушаем связь данного сотрудника с данным проектом, но утрачиваем информацию о том, что он работает в некотором отделе. При переводе сотрудника в другой отдел мы будем вынуждены модифицировать все кортежи, описывающие этого сотрудника, или получим несогласованный результат. Такие неприятные явления называются аномалиями схемы отношения. Они устраняются путем нормализации.
Определение 6. Вторая нормальная форма (в этом определении предполагается, что единственным ключом отношения является первичный ключ)
Отношение R находится во второй нормальной форме (2NF) в том и только в том случае, когда находится в 1NF, и каждый неключевой атрибут полностью зависит от первичного ключа.
Можно произвести следующую декомпозицию отношения СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ в два отношения СОТРУДНИКИ-ОТДЕЛЫ и СОТРУДНИКИ-ПРОЕКТЫ:
СОТРУДНИКИ-ОТДЕЛЫ (СОТР_НОМЕР, СОТР_ЗАРП, ОТД_НОМЕР)
Первичный ключ: СОТР_НОМЕР
Функциональные зависимости:
СОТР_НОМЕР (r) СОТР_ЗАРП
СОТР_НОМЕР (r) ОТД_НОМЕР
ОТД_НОМЕР (r) СОТР_ЗАРП
СОТРУДНИКИ-ПРОЕКТЫ (СОТР_НОМЕР, ПРО_НОМЕР, СОТР_ЗАДАН)
Первичный ключ: СОТР_НОМЕР, ПРО_НОМЕР
Функциональные зависимости:
СОТР_НОМЕР, ПРО_НОМЕР (r) CОТР_ЗАДАН
Каждое из этих двух отношений находится в 2NF, и в них устранены отмеченные выше аномалии (легко проверить, что все указанные операции выполняются без проблем).
Если допустить наличие нескольких ключей, то определение 6 примет следующий вид:
Определение 6~
Отношение R находится во второй нормальной форме (2NF) в том и только в том случае, когда оно находится в 1NF, и каждый неключевой атрибут полностью зависит от каждого ключа R.
Здесь и далее мы не будем приводить примеры для отношений с несколькими ключами. Они слишком громоздки и относятся к ситуациям, редко встречающимся на практике.
3.1.2 Третья нормальная форма
Рассмотрим еще раз отношение СОТРУДНИКИ-ОТДЕЛЫ, находящееся в 2NF. Заметим, что функциональная зависимость СОТР_НОМЕР (r) СОТР_ЗАРП является транзитивной; она является следствием функциональных зависимостей СОТР_НОМЕР (r) ОТД_НОМЕР и ОТД_НОМЕР (r) СОТР_ЗАРП. Другими словами, заработная плата сотрудника на самом деле является характеристикой не сотрудника, а отдела, в котором он работает (это не очень естественное предположение, но достаточное для примера).
В результате мы не сможем занести в базу данных информацию, характеризующую заработную плату отдела, до тех пор, пока в этом отделе не появится хотя бы один сотрудник (первичный ключ не может содержать неопределенное значение). При удалении кортежа, описывающего последнего сотрудника данного отдела, мы лишимся информации о заработной плате отдела. Чтобы согласованным образом изменить заработную плату отдела, мы будем вынуждены предварительно найти все кортежи, описывающие сотрудников этого отдела. Т.е. в отношении СОТРУДИКИ-ОТДЕЛЫ по-прежнему существуют аномалии. Их можно устранить путем дальнейшей нормализации.
Определение 7. Третья нормальная форма. (Снова определение дается в предположении существования единственного ключа.)
Отношение R находится в третьей нормальной форме (3NF) в том и только в том случае, если находится в 2NF и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Можно произвести декомпозицию отношения СОТРУДНИКИ-ОТДЕЛЫ в два отношения СОТРУДНИКИ и ОТДЕЛЫ:
СОТРУДНИКИ (СОТР_НОМЕР, ОТД_НОМЕР)
Первичный ключ: СОТР_НОМЕР
Функциональные зависимости: СОТР_НОМЕР (r) ОТД_НОМЕР
ОТДЕЛЫ (ОТД_НОМЕР, СОТР_ЗАРП)
Первичный ключ: ОТД_НОМЕР
Функциональные зависимости: ОТД_НОМЕР (r) СОТР_ЗАРП
Каждое из этих двух отношений находится в 3NF и свободно от отмеченных аномалий.
Если отказаться от того ограничения, что отношение обладает единственным ключом, то определение 3NF примет следующую форму:
Определение 7~
Отношение R находится в третьей нормальной форме (3NF) в том и только в том случае, если находится в 1NF, и каждый неключевой атрибут не является транзитивно зависимым от какого-либо ключа R.
На практике третья нормальная форма схем отношений достаточна в большинстве случаев, и приведением к третьей нормальной форме процесс проектирования реляционной базы данных обычно заканчивается. Однако иногда полезно продолжить процесс нормализации.
3.1.3 Нормальная форма Бойса-Кодда
Рассмотрим следующий пример схемы отношения:
СОТРУДНИКИ-ПРОЕКТЫ (СОТР_НОМЕР, СОТР_ИМЯ, ПРО_НОМЕР, СОТР_ЗАДАН)
Возможные ключи: СОТР_НОМЕР, ПРО_НОМЕР СОТР_ИМЯ, ПРО_НОМЕР
Функциональные зависимости:
СОТР_НОМЕР (r) CОТР_ИМЯ
СОТР_НОМЕР (r) ПРО_НОМЕР
СОТР_ИМЯ (r) CОТР_НОМЕР
СОТР_ИМЯ (r) ПРО_НОМЕР
СОТР_НОМЕР, ПРО_НОМЕР (r) CОТР_ЗАДАН
СОТР_ИМЯ, ПРО_НОМЕР (r) CОТР_ЗАДАН
В этом примере предполагается, что личность сотрудника полностью определяется как его номером, так и именем (это снова не очень жизненное предположение, но достаточное для примера).
В соответствии с определением 7~ отношение СОТРУДНИКИ-ПРОЕКТЫ находится в 3NF. Однако тот факт, что имеются функциональные зависимости атрибутов отношения от атрибута, являющегося частью первичного ключа, приводит к аномалиям. Например, для того, чтобы изменить имя сотрудника с данным номером согласованным образом, нам потребуется модифицировать все кортежи, включающие его номер.
Определение 8. Детерминант
Детерминант — любой атрибут, от которого полностью функционально зависит некоторый другой атрибут. продолжение
--PAGE_BREAK--
Определение 9. Нормальная форма Бойса-Кодда
Отношение R находится в нормальной форме Бойса-Кодда (BCNF) в том и только в том случае, если каждый детерминант является возможным ключом.
Очевидно, что это требование не выполнено для отношения СОТРУДНИКИ-ПРОЕКТЫ. Можно произвести его декомпозицию к отношениям СОТРУДНИКИ и СОТРУДНИКИ-ПРОЕКТЫ:
СОТРУДНИКИ (СОТР_НОМЕР, СОТР_ИМЯ)
Возможные ключи: СОТР_НОМЕР, СОТР_ИМЯ
Функциональные зависимости:
СОТР_НОМЕР (r) CОТР_ИМЯ
СОТР_ИМЯ (r) СОТР_НОМЕР
СОТРУДНИКИ-ПРОЕКТЫ (СОТР_НОМЕР, ПРО_НОМЕР, СОТР_ЗАДАН)
Возможный ключ: СОТР_НОМЕР, ПРО_НОМЕР
Функциональные зависимости:
СОТР_НОМЕР, ПРО_НОМЕР (r) CОТР_ЗАДАН
Возможна альтернативная декомпозиция, если выбрать за основу СОТР_ИМЯ. Получаемые отношения СОТРУДНИКИ и СОТРУДНИКИ-ПРОЕКТЫ находятся в BCNF, и им не свойственны отмеченные аномалии.
3.1.4 Четвертая нормальная форма
Рассмотрим пример следующей схемы отношения:
ПРОЕКТЫ (ПРО_НОМЕР, ПРО_СОТР, ПРО_ЗАДАН)
Отношение ПРОЕКТЫ содержит номера проектов, для каждого проекта список сотрудников, которые могут выполнять проект, и список заданий, предусматриваемых проектом. Сотрудники могут участвовать в нескольких проектах, и разные проекты могут включать одинаковые задания.
Каждый кортеж отношения связывает некоторый проект с сотрудником, участвующим в этом проекте, и заданием, который сотрудник выполняет в рамках данного проекта (я предполагаю, что любой сотрудник, участвующий в проекте, выполняет все задания, предусмотренные этим проектом). По причине сформулированных выше условий единственным возможным ключем отношения является составной атрибут ПРО_НОМЕР, ПРО_СОТР, ПРО_ЗАДАН, и нет никаких других детерминантов. Следовательно, отношение ПРОЕКТЫ находится в BCNF. Но при этом оно обладает недостатками: если, например, некоторый сотрудник присоединяется к данному проекту, необходимо вставить в отношение ПРОЕКТЫ столько кортежей, сколько заданий в нем предусмотрено.
Определение 10. Многозначные зависимости
В отношении R (A, B, C) существует многозначная зависимость R.A (r) (r) R.B в том и только в том случае, если множество значений B, соответствующее паре значений A и C, зависит только от A и не зависит от С. В отношении ПРОЕКТЫ существуют следующие две многозначные зависимости:
ПРО_НОМЕР (r) (r) ПРО_СОТР и ПРО_НОМЕР (r) (r) ПРО_ЗАДАН
Легко показать, что в общем случае в отношении R (A, B, C) существует многозначная зависимость R.A (r) (r) R.B в том и только в том случае, когда существует многозначная зависимость R.A (r) (r) R.C.
Дальнейшая нормализация отношений, подобных отношению ПРОЕКТЫ, основывается на следующей теореме:
Теорема Фейджина: отношение R (A, B, C) можно спроецировать без потерь в отношения R1 (A, B) и R2 (A, C) в том и только в том случае, когда существует MVD A (r) (r) B | C.
Под проецированием без потерь понимается такой способ декомпозиции отношения, при котором исходное отношение полностью и без избыточности восстанавливается путем естественного соединения полученных отношений.
Определение 11. Четвертая нормальная форма
Отношение R находится в четвертой нормальной форме (4NF) в том и только в том случае, если в случае существования многозначной зависимости A (r) (r) B все остальные атрибуты R функционально зависят от A.
В нашем примере можно произвести декомпозицию отношения ПРОЕКТЫ в два отношения ПРОЕКТЫ-СОТРУДНИКИ и ПРОЕКТЫ-ЗАДАНИЯ:
ПРОЕКТЫ-СОТРУДНИКИ (ПРО_НОМЕР, ПРО_СОТР)
ПРОЕКТЫ-ЗАДАНИЯ (ПРО_НОМЕР, ПРО_ЗАДАН)
Оба эти отношения находятся в 4NF и свободны от отмеченных аномалий.
3.1.5 Пятая нормальная форма
Во всех рассмотренных до этого момента нормализациях производилась декомпозиция одного отношения в два. Иногда это сделать не удается, но возможна декомпозиция в большее число отношений, каждое из которых обладает лучшими свойствами.
Рассмотрим, например, отношение
СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ (СОТР_НОМЕР, ОТД_НОМЕР, ПРО_НОМЕР)
Предположим, что один и тот же сотрудник может работать в нескольких отделах и работать в каждом отделе над несколькими проектами. Первичным ключем этого отношения является полная совокупность его атрибутов, отсутствуют функциональные и многозначные зависимости.
Поэтому отношение находится в 4NF. Однако в нем могут существовать аномалии, которые можно устранить путем декомпозиции в три отношения.
Определение 12. Зависимость соединения
Отношение R (X, Y, ..., Z) удовлетворяет зависимости соединения * (X, Y, ..., Z) в том и только в том случае, когда R восстанавливается без потерь путем соединения своих проекций на X, Y, ..., Z.
Определение 13. Пятая нормальная форма
Отношение R находится в пятой нормальной форме (нормальной форме проекции-соединения — PJ/NF) в том и только в том случае, когда любая зависимость соединения в R следует из существования некоторого возможного ключа в R.
Введем следующие имена составных атрибутов:
СО = {СОТР_НОМЕР, ОТД_НОМЕР}
СП = {СОТР_НОМЕР, ПРО_НОМЕР}
ОП = {ОТД_НОМЕР, ПРО_НОМЕР}
Предположим, что в отношении СОТРУДНИКИ-ОТДЕЛЫ-ПРОЕКТЫ существует зависимость соединения: * (СО, СП, ОП)
На примерах легко показать, что при вставках и удалениях кортежей могут возникнуть проблемы. Их можно устранить путем декомпозиции исходного отношения в три новых отношения:
СОТРУДНИКИ-ОТДЕЛЫ (СОТР_НОМЕР, ОТД_НОМЕР)
СОТРУДНИКИ-ПРОЕКТЫ (СОТР_НОМЕР, ПРО_НОМЕР)
ОТДЕЛЫ-ПРОЕКТЫ (ОТД_НОМЕР, ПРО_НОМЕР)
Пятая нормальная форма — это последняя нормальная форма, которую можно получить путем декомпозиции. Ее условия достаточно нетривиальны, и на практике 5NF не используется. Заметим, что зависимость соединения является обобщением как многозначной зависимости, так и функциональной зависимости.
3.2 Семантическое моделирование данных, er-диаграммы
Широкое распространение реляционных СУБД и их использование в самых разнообразных приложениях показывает, что реляционная модель данных достаточна для моделирования предметных областей. Однако проектирование реляционной базы данных в терминах отношений на основе кратко рассмотренного механизма нормализации часто представляет собой очень сложный и неудобный для проектировщика процесс.
При этом проявляется ограниченность реляционной модели данных в следующих аспектах:
Модель не предоставляет достаточных средств для представления смысла данных. Семантика реальной предметной области должна независимым от модели способом представляться в голове проектировщика. В частности, это относится к упоминавшейся нами проблеме представления ограничений целостности.
Для многих приложений трудно моделировать предметную область на основе плоских таблиц. В ряде случаев на самой начальной стадии проектирования проектировщику приходится производить насилие над собой, чтобы описать предметную область в виде одной (возможно, даже ненормализованной) таблицы. продолжение
--PAGE_BREAK--
Хотя весь процесс проектирования происходит на основе учета зависимостей, реляционная модель не предоставляет каких-либо средств для представления этих зависимостей.
Несмотря на то, что процесс проектирования начинается с выделения некоторых существенных для приложения объектов предметной области («сущностей») и выявления связей между этими сущностями, реляционная модель данных не предлагает какого-либо аппарата для разделения сущностей и связей.
3.2.1 Семантические модели данных
Потребности проектировщиков баз данных в более удобных и мощных средствах моделирования предметной области вызвали к жизни направление семантических моделей данных. При том, что любая развитая семантическая модель данных, как и реляционная модель, включает структурную, манипуляционную и целостную части, главным назначением семантических моделей является обеспечение возможности выражения семантики данных.
Прежде, чем мы коротко рассмотрим особенности одной из распространенных семантических моделей, остановимся на их возможных применениях.
Наиболее часто на практике семантическое моделирование используется на первой стадии проектирования базы данных. При этом в терминах семантической модели производится концептуальная схема базы данных, которая затем вручную концептуальная схема преобразуется к реляционной (или какой-либо другой) схеме. Этот процесс выполняется под управлением методик, в которых достаточно четко оговорены все этапы такого преобразования.
Менее часто реализуется автоматизированная компиляция концептуальной схемы в реляционную. При этом известны два подхода: на основе явного представления концептуальной схемы как исходной информации для компилятора и построения интегрированных систем проектирования с автоматизированным созданием концептуальной схемы на основе интервью с экспертами предметной области. И в том, и в другом случае в результате производится реляционная схема базы данных в третьей нормальной форме (более точно следовало бы сказать, что автору неизвестны системы, обеспечивающие более высокий уровень нормализации).
Наконец, третья возможность, которая еще не вышла (или только выходит) за пределы исследовательских и экспериментальных проектов, — это работа с базой данных в семантической модели, т.е. СУБД, основанные на семантических моделях данных. При этом снова рассматриваются два варианта: обеспечение пользовательского интерфейса на основе семантической модели данных с автоматическим отображением конструкций в реляционную модель данных (это задача примерно такого же уровня сложности, как автоматическая компиляция концептуальной схемы базы данных в реляционную схему) и прямая реализация СУБД, основанная на какой-либо семантической модели данных. Наиболее близко ко второму подходу находятся современные объектно-ориентированные СУБД, модели данных которых по многим параметрам близки к семантическим моделям (хотя в некоторых аспектах они более мощны, а в некоторых — более слабы).
3.2.2 Основные понятия модели Entity-Relationship (Сущность-Связи)
Далее мы кратко рассмотрим некоторые черты одной из наиболее популярных семантических моделей данных — модель «Сущность-Связи» (часто ее называют кратко ER-моделью).
На использовании разновидностей ER-модели основано большинство современных подходов к проектированию баз данных (главным образом, реляционных). Модель была предложена Ченом (Chen) в 1976 г. Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. В связи с наглядностью представления концептуальных схем баз данных ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных. Среди множества разновидностей ER-моделей одна из наиболее развитых применяется в системе CASE фирмы ORACLE. Ее мы и рассмотрим. Более точно, мы сосредоточимся на структурной части этой модели.
Основными понятиями ER-модели являются сущность, связь и атрибут.
Сущность — это реальный или представляемый объект, информация о котором должна сохраняться и быть доступна. В диаграммах ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности. При этом имя сущности — это имя типа, а не некоторого конкретного экземпляра этого типа. Для большей выразительности и лучшего понимания имя сущности может сопровождаться примерами конкретных объектов этого типа.
Ниже изображена сущность АЭРОПОРТ с примерными объектами Шереметьево и Хитроу:
/>
Каждый экземпляр сущности должен быть отличим от любого другого экземпляра той же сущности (это требование в некотором роде аналогично требованию отсутствия кортежей-дубликатов в реляционных таблицах).
Связь — это графически изображаемая ассоциация, устанавливаемая между двумя сущностями. Эта ассоциация всегда является бинарной и может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь). В любой связи выделяются два конца (в соответствии с существующей парой связываемых сущностей), на каждом из которых указывается имя конца связи, степень конца связи (сколько экземпляров данной сущности связывается), обязательность связи (т.е. любой ли экземпляр данной сущности должен участвовать в данной связи).
Связь представляется в виде линии, связывающей две сущности или ведущей от сущности к ней же самой. При это в месте «стыковки» связи с сущностью используются трехточечный вход в прямоугольник сущности, если для этой сущности в связи могут использоваться много (many) экземпляров сущности, и одноточечный вход, если в связи может участвовать только один экземпляр сущности. Обязательный конец связи изображается сплошной линией, а необязательный — прерывистой линией.
Как и сущность, связь — это типовое понятие, все экземпляры обеих пар связываемых сущностей подчиняются правилам связывания.
В изображенном ниже примере связь между сущностями БИЛЕТ и ПАССАЖИР связывает билеты и пассажиров. При том конец сущности с именем «для» позволяет связывать с одним пассажиром более одного билета, причем каждый билет должен быть связан с каким-либо пассажиром. Конец сущности с именем «имеет» означает, что каждый билет может принадлежать только одному пассажиру, причем пассажир не обязан иметь хотя бы один билет.
/>
Лаконичной устной трактовкой изображенной диаграммы является следующая:
Каждый БИЛЕТ предназначен для одного и только одного ПАССАЖИРА;
Каждый ПАССАЖИР может иметь один или более БИЛЕТОВ.
На следующем примере изображена рекурсивная связь, связывающая сущность ЧЕЛОВЕК с ней же самой. Конец связи с именем «сын» определяет тот факт, что у одного отца может быть более чем один сын. Конец связи с именем «отец» означает, что не у каждого человека могут быть сыновья.
/>
Лаконичной устной трактовкой изображенной диаграммы является следующая:
Каждый ЧЕЛОВЕК является сыном одного и только одного ЧЕЛОВЕКА;
Каждый ЧЕЛОВЕК может являться отцом для одного или более ЛЮДЕЙ («ЧЕЛОВЕКОВ»).
Атрибутом сущности является любая деталь, которая служит для уточнения, идентификации, классификации, числовой характеристики или выражения состояния сущности. Имена атрибутов заносятся в прямоугольник, изображающий сущность, под именем сущности и изображаются малыми буквами, возможно, с примерами.
Пример:
Уникальным идентификатором сущности является атрибут, комбинация атрибутов, комбинация связей или комбинация связей и атрибутов, уникально отличающая любой экземпляр сущности от других экземпляров сущности того же типа.
3.2.3 Нормальные формы ER-схем
Как и в реляционных схемах баз данных, в ER-схемах вводится понятие нормальных форм, причем их смысл очень близко соответствует смыслу реляционных нормальных форм. Заметим, что формулировки нормальных форм ER-схем делают более понятным смысл нормализации реляционных схем. Мы приведем только очень краткие и неформальные определения трех первых нормальных форм.
В первой нормальной форме ER-схемы устраняются повторяющиеся атрибуты или группы атрибутов, т.е. производится выявление неявных сущностей, «замаскированных» под атрибуты.
Во второй нормальной форме устраняются атрибуты, зависящие только от части уникального идентификатора. Эта часть уникального идентификатора определяет отдельную сущность.
В третьей нормальной форме устраняются атрибуты, зависящие от атрибутов, не входящих в уникальный идентификатор. Эти атрибуты являются основой отдельной сущности.
3.2.4 Более сложные элементы ER-модели
Мы остановились только на самых основных и наиболее очевидных понятиях ER-модели данных. К числу более сложных элементов модели относятся следующие:
Подтипы и супертипы сущностей. Как в языках программирования с развитыми типовыми системами (например, в языках объектно-ориентированного программирования), вводится возможность наследования типа сущности, исходя из одного или нескольких супертипов. Интересные нюансы связаны с необходимостью графического изображения этого механизма.
Связи «many-to-many». Иногда бывает необходимо связывать сущности таким образом, что с обоих концов связи могут присутствовать несколько экземпляров сущности (например, все члены кооператива сообща владеют имуществом кооператива). Для этого вводится разновидность связи «многие-со-многими».
Уточняемые степени связи. Иногда бывает полезно определить возможное количество экземпляров сущности, участвующих в данной связи (например, служащему разрешается участвовать не более, чем в трех проектах одновременно). Для выражения этого семантического ограничения разрешается указывать на конце связи ее максимальную или обязательную степень. продолжение
--PAGE_BREAK--
Каскадные удаления экземпляров сущностей. Некоторые связи бывают настолько сильными (конечно, в случае связи «один-ко-многим»), что при удалении опорного экземпляра сущности (соответствующего концу связи «один») нужно удалить и все экземпляры сущности, соответствующие концу связи «многие». Соответствующее требование «каскадного удаления» можно сформулировать при определении сущности.
Домены. Как и в случае реляционной модели данных бывает полезна возможность определения потенциально допустимого множества значений атрибута сущности (домена).
Эти и другие более сложные элементы модели данных «Сущность-Связи» делают ее существенно более мощной, но одновременно несколько усложняют ее использование. Конечно, при реальном использовании ER-диаграмм для проектирования баз данных необходимо ознакомиться со всеми возможностями.
Сущность может быть расщеплена на два или более взаимно исключающих подтипа, каждый из которых включает общие атрибуты и/или связи. Эти общие атрибуты и/или связи явно определяются один раз на более высоком уровне. В подтипах могут определяться собственные атрибуты и/или связи. В принципе подтипизация может продолжаться на более низких уровнях, но опыт показывает, что в большинстве случаев оказывается достаточно двух-трех уровней.
Сущность, на основе которой определяются подтипы, называется супертипом. Подтипы должны образовывать полное множество, т.е. любой экземпляр супертипа должен относиться к некоторому подтипу. Иногда для полноты приходится определять дополнительный подтип ПРОЧИЕ.
Пример: Супертип ЛЕТАТЕЛЬНЫЙ АППАРАТ
/>
Как полагается это читать? От супертипа: ЛЕТАТЕЛЬНЫЙ АППАРАТ, который должен быть АЭРОПЛАНОМ, ВЕРТОЛЕТОМ, ПТИЦЕЛЕТОМ или ДРУГИМ ЛЕТАТЕЛЬНЫМ АППАРАТОМ. От подтипа: ВЕРТОЛЕТ, который относится к типу ЛЕТАТЕЛЬНОГО АППАРАТА. От подтипа, который является одновременно супертипа: АЭРОПЛАН, который относится к типу ЛЕТАТЕЛЬНОГО АППАРАТА и должен быть ПЛАНЕРОМ или МОТОРНЫМ САМОЛЕТОМ.
Иногда удобно иметь два или более разных разбиения сущности на подтипы. Например, сущность ЧЕЛОВЕК может быть разбита на подтипы по профессиональному признаку (ПРОГРАММИСТ, ДОЯРКА и т.д.), а может — по половому признаку (МУЖЧИНА, ЖЕНЩИНА).
3.2.5 Получение реляционной схемы из ER-схемы
Шаг 1. Каждая простая сущность превращается в таблицу. Простая сущность — сущность, не являющаяся подтипом и не имеющая подтипов. Имя сущности становится именем таблицы.
Шаг 2. Каждый атрибут становится возможным столбцом с тем же именем; может выбираться более точный формат. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, — не могут.
Шаг 3. Компоненты уникального идентификатора сущности превращаются в первичный ключ таблицы. Если имеется несколько возможных уникальных идентификатора, выбирается наиболее используемый. Если в состав уникального идентификатора входят связи, к числу столбцов первичного ключа добавляется копия уникального идентификатора сущности, находящейся на дальнем конце связи (этот процесс может продолжаться рекурсивно). Для именования этих столбцов используются имена концов связей и/или имена сущностей.
Шаг 4. Связи многие-к-одному (и один-к-одному) становятся внешними ключами. Т.е. делается копия уникального идентификатора с конца связи «один», и соответствующие столбцы составляют внешний ключ. Необязательные связи соответствуют столбцам, допускающим неопределенные значения; обязательные связи — столбцам, не допускающим неопределенные значения.
Шаг 5. Индексы создаются для первичного ключа (уникальный индекс), внешних ключей и тех атрибутов, на которых предполагается в основном базировать запросы.
Шаг 6. Если в концептуальной схеме присутствовали подтипы, то возможны два способа:
все подтипы в одной таблице (а)
для каждого подтипа — отдельная таблица (б)
При применении способа (а) таблица создается для наиболее внешнего супертипа, а для подтипов могут создаваться представления. В таблицу добавляется по крайней мере один столбец, содержащий код ТИПА; он становится частью первичного ключа.
При использовании метода (б) для каждого подтипа первого уровня (для более нижних — представления) супертип воссоздается с помощью представления UNION (из всех таблиц подтипов выбираются общие столбцы — столбцы супертипа).
Все в одной таблице
Таблица — на подтип
Преимущества
Все хранится вместе
Легкий доступ к супертипу и подтипам
Требуется меньше таблиц
Более ясны правила подтипов
Программы работают только с нужными таблицами
Недостатки
Слишком общее решение
Требуется дополнительная логика работы с разными наборами столбцов и разными ограничениями
Потенциальное узкое место (в связи с блокировками)
Столбцы подтипов должны быть необязательными
В некоторых СУБД для хранения неопределенных значений требуется дополнительная память
Слишком много таблиц
Смущающие столбцы в представлении UNION
Потенциальная потеря производительности при работе через UNION
Над супертипом невозможны модификации
Шаг 7. Имеется два способа работы при наличии исключающих связей:
общий домен (а)
явные внешние ключи (б)
Если остающиеся внешние ключи все в одном домене, т.е. имеют общий формат (способ (а)), то создаются два столбца: идентификатор связи и идентификатор сущности. Столбец идентификатора связи используется для различения связей, покрываемых дугой исключения. Столбец идентификатора сущности используется для хранения значений уникального идентификатора сущности на дальнем конце соответствующей связи.
Если результирующие внешние ключи не относятся к одному домену, то для каждой связи, покрываемой дугой исключения, создаются явные столбцы внешних ключей; все эти столбцы могут содержать неопределенные значения.
Общий домен
Явные внешние ключи
Преимущества
Нужно только два столбца
Условия соединения — явные
Недостатки
Оба дополнительных атрибута должны использоваться в соединениях
Слишком много столбцов
Альтернативные модели сущностей:
Вариант 1 (плохой)
/>
Вариант 2 (существенно лучше, если подтипы действительно существуют)
/>
Вариант 3 (годится при наличии осмысленного супертипа D).
/>
ВЫВОДЫ
В данной бакалаврской работе было рассмотрено информационно-справочную подсистему конструкторско-технологического назначения «Дискретные элементы».
В первую очередь было рассмотрено основные параметры и характеристики дискретных элементов. Было описано их классификацию, а также условные графические обозначения для удобства создания и добавления, а также просмотра информации по запросам пользователя информационно-справочной системой.
Рассмотрели внутренне исполнение логических элементов, так как для использования справочной системы необходимо знать внутреннее строение таких элементов, для правильного подбора характеристик сигналов и нагрузочных мощностей.
Выполнили обзор построения схем на этих элементах, для представления их назначениях, функциях, а также правильности подключения и работы. Перечень внесенных в дипломный проект схем поможет разобраться в необходимости такой системы.
Построили информационно-справочную систему которая представляет собой базу данных выполненную на языке программирования Visual C++, версия 6.
ПЕРЕЧЕНЬ ССЫЛОК
1. Семенов Б.Ю. Силовая электроника для любителей и профессионалов- М.: СОЛОН-Р, 2001. — 327с.
2. Опадчий Ю.Ф., Глудкин О.П., Гуров А.И. Аналоговая и цифровая электроника — М.: Горячая линия — Телеком, 2000. — 768 с.
3. Браммер Ю.А., Пащук И.Н. Импульсные и цифровые устройства — М.: Высшая школа, 1999. — 351с.
4. Хоровиц П., Хилл У. Искусство схемотехники: в 2-х т. — М.: Мир, 1983. т.1. 598с.
5. Скаржепа В.А., Луценко А.И. Электроника и микросхемотехника. Электронные устройства информационной автоматики: Учебник /Под общ. ред. А.А. Краснопрошиной. – Киев: Выща шк., 1989. – Ч.1. – 431 с.
6. Гусев В.Г., Гусев Ю.М. Электроника: Учеб. пособие. – М.: Высш. шк. 1991. – 622 с.
7. Алексенко А.Г., Шагурин И.И. Микросхемотехника: Учеб. пособие. – М.: Радио и связь, 1990. – 496 с.
8. Угрюмов Е.П. Проектирование элементов и узлов ЭВМ: Учеб. пособие. – М.: Высш. шк., 1987. – 318 с.
9. Пряшников В.А. Электроника: Курс лекций. – СПб.: КОРОНА-принт, 1998. – 400 с.
10. Букреев И.Н., Горячев В.И., Мансуров Б.М. Микроэлектронные схемы цифровых устройств. – М.: Радио и связь, 1990. – 416 с.
11. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Справочник. – М.: Радио и связь, 1990. – 304 с.
12. Потемкин И.С. Функциональные узлы цифровой автоматики. – М.: Энергоатомиздат, 1988. – 320 с.
13. Зельдин Е.А. Цифровые интегральные микросхемы в информационно-измерительной аппаратуре. – Л.: Энергоатомиздат, 1986. – 280 с.
14. Аналоговые и цифровые интегральные схемы: Справочное пособие /Под ред. С.В. Якубовского. – М.: Радио и связь, 1985. – 432 с.
15. Хоровиц П., Хилл У. Искусство схемотехники: В 2 т. – М.: Мир, 1983.-Т.2. 12. Белоус А.И., Блинков О.Е., Силин А. В. Биполярные микросхемы для интерфейсов систем автоматического управления. -Л.: Машиностроение, 1990.