ВЫ СТУДЕНТ ИДК (Институт Деловой Карьеры) и ОБУЧАЕТЕСЬ ДИСТАНЦИОННО?
На ЭТОМ сайте, Вы найдете ответы на вопросы тестов ИДК.
Регистрируйтесь, пополняйте баланс и без проблем сдавайте тесты ИДК.
ПРЕИМУЩЕСТВА ПОЛЬЗОВАНИЯ САЙТОМ ЗДЕСЬ
Как посмотреть ответ ИНСТРУКЦИЯ
У ВАС ДРУГОЙ ВУЗ? НЕ БЕДА…..
ПОСМОТРИТЕ ДРУГИЕ НАШИ САЙТЫ С ОТВЕТАМИ — СПИСОК
Если в списке нет Вашего вуза, вернитесь сюда и купите найденный Вами вопрос, иногда предметы полностью совпадают в разных вузах.
Базы данных
Целостность данных представляет собой логическую непротиворечивость данных одной и другой таблицы.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 64
Подробнее…
Формы представляют собой средства, с помощью которых можно осуществить первоначальный ввод данных в таблицу, просмотр и редактирование записей в первичном для пользователя виде, напоминающем обычный документ, при этом выполнение многих операций упрощается, а присутствие на экране только нужной информации помогает не отвлекаться от сути операции.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 43
Подробнее…
Физический метод упорядочивания данных (сортировка) — порядок следования записей при сортировке становится таким, как требует условие сортировки. Данный порядок становится реальным в большинстве СУБД при сортировке создается новая таблица.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
Структурированные типы данных предназначены для конструирования из конечного набора базисных типов более сложных структур.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Проекция (вертикальное подмножество) — на выходе операции используют одно отношение. В результирующем отношении картежи-дубликаты устраняются.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 37
Подробнее…
При работе в режиме файл-сервер сетевое программное обеспечение скрывает от пользователей особенности конкретной сети, что приводит к тому, что пользователь работает с другим компьютером как с дополнительным диском (каталогом).
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Предметная область — это часть реального мира, подлежащая изучению организации управления и, в конечном счете, автоматизации
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 28
Подробнее…
Пошаговый обратимый процесс разложения исходных отношений БД на более мелкие и простые отношения называется нормализацией отношений.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
Поиск наиболее быстро происходит для поля имеющего индекс, так как фактически сначала ищется соответствующий ключ в индексе, а затем осуществляется переход к соответствующей записи. Самый медленный вид поиска — это поиск на совпадение с любым произвольным полем (без индекса). Данный поиск происходит медленно, так как осуществляется последовательно, начиная с первой записи.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 46
Подробнее…
Подсхема — это описание данных на внешнем уровне представления. Фактически эта часть схемы чувствительная для одного или нескольких приложений. В такой схеме — одна внешняя запись может представляться из нескольких записей концептуального уровня. В записях могут присутствовать виртуальные поля, то есть те, которые фактически не хранятся в БД, а вычисляются алгоритмически.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 39
Подробнее…
Отношения, у которого все атрибуты простые, называются приведенной к первой нормальной форме (1НФ).
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Отношения реляционной БД содержат структурную и семантическую информацию. Структурная задается схемой отношений, а семантическая отражает функциональные зависимости между атрибутами.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Отношения находятся в 2НФ, если каждый ключевой атрибут функциональнополно зависит от составного ключа.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
Отличие иерархической модели данных в том, что БД может иметь только древовидную структуру.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
Основной предпосылкой современного подхода в обработке информации является относительная стабильность данных.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 33
Подробнее…
Организация данных СУБД сетевого типа определяется в терминах элемент, агрегат, запись или группа, групповые отношения, база данных.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
Описание, при котором логические и физические уровни совмещены, называется схемой данных.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Описание структуры данных при решении прикладных задач не осуществляется с помощью универсальных языков программирования или языков-спецификаций, так как они представляют объект лишь с определенным уровнем адекватности.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 42
Подробнее…
Наименьшая единица структуры данных — это элемент данных.
Выберите один ответ:
Верно
Неверно
Отзыв
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 52
Подробнее…
Логическое упорядочивание данных в СУБД — упорядочивание таблицы происходит в соответствии с активным индексом. В одной таблице можно создать несколько индексов по различным признакам и, делая активным определенный индекс, можно менять признаки, по которым упорядочиваются таблицы. Количество создаваемых индексов точно соответствует количеству признаков, по которым надо упорядочивать.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Линейный список предназначен для создания сложных динамических структур, организованных с помощью ссылок в определенном порядке.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 37
Подробнее…
Инфологический уровень абстракции соответствует представлению о логической организации данных администратора БД. На данном уровне существует привязка к модели данных и средствам ее реализации.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
Глобальные промышленные серверы — это комплекс продуктов одной фирмы-производителя, решающей все потребности современного промышленного предприятия.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 45
Подробнее…
Вероятностный подход к процессу управления заключается в том, что при анализе управляемого процесса и построении его модели обязательно учитываются случайные факторы и АСУ проектируется с учетом адаптации их изменений.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 47
Подробнее…
В ER-диаграмме для каждого конца связи указывается имя, множественность и обязательность.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 39
Подробнее…
База данных — это совокупность взаимосвязанных данных, используемых группой пользователей и хранящаяся с регулируемой избыточностью. Хранимые данные не зависят от программ пользователя.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Атрибут, значение которого идентифицируют картежи, называется ключом.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Анализ — это стадия, в течение которой разрабатываются детальные модели предметной области, формируются точные требования к будущей программной системе и закладывается точная основа для перехода к проектированию.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 29
Подробнее…
Агрегат — именованная совокупность элементов или других агрегатов.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
ER-модель описывает совокупность важных объектов предметной области сущностей, их свойств (атрибутов) и отношений между объектами (связей).
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
CASE — автоматизированный инжениринг программных средств, то есть совокупность методик проектирования и сопровождения программных средств на всем их жизненном цикле, поддержанная взаимоувязанными средствами автоматизации.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
Язык программирования ___ представляет собой язык программирования релейных диаграмм.
Вписать ответ:
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 33
Подробнее…
Правильно ли выражение, что программы для решения определенных задач можно рассматривать как объединение структур данных и алгоритмов?
Вписать ответ:
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 37
Подробнее…
Можно ли сказать, что предметная область представляет собой множество фрагментов реального мира?
Вписать ответ:
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 39
Подробнее…
Экспертные системы — это наиболее распростронненый класс интеллектуальных систем, ориентированный на тиражирование опыта высококвалифицированных специалистов в областях, где качество принятия решений традиционно зависит от уровня экспертизы:
Выберите один ответ:
Наверно.
Верно;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 33
Подробнее…
Укажите стадии жизненного цикла ИС, которые поддерживаются современными технологиями разработки ИС:
Выберите один или несколько ответов:
Сопровождение
Проектирование
Организация
Реализация
Стратегическое планирование
Контроль
Анализ
Консалтинг
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 37
Подробнее…
Укажите способы фильтрации данных в Access:
Выберите один или несколько ответов:
По значению фильтр «Для» — Filter For
Фильтр по значению одного поля
Расширенный фильтр
Фильтр по выделенному фрагменту
Обычный фильтр по значению нескольких полей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 43
Подробнее…
Укажите способ создания таблицы базы данных в СУБД Access, предполагающий использование программы, которая предлагает выбрать поля из списка и содержит заготовки для различных видов таблиц.
Выберите один ответ:
конструктор (Design View);
импорт таблиц (Import Table);
мастер таблиц (Table Wizard);
связь с таблицами (Link Table).
режим таблицы (Datasheet View);
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 67
Подробнее…
Укажите правила чтения ER-диаграммы:
Выберите один или несколько ответов:
Если конец связи является не обязательным, то перед именем связи добавляется фраза «должен», «должен быть»
Если конец связи является обязательным, то перед именем связи добавляется фраза «должен», «должен быть»
Если конец связи является обязательным, то перед именем связи добавляется фраза «может», «может быть»
При чтении ER-диаграммы необходимо учитывать обязательность и множественность выбранного конца связи
ER-диаграмма читается с точки зрения выбранной сущности, отдельно для каждого конца связи, так показывается, как выбранная сущность связывается с другими сущностями ER-модели
Если конец связи является не обязательным, то перед именем связи добавляется фраза «может», «может быть»
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 65
Подробнее…
Укажите основные характеристики составления СУБД:
Выберите один или несколько ответов:
Мощность языковых средств
Пользовательские предпочтения
Целостность, безопасность, расширяемость
Операционная среда
Логическая и физическая организация данных
Возможности сервисных средств
Способы распределения данных
Область использования
Информация о разработчиках и опыте эксплуатации
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 43
Подробнее…
Существующие модели представления знаний можно свести к следующим четырем классам:
Выберите один или несколько ответов:
базы знаний;
формальные логические модели;
базы данных;
семантические сети;
фреймы;
экспертные системы;
продукционные модели;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
СУБД — это…
Выберите один ответ:
комплекс программ и языковых средств, предназначенных для создания, ведения и использования баз данных.
набор данных, относящихся к определенной предметной области.
специальные устройства для создания и обработки базы данных;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 29
Подробнее…
Структура хранения, при которой прикладные программы разрабатывались с учетом файлов данных и, при этом много информации неявным образом содержались в самих программах обработки файлов, имела недостатки:
Выберите один или несколько ответов:
Качество принимаемых решений было неудовлетворительным из-за отсутствия целостности данных
Ответы на идентичные запросы были одинаковыми
Разобщенность файлов
Требуемую информацию трудно было получить, так как необходимо знание языков программирования и организации файлов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 65
Подробнее…
Список вопросов для экспертной проверки сущности:
Выберите один или несколько ответов:
Имя сущности может быть представлено прилагательным в единственной числе
Согласуется ли каждая сущность с принципами нормализации
Являются ли подтипы непересекающимися множествами
Отражен ли смысл сущности в ее имени
Верно ли, что рассматриваемая сущность не является разновидностью другой сущности с упущенной рекурсивной связью
Определяет ли имя сущности тип и класс объектов, а не отдельный экземпляр
Если сущность имеет подтипы, то полностью ли их множество покрывает супертип — главную сущность
Является ли описание каждой сущности достаточно кратким и смысловым
Ключ сущности является минимальным
Ключ действительно идентифицирует каждый экземпляр сущности
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 59
Подробнее…
Создание БД начинается
Выберите один ответ:
С сортировки данных
С создания таблиц
С создания отчетов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
Сколько покалений в истории создания и развития робототехники можно выделить?
Выберите один ответ:
3;
4;
5.
2;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Система, ядром которой является база знаний или модель предметной области, описанная на языке сверхвысокого уровня, приближенного к естественному, называется:
Выберите один ответ:
Экспертной системой;
Интеллектуальной системой;
Языком представления знаний.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Реляционную модель данных называют также:
Выберите один ответ:
Моделью Бахмана
Моделью Кодда
Моделью П. Чена
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
Прочитайте ER-диаграмму:
Выберите один ответ:
каждый студент должен учиться в одной и более группах. С другой стороны — каждая группа может состоять из одного и более студентов.
каждый студент может учиться в одной и только одной группе. С другой стороны — каждая группа должна состоять из одного и более студентов.
каждый студент может учиться в одной и более группах. С другой стороны — каждая группа может состоять из одного и только одного студентов.
каждый студент должен учиться в одной и только одной группе. С другой стороны — каждая группа может состоять из одного и более студентов.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 44
Подробнее…
Процесс нормализации последовательно устраняет:
Выберите один или несколько ответов:
Зависимости ключей от неключевых атрибутов
Частичные зависимости неключевых атрибутов от ключа
Независимые многозначные зависимости (4НФ, 5НФ)
Транзитивные зависимости неключевых атрибутов от ключа
Транзитивные зависимости ключей от неключевых атрибутов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
При связывании таблиц в Access необходимо следовать ряду правил:
Выберите один или несколько ответов:
Обязательно соответствие типов полей, которые связываются
Для связи можно использовать типы «один-ко-многом», «один-к-одному», «многие-ко-многим»
Соответствие типов полей не обязательно
Для связи можно использовать типы «один-ко-многим», «один-к-одному»
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
По каким критериям оцениваются точность работы программы экспертной системы и ее полезность?
Выберите один или несколько ответов:
Критерии коллектива разработчиков (эффективность реализации, производительность, время отклика, дизайн, широта охвата предметной области и др.).
Критерии соответствия системы требованиям безопастности.
Критерии экономичности (соотношение затрат на разработку системы и полученного эффекта)
Критерии приглашенных экспертов (оценка решений, предлагаемых системой, сравнение ее с собственными решениями, оценка подсистемы объяснений и др.)
Критерии пользователей (понятность и «прозрачность» работы системы, удобство интерфейсов и др.)
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
По каким категориям классифицируют знания:
Выберите один или несколько ответов:
декларативные;
глубинные;
аналитические;
процедурные;
поверхностные;
семантические;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Перечислите типы полей БД Access:
Выберите один или несколько ответов:
Числовой
Символьный
Логический
Цифровой
Счетчик
Поле ссылка на объект OLE
Денежный
Гиперссылка
Memo
Текстовый
Финансовый
Датавремя
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Перечислите свойства полей СУБД Access:
Выберите один или несколько ответов:
Проверка данных, вводимых в поле
Поле ссылка на объект OLE
Индексированное поле Indexed
Значение по умолчанию — автоматически добавляется, если пользователь не ввел другое
Формат поля — способ отображения данных из поля
Гиперссылка
Imput Mask — маска ввода
Required (обязательное поле)
Memo
Caption-подпись
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Перечислите поддерживаемые СУБД модели данных:
Выберите один или несколько ответов:
Иерархическая
Реляционная
Структурированная
Плоский файл
Сетевая
Алгоритмическая
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
Отчет — это…
Выберите один ответ:
элемент данных в записи;
объект базы данных, который используется для вывода на печать данных в отформатированном виде;
объект базы данных Access, содержащий программный код на языке VBA: декларации переменных и функций
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 29
Подробнее…
Основными требованиями к проектированию БД являются:
Выберите один или несколько ответов:
Простота и удобство эксплуатации
Интеграция в систему передачи данных
Обеспечение ограничений, таких как конфигурация вычислительной системы, ресурсы внешней и оперативной памяти
Эффективность функционирования
Соответствие схемы данных моделируемой предметной области
Гибкость
Защита данных от разрушений при сбоях оборудования, некорректных обновлений и, если необходимо, несанкционированного доступа
Способность реагировать на внешние условия и изменения
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 37
Подробнее…
Основные объекты Access —
Выберите один ответ:
таблицы, формы, запросы, отчеты, страницы;
таблицы, запросы, формы, отчеты, страницы, макросы, модули.
запросы, отчеты, формы, макросы, таблицы;
формы, отчеты, макросы, модули;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Определите верны ли утверждения:
Выберите один или несколько ответов:
Наличие трех типов отношений (класс — элемент класса; свойство — значение; пример элемента класса) не является характерной особенностью семантических сетей;
В семантических сетях не используются пространственные и временные отношения;
Преимуществом семантической сети, как модели представления знаний является ее соответствие современным представлениям о борганизации долговременной памяти человека;
По количеству типов отношений выделяют однородные и неоднородные семантические сети;
Семантика — это наука, устанавливающая отношения между символами и объектами, которые они обозначают, то есть наука, определяющая смысл знаний;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
Обращение к СУБД, содержащее задание на выборку, добавление, изменение или удаление записей — это…
Выберите один ответ:
отчет.
запрос;
форма;
таблица;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
Обобщенная структура экспертных систем включает в себя следующие элементы:
Выберите один или несколько ответов:
Инженер по знаниям;
Решатель;
Интерфейс пользователя;
База знаний;
Система объяснений;
Интеллектуальный редактор базы знаний
Пользователь;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
Начальный уровень абстракции или так называемый ЛПП, соответствует представлениям о предметной области:
Выберите один ответ:
Администратора баз данных
Администратора
Конечных пользователей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
На рисунке представлена связь типа «многие-ко-многим», она:
Выберите один ответ:
может существовать, но для реализации конкретного проекта БД, она должна уточняться и представляться в виде двух связей, возможно с помощью дополнительной таблицы
данная связь невозможна на практике, она всегда неправильна
встречается редко, в дальнейшем должна пересматриваться и детализироваться.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
На рисунке представлена связь типа «многие-к-одному», она:
Выберите один ответ:
говорит, что конкретные экземпляры Аи В могут существовать без связи между ними, она применяется редко и требует уточнения
встречается часто и является основным видом связи при построении ER-модели
встречается очень редко
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
На рисунке представлена связь «один-к-одному»
Выберите один ответ:
связи применяются редко
связи применяются редко — для показа альтернативы
связи применяются для отображения иерархических отношений
данные связи невозможны
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
Лингвистическая переменная — это переменная, значение которой определяется набором вербальных (словестных) характеристик некоторого свойства:
Выберите один ответ:
Верно;
Неверно;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
Ключевое поле — это…
Выберите один ответ:
текст любого размера
поле, которое позволяет вводить ограничение для проверки правильности ввода данных.
поле, которое однозначно идентифицирует каждый объект в таблице любого типа;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Какой из ниже перечисленных запросов нельзя построить
Выберите один ответ:
простой
параллельный
перекрестный
на создание таблицы
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 46
Подробнее…
Какого раздела не существует в конструкторе форм
Выберите один ответ:
верхнего колонтитула
итоговый
заголовка
область данных
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
Какими специфическими особенностями обладает поле типа «счетчик»?
Выберите один ответ:
объект, связанный или внедренный в таблицу Microsoft Access.
уникальные последовательно возрастающие (на 1) или случайные числа, автоматически вводящиеся при добавлении каждой новой записи в таблицу.
текст или числа, не требующие проведения расчетов, например, номера телефонов, коды и т. п.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 33
Подробнее…
Каким двум основным требованиям должен удовлетворять состав атрибутов отношения БД?
Выберите один или несколько ответов:
Количество атрибутов должно быть минимальным
Группировка атрибутов должна обеспечивать минимальное дублирование данных, их обработку без трудностей
Между атрибутами не должно быть нежелательных функциональных зависимостей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Какие функции выполняет машина вывода (интерпритатор правил)?
Выберите один или несколько ответов:
управляет процессом копсультации, сохраняя для пользователя информацию о полученных заключениях;
просмотр существующих фактов из рабочей памяти (базы данных) и правил из базы знаний и добавление по мере возможности в рабочую память новых фактов;
определение порядка просмотра и применения правил;
запрашивает у пользователя информацию, когда для срабатывания очередного правила в рабочей памяти оказывается недостаточно данных
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
Какие технологические операции входят в ER-моделирование?
Выберите один или несколько ответов:
Разработка ER-модели
Получение ER-диаграммы
Проверка качества ER-модели
Генерация реляционной таблицы из ER-модели
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
Какие способы удаления записей применяются на практике?
Выберите один или несколько ответов:
Комплексное удаление записи
Логическое удаление записи
Физическое удаление записи
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 24
Подробнее…
Какие специалисты входят в коллектив разработки экспертной системы?
Выберите один или несколько ответов:
Бухгалтер;
Психолог;
Эксперт;
Программист;
Пользователь;
Экономист;
Инженер по знаниям.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
Какие свойства полей позволяют обеспечивать контроль целостности
Выберите один ответ:
сообщение об ошибке, обязательное поле, пустые строки;
все, вышеперечисленное.
размер поля формат поля, маска ввода;
значение по умолчанию, условия на значения;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Какие недостатки имеет физическая сортировка?
Выберите один или несколько ответов:
При вводе новых данных нужна новая сортировка
Не может справиться с большим объемом данных
При создании новой таблицы можно столкнуться с нехваткой места
При наличии нескольких таблиц бывают несоответствия данных в них
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
Какие достоинства баз данных обусловили их широкое использование в управлении предприятием?
Выберите один или несколько ответов:
Целостность
Оперативность
Доступность
Безопасность
Простота их использования
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
Какие действия предполагает этап стыковки экспертной системы?
Выберите один ответ:
Интеграция экспертной системы с другими программными средствами в среде, в которой она будет работать, и обучение людей которых она будет обслуживать;
Проведение тестирования экспертной системы в отношении критериев эффективности;
Разработка прототипной версии системы, спроектированной для проверки правильности кодирования фактов, связей и стратегий рассуждения эксперта;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Какие виды проверок качества ER-модели выделяют:
Выберите один или несколько ответов:
Вариабельная проверка качества
Экспертная проверка качества
Автоматическая проверка качества
Консультационная проверка качества
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
Какие в настоящее время существуют направления исследований в области искусственного интеллекта?
Выберите один или несколько ответов:
Когнитивное моделирование.
Обучение и самообучение;
Представление знаний и разработка систем, основанных на знаниях;
Генетические алгоритмы;
Игры и машинное творчество;
Разработка естественно-языковых интерфейсов и машинный перевод;
Интеллектуальные роботы;
Новые архитектуры компьтеров;
Распознование образов;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Какие атрибуты (признаки) обьекта должны быть отражены в информационной модели, описывающей хобби ваших однокласников, если эта модель позволяет получить ответы на следующие вопросы:
— указать возраст всех детей, увлекающихся компьютером
— указать фамилии девочек, увлекающихся пением
— указать фамилии мальчиков, увлекающихся хокеем?
Выберите один ответ:
фамилия, имя, пол, возраст, хобби;
имя, пол, хобби;
имя, пол, хобби, возраст;
фамилия, пол, хоккей, пение, возраст;
имя, возраст, хобби.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 22
Подробнее…
Каждому типу связи одной таблицы соответствует одна и более записей во второй таблице. К какому типу связей принадлежит данный тип связи?
Выберите один ответ:
Многие-ко-многим
Один-к-одному
Один-ко-многим
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
Каждому типу связи одной таблицы соответствует одна и только одна запись другой таблицы. К какому типу связи принадлежит данный тип связи?
Выберите один ответ:
Многие-ко-многим
Один-ко-многим
Один-к-одному
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 22
Подробнее…
Каждая запись первой таблицы может (должна) быть связана с одной и более записей во второй таблице. К какому типу связей принадлежит данный тип связи
Выберите один ответ:
Один-к-одному
Один-ко-многим
Многие-ко-многим
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
К способам распределения данных относят:
Выберите один или несколько ответов:
Одинаковые копии данных хранятся в разных местах использования
Независимые БД подразделений, спроектированные без координации, требующие объединения — несовместимые данные
К способам распределения данных относят варианты 1,2,3,4 и 6.
На различных объектах используются одинаковые структуры данных, объединяемые в интегрируемые системы
На различных объектах используются одинаковые структуры, но хранятся разные данные
Группы данных, которые не совместимы с исходной базой данных хранятся отдельно для местной обработки
Данные в системе интегрируются при передаче на более высокий уровень управления
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
К отличительным особенностям фильтрации данных относят:
Выберите один или несколько ответов:
При фильтрации данных показываются или скрываются записи удовлетворяющие, неудовлетворяющие определенному условию
Фильтры не дают возможности включать в результирующую таблицу выбранные поля. При этом отображаются все поля
Результаты фильтрации сохраняются как объект в окне БД
Фильтры не позволяют объединять таблицы
Фильтры не позволяют осуществлять нахождение суммы, поиск среднего значения, подсчет количества записей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
К основным операциям, допустимыми над объектами в сетевой модели данных не относят:
Выберите один или несколько ответов:
Операция «включить групповое отношение»
Операция «объединение»
Операция «обновить»
Операция «пересечение»
Операция «запомнить»
Операция «удалить»
Операция «переключить»
Операция «копировать»
Операция «извлечь»
Операция «исключить из группового отношения»
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 47
Подробнее…
К грубым ошибкам атрибутов относят:
Выберите один или несколько ответов:
Имя не уникально в пределах сущности
Не определен формат и (или) длина
Нет описания атрибутов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Искусственный интеллект — это направление информатики, целью которого является разработка аппаратно-программных средств, позволяющих пользователю-непрограммисту ставить и решать свои, традиционно считающиеся интеллектуальными задачи, общаясь с ЭВМ на ограниченном подмножестве естественного языка.
Выберите один ответ:
Верно;
Неверно.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 17
Подробнее…
Из скольких шагов состоит генерация предварительного проекта БД:
Выберите один ответ:
Трех
Двух
Пяти
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 24
Подробнее…
Из каких элементов состоит хранимая запись?
Выберите один или несколько ответов:
Служебная часть
Информационная часть
Концептуальная часть
Коммерческая часть
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
Задание обеспечения целостности данных в Access позволит контролировать то, что:
Выберите один или несколько ответов:
Невозможно ввести в связанное поле подчиненной таблицы значение, отсутствующее в соответствующем поле главной
Невозможно изменить ключевое поле главной таблицы, если в подчиненной существуют связанные с ней записи
Удаляются все не связанные записи в подчиненной таблице
Невозможно удаление записей из главной таблицы, если существуют связанные с ней записи в подчиненной
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Если установить каскадное обновление, то при изменении ключевого поля главной таблицы:
Выберите один ответ:
Удаляются все связанные записи в подчиненной
Будут изменены значения полей связанных записей
Оба варианта ответа неверны
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
Для того, чтобы задать в СУБД Access …? Таблицы необходимо использовать кнопку с изображением ключа, выделив …?
Выберите один ответ:
ключ, одно или несколько полей;
пароль для входа, пароль поля.
параметры защиты, поле;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 64
Подробнее…
Для ввода, просмотра и модифицирования в таблице или запросе предназначен объект
Выберите один ответ:
отчет.
таблица;
форма;
запрос;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Для сети с небольшим объемом данных и отсутствием реальной необходимости их защиты целесообразно применять:
Выберите один ответ:
Систему архитектуры «клиент-сервер»
Файл-сервер
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 44
Подробнее…
Данные — это:
Выберите один ответ:
отдельные факты, характеризующие обекты, процессы и явления предметной области, а также их свойства;
закономерности предметной области, полученные в результате практической деятельности и профессионального опыта, позволяющие специалистам ставить и решать задачи в этой области;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
Выделите грубые ошибки сущности:
Выберите один или несколько ответов:
Нет информации по объему сущности
Ключ состоит из необязательных элементов
У сущности нет описания
Сущность имеет только один подтип
У сущности нет ключа
У сущности нет ни одной связи
Имя не уникально в пределах проекта
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 55
Подробнее…
В таблицу базы данных, содержащей три столбца «Фамилия», «Имя», «Телефон» вписано 200 человек. Сколько полей и записей в таблице?
Выберите один ответ:
полей — 600, записей — 200;
полей — 200, записей — 3;
полей — 3, записей — 200.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 44
Подробнее…
В СУБД Access основное свойство «значение по умолчанию» определяет:
Выберите один ответ:
область или диапазон значений данных, допустимых в поле;
текст, который будет отображаться рядом с полем в форме или в отчете; эксплуатации
как должно отображаться содержимое поля;
определяет значение, которое вводится в поле автоматически при добавлении новых записей (значение, которое наиболее часто встречается в данном поле);
текст сообщения, которое появляется в строке состояния при попытке ввести в поле недопустимое значение.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
В соответствии с классификацией по связи с реальным временем выделяют следующие виды экспертных систем:
Выберите один или несколько ответов:
Квазидинамические;
Динамические;
Оперативные.
Статические;
Быстродействующие;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 37
Подробнее…
В настоящее время промышленные экспертные системы используются:
Выберите один или несколько ответов:
Для формирования портфеля инвестиций и оценке финансовых рисков;
При постановке медицинских диагнозов;
В управлении сложными диспетчерскими пультами.
При проектировании интегральных микросхем;
При поиске неисправностей в электронных приборах;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
В иерархической модели данных каждой записи БД существует:
Выберите один ответ:
Оба варианта ответа неверны
Два пути от корневой записи
Только один путь от корневой записи
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 29
Подробнее…
База данных содержит информацию об учениках школы: фамилия, класс, балл за тест, балл за практическое задание, общее количество баллов. Какого типа должно быть поле «Общее количество балов»?
Выберите один ответ:
дата.
логическое;
числовое;
любого типа;
символьное;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 23
Подробнее…
База данных задана следующей таблицей:
Записи пронумерованы от 1 до 7 соответственно их порядку в таблице.
В каком порядке будут идти записи, если их отсортировать по двум ключам «название+кинотеатр» в порядке убывания?
Выберите один ответ:
6,2,4,7,3,1,5;
правильного ответа нет
5,1,3,7,4,2,6;
1,5,3,4,7,2,6;
6,2,7,4,3,1,5;
2,5,4,7,1,3,6;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
База данных (БД) -это
Выберите один ответ:
произвольная информация, представленная в символьной (цифровой) форме.
Совокупность взаимосвязанных данных, используемых группой пользователей и хранящиеся с регулируемой избыточностью, при этом хранимые данные не зависят от прикладных программ
програмные средства, осуществляющие поиск информации;
Отзыв
Правильный ответ: Совокупность взаимосвязанных данных, используемых группой пользователей и хранящиеся с регулируемой избыточностью, при этом хранимые данные не зависят от прикладных программ
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 23
Подробнее…
Автономные экспертные системы представляют программный комплекс, агригирующий стандартные пакеты прикладных программ (например, математическую статистику, линейное программирование или системы управления базами данных) и средства манипулирования знаниями.
Выберите один ответ:
Неверно;
Верно;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
Сопоставьте характеристики систем кодирования информации:
|
Шифры имеют диапазон по одному классификационному признаку |
Последовательная система кодирования |
|
Данная классификация информации соответствует иерархической системе классификации. Шифр каждой нижестоящей группировки образуется путем прибавления цифр к вышестоящей группировке. Шифр обладает информативностью, но он громоздкий, в связи с этим система кодирования используется в заранее разработанной системе классификации. |
Серийно-порядковая система кодирования |
|
Группировки цифр шифра не зависят друг от друга. Шифр имеет большую длину. Данная система применяется для целей маркировки |
Порядковая система кодирования |
|
Шифры присваиваются последовательно, так, чтобы уникально отличить один объект классификации от другого. Шифр компактен, но не информативен |
Параллельная система кодирования |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 56
Подробнее…
Сопоставьте название и описание этапов разработки экспертной системы.
|
Проведение тестирования экспертной системы в отношении критериев эффективности. |
Выбор подходящей проблемы |
|
Этот этап определяет деятельность, предшествующую решению начать разрабатывать конкретную экспертную систему |
Оценка системы |
|
Интеграция экспертной системы с другими программными средствами в среде, в которой она будет работать, и обучение специалистов которых она будет обслуживать |
Развитие прототипа до промышленной экспертной системы |
|
Переход от демонстрационного прототипа к промышленной системе, предполагающее расширение базы знаний, то есть добавление дольшего числа правил, фреймов, узлов семантической сети и др. элементов |
Разработка прототипной системы |
|
Разработка прототипной версии системы, спроектированной для проверки правильности кодирования фактов, связей и стратегий рассуждения эксперта |
Стыковка системы |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Сопоставьте название и описание этапов перехода от прототипа к промышленной экспертной системе.
|
Система решает большую часть задач, но неустойчива в работе и не полностью проверена (несколько сотен правил или понятий) |
Действующий прототип ЭС |
|
Система надежно решает все задачи на реальных примерах, но для сложной задачи требует много времени и памяти |
Исследовательский прототип ЭС |
|
Промышленная система, пригодная к продаже, то есть хорошо документирована и снабжена сервисом |
Демонстрационный прототип ЭС |
|
Система решает часть задач, демонстрируя жизнеспособность подхода (несколько десятков правил или понятий) |
Промышленная система |
|
Система обеспечивает высокое качество решений при минимизации требуемого времени и памяти, переписывается с использованием более эффективных средств представления знаний |
Коммерческая система |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Сопоставьте название и описание содержания фаз анализа и синтеза при проведении структурного подхода.
|
Анализ смысла составных частей каждого предложения на основе некоторой предметно-ориентированной базы знаний |
Синтаксический анализ |
|
Разбор состава предложений и грамматических связей между словами |
Семантический анализ |
|
Анализ смысла предложений в реальном контексте на основе собственной базы знаний |
Морфологический анализ |
|
Анализ слов в тексте |
Прагматический анализ |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 44
Подробнее…
Сопоставить характеристики операций обновления баз данных в реляционной модели данных:
|
Операция выполняется для заданного отношения, при этом можно корректировать как один, так и несколько кортежей отношения |
Операция объединение |
|
Операция предполагает, что на выходе заданы два односхемных отношения (имеющих одинаковую структуру и атрибуты, но разные названия) |
Операция обновить |
|
На входе два односхемных отношения, выход — отношение, построенное по той же схеме, содержащее картежи из А, которые есть в В |
Операция включить |
|
Операция требует задания имени отношения и предварительного формирования значения атрибутов нового кортежа |
Операция пересечения |
|
В итоге осуществления операции остаются те картежи из А, которых нет в В |
Декартово произведение |
|
С4=А*В. Операция состоит в том, что отношения А и В построены по разным схемам |
Операция вычитания |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 52
Подробнее…
Contents
- 1 Основные сведения
- 2 Логическая фаза
- 2.1 Сбор требований
- 2.2 Определение сущностей
- 2.3 Определение атрибутов
- 2.4 Ключи
- 2.4.1 Возможный ключ
- 2.4.2 Первичные ключи
- 2.4.3 Альтернативные ключи
- 2.4.4 Внешние ключи
- 2.5 Определение связей между сущностями
- 2.5.1 Один-к-одному
- 2.5.2 Один-ко-многим
- 2.5.3 Многие-ко-многим
- 2.6 Нормализация
- 2.6.1 Первая нормальная форма
- 2.6.2 Вторая нормальная форма
- 2.6.3 Третья нормальная форма
- 2.6.4 Ограничения
- 2.6.5 Хранимые процедуры
- 2.6.6 Целостность данных
- 2.6.7 Триггеры
- 2.6.8 Деловые правила
- 2.7 Физическая модель
- 2.8 Денормализация
Основные сведения
Термин «реляционный» означает «основанный на отношениях». Реляционная база данных состоит из сущностей (таблиц), находящихся в некотором отношении друг с другом. Название произошло от английского слова relation—отношение.
Проектирование базы данных состоит из двух основных фаз: логического и физического моделирования.
Во время логического моделирования вы собираете требования и разрабатываете модель базы данных, не зависящую от конкретной СУБД (системы управления реляционными базами данных). Это похоже на то, как если бы вы создавали чертежи вашего дома. Вы могли бы продумать и начертить все: где будет кухня, спальни, гостиная. Но это все на бумаге и в макетах.
Во время физического моделирования вы создаете модель, оптимизированную для конкретного приложения и СУБД. Именно эта модель реализуется на практике. Если вернуться к дому из предыдущего абзаца, на этом этапе вам придется строить где-нибудь дом — таскать бревна, кирпичи…
Процесс проектирования базы данных состоит из следующих этапов:
- сбор информации;
- определение сущностей;
- определение атрибутов для каждой сущности;
- определение связей между сущностями;
- нормализация;
- преобразование к физической модели;
- создание базы данных.
Первые 5 этапов образуют фазу логического проектирования, а остальные два — фазу физического моделирования.
Логическая фаза
Логическая фаза состоит из нескольких этапов. Далее они все рассмотрены.
Сбор требований
На этом этапе вам необходимо точно определить, как будет использоваться база данных и какая информация будет в ней храниться. Соберите как можно больше сведений о том, что система должна делать и чего не должна.
Определение сущностей
На этом этапе вам необходимо определить сущности, из которых будет состоять база данных.
Сущность — это объект в базе данных, в котором хранятся данные. Сущность может представлять собой нечто вещественное (дом, человек, предмет, место) или абстрактное (банковская операция, отдел компании, маршрут автобуса). В физической модели сущность называется таблицей.
Сущности состоят из атрибутов (столбцов таблицы) и записей (строк в таблице).
Обычно базы данных состоят из нескольких основных сущностей, связанных с большим количеством подчиненных сущностей. Основные сущности называются независимыми: они не зависят ни от какой-либо другой сущности. Подчиненные сущности называются зависимыми: для того чтобы существовала одна из них, должна существовать связанная с ней основная таблица.
На диаграммах сущности обычно представляются в виде прямоугольников. Имя сущности указывается внутри прямоугольника:
Любая таблица имеет следующие характеристики:
- в ней нет одинаковых строк;
- все столбцы (атрибуты) в таблице должны иметь разные имена;
- элементы в пределах одной колонки имеют одинаковый тип (строка, число, дата);
- порядок следования строк в таблице может быть произвольным.
На этом этапе вам необходимо выявить все категории информации (сущности), которые будут храниться в базе данных.
Определение атрибутов
Атрибут представляет свойство, описывающее сущность. Атрибуты часто бывают числом, датой или текстом. Все данные, хранящиеся в атрибуте, должны иметь одинаковый тип и обладать одинаковыми свойствами.
В физической модели атрибуты называют колонками.
После определения сущностей необходимо определить все атрибуты этих сущностей.
На диаграммах атрибуты обычно перечисляются внутри прямоугольника сущности. На рисунке вы найдете пример базы данных «Дома», только теперь для сущностей из этой базы определены некоторые атрибуты.
Для каждого атрибута определяется тип данных, их размер, допустимые значения и любые другие правила. К их числу относятся правила обязательности заполнения, изменяемости и уникальности.
Правило обязательности заполнения определяет, является ли атрибут обязательной частью сущности. Если атрибут является необязательной частью сущности, то он может принимать NULL-значение, иначе — нет.
Также вы должны определить, является ли атрибут изменяемым. Значения некоторых атрибутов не могут измениться после создания записи.
И, наконец, вам нужно определить, является ли атрибут уникальным. Если это так, то значения атрибута не могут повторяться.
Ключи
Ключом (key) называется набор атрибутов, однозначно определяющий запись. Ключи делятся на два класса: простые и составные.
Простой ключ состоит только из одного атрибута. Например, в базе «Паспорта граждан страны» номер паспорта будет простым ключом: ведь не бывает двух паспортов с одинаковым номером.
Составной ключ состоит из нескольких атрибутов. В той же базе «Паспорта граждан страны» может быть составной ключ со следующими атрибутами:
фамилия, имя, отчество, дата рождения. Это — как пример, т. к. этот составной ключ, теоретически, не обеспечивает гарантированной уникальности записи.
Также существует несколько типов ключей, о которых рассказано далее.
Возможный ключ
Возможный ключ представляет собой любой набор атрибутов, однозначно идентифицирующих запись в таблице. Возможный ключ может быть простым или составным.
Каждая сущность должна иметь, по крайней мере, один возможный ключ, хотя таких ключей может быть и несколько. Ни один из атрибутов первичного ключа не может принимать неопределенное (NULL) значение.
Возможный ключ называется также суррогатным.
Первичные ключи
Первичным ключом называется совокупность атрибутов, однозначно идентифицирующих запись в таблице (сущности). Один из возможных ключей становится первичным ключом. На диаграммах первичные ключи часто изображаются выше основного списка атрибутов или выделяются специальными символами. Сущность на рисунке имеет как ключевые, так и обычные атрибуты.
Альтернативные ключи
Любой возможный ключ, не являющийся первичным, называется альтернативным ключом. Сущность может иметь несколько альтернативных ключей.
Внешние ключи
Внешним ключом называется совокупность атрибутов, ссылающихся на первичный или альтернативный ключ другой сущности. Если внешний ключ не связан с первичной сущностью, то он может содержать только неопределенные значения. Если при этом ключ является составным, то все атрибуты внешнего ключа должны быть неопределенными.
На диаграммах атрибуты, объединяемые во внешние ключи, обозначаются специальными символами. На рисунке изображены две связанные сущности (Дома и их Хозяева) и образованные ими внешние ключи (ведь один человек может владеть больше, чем одним домом).
Ключи являются логическими конструкциями, а не физическими объектами. В реляционных базах данных предусмотрены механизмы, обеспечивающие сохранение ключей.
Определение связей между сущностями
Реляционные базы данных позволяют объединять информацию, принадлежащую разным сущностям.
Отношение — это ситуация, при которой одна сущность ссылается на первичный ключ второй сущности. Как, например, сущности Дом и Хозяин на предыдущем рисунке.
Отношения определяются в процессе проектирования базы. Для этого следует проанализировать сущности и выявить логические связи, существующие между ними.
Тип отношения определяет количество записей сущности, связанных с записью другой сущности. Отношения делятся на три основных типа, о которых рассказано далее.
Один-к-одному
Каждой записи первой сущности соответствует только одна запись из второй сущности. А каждой записи второй сущности соответствует только одна запись из первой сущности. Например, есть две сущности: Люди и Свидетельства о рождении. И у одного человека может быть только одно свидетельство о рождении.
Один-ко-многим
Каждой записи первой сущности могут соответствовать несколько записей из второй сущности. Однако каждой записи второй сущности соответствует только одна запись из первой сущности. Например, есть две сущности: Заказ и Позиция заказа. И в одном заказе может быть много товаров.
Многие-ко-многим
Каждой записи первой сущности могут соответствовать несколько записей из второй сущности. Однако и каждой записи второй сущности может соответствовать несколько записей из первой сущности. Например, есть две сущности: Автор и Книга. Один автор может написать много книг. Но у книги может быть несколько авторов.
По критерию обязательности отношения делятся на обязательные и необязательные.
- Обязательное отношение означает, что для каждой записи из первой сущности непременно должны присутствовать связанные записи во второй сущности.
- Необязательное отношение означает, что для записи из первой сущности может и не существовать записи во второй сущности.
Нормализация
Нормализацией называется процесс удаления избыточных данных из базы данных. Каждый элемент данных должен храниться в базе в одном и только в одном экземпляре. Существует пять распространенных форм нормализации. Как правило, база данных приводится к третьей нормальной форме.
В процессе нормализации выполняются определенные действия по удалению избыточных данных. Нормализация повышает быстродействие, ускоряет сортировку и построение индекса, уменьшает количество индексов на сущность, ускоряет операции вставки и обновления.
Нормализованная база данных обычно отличается большей гибкостью. При модификации запросов или сохраняемых данных в нормализованную базу обычно приходится вносить меньше изменений, а внесение изменений имеет меньше последствий.
Первая нормальная форма
Чтобы преобразовать сущность в первую нормальную форму, следует исключить повторяющиеся группы значений и добиться того, чтобы каждый атрибут содержал только одно значение, списки значений не допускаются.
Другими словами, каждый атрибут в сущности должен храниться только в одном экземпляре.
Например, на рисунке сущность Дом не нормализована. Она содержит несколько атрибутов для хранения данных о владельцах дома (сущность Дом не соответствует первой нормальной форме).
Для приведения сущности Дом в первую нормальную форму необходимо удалить повторяющиеся группы значений, т. е. удалить атрибуты Владелец 1—3, поместив их в отдельную сущность. Результат (Сущность Дом, приведенная к первой нормальной форме):
Вторая нормальная форма
Таблица во второй нормальной форме содержит только те данные, которые к ней относятся. Значения не ключевых атрибутов сущности зависят от первичного ключа. Если более точно, то атрибуты зависят от первичного ключа, от всего первичного ключа и только от первичного ключа.
Для соответствия второй нормальной форме сущности должны быть в первой нормальной форме.
Например, у сущности Дом на рисунке есть атрибут Цена литра бензина, который не имеет ничего общего с домами. Этот атрибут удаляется (или вы можете перенести его в другую сущность). А также мы переносим атрибут Мэр в отдельную сущность — этот атрибут зависит от города, где находится дом, а не от дома.
На рисунке изображена сущность Дом во второй нормальной форме (Сущность Дом, приведенная ко второй нормальной форме).
Третья нормальная форма
В третьей нормальной форме исключаются атрибуты, не зависящие от всего ключа. Любая сущность, находящаяся в третьей нормальной форме, находится также и во второй. Это самая распространенная форма базы данных.
В третьей нормальной форме каждый атрибут зависит от ключа, от всего ключа и ни от чего, кроме ключа.
Например, у сущности Владелец дома на рисунке есть атрибут Знак зодиака, который зависит от даты рождения владельца дома, а не от его имени (которое является ключом).
Для приведения сущности Владелец дома необходимо создать сущность Знаки зодиака и перенести туда атрибут Знак зодиака (Сущность Владелец дома, приведенная к третьей нормальной форме):
Ограничения
Ограничения (constrains) — это правила, за соблюдением которых следит система управления базы данных. Ограничения определяют множество значений, которые можно вводить в столбец или столбцы.
Например, вы не хотите, чтобы сумма заказа в вашем очень крутом магазине была бы меньше 500 рублей. Вы просто устанавливаете ограничение на колонку Сумма заказа.
Хранимые процедуры
Хранимые процедуры (stored procedures) — это предварительно откомпилированные процедуры, хранящиеся в базе данных. Хранимые процедуры можно использовать для определения деловых правил, с их помощью можно осуществлять более сложные вычисления, чем с помощью одних лишь ограничений.
Хранимые процедуры могут содержать логику хода выполнения программы, а также запросы к базе данных. Они могут принимать параметры и возвращать результаты в виде таблиц или одиночных значений.
Хранимые процедуры похожи на обычные процедуры или функции в любой программе.
ПРИМЕЧАНИЕ
Хранимые процедуры находятся в базе данных и выполняются на сервере базы данных. Как правило, они быстрее операторов SQL, поскольку хранятся в компилированном виде.
Целостность данных
Организовав данные в таблицы и определив связи между ними, можно считать, что была создана модель, правильным образом отражающая бизнес-среду. Теперь нужно обеспечить, чтобы данные, вводимые в базу, давали правильное представление о состоянии дела. Иными словами, нужно обеспечить выполнение деловых правил и поддержку целостности (integrity) базы данных.
Например, ваша компания занимается доставкой книг. Вы вряд ли примете заказ от неизвестного клиента, ведь тогда вы даже не сможете доставить заказ. Отсюда бизнес-правило: заказы принимаются только от клиентов, информация о которых есть в базе данных.
Корректность данных в реляционных базах обеспечивается набором правил. Правила целостности данных делятся на четыре категории.
- Целостность сущностей — каждая запись сущности должна обладать уникальным идентификатором и содержать данные. Ведь надо же вам как-то различать все эти записи в базе данных.
- Целостность атрибутов — каждый атрибут принимает лишь допустимые значения. Например, сумма покупки, определенно, не может быть меньше нуля.
- Ссылочная целостность — набор правил, обеспечивающих логическую согласованность первичных и внешних ключей при вставке, обновлении и удалении записей. Ссылочная целостность обеспечивает, чтобы для каждого внешнего ключа существовал соответствующий первичный ключ. Возьмем предыдущий пример с сущностями Владелец дома и Дом. Допустим, вы Вася Иванов и владеете домом. Вы сменили фамилию на Сидоров и внесли соответствующие изменения в сущность Владелец дома. Определенно вы бы хотели, чтобы ваш дом продолжал числиться за вами под вашим новым именем, а не принадлежал некоему Васе Иванову, которого уже не существует.
- Пользовательские правила целостности — любые правила целостности, неотносящиеся ни к одной из перечисленных категорий.
Триггеры
Триггер — это аналог хранимой процедуры, который вызывается автоматически при изменении данных в таблице.
Триггеры являются мощным механизмом для поддержания целостности базы данных. Триггеры вызываются до или после изменения данных в таблице.
С помощью триггеров вы можете не только отменить эти изменения, но и изменить данные в любой другой таблице.
Например, вы создаете интернет-форум, и вам необходимо сделать так, чтобы в списке форумов показывалось последнее сообщение форума. Конечно, вы можете брать сообщение из сущности Сообщения форума, но это увеличит сложность вашего запроса и время его выполнения. Проще добавить триггер к сущности Сообщения форума, который бы записывал последнее добавленное сообщение в сущность Форумы, в атрибут Последнее сообщение. Это сильно упростит запрос.
Деловые правила
Деловые правила определяют ограничения, накладываемые на данные в соответствии с требованиями бизнеса (тех, для кого вы создаете базу). Деловые правила могут состоять из набора шагов, необходимых для выполнения определенной задачи, или же они могут быть просто проверками, которые контролируют правильность введенных данных. Деловые правила могут включать правила целостности данных. В отличие от других правил, их главная цель — обеспечить правильное ведение деловых операций.
Например, в компании «Очень крутые парни» может быть так принято, что закупаются для служебных нужд только белые, синие и черные автомобили.
Тогда деловое правило для атрибута Цвет автомобиля сущности Служебные автомобили будет гласить, что автомобиль может быть только белым, синим или черным.
Большинство СУБД предоставляют средства:
- для указания значений по умолчанию;
- для проверки данных перед занесением их в базу;
- для поддержания связей между таблицами;
- для обеспечения уникальности значений;
- для хранения хранимых процедур непосредственно в базе.
Все эти возможности можно применять для реализации деловых правил в базе данных.
Физическая модель
Следующим шагом, после создания логической модели, является построение физической модели. Физическая модель — это практическая реализация базы данных. Физическая модель определяет все объекты, которые вам предстоит реализовать.
При переходе от логической модели к физической сущности преобразуются в таблицы, а атрибуты в столбцы.
Отношения между сущностями можно преобразовать в таблицы или оставить как внешние ключи.
Первичные ключи преобразуются в ограничения первичных ключей. Возможные ключи — в ограничения уникальности.
Денормализация
Денормализация — это умышленное изменение структуры базы, нарушающее правила нормальных форм. Обычно это делается с целью улучшения производительности базы данных.
Теоретически, надо всегда стремиться к полностью нормализованной базе, однако на практике полная нормализация базы почти всегда означает падение производительности. Чрезмерная нормализация базы данных может привести к тому, что при каждом извлечении данных придется обращаться к нескольким таблицам. Обычно в запросе должны участвовать четыре таблицы или менее.
Стандартными приемами денормализации являются: объединение нескольких таблиц в одну, сохранение одинаковых атрибутов в нескольких таблицах, а также хранение в таблице сводных или вычисляемых данных.
4.9
18
Голоса
Рейтинг статьи
ВЫ СТУДЕНТ ИДК (Институт Деловой Карьеры) и ОБУЧАЕТЕСЬ ДИСТАНЦИОННО?
На ЭТОМ сайте, Вы найдете ответы на вопросы тестов ИДК.
Регистрируйтесь, пополняйте баланс и без проблем сдавайте тесты ИДК.
ПРЕИМУЩЕСТВА ПОЛЬЗОВАНИЯ САЙТОМ ЗДЕСЬ
Как посмотреть ответ ИНСТРУКЦИЯ
У ВАС ДРУГОЙ ВУЗ? НЕ БЕДА…..
ПОСМОТРИТЕ ДРУГИЕ НАШИ САЙТЫ С ОТВЕТАМИ — СПИСОК
Если в списке нет Вашего вуза, вернитесь сюда и купите найденный Вами вопрос, иногда предметы полностью совпадают в разных вузах.
Базы данных
Целостность данных представляет собой логическую непротиворечивость данных одной и другой таблицы.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 59
Подробнее…
Формы представляют собой средства, с помощью которых можно осуществить первоначальный ввод данных в таблицу, просмотр и редактирование записей в первичном для пользователя виде, напоминающем обычный документ, при этом выполнение многих операций упрощается, а присутствие на экране только нужной информации помогает не отвлекаться от сути операции.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
Физический метод упорядочивания данных (сортировка) — порядок следования записей при сортировке становится таким, как требует условие сортировки. Данный порядок становится реальным в большинстве СУБД при сортировке создается новая таблица.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Структурированные типы данных предназначены для конструирования из конечного набора базисных типов более сложных структур.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 28
Подробнее…
Проекция (вертикальное подмножество) — на выходе операции используют одно отношение. В результирующем отношении картежи-дубликаты устраняются.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
При работе в режиме файл-сервер сетевое программное обеспечение скрывает от пользователей особенности конкретной сети, что приводит к тому, что пользователь работает с другим компьютером как с дополнительным диском (каталогом).
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Предметная область — это часть реального мира, подлежащая изучению организации управления и, в конечном счете, автоматизации
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
Пошаговый обратимый процесс разложения исходных отношений БД на более мелкие и простые отношения называется нормализацией отношений.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Поиск наиболее быстро происходит для поля имеющего индекс, так как фактически сначала ищется соответствующий ключ в индексе, а затем осуществляется переход к соответствующей записи. Самый медленный вид поиска — это поиск на совпадение с любым произвольным полем (без индекса). Данный поиск происходит медленно, так как осуществляется последовательно, начиная с первой записи.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 42
Подробнее…
Подсхема — это описание данных на внешнем уровне представления. Фактически эта часть схемы чувствительная для одного или нескольких приложений. В такой схеме — одна внешняя запись может представляться из нескольких записей концептуального уровня. В записях могут присутствовать виртуальные поля, то есть те, которые фактически не хранятся в БД, а вычисляются алгоритмически.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 37
Подробнее…
Отношения, у которого все атрибуты простые, называются приведенной к первой нормальной форме (1НФ).
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
Отношения реляционной БД содержат структурную и семантическую информацию. Структурная задается схемой отношений, а семантическая отражает функциональные зависимости между атрибутами.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 39
Подробнее…
Отношения находятся в 2НФ, если каждый ключевой атрибут функциональнополно зависит от составного ключа.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 29
Подробнее…
Отличие иерархической модели данных в том, что БД может иметь только древовидную структуру.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Основной предпосылкой современного подхода в обработке информации является относительная стабильность данных.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Организация данных СУБД сетевого типа определяется в терминах элемент, агрегат, запись или группа, групповые отношения, база данных.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Описание, при котором логические и физические уровни совмещены, называется схемой данных.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 28
Подробнее…
Описание структуры данных при решении прикладных задач не осуществляется с помощью универсальных языков программирования или языков-спецификаций, так как они представляют объект лишь с определенным уровнем адекватности.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
Наименьшая единица структуры данных — это элемент данных.
Выберите один ответ:
Верно
Неверно
Отзыв
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 45
Подробнее…
Логическое упорядочивание данных в СУБД — упорядочивание таблицы происходит в соответствии с активным индексом. В одной таблице можно создать несколько индексов по различным признакам и, делая активным определенный индекс, можно менять признаки, по которым упорядочиваются таблицы. Количество создаваемых индексов точно соответствует количеству признаков, по которым надо упорядочивать.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 39
Подробнее…
Линейный список предназначен для создания сложных динамических структур, организованных с помощью ссылок в определенном порядке.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
Инфологический уровень абстракции соответствует представлению о логической организации данных администратора БД. На данном уровне существует привязка к модели данных и средствам ее реализации.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Глобальные промышленные серверы — это комплекс продуктов одной фирмы-производителя, решающей все потребности современного промышленного предприятия.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 42
Подробнее…
Вероятностный подход к процессу управления заключается в том, что при анализе управляемого процесса и построении его модели обязательно учитываются случайные факторы и АСУ проектируется с учетом адаптации их изменений.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 45
Подробнее…
В ER-диаграмме для каждого конца связи указывается имя, множественность и обязательность.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
База данных — это совокупность взаимосвязанных данных, используемых группой пользователей и хранящаяся с регулируемой избыточностью. Хранимые данные не зависят от программ пользователя.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Атрибут, значение которого идентифицируют картежи, называется ключом.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Анализ — это стадия, в течение которой разрабатываются детальные модели предметной области, формируются точные требования к будущей программной системе и закладывается точная основа для перехода к проектированию.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
Агрегат — именованная совокупность элементов или других агрегатов.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
ER-модель описывает совокупность важных объектов предметной области сущностей, их свойств (атрибутов) и отношений между объектами (связей).
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
CASE — автоматизированный инжениринг программных средств, то есть совокупность методик проектирования и сопровождения программных средств на всем их жизненном цикле, поддержанная взаимоувязанными средствами автоматизации.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 33
Подробнее…
Язык программирования ___ представляет собой язык программирования релейных диаграмм.
Вписать ответ:
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 28
Подробнее…
Правильно ли выражение, что программы для решения определенных задач можно рассматривать как объединение структур данных и алгоритмов?
Вписать ответ:
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
Можно ли сказать, что предметная область представляет собой множество фрагментов реального мира?
Вписать ответ:
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
Экспертные системы — это наиболее распростронненый класс интеллектуальных систем, ориентированный на тиражирование опыта высококвалифицированных специалистов в областях, где качество принятия решений традиционно зависит от уровня экспертизы:
Выберите один ответ:
Наверно.
Верно;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Укажите стадии жизненного цикла ИС, которые поддерживаются современными технологиями разработки ИС:
Выберите один или несколько ответов:
Сопровождение
Проектирование
Организация
Реализация
Стратегическое планирование
Контроль
Анализ
Консалтинг
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
Укажите способы фильтрации данных в Access:
Выберите один или несколько ответов:
По значению фильтр «Для» — Filter For
Фильтр по значению одного поля
Расширенный фильтр
Фильтр по выделенному фрагменту
Обычный фильтр по значению нескольких полей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 40
Подробнее…
Укажите способ создания таблицы базы данных в СУБД Access, предполагающий использование программы, которая предлагает выбрать поля из списка и содержит заготовки для различных видов таблиц.
Выберите один ответ:
конструктор (Design View);
импорт таблиц (Import Table);
мастер таблиц (Table Wizard);
связь с таблицами (Link Table).
режим таблицы (Datasheet View);
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 65
Подробнее…
Укажите правила чтения ER-диаграммы:
Выберите один или несколько ответов:
Если конец связи является не обязательным, то перед именем связи добавляется фраза «должен», «должен быть»
Если конец связи является обязательным, то перед именем связи добавляется фраза «должен», «должен быть»
Если конец связи является обязательным, то перед именем связи добавляется фраза «может», «может быть»
При чтении ER-диаграммы необходимо учитывать обязательность и множественность выбранного конца связи
ER-диаграмма читается с точки зрения выбранной сущности, отдельно для каждого конца связи, так показывается, как выбранная сущность связывается с другими сущностями ER-модели
Если конец связи является не обязательным, то перед именем связи добавляется фраза «может», «может быть»
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 61
Подробнее…
Укажите основные характеристики составления СУБД:
Выберите один или несколько ответов:
Мощность языковых средств
Пользовательские предпочтения
Целостность, безопасность, расширяемость
Операционная среда
Логическая и физическая организация данных
Возможности сервисных средств
Способы распределения данных
Область использования
Информация о разработчиках и опыте эксплуатации
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 40
Подробнее…
Существующие модели представления знаний можно свести к следующим четырем классам:
Выберите один или несколько ответов:
базы знаний;
формальные логические модели;
базы данных;
семантические сети;
фреймы;
экспертные системы;
продукционные модели;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 29
Подробнее…
СУБД — это…
Выберите один ответ:
комплекс программ и языковых средств, предназначенных для создания, ведения и использования баз данных.
набор данных, относящихся к определенной предметной области.
специальные устройства для создания и обработки базы данных;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
Структура хранения, при которой прикладные программы разрабатывались с учетом файлов данных и, при этом много информации неявным образом содержались в самих программах обработки файлов, имела недостатки:
Выберите один или несколько ответов:
Качество принимаемых решений было неудовлетворительным из-за отсутствия целостности данных
Ответы на идентичные запросы были одинаковыми
Разобщенность файлов
Требуемую информацию трудно было получить, так как необходимо знание языков программирования и организации файлов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 58
Подробнее…
Список вопросов для экспертной проверки сущности:
Выберите один или несколько ответов:
Имя сущности может быть представлено прилагательным в единственной числе
Согласуется ли каждая сущность с принципами нормализации
Являются ли подтипы непересекающимися множествами
Отражен ли смысл сущности в ее имени
Верно ли, что рассматриваемая сущность не является разновидностью другой сущности с упущенной рекурсивной связью
Определяет ли имя сущности тип и класс объектов, а не отдельный экземпляр
Если сущность имеет подтипы, то полностью ли их множество покрывает супертип — главную сущность
Является ли описание каждой сущности достаточно кратким и смысловым
Ключ сущности является минимальным
Ключ действительно идентифицирует каждый экземпляр сущности
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 54
Подробнее…
Создание БД начинается
Выберите один ответ:
С сортировки данных
С создания таблиц
С создания отчетов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Сколько покалений в истории создания и развития робототехники можно выделить?
Выберите один ответ:
3;
4;
5.
2;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 33
Подробнее…
Система, ядром которой является база знаний или модель предметной области, описанная на языке сверхвысокого уровня, приближенного к естественному, называется:
Выберите один ответ:
Экспертной системой;
Интеллектуальной системой;
Языком представления знаний.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 28
Подробнее…
Реляционную модель данных называют также:
Выберите один ответ:
Моделью Бахмана
Моделью Кодда
Моделью П. Чена
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 24
Подробнее…
Прочитайте ER-диаграмму:
Выберите один ответ:
каждый студент должен учиться в одной и более группах. С другой стороны — каждая группа может состоять из одного и более студентов.
каждый студент может учиться в одной и только одной группе. С другой стороны — каждая группа должна состоять из одного и более студентов.
каждый студент может учиться в одной и более группах. С другой стороны — каждая группа может состоять из одного и только одного студентов.
каждый студент должен учиться в одной и только одной группе. С другой стороны — каждая группа может состоять из одного и более студентов.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
Процесс нормализации последовательно устраняет:
Выберите один или несколько ответов:
Зависимости ключей от неключевых атрибутов
Частичные зависимости неключевых атрибутов от ключа
Независимые многозначные зависимости (4НФ, 5НФ)
Транзитивные зависимости неключевых атрибутов от ключа
Транзитивные зависимости ключей от неключевых атрибутов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 24
Подробнее…
При связывании таблиц в Access необходимо следовать ряду правил:
Выберите один или несколько ответов:
Обязательно соответствие типов полей, которые связываются
Для связи можно использовать типы «один-ко-многом», «один-к-одному», «многие-ко-многим»
Соответствие типов полей не обязательно
Для связи можно использовать типы «один-ко-многим», «один-к-одному»
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
По каким критериям оцениваются точность работы программы экспертной системы и ее полезность?
Выберите один или несколько ответов:
Критерии коллектива разработчиков (эффективность реализации, производительность, время отклика, дизайн, широта охвата предметной области и др.).
Критерии соответствия системы требованиям безопастности.
Критерии экономичности (соотношение затрат на разработку системы и полученного эффекта)
Критерии приглашенных экспертов (оценка решений, предлагаемых системой, сравнение ее с собственными решениями, оценка подсистемы объяснений и др.)
Критерии пользователей (понятность и «прозрачность» работы системы, удобство интерфейсов и др.)
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
По каким категориям классифицируют знания:
Выберите один или несколько ответов:
декларативные;
глубинные;
аналитические;
процедурные;
поверхностные;
семантические;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
Перечислите типы полей БД Access:
Выберите один или несколько ответов:
Числовой
Символьный
Логический
Цифровой
Счетчик
Поле ссылка на объект OLE
Денежный
Гиперссылка
Memo
Текстовый
Финансовый
Датавремя
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
Перечислите свойства полей СУБД Access:
Выберите один или несколько ответов:
Проверка данных, вводимых в поле
Поле ссылка на объект OLE
Индексированное поле Indexed
Значение по умолчанию — автоматически добавляется, если пользователь не ввел другое
Формат поля — способ отображения данных из поля
Гиперссылка
Imput Mask — маска ввода
Required (обязательное поле)
Memo
Caption-подпись
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 28
Подробнее…
Перечислите поддерживаемые СУБД модели данных:
Выберите один или несколько ответов:
Иерархическая
Реляционная
Структурированная
Плоский файл
Сетевая
Алгоритмическая
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
Отчет — это…
Выберите один ответ:
элемент данных в записи;
объект базы данных, который используется для вывода на печать данных в отформатированном виде;
объект базы данных Access, содержащий программный код на языке VBA: декларации переменных и функций
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
Основными требованиями к проектированию БД являются:
Выберите один или несколько ответов:
Простота и удобство эксплуатации
Интеграция в систему передачи данных
Обеспечение ограничений, таких как конфигурация вычислительной системы, ресурсы внешней и оперативной памяти
Эффективность функционирования
Соответствие схемы данных моделируемой предметной области
Гибкость
Защита данных от разрушений при сбоях оборудования, некорректных обновлений и, если необходимо, несанкционированного доступа
Способность реагировать на внешние условия и изменения
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
Основные объекты Access —
Выберите один ответ:
таблицы, формы, запросы, отчеты, страницы;
таблицы, запросы, формы, отчеты, страницы, макросы, модули.
запросы, отчеты, формы, макросы, таблицы;
формы, отчеты, макросы, модули;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
Определите верны ли утверждения:
Выберите один или несколько ответов:
Наличие трех типов отношений (класс — элемент класса; свойство — значение; пример элемента класса) не является характерной особенностью семантических сетей;
В семантических сетях не используются пространственные и временные отношения;
Преимуществом семантической сети, как модели представления знаний является ее соответствие современным представлениям о борганизации долговременной памяти человека;
По количеству типов отношений выделяют однородные и неоднородные семантические сети;
Семантика — это наука, устанавливающая отношения между символами и объектами, которые они обозначают, то есть наука, определяющая смысл знаний;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
Обращение к СУБД, содержащее задание на выборку, добавление, изменение или удаление записей — это…
Выберите один ответ:
отчет.
запрос;
форма;
таблица;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 22
Подробнее…
Обобщенная структура экспертных систем включает в себя следующие элементы:
Выберите один или несколько ответов:
Инженер по знаниям;
Решатель;
Интерфейс пользователя;
База знаний;
Система объяснений;
Интеллектуальный редактор базы знаний
Пользователь;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
Начальный уровень абстракции или так называемый ЛПП, соответствует представлениям о предметной области:
Выберите один ответ:
Администратора баз данных
Администратора
Конечных пользователей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
На рисунке представлена связь типа «многие-ко-многим», она:
Выберите один ответ:
может существовать, но для реализации конкретного проекта БД, она должна уточняться и представляться в виде двух связей, возможно с помощью дополнительной таблицы
данная связь невозможна на практике, она всегда неправильна
встречается редко, в дальнейшем должна пересматриваться и детализироваться.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 24
Подробнее…
На рисунке представлена связь типа «многие-к-одному», она:
Выберите один ответ:
говорит, что конкретные экземпляры Аи В могут существовать без связи между ними, она применяется редко и требует уточнения
встречается часто и является основным видом связи при построении ER-модели
встречается очень редко
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
На рисунке представлена связь «один-к-одному»
Выберите один ответ:
связи применяются редко
связи применяются редко — для показа альтернативы
связи применяются для отображения иерархических отношений
данные связи невозможны
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 29
Подробнее…
Лингвистическая переменная — это переменная, значение которой определяется набором вербальных (словестных) характеристик некоторого свойства:
Выберите один ответ:
Верно;
Неверно;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 24
Подробнее…
Ключевое поле — это…
Выберите один ответ:
текст любого размера
поле, которое позволяет вводить ограничение для проверки правильности ввода данных.
поле, которое однозначно идентифицирует каждый объект в таблице любого типа;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
Какой из ниже перечисленных запросов нельзя построить
Выберите один ответ:
простой
параллельный
перекрестный
на создание таблицы
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Какого раздела не существует в конструкторе форм
Выберите один ответ:
верхнего колонтитула
итоговый
заголовка
область данных
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Какими специфическими особенностями обладает поле типа «счетчик»?
Выберите один ответ:
объект, связанный или внедренный в таблицу Microsoft Access.
уникальные последовательно возрастающие (на 1) или случайные числа, автоматически вводящиеся при добавлении каждой новой записи в таблицу.
текст или числа, не требующие проведения расчетов, например, номера телефонов, коды и т. п.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 28
Подробнее…
Каким двум основным требованиям должен удовлетворять состав атрибутов отношения БД?
Выберите один или несколько ответов:
Количество атрибутов должно быть минимальным
Группировка атрибутов должна обеспечивать минимальное дублирование данных, их обработку без трудностей
Между атрибутами не должно быть нежелательных функциональных зависимостей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Какие функции выполняет машина вывода (интерпритатор правил)?
Выберите один или несколько ответов:
управляет процессом копсультации, сохраняя для пользователя информацию о полученных заключениях;
просмотр существующих фактов из рабочей памяти (базы данных) и правил из базы знаний и добавление по мере возможности в рабочую память новых фактов;
определение порядка просмотра и применения правил;
запрашивает у пользователя информацию, когда для срабатывания очередного правила в рабочей памяти оказывается недостаточно данных
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 23
Подробнее…
Какие технологические операции входят в ER-моделирование?
Выберите один или несколько ответов:
Разработка ER-модели
Получение ER-диаграммы
Проверка качества ER-модели
Генерация реляционной таблицы из ER-модели
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
Какие способы удаления записей применяются на практике?
Выберите один или несколько ответов:
Комплексное удаление записи
Логическое удаление записи
Физическое удаление записи
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 21
Подробнее…
Какие специалисты входят в коллектив разработки экспертной системы?
Выберите один или несколько ответов:
Бухгалтер;
Психолог;
Эксперт;
Программист;
Пользователь;
Экономист;
Инженер по знаниям.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 22
Подробнее…
Какие свойства полей позволяют обеспечивать контроль целостности
Выберите один ответ:
сообщение об ошибке, обязательное поле, пустые строки;
все, вышеперечисленное.
размер поля формат поля, маска ввода;
значение по умолчанию, условия на значения;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Какие недостатки имеет физическая сортировка?
Выберите один или несколько ответов:
При вводе новых данных нужна новая сортировка
Не может справиться с большим объемом данных
При создании новой таблицы можно столкнуться с нехваткой места
При наличии нескольких таблиц бывают несоответствия данных в них
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 23
Подробнее…
Какие достоинства баз данных обусловили их широкое использование в управлении предприятием?
Выберите один или несколько ответов:
Целостность
Оперативность
Доступность
Безопасность
Простота их использования
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 29
Подробнее…
Какие действия предполагает этап стыковки экспертной системы?
Выберите один ответ:
Интеграция экспертной системы с другими программными средствами в среде, в которой она будет работать, и обучение людей которых она будет обслуживать;
Проведение тестирования экспертной системы в отношении критериев эффективности;
Разработка прототипной версии системы, спроектированной для проверки правильности кодирования фактов, связей и стратегий рассуждения эксперта;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
Какие виды проверок качества ER-модели выделяют:
Выберите один или несколько ответов:
Вариабельная проверка качества
Экспертная проверка качества
Автоматическая проверка качества
Консультационная проверка качества
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 35
Подробнее…
Какие в настоящее время существуют направления исследований в области искусственного интеллекта?
Выберите один или несколько ответов:
Когнитивное моделирование.
Обучение и самообучение;
Представление знаний и разработка систем, основанных на знаниях;
Генетические алгоритмы;
Игры и машинное творчество;
Разработка естественно-языковых интерфейсов и машинный перевод;
Интеллектуальные роботы;
Новые архитектуры компьтеров;
Распознование образов;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
Какие атрибуты (признаки) обьекта должны быть отражены в информационной модели, описывающей хобби ваших однокласников, если эта модель позволяет получить ответы на следующие вопросы:
— указать возраст всех детей, увлекающихся компьютером
— указать фамилии девочек, увлекающихся пением
— указать фамилии мальчиков, увлекающихся хокеем?
Выберите один ответ:
фамилия, имя, пол, возраст, хобби;
имя, пол, хобби;
имя, пол, хобби, возраст;
фамилия, пол, хоккей, пение, возраст;
имя, возраст, хобби.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 20
Подробнее…
Каждому типу связи одной таблицы соответствует одна и более записей во второй таблице. К какому типу связей принадлежит данный тип связи?
Выберите один ответ:
Многие-ко-многим
Один-к-одному
Один-ко-многим
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 22
Подробнее…
Каждому типу связи одной таблицы соответствует одна и только одна запись другой таблицы. К какому типу связи принадлежит данный тип связи?
Выберите один ответ:
Многие-ко-многим
Один-ко-многим
Один-к-одному
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 18
Подробнее…
Каждая запись первой таблицы может (должна) быть связана с одной и более записей во второй таблице. К какому типу связей принадлежит данный тип связи
Выберите один ответ:
Один-к-одному
Один-ко-многим
Многие-ко-многим
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 28
Подробнее…
К способам распределения данных относят:
Выберите один или несколько ответов:
Одинаковые копии данных хранятся в разных местах использования
Независимые БД подразделений, спроектированные без координации, требующие объединения — несовместимые данные
К способам распределения данных относят варианты 1,2,3,4 и 6.
На различных объектах используются одинаковые структуры данных, объединяемые в интегрируемые системы
На различных объектах используются одинаковые структуры, но хранятся разные данные
Группы данных, которые не совместимы с исходной базой данных хранятся отдельно для местной обработки
Данные в системе интегрируются при передаче на более высокий уровень управления
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
К отличительным особенностям фильтрации данных относят:
Выберите один или несколько ответов:
При фильтрации данных показываются или скрываются записи удовлетворяющие, неудовлетворяющие определенному условию
Фильтры не дают возможности включать в результирующую таблицу выбранные поля. При этом отображаются все поля
Результаты фильтрации сохраняются как объект в окне БД
Фильтры не позволяют объединять таблицы
Фильтры не позволяют осуществлять нахождение суммы, поиск среднего значения, подсчет количества записей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
К основным операциям, допустимыми над объектами в сетевой модели данных не относят:
Выберите один или несколько ответов:
Операция «включить групповое отношение»
Операция «объединение»
Операция «обновить»
Операция «пересечение»
Операция «запомнить»
Операция «удалить»
Операция «переключить»
Операция «копировать»
Операция «извлечь»
Операция «исключить из группового отношения»
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
К грубым ошибкам атрибутов относят:
Выберите один или несколько ответов:
Имя не уникально в пределах сущности
Не определен формат и (или) длина
Нет описания атрибутов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 30
Подробнее…
Искусственный интеллект — это направление информатики, целью которого является разработка аппаратно-программных средств, позволяющих пользователю-непрограммисту ставить и решать свои, традиционно считающиеся интеллектуальными задачи, общаясь с ЭВМ на ограниченном подмножестве естественного языка.
Выберите один ответ:
Верно;
Неверно.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 15
Подробнее…
Из скольких шагов состоит генерация предварительного проекта БД:
Выберите один ответ:
Трех
Двух
Пяти
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 21
Подробнее…
Из каких элементов состоит хранимая запись?
Выберите один или несколько ответов:
Служебная часть
Информационная часть
Концептуальная часть
Коммерческая часть
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 24
Подробнее…
Задание обеспечения целостности данных в Access позволит контролировать то, что:
Выберите один или несколько ответов:
Невозможно ввести в связанное поле подчиненной таблицы значение, отсутствующее в соответствующем поле главной
Невозможно изменить ключевое поле главной таблицы, если в подчиненной существуют связанные с ней записи
Удаляются все не связанные записи в подчиненной таблице
Невозможно удаление записей из главной таблицы, если существуют связанные с ней записи в подчиненной
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
Если установить каскадное обновление, то при изменении ключевого поля главной таблицы:
Выберите один ответ:
Удаляются все связанные записи в подчиненной
Будут изменены значения полей связанных записей
Оба варианта ответа неверны
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 22
Подробнее…
Для того, чтобы задать в СУБД Access …? Таблицы необходимо использовать кнопку с изображением ключа, выделив …?
Выберите один ответ:
ключ, одно или несколько полей;
пароль для входа, пароль поля.
параметры защиты, поле;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 58
Подробнее…
Для ввода, просмотра и модифицирования в таблице или запросе предназначен объект
Выберите один ответ:
отчет.
таблица;
форма;
запрос;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 31
Подробнее…
Для сети с небольшим объемом данных и отсутствием реальной необходимости их защиты целесообразно применять:
Выберите один ответ:
Систему архитектуры «клиент-сервер»
Файл-сервер
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
Данные — это:
Выберите один ответ:
отдельные факты, характеризующие обекты, процессы и явления предметной области, а также их свойства;
закономерности предметной области, полученные в результате практической деятельности и профессионального опыта, позволяющие специалистам ставить и решать задачи в этой области;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
Выделите грубые ошибки сущности:
Выберите один или несколько ответов:
Нет информации по объему сущности
Ключ состоит из необязательных элементов
У сущности нет описания
Сущность имеет только один подтип
У сущности нет ключа
У сущности нет ни одной связи
Имя не уникально в пределах проекта
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 52
Подробнее…
В таблицу базы данных, содержащей три столбца «Фамилия», «Имя», «Телефон» вписано 200 человек. Сколько полей и записей в таблице?
Выберите один ответ:
полей — 600, записей — 200;
полей — 200, записей — 3;
полей — 3, записей — 200.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 42
Подробнее…
В СУБД Access основное свойство «значение по умолчанию» определяет:
Выберите один ответ:
область или диапазон значений данных, допустимых в поле;
текст, который будет отображаться рядом с полем в форме или в отчете; эксплуатации
как должно отображаться содержимое поля;
определяет значение, которое вводится в поле автоматически при добавлении новых записей (значение, которое наиболее часто встречается в данном поле);
текст сообщения, которое появляется в строке состояния при попытке ввести в поле недопустимое значение.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 26
Подробнее…
В соответствии с классификацией по связи с реальным временем выделяют следующие виды экспертных систем:
Выберите один или несколько ответов:
Квазидинамические;
Динамические;
Оперативные.
Статические;
Быстродействующие;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 34
Подробнее…
В настоящее время промышленные экспертные системы используются:
Выберите один или несколько ответов:
Для формирования портфеля инвестиций и оценке финансовых рисков;
При постановке медицинских диагнозов;
В управлении сложными диспетчерскими пультами.
При проектировании интегральных микросхем;
При поиске неисправностей в электронных приборах;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 32
Подробнее…
В иерархической модели данных каждой записи БД существует:
Выберите один ответ:
Оба варианта ответа неверны
Два пути от корневой записи
Только один путь от корневой записи
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
База данных содержит информацию об учениках школы: фамилия, класс, балл за тест, балл за практическое задание, общее количество баллов. Какого типа должно быть поле «Общее количество балов»?
Выберите один ответ:
дата.
логическое;
числовое;
любого типа;
символьное;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 21
Подробнее…
База данных задана следующей таблицей:
Записи пронумерованы от 1 до 7 соответственно их порядку в таблице.
В каком порядке будут идти записи, если их отсортировать по двум ключам «название+кинотеатр» в порядке убывания?
Выберите один ответ:
6,2,4,7,3,1,5;
правильного ответа нет
5,1,3,7,4,2,6;
1,5,3,4,7,2,6;
6,2,7,4,3,1,5;
2,5,4,7,1,3,6;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 27
Подробнее…
База данных (БД) -это
Выберите один ответ:
произвольная информация, представленная в символьной (цифровой) форме.
Совокупность взаимосвязанных данных, используемых группой пользователей и хранящиеся с регулируемой избыточностью, при этом хранимые данные не зависят от прикладных программ
програмные средства, осуществляющие поиск информации;
Отзыв
Правильный ответ: Совокупность взаимосвязанных данных, используемых группой пользователей и хранящиеся с регулируемой избыточностью, при этом хранимые данные не зависят от прикладных программ
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 20
Подробнее…
Автономные экспертные системы представляют программный комплекс, агригирующий стандартные пакеты прикладных программ (например, математическую статистику, линейное программирование или системы управления базами данных) и средства манипулирования знаниями.
Выберите один ответ:
Неверно;
Верно;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 20
Подробнее…
Сопоставьте характеристики систем кодирования информации:
|
Шифры имеют диапазон по одному классификационному признаку |
Последовательная система кодирования |
|
Данная классификация информации соответствует иерархической системе классификации. Шифр каждой нижестоящей группировки образуется путем прибавления цифр к вышестоящей группировке. Шифр обладает информативностью, но он громоздкий, в связи с этим система кодирования используется в заранее разработанной системе классификации. |
Серийно-порядковая система кодирования |
|
Группировки цифр шифра не зависят друг от друга. Шифр имеет большую длину. Данная система применяется для целей маркировки |
Порядковая система кодирования |
|
Шифры присваиваются последовательно, так, чтобы уникально отличить один объект классификации от другого. Шифр компактен, но не информативен |
Параллельная система кодирования |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 52
Подробнее…
Сопоставьте название и описание этапов разработки экспертной системы.
|
Проведение тестирования экспертной системы в отношении критериев эффективности. |
Выбор подходящей проблемы |
|
Этот этап определяет деятельность, предшествующую решению начать разрабатывать конкретную экспертную систему |
Оценка системы |
|
Интеграция экспертной системы с другими программными средствами в среде, в которой она будет работать, и обучение специалистов которых она будет обслуживать |
Развитие прототипа до промышленной экспертной системы |
|
Переход от демонстрационного прототипа к промышленной системе, предполагающее расширение базы знаний, то есть добавление дольшего числа правил, фреймов, узлов семантической сети и др. элементов |
Разработка прототипной системы |
|
Разработка прототипной версии системы, спроектированной для проверки правильности кодирования фактов, связей и стратегий рассуждения эксперта |
Стыковка системы |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 38
Подробнее…
Сопоставьте название и описание этапов перехода от прототипа к промышленной экспертной системе.
|
Система решает большую часть задач, но неустойчива в работе и не полностью проверена (несколько сотен правил или понятий) |
Действующий прототип ЭС |
|
Система надежно решает все задачи на реальных примерах, но для сложной задачи требует много времени и памяти |
Исследовательский прототип ЭС |
|
Промышленная система, пригодная к продаже, то есть хорошо документирована и снабжена сервисом |
Демонстрационный прототип ЭС |
|
Система решает часть задач, демонстрируя жизнеспособность подхода (несколько десятков правил или понятий) |
Промышленная система |
|
Система обеспечивает высокое качество решений при минимизации требуемого времени и памяти, переписывается с использованием более эффективных средств представления знаний |
Коммерческая система |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 25
Подробнее…
Сопоставьте название и описание содержания фаз анализа и синтеза при проведении структурного подхода.
|
Анализ смысла составных частей каждого предложения на основе некоторой предметно-ориентированной базы знаний |
Синтаксический анализ |
|
Разбор состава предложений и грамматических связей между словами |
Семантический анализ |
|
Анализ смысла предложений в реальном контексте на основе собственной базы знаний |
Морфологический анализ |
|
Анализ слов в тексте |
Прагматический анализ |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Сопоставить характеристики операций обновления баз данных в реляционной модели данных:
|
Операция выполняется для заданного отношения, при этом можно корректировать как один, так и несколько кортежей отношения |
Операция объединение |
|
Операция предполагает, что на выходе заданы два односхемных отношения (имеющих одинаковую структуру и атрибуты, но разные названия) |
Операция обновить |
|
На входе два односхемных отношения, выход — отношение, построенное по той же схеме, содержащее картежи из А, которые есть в В |
Операция включить |
|
Операция требует задания имени отношения и предварительного формирования значения атрибутов нового кортежа |
Операция пересечения |
|
В итоге осуществления операции остаются те картежи из А, которых нет в В |
Декартово произведение |
|
С4=А*В. Операция состоит в том, что отношения А и В построены по разным схемам |
Операция вычитания |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 47
Подробнее…
Contents
- 1 Основные сведения
- 2 Логическая фаза
- 2.1 Сбор требований
- 2.2 Определение сущностей
- 2.3 Определение атрибутов
- 2.4 Ключи
- 2.4.1 Возможный ключ
- 2.4.2 Первичные ключи
- 2.4.3 Альтернативные ключи
- 2.4.4 Внешние ключи
- 2.5 Определение связей между сущностями
- 2.5.1 Один-к-одному
- 2.5.2 Один-ко-многим
- 2.5.3 Многие-ко-многим
- 2.6 Нормализация
- 2.6.1 Первая нормальная форма
- 2.6.2 Вторая нормальная форма
- 2.6.3 Третья нормальная форма
- 2.6.4 Ограничения
- 2.6.5 Хранимые процедуры
- 2.6.6 Целостность данных
- 2.6.7 Триггеры
- 2.6.8 Деловые правила
- 2.7 Физическая модель
- 2.8 Денормализация
Основные сведения
Термин «реляционный» означает «основанный на отношениях». Реляционная база данных состоит из сущностей (таблиц), находящихся в некотором отношении друг с другом. Название произошло от английского слова relation—отношение.
Проектирование базы данных состоит из двух основных фаз: логического и физического моделирования.
Во время логического моделирования вы собираете требования и разрабатываете модель базы данных, не зависящую от конкретной СУБД (системы управления реляционными базами данных). Это похоже на то, как если бы вы создавали чертежи вашего дома. Вы могли бы продумать и начертить все: где будет кухня, спальни, гостиная. Но это все на бумаге и в макетах.
Во время физического моделирования вы создаете модель, оптимизированную для конкретного приложения и СУБД. Именно эта модель реализуется на практике. Если вернуться к дому из предыдущего абзаца, на этом этапе вам придется строить где-нибудь дом — таскать бревна, кирпичи…
Процесс проектирования базы данных состоит из следующих этапов:
- сбор информации;
- определение сущностей;
- определение атрибутов для каждой сущности;
- определение связей между сущностями;
- нормализация;
- преобразование к физической модели;
- создание базы данных.
Первые 5 этапов образуют фазу логического проектирования, а остальные два — фазу физического моделирования.
Логическая фаза
Логическая фаза состоит из нескольких этапов. Далее они все рассмотрены.
Сбор требований
На этом этапе вам необходимо точно определить, как будет использоваться база данных и какая информация будет в ней храниться. Соберите как можно больше сведений о том, что система должна делать и чего не должна.
Определение сущностей
На этом этапе вам необходимо определить сущности, из которых будет состоять база данных.
Сущность — это объект в базе данных, в котором хранятся данные. Сущность может представлять собой нечто вещественное (дом, человек, предмет, место) или абстрактное (банковская операция, отдел компании, маршрут автобуса). В физической модели сущность называется таблицей.
Сущности состоят из атрибутов (столбцов таблицы) и записей (строк в таблице).
Обычно базы данных состоят из нескольких основных сущностей, связанных с большим количеством подчиненных сущностей. Основные сущности называются независимыми: они не зависят ни от какой-либо другой сущности. Подчиненные сущности называются зависимыми: для того чтобы существовала одна из них, должна существовать связанная с ней основная таблица.
На диаграммах сущности обычно представляются в виде прямоугольников. Имя сущности указывается внутри прямоугольника:
Любая таблица имеет следующие характеристики:
- в ней нет одинаковых строк;
- все столбцы (атрибуты) в таблице должны иметь разные имена;
- элементы в пределах одной колонки имеют одинаковый тип (строка, число, дата);
- порядок следования строк в таблице может быть произвольным.
На этом этапе вам необходимо выявить все категории информации (сущности), которые будут храниться в базе данных.
Определение атрибутов
Атрибут представляет свойство, описывающее сущность. Атрибуты часто бывают числом, датой или текстом. Все данные, хранящиеся в атрибуте, должны иметь одинаковый тип и обладать одинаковыми свойствами.
В физической модели атрибуты называют колонками.
После определения сущностей необходимо определить все атрибуты этих сущностей.
На диаграммах атрибуты обычно перечисляются внутри прямоугольника сущности. На рисунке вы найдете пример базы данных «Дома», только теперь для сущностей из этой базы определены некоторые атрибуты.
Для каждого атрибута определяется тип данных, их размер, допустимые значения и любые другие правила. К их числу относятся правила обязательности заполнения, изменяемости и уникальности.
Правило обязательности заполнения определяет, является ли атрибут обязательной частью сущности. Если атрибут является необязательной частью сущности, то он может принимать NULL-значение, иначе — нет.
Также вы должны определить, является ли атрибут изменяемым. Значения некоторых атрибутов не могут измениться после создания записи.
И, наконец, вам нужно определить, является ли атрибут уникальным. Если это так, то значения атрибута не могут повторяться.
Ключи
Ключом (key) называется набор атрибутов, однозначно определяющий запись. Ключи делятся на два класса: простые и составные.
Простой ключ состоит только из одного атрибута. Например, в базе «Паспорта граждан страны» номер паспорта будет простым ключом: ведь не бывает двух паспортов с одинаковым номером.
Составной ключ состоит из нескольких атрибутов. В той же базе «Паспорта граждан страны» может быть составной ключ со следующими атрибутами:
фамилия, имя, отчество, дата рождения. Это — как пример, т. к. этот составной ключ, теоретически, не обеспечивает гарантированной уникальности записи.
Также существует несколько типов ключей, о которых рассказано далее.
Возможный ключ
Возможный ключ представляет собой любой набор атрибутов, однозначно идентифицирующих запись в таблице. Возможный ключ может быть простым или составным.
Каждая сущность должна иметь, по крайней мере, один возможный ключ, хотя таких ключей может быть и несколько. Ни один из атрибутов первичного ключа не может принимать неопределенное (NULL) значение.
Возможный ключ называется также суррогатным.
Первичные ключи
Первичным ключом называется совокупность атрибутов, однозначно идентифицирующих запись в таблице (сущности). Один из возможных ключей становится первичным ключом. На диаграммах первичные ключи часто изображаются выше основного списка атрибутов или выделяются специальными символами. Сущность на рисунке имеет как ключевые, так и обычные атрибуты.
Альтернативные ключи
Любой возможный ключ, не являющийся первичным, называется альтернативным ключом. Сущность может иметь несколько альтернативных ключей.
Внешние ключи
Внешним ключом называется совокупность атрибутов, ссылающихся на первичный или альтернативный ключ другой сущности. Если внешний ключ не связан с первичной сущностью, то он может содержать только неопределенные значения. Если при этом ключ является составным, то все атрибуты внешнего ключа должны быть неопределенными.
На диаграммах атрибуты, объединяемые во внешние ключи, обозначаются специальными символами. На рисунке изображены две связанные сущности (Дома и их Хозяева) и образованные ими внешние ключи (ведь один человек может владеть больше, чем одним домом).
Ключи являются логическими конструкциями, а не физическими объектами. В реляционных базах данных предусмотрены механизмы, обеспечивающие сохранение ключей.
Определение связей между сущностями
Реляционные базы данных позволяют объединять информацию, принадлежащую разным сущностям.
Отношение — это ситуация, при которой одна сущность ссылается на первичный ключ второй сущности. Как, например, сущности Дом и Хозяин на предыдущем рисунке.
Отношения определяются в процессе проектирования базы. Для этого следует проанализировать сущности и выявить логические связи, существующие между ними.
Тип отношения определяет количество записей сущности, связанных с записью другой сущности. Отношения делятся на три основных типа, о которых рассказано далее.
Один-к-одному
Каждой записи первой сущности соответствует только одна запись из второй сущности. А каждой записи второй сущности соответствует только одна запись из первой сущности. Например, есть две сущности: Люди и Свидетельства о рождении. И у одного человека может быть только одно свидетельство о рождении.
Один-ко-многим
Каждой записи первой сущности могут соответствовать несколько записей из второй сущности. Однако каждой записи второй сущности соответствует только одна запись из первой сущности. Например, есть две сущности: Заказ и Позиция заказа. И в одном заказе может быть много товаров.
Многие-ко-многим
Каждой записи первой сущности могут соответствовать несколько записей из второй сущности. Однако и каждой записи второй сущности может соответствовать несколько записей из первой сущности. Например, есть две сущности: Автор и Книга. Один автор может написать много книг. Но у книги может быть несколько авторов.
По критерию обязательности отношения делятся на обязательные и необязательные.
- Обязательное отношение означает, что для каждой записи из первой сущности непременно должны присутствовать связанные записи во второй сущности.
- Необязательное отношение означает, что для записи из первой сущности может и не существовать записи во второй сущности.
Нормализация
Нормализацией называется процесс удаления избыточных данных из базы данных. Каждый элемент данных должен храниться в базе в одном и только в одном экземпляре. Существует пять распространенных форм нормализации. Как правило, база данных приводится к третьей нормальной форме.
В процессе нормализации выполняются определенные действия по удалению избыточных данных. Нормализация повышает быстродействие, ускоряет сортировку и построение индекса, уменьшает количество индексов на сущность, ускоряет операции вставки и обновления.
Нормализованная база данных обычно отличается большей гибкостью. При модификации запросов или сохраняемых данных в нормализованную базу обычно приходится вносить меньше изменений, а внесение изменений имеет меньше последствий.
Первая нормальная форма
Чтобы преобразовать сущность в первую нормальную форму, следует исключить повторяющиеся группы значений и добиться того, чтобы каждый атрибут содержал только одно значение, списки значений не допускаются.
Другими словами, каждый атрибут в сущности должен храниться только в одном экземпляре.
Например, на рисунке сущность Дом не нормализована. Она содержит несколько атрибутов для хранения данных о владельцах дома (сущность Дом не соответствует первой нормальной форме).
Для приведения сущности Дом в первую нормальную форму необходимо удалить повторяющиеся группы значений, т. е. удалить атрибуты Владелец 1—3, поместив их в отдельную сущность. Результат (Сущность Дом, приведенная к первой нормальной форме):
Вторая нормальная форма
Таблица во второй нормальной форме содержит только те данные, которые к ней относятся. Значения не ключевых атрибутов сущности зависят от первичного ключа. Если более точно, то атрибуты зависят от первичного ключа, от всего первичного ключа и только от первичного ключа.
Для соответствия второй нормальной форме сущности должны быть в первой нормальной форме.
Например, у сущности Дом на рисунке есть атрибут Цена литра бензина, который не имеет ничего общего с домами. Этот атрибут удаляется (или вы можете перенести его в другую сущность). А также мы переносим атрибут Мэр в отдельную сущность — этот атрибут зависит от города, где находится дом, а не от дома.
На рисунке изображена сущность Дом во второй нормальной форме (Сущность Дом, приведенная ко второй нормальной форме).
Третья нормальная форма
В третьей нормальной форме исключаются атрибуты, не зависящие от всего ключа. Любая сущность, находящаяся в третьей нормальной форме, находится также и во второй. Это самая распространенная форма базы данных.
В третьей нормальной форме каждый атрибут зависит от ключа, от всего ключа и ни от чего, кроме ключа.
Например, у сущности Владелец дома на рисунке есть атрибут Знак зодиака, который зависит от даты рождения владельца дома, а не от его имени (которое является ключом).
Для приведения сущности Владелец дома необходимо создать сущность Знаки зодиака и перенести туда атрибут Знак зодиака (Сущность Владелец дома, приведенная к третьей нормальной форме):
Ограничения
Ограничения (constrains) — это правила, за соблюдением которых следит система управления базы данных. Ограничения определяют множество значений, которые можно вводить в столбец или столбцы.
Например, вы не хотите, чтобы сумма заказа в вашем очень крутом магазине была бы меньше 500 рублей. Вы просто устанавливаете ограничение на колонку Сумма заказа.
Хранимые процедуры
Хранимые процедуры (stored procedures) — это предварительно откомпилированные процедуры, хранящиеся в базе данных. Хранимые процедуры можно использовать для определения деловых правил, с их помощью можно осуществлять более сложные вычисления, чем с помощью одних лишь ограничений.
Хранимые процедуры могут содержать логику хода выполнения программы, а также запросы к базе данных. Они могут принимать параметры и возвращать результаты в виде таблиц или одиночных значений.
Хранимые процедуры похожи на обычные процедуры или функции в любой программе.
ПРИМЕЧАНИЕ
Хранимые процедуры находятся в базе данных и выполняются на сервере базы данных. Как правило, они быстрее операторов SQL, поскольку хранятся в компилированном виде.
Целостность данных
Организовав данные в таблицы и определив связи между ними, можно считать, что была создана модель, правильным образом отражающая бизнес-среду. Теперь нужно обеспечить, чтобы данные, вводимые в базу, давали правильное представление о состоянии дела. Иными словами, нужно обеспечить выполнение деловых правил и поддержку целостности (integrity) базы данных.
Например, ваша компания занимается доставкой книг. Вы вряд ли примете заказ от неизвестного клиента, ведь тогда вы даже не сможете доставить заказ. Отсюда бизнес-правило: заказы принимаются только от клиентов, информация о которых есть в базе данных.
Корректность данных в реляционных базах обеспечивается набором правил. Правила целостности данных делятся на четыре категории.
- Целостность сущностей — каждая запись сущности должна обладать уникальным идентификатором и содержать данные. Ведь надо же вам как-то различать все эти записи в базе данных.
- Целостность атрибутов — каждый атрибут принимает лишь допустимые значения. Например, сумма покупки, определенно, не может быть меньше нуля.
- Ссылочная целостность — набор правил, обеспечивающих логическую согласованность первичных и внешних ключей при вставке, обновлении и удалении записей. Ссылочная целостность обеспечивает, чтобы для каждого внешнего ключа существовал соответствующий первичный ключ. Возьмем предыдущий пример с сущностями Владелец дома и Дом. Допустим, вы Вася Иванов и владеете домом. Вы сменили фамилию на Сидоров и внесли соответствующие изменения в сущность Владелец дома. Определенно вы бы хотели, чтобы ваш дом продолжал числиться за вами под вашим новым именем, а не принадлежал некоему Васе Иванову, которого уже не существует.
- Пользовательские правила целостности — любые правила целостности, неотносящиеся ни к одной из перечисленных категорий.
Триггеры
Триггер — это аналог хранимой процедуры, который вызывается автоматически при изменении данных в таблице.
Триггеры являются мощным механизмом для поддержания целостности базы данных. Триггеры вызываются до или после изменения данных в таблице.
С помощью триггеров вы можете не только отменить эти изменения, но и изменить данные в любой другой таблице.
Например, вы создаете интернет-форум, и вам необходимо сделать так, чтобы в списке форумов показывалось последнее сообщение форума. Конечно, вы можете брать сообщение из сущности Сообщения форума, но это увеличит сложность вашего запроса и время его выполнения. Проще добавить триггер к сущности Сообщения форума, который бы записывал последнее добавленное сообщение в сущность Форумы, в атрибут Последнее сообщение. Это сильно упростит запрос.
Деловые правила
Деловые правила определяют ограничения, накладываемые на данные в соответствии с требованиями бизнеса (тех, для кого вы создаете базу). Деловые правила могут состоять из набора шагов, необходимых для выполнения определенной задачи, или же они могут быть просто проверками, которые контролируют правильность введенных данных. Деловые правила могут включать правила целостности данных. В отличие от других правил, их главная цель — обеспечить правильное ведение деловых операций.
Например, в компании «Очень крутые парни» может быть так принято, что закупаются для служебных нужд только белые, синие и черные автомобили.
Тогда деловое правило для атрибута Цвет автомобиля сущности Служебные автомобили будет гласить, что автомобиль может быть только белым, синим или черным.
Большинство СУБД предоставляют средства:
- для указания значений по умолчанию;
- для проверки данных перед занесением их в базу;
- для поддержания связей между таблицами;
- для обеспечения уникальности значений;
- для хранения хранимых процедур непосредственно в базе.
Все эти возможности можно применять для реализации деловых правил в базе данных.
Физическая модель
Следующим шагом, после создания логической модели, является построение физической модели. Физическая модель — это практическая реализация базы данных. Физическая модель определяет все объекты, которые вам предстоит реализовать.
При переходе от логической модели к физической сущности преобразуются в таблицы, а атрибуты в столбцы.
Отношения между сущностями можно преобразовать в таблицы или оставить как внешние ключи.
Первичные ключи преобразуются в ограничения первичных ключей. Возможные ключи — в ограничения уникальности.
Денормализация
Денормализация — это умышленное изменение структуры базы, нарушающее правила нормальных форм. Обычно это делается с целью улучшения производительности базы данных.
Теоретически, надо всегда стремиться к полностью нормализованной базе, однако на практике полная нормализация базы почти всегда означает падение производительности. Чрезмерная нормализация базы данных может привести к тому, что при каждом извлечении данных придется обращаться к нескольким таблицам. Обычно в запросе должны участвовать четыре таблицы или менее.
Стандартными приемами денормализации являются: объединение нескольких таблиц в одну, сохранение одинаковых атрибутов в нескольких таблицах, а также хранение в таблице сводных или вычисляемых данных.
4.9
18
Голоса
Рейтинг статьи
Введение в проектирование сущностей, проблемы создания объектов
При моделировании такого понятия предметно-ориентированного проектирования как сущность могут возникнуть некоторые сложности, обусловленные бизнес-требованиями или технической частью. В частности, иногда возникает сложность с созданием объекта-сущности.
В данной статье описываются две такие проблемы, и рассматривается способ их решения. Так же статья подойдет как введение в проектирование сущностей. Для понимания материала понадобится базовое представление о предметно-ориентированном проектировании.
Итак, мы изучили предметную область, сформировали единый язык, выделили ограниченные контексты и определились с требованиями [2]. Всё это выходит за рамки данной статьи, тут мы попробуем решить конкретные узкие проблемы:
- Создание и обеспечение консистентности сложных объектов-сущностей.
- Создание объектов-сущностей с генерацией идентификатора по автоинкрементному полю базы данных.
Введение
У нас есть клиент, который должен быть смоделирован как сущность (Entity) [2]. С точки зрения бизнеса у каждого клиента обязательно есть:
- имя или наименование;
- организационная форма (физ. лицо, ИП, ООО, АО и т.д.);
- главный менеджер (один из менеджеров, закрепляется за клиентом);
- информация о фактическом адресе;
- информация о юридическом адресе.
А так же может быть всевозможная дополнительная информация.
В простом случае класс, реализующий моделируемую сущность, может выглядеть следующим образом.
namespace Domain;
final class Client
{
public function getId(): int;
public function setId($id): void;
public function setCorporateForm($corporateForm): void;
public function setName($name): void;
public function setGeneralManager(Manager $manager): void;
public function setCountry($country): void;
public function setCity($city): void;
public function setStreet($street): void;
public function setSubway($subway): void;
}
Целый ряд свойств мы опустили, для упрощения примера, реальный класс может быть значительно больше.
Полученная модель анемичная, перегружена ничего не значащими сеттерами вместо методов описывающих поведение соответствующее бизнес-требованиям. В любой момент, при таком подходе, можно создать объект в неконсистентном состоянии или нарушить бизнес-логику, установив один из параметров например так.
$client = new Client();
// В данный момент клиент у нас уже находится в не консистентном состоянии
// Если мы хотим запросить его идентификатор, то получим ошибку, т.к. он ещё не установлен
$client->getId();
// Или мы можем сохранить (попытаться) не валидного клиента, у которого не установлены обязательные свойства
$repository->save($client);
Создание и обеспечение консистентности сложных объектов-сущностей.
Для начала попробуем решить проблему консистентности. Для этого уберем из класса сеттеры, а все обязательные параметры будем запрашивать в конструкторе [4]. Таким образом, объект будет всегда валиден, может использоваться сразу после создания и обеспечивается полноценная инкапсуляция предотвращающая возможность приведения клиента в неконсистентное состояние. Теперь наш класс выглядит следующим образом.
namespace Domain;
final class Client
{
public function __construct(
$id,
$corporateForm,
$name,
$generalManager,
$country,
$city,
$street,
$subway = null
);
public function getId(): int;
}
Проблему мы решили, но получилось не слишком изящно. 8 параметров у конструктора, и это не предел. Конечно, далеко не каждая сущность требует так много обязательных параметров, это, пожалуй, не совсем рядовая ситуация, но и не необычная.
Что можно с этим сделать? Простое и очевидное решение — сгруппировать логически связанные параметры в объектах-значениях (Value Object) [3].
namespace Domain;
final class Address
{
public function __construct($country, $city, $street, $subway = null);
}
namespace Domain;
final class Client
{
public function __construct(
int $id,
string $name,
Enum $corporateForm,
Manager $generalManager,
Address $address
);
public function getId(): int;
}
Выглядит гораздо лучше, но параметров всё ещё довольно много, особенно это не удобно, если часть из них скалярные. Решение — шаблон Строитель (Builder) [5].
namespace Application;
interface ClientBuilder
{
public function buildClient(): Client;
public function setId($id): ClientBuilder;
public function setCorporateForm($corporateForm): ClientBuilder;
public function setName($name): ClientBuilder;
public function setGeneralManager(Manager $generalManager): ClientBuilder;
public function setAddress(Address $address): ClientBuilder;
}
$client = $builder->setId($id)
->setName($name)
->setGeneralManagerId($generalManager)
->setCorporateForm($corporateForm)
->setAddress($address)
->buildClient();
Таким образом, моделируемая сущность всегда находится в консистентном состоянии и при этом может быть гибко и понятно построена, не зависимо от сложности создаваемого объекта и количества параметров.
Создание объектов-сущностей с генерацией идентификатора по автоинкрементному полю базы данных.
У проектируемого класса обязательно должен быть уникальный идентификатор, т.к. основной отличительной чертой сущностей является индивидуальность. Объект может значительно изменяться с течением времени, так что ни одно из его свойств не будет равным тому, что было вначале. В то же время все или большинство свойств объекта могут совпадать со свойствами другого объекта, но это будут разные объекты. Именно уникальный идентификатор дает возможность различать каждый объект не зависимо от его текущего состояния [1].
Существуют различные способы формирования идентификаторов, такие как пользовательский ввод, генерация в приложении по какому-либо алгоритму, может генерироваться базой данных.
Cгенерировать, например, UUID или запросить у базы данных очередное значение последовательности не составляет никаких трудностей. Но иногда возникает необходимость работать с уже существующей структурой БД, в которой таблица хранящая соответствующие данные имеет для идентификатора автоинкрементное поле.
В таком случае крайне затруднительно и ненадежно получать очередной уникальный идентификатор без сохранения сущности, а значит невозможно создать объект в полностью консистентном состоянии.
И снова нам поможет в этом шаблон Строитель, который мы можем реализовать следующим образом.
namespace Infrastructure;
final class MySqlClientBuilder implements ClientBuilder
{
private $connection;
public function __construct(Connection $connection);
public function buildClient()
{
$this->connection
->insert('clients_table', [
$this->name,
$this->corporateForm,
$this->generalManager->getId(),
$this->address
]);
$id = $this->connection->lastInsertId();
return new Client(
$id,
$this->name,
$this->corporateForm,
$this->generalManager,
$this->address
);
}
}
Таким образом мы сначала добавляем соответствующую запись в базу данных, после чего получаем её идентификатор и создаем объект. Клиенту об этом знать не обязательно и при изменении способа хранения или генерации идентификаторов вам понадобится только заменить реализацию Строителя в вашем контейнере зависимостей.
$builder = $container->get(ClientBuilder::class);
$client = $builder->setId($id)
->setName($name)
->setGeneralManagerId($generalManager)
->setCorporateForm($corporateForm)
->setAddress($address)
->buildClient();
$repository->save($client);
$client->getId();
Благодарю за внимание!
P.S.:
Прошу не судить слишком строго, «чукча не писатель, чукча читатель». Для более опытных разработчиков описываемые вещи могут показаться банальными, я же к описанному пришел не сразу, но когда применил описанный подход, он зарекомендовал себя отлично.
Опыт разработки у меня относительно не большой — четыре года, DDD применял пока только на одном проекте.
Буду благодарен за отзывы и конструктивные замечания.
Ссылки:
- Эванс Э., «Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем.»
- Вернон В., «Реализация методов предметно-ориентированного проектирования.»
- М. Фаулер, Value Object
- М. Фаулер, Constructor Initialization
- Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидс, «Приёмы объектно-ориентированного проектирования. Паттерны проектирования.»
Содержание
- 1. Какие проблемы могут возникнуть у разработчика при проектировании базы данных?
- 2. Что такое ER-модель (Entity-relationship model)? Для чего нужно разрабатывать ER-модель?
- 3. Что такое сущность в базе данных? Примеры
- 4. Какие существуют разновидности типов сущностей? Обозначение типов сущностей в ER-модели
- 5. Для чего предназначены атрибуты? Виды атрибутов. Обозначение атрибутов на ER-модели
- 6. Как типы сущностей и атрибуты ER-модели реализуются в реальных базах данных и управляемых ими программах?
- 7. Пример фрагмента ER-модели для типа сущности «Студент»
- Связанные темы
Поиск на других ресурсах:
1. Какие проблемы могут возникнуть у разработчика при проектировании базы данных?
При проектировании базы данных и разработке программного продукта наиболее важной проблемой есть проблема взаимодействия разработчика с заказчиком. Задача разработчика – наиболее точно воссоздать пожелания заказчика при разработке программного продукта управления базой данных. Основная проблема, которую нужно решить разработчику – правильное построение базы данных, а точнее схемы (структуры) базы данных.
Кроме того, разработчик дополнительно встречается с другими трудностями, к которым можно отнести:
- поиск эффективных алгоритмов;
- подбор надлежащих структур данных;
- отладка и тестирование сложного кода;
- дизайн и удобство интерфейса приложения.
В процессе разработки программного обеспечения, управляющего базой данных, разработчик должен подробно выучить требования заказчика. База данных должна быть разработана таким образом, чтобы она была понятной, наиболее точно отображала решаемую проблему и не содержала избыточности в данных.
Чтобы облегчить процесс разработки (проектирования) базы данных, используются так называемые семантические модели данных. Для разных видов баз данных наиболее известной есть ER-модель данных (Entity-Relationship model).
⇑
2. Что такое ER-модель (Entity-relationship model)? Для чего нужно разрабатывать ER-модель?
ER-модель (Entity-relationship model или Entity-relationship diagram) – это семантическая модель данных, которая предназначена для упрощения процесса проектирования базы данных. Из ER-модели могут быть порождены все виды баз данных: реляционные, иерархические, сетевые, объектные. В основе ER-модели лежат понятия «сущность», «связь» и «атрибут».
Для больших баз данных построение ER-модели позволяет избежать ошибок проектирования, которые чрезвычайно сложно исправлять, в особенности, если база данных уже эксплуатируется или на стадии тестирования. Ошибки в разработке структуры базы данных могут привести к переделке кода программного обеспечения управляющего этой базой данных. В результате время, средства и человеческие ресурсы будут использованы неэффективно.
ER-модель – это представление базы данных в виде наглядных графических диаграмм. ER-модель визуализирует процесс, который определяет некоторую предметную область. Диаграмма «сущность»-«связь» – это диаграмма, которая представляет в графическом виде сущности, атрибуты и связи.
ER-модель – это только концептуальный уровень моделирования. ER-модель не содержит деталей реализации. Для той же самой ER-модели детали ее реализации могут отличаться.
⇑
3. Что такое сущность в базе данных? Примеры
Сущность в базе данных – это любой объект в базе данных, который можно выделить исходя из сути предметной области для которой разрабатывается эта база данных. Разработчик базы данных должен уметь правильно определять сущности.
Пример 1. В базе данных книжного магазина можно выделить следующие сущности:
- книга;
- поставщик;
- размещение в магазине.
Пример 2. В базе данных учета учебного процесса некоторого учебного заведения можно выделить следующие сущности:
- студенты (ученики);
- преподаватели;
- группы;
- дисциплины, которые изучаются.
⇑
4. Какие существуют разновидности типов сущностей? Обозначение типов сущностей в ER-модели
В модели «сущность»-«связь» различают две разновидности типов сущностей:
- слабый тип. Этот тип сущности есть зависимым от сильной сущности;
- сильный тип. Это самостоятельный тип сущности, который ни от кого не зависит.
На рисунке 1 изображены обозначения слабого и сильного типа сущности в ER-модели.
Рис. 1. Обозначение сильного и слабого типов сущности
⇑
5. Для чего предназначены атрибуты? Виды атрибутов. Обозначение атрибутов на ER-модели
Каждый тип сущности имеет определенный набор атрибутов. Атрибуты предназначены для описания конкретной сущности.
Различают следующие виды атрибутов:
- простые атрибуты. Это атрибуты, которые могут быть частью составных атрибутов. Эти атрибуты состоят из одного компонента. Например, к простым атрибутам можно отнести: код книги в библиотеке или курс обучения студента в учебном заведении;
- составные атрибуты. Это атрибуты, которые состоят из нескольких простых атрибутов. Например, адрес проживания может содержать название страны, населенного пункта, улицы, номера дома;
- однозначные атрибуты. Это атрибуты, которые содержат только одно единственное значение для некоторой сущности. Например, атрибут «Номер зачетной книги» для типа сущности «Студент» есть однозначным, так как студент может иметь только один номер зачетной книги (одно значение);
- многозначные атрибуты. Это атрибуты, которые могут содержать несколько значений. Например, многозначный атрибут «Номер телефона» для сущности «Студент», так как студент может иметь несколько номеров телефона (домашний, мобильный и т.д.);
- произвольные атрибуты. Это атрибуты, значение которых формируется на основе значений других атрибутов. Например, текущий курс обучения студента можно вычислить на основе разности текущего года обучения и года поступления студента в учебное заведение (если студент не имел проблем с учебой и хорошо учил дисциплину «Организация баз данных и знаний»).
На ER-диаграмме атрибуты обозначаются так, как изображено на рисунке 2. Как видно из рисунка, любой атрибут обозначается в виде эллипса с названием внутри эллипса. Если атрибут есть первичным ключом, то его название подчеркивают.
Рисунок 2. Представление атрибутов на диаграммах ER-модели
⇑
6. Как типы сущностей и атрибуты ER-модели реализуются в реальных базах данных и управляемых ими программах?
При разработке программ управления базами данных, типы сущностей и их атрибуты можно представлять по разному при этом придерживаясь нескольких подходов:
- выбрать в качестве источника данных известную технологию (например Microsoft SQL Server, Oracle Database, Microsoft Access, Microsoft ODBC Data Source и т.п.), которая уже исследована, протестирована, стандартизирована и имеет огромный набор средств управления базой данных;
- разработать собственный формат базы данных и реализовать методы ее обработки, а взаимодействие с известными источниками данных реализовать в виде специальных команд наподобие Импорт/Экспорт. В этом случае придется собственноручно программировать всю рутинную работу по ведению и обеспечению надежной работы базы данных;
- реализовать объединение двух вышеприведенных подходов. Современные средства разработки программного обеспечения имеют мощный набор библиотек для обработки сложных наборов и визуализации данных в них (коллекции, массивы, компоненты визуализации и т.п.).
Если база данных реализуется в известных реляционных СУБД (например Microsoft Access, Microsoft SQL Server и т.п.), то типы сущностей представляются таблицами. Атрибуты из ER-модели соответствуют полям таблицы. Одна запись в таблице базы данных представляет один экземпляр сущности.
Каждый вид атрибута реализуется следующим образом:
- простой атрибут или однозначный атрибут может быть представлен доступным набором базовых типов, которые есть в любом языке программирования. Например, целочисленные атрибуты представляются типом int, integer, uint и т.д.; атрибуты содержащие дробную часть могут быть представлены типом float, double; строчные атрибуты типом string и т.д.;
- составной атрибут – это объект, который включает в себя несколько вложенных простых атрибутов. Например, в СУБД Microsoft Access составной атрибут некоторой таблицы может формироваться на основе набора простых типов (полей). В языках программирования объединение полей реализуется структурами или классами;
- многозначный атрибут может быть реализован массивом или коллекцией простых или составных атрибутов;
- произвольный атрибут реализуется дополнительным полем, которое вычисляется при обращении к таблице. Такое поле называется вычислительным полем (calculated field) и формируется на основе других полей таблицы;
- атрибут, который есть первичным ключом может быть целочисленным, строчным или иного порядкового типа. В этом случае, значение каждой ячейки таблицы, которая соответствует первичному ключу, есть уникальным. Наиболее часто, в качестве первичного ключа выступает целый тип (int, integer).
Если база данных реализована в уникальном формате, то типы сущностей удобнее всего представлять в виде классов или структур. Атрибуты сущности реализуются в виде полей (внутренних данных) класса. Методы класса реализуют необходимую обработку полей класса (атрибутов). Взаимодействие (связь) между классами реализуется с помощью специально разработанных интерфейсов с использованием известных шаблонов проектирования.
⇑
7. Пример фрагмента ER-модели для типа сущности «Студент»
Приведенный пример демонстрирует фрагмент ER-модели для типа сущности «Студент».
Рисунок 3. Фрагмент ER-модели для типа сущности «Студент»
На вышеприведенном рисунке объявляются следующие атрибуты, которые в СУБД (программе) могут иметь следующие типы:
- атрибут Первичный ключ – есть уникальным целочисленным значением которое формируется автоматически. В СУБД это есть поле-счетчик;
- атрибут Год вступления – простой атрибут, который можно реализовать целочисленным значением (int, integer);
- атрибут Номер телефона – многозначный атрибут, который может быть реализован как массив или коллекция и т.п.;
- атрибут Номер зачетной книжки – простой атрибут, который можно реализовать как строку символов, поскольку номер зачетной книжки кроме цифр может содержать и буквы;
- атрибут Страна, Город, Улица, Номер дома – это атрибуты, которые образуют составной атрибут Адрес. Все эти атрибуты могут быть строчного (текстового) типа (string, Text);
- атрибут Фамилия, Имя, Отчество – это простые атрибуты, которые являются частью составного атрибута Имя студента. Все эти атрибуты могут быть строчного (текстового) типа (string, Text);
- атрибут День рождения – простой атрибут типа Дата (DateTime);
- атрибут Возраст студента – вычисляемое поле, которое определяется как разность текущей (системной) даты и значения атрибута День рождения.
⇑
Связанные темы
- Подтипы сущностей. Супертип. Пример. Преимущества и недостатки применения подтипов сущностей
- Понятие связи в ER-модели. Мощность связи. Типы связей. Примеры
⇑
Создание БД начинается с проектирования.
Этапы проектирования БД:
-
Исследование предметной области;
-
Анализ данных (сущностей и их атрибутов);
-
Определение отношений между сущностями
и определение первичных и вторичных
(внешних) ключей.
В процессе проектирования определяется
структура реляционной БД (состав таблиц,
их структура и логические связи).
Структура таблицы определяется составом
столбцов, типом данных и размерами
столбцов, ключами таблицы.
К базовым понятиями модели БД «сущность
– связь» относятся: сущности, связи
между ними и их атрибуты (свойства).
Сущность– любой конкретный или
абстрактный объект в рассматриваемой
предметной области. Сущности – это
базовые типы информации, которые хранятся
в БД (в реляционной БД каждой сущности
назначается таблица). К сущностям могут
относиться: студенты, клиенты, подразделения
и т.д. Экземпляр сущности и тип сущности
— это разные понятия. Понятие тип сущности
относится к набору однородных личностей,
предметов или событий, выступающих как
целое (например, студент, клиент и т.д.).
Экземпляр сущности относится, например,
к конкретной личности в наборе. Типом
сущности может быть студент, а экземпляром
– Петров, Сидоров и т. д.
Атрибут– это свойство сущности в
предметной области. Его наименование
должно быть уникальным для конкретного
типа сущности. Например, для сущности
студент могут быть использованы следующие
атрибуты: фамилия, имя, отчество, дата
и место рождения, паспортные данные и
т.д. В реляционной БД атрибуты хранятся
в полях таблиц.
Связь– взаимосвязь между сущностями
в предметной области. Связи представляют
собой соединения между частями БД (в
реляционной БД – это соединение между
записями таблиц).
Сущности – это данные, которые
классифицируются по типу, а связи
показывают, как эти типы данных соотносятся
один с другим. Если описать некоторую
предметную область в терминах сущности
– связь, то получим модель сущность —
связь для этой БД.
Рассмотрим предметную область: Деканат
(Успеваемость студентов)
В БД «Деканат» должны храниться данные
о студентах, группах студентов, об
оценках студентов по различным
дисциплинам, о преподавателях, о
стипендиях и т.д. Ограничимся данными
о студентах, группах студентов и об
оценках студентов по различным
дисциплинам. Определим сущности, атрибуты
сущностей и основные требования к
функциям БД с ограниченными данными.
Основными предметно-значимыми сущностями
БД «Деканат» являются: Студенты, Группы
студентов, Дисциплины, Успеваемость.
Основные предметно-значимые атрибуты
сущностей:
-
студенты – фамилия, имя, отчество, пол,
дата и место рождения, группа студентов; -
группы студентов – название, курс,
семестр; -
дисциплины – название, количество
часов -
успеваемость – оценка, вид контроля.
Основные требования к функциям БД:
-
выбрать успеваемость студента по
дисциплинам с указанием общего количества
часов и вида контроля; -
выбрать успеваемость студентов по
группам и дисциплинам; -
выбрать дисциплины, изучаемые группой
студентов на определенном курсе или
определенном семестре.
Из анализа данных предметной области
следует, что каждой сущности необходимо
назначить простейшую двумерную таблицу
(отношения). Далее необходимо установить
логические связи между таблицами. Между
таблицами Студенты и Успеваемость
необходимо установить такую связь,
чтобы каждой записи из таблицы Студенты
соответствовало несколько записей в
таблице Успеваемость, т.е. один – ко –
многим, так как у каждого студента может
быть несколько оценок.
Логическая связь между сущностями
Группы – Студенты определена как один
– ко – многим исходя из того, что в
группе имеется много студентов, а каждый
студент входит в состав одной группы.
Логическая связь между сущностями
Дисциплины – Успеваемость определена
как один – ко – многим, потому что по
каждой дисциплине может быть поставлено
несколько оценок различным студентам.
стрелка является условным обозначением
связи: один – ко – многим.
Соседние файлы в папке Informatika-lek
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
02.02.2015118.3 Кб24Программное обеспечение ЭВМ.mht
Основано на этих лекциях.
Основы проектирования баз данных.
Традиционно процедуру проектирования базы данных разбивают на три этапа, каждый из которых завершается созданием соответствующей информационной модели.
Этап 1-й. Концептуальное проектирование – создание схемы БД, включающего определение важнейших сущностей (таблиц) и связей между ними, но не зависящего от модели БД (иерархической, сетевой, реляционной и т.д.) и физической реализации (целевой СУБД).
Этап 2-й. Логическое проектирование – развитие концептуальной схемы БД с учетом принимаемой модели (иерархической, сетевой, реляционной и т.д.).
Этап 3-й. Физическое проектирование – развитие логической схемы БД с учетом выбранной целевой СУБД.
Концептуальное и логическое проектирование вместе называют также инфологическим или семантическим проектированием.
В настоящее время для проектирования БД активно используются CASE-средства, в основном ориентированные на использование ERD (Entity – Relationship Diagrams, диаграммы «сущность–связь»). С их помощью определяются важные для предметной области объекты (сущности), отношения друг с другом (связи) и их свойства (атрибуты). Следует отметить, что средства проектирования ERD в основном ориентированы на реляционные базы данных (РБД), и если существует необходимость проектирования другой системы, скажем объектно-ориентированной, то лучше избрать другие методы проектирования.
ERD были впервые предложены П. Ченом в 1976 г. Основные элементы ERD перечислены ниже.
Сущность (таблица, в РБД – отношение) – набор (класс) однотипных реальных либо воображаемых объектов, имеющих существенное значение для рассматриваемой предметной области, информация о которых подлежит хранению. Примеры сущностей: работник, деталь, ведомость, результаты сдачи экзамена и т.д.
Экземпляр сущности (запись, строка, в РБД – кортеж) – уникально идентифицируемый объект.
Связь – некоторая ассоциация между двумя сущностями, значимая для рассматриваемой предметной области. Примерами связей могут являться родственные отношения «отец–сын», производственные – «начальник-подчиненный» или произвольные – «иметь в собственности», «обладать свойством».
Атрибут (столбец, поле) – свойство сущности или связи.
При использовании CASE-средств вначале обычно строится логическая схема БД в виде диаграммы с указанием сущностей и связей между ними. Логической схемой называется универсальное описание структуры данных, независимое от конечной реализации базы данных и аппаратной платформы. На основании полученной логической схемы переходят к физической схеме данных. Физическая схема представляет собой диаграмму, содержащую всю необходимую информацию для генерации БД для конкретной СУБД или даже конкретной версии СУБД. Если в логической схеме не имеет значения, какие идентификаторы носят таблицы и атрибуты, тип данных атрибутов и т.д., то в физической схеме должно быть полное описание БД в соответствии с принятым в ней синтаксисом, с указанием типов атрибутов, триггеров, хранимых процедур и т.д. По одной и той же логической схеме можно создать несколько физических. Например, на основании логической схемы сформировать физические для промышленных СУБД (ORACLE, MySQL, DB2, MS SQL Server и др.) и их различный версий. На основании физической схемы можно сгенерировать либо саму БД или DDL-скрипт, который, в свою очередь, может быть использован для генерации БД.
Система управления базами данных, СУБД — система (базирующаяся на программном и аппаратном обеспечении) для описания, создания, использования, контроля и управления базами данных.
Упрощённо: программное средство, управляющее базами данных.
Стоит отметить важный для начинающих факт (т.к. очень часто можно услышать просьбу «показать СУБД»): подавляющее большинство СУБД не имеет никакого «человеческого интерфейса», представляет собой сервис (демон в *nix-системах) и взаимодействует с внешним миром по специальным протоколам (чаще всего, построенным поверх TCP/IP). Такие известные продукты как MySQL Workbench, Microsoft SQL Server
Management Studio, Oracle SQL Developer и им подобные — это не СУБД, это лишь клиентское программное обеспечение, позволяющее нам взаимодействовать с СУБД.
Следует отметить, что современные СУБД обладают своими встроенными средствами визуального моделирования данных. Некоторые из них даже поддерживают классические нотации ERD. Недостатками такого моделирования является построение только физической схемы данных и невозможность быстрого перехода на другую СУБД, если такое решение принято. Достоинством этого подхода является более полное использование потенциала СУБД, ведь разработчики СУБД лучше других знают ее особенности и возможности.
Концептуальное проектирование
Цель концептуального проектирования – создание концептуальной схемы данных на основе представлений о предметной области каждого отдельного типа пользователей. Концептуальная схема представляет собой описание основных сущностей (таблиц) и связей между ними без учета принятой модели БД и синтаксиса целевой СУБД. Часто на такой схеме отображаются только имена сущностей (таблиц) без указания их атрибутов. Представление пользователя включает в себя данные, необходимые конкретному пользователю для принятия решений или выполнения некоторого задания.
Ниже рассматривается последовательность шагов при концептуальном проектировании.
-
Выделение сущностей.
Первый шаг в построении концептуальной схемы данных состоит в определении основных объектов (сущностей), которые могут интересовать пользователя и, следовательно, должны храниться в БД.
Возможные трудности в определении объектов связаны с использованием постановщиками задачи:
-
примеров и аналогий при описании объектов (например, вместо обобщающего понятия «работник» они могут упоминать его функции или занимаемую должность: «руководитель», «ответственный», «контролер», «заместитель»);
-
синонимов (например, «допускаемая скорость» и «установленная скорость», «разработка» и «проект», «барьерное место» и «ограничение скорости»);
-
омонимов (например, «программа» может обозначать компьютерную программу, план предстоящей работы или программу телепередач).
Далеко не всегда очевидно то, чем является определенный объект – сущностью, связью или атрибутом. Например, как следует классифицировать «семейный брак»? На практике это понятие можно вполне обоснованно отнести к любой из упомянутых категорий. Анализ является субъективным процессом, поэтому различные разработчики могут создавать разные, но вполне допустимые интерпретации одного и того же факта. Выбор варианта в значительной степени зависит от здравого смысла и опыта проектировщика.
Каждая сущность должна обладать некоторыми свойствами:
-
должна иметь уникальное имя, и к одному и тому же имени должна всегда применяться одна и та же интерпретация;
-
обладать одним или несколькими атрибутами, которые либо принадлежат сущности, либо наследуются через связь;
-
обладать одним или несколькими атрибутами (первичным ключом), которые однозначно идентифицируют каждый экземпляр сущности, т. е. делают уникальной каждую строку таблицы;
-
может обладать любым количеством связей с другими сущностями.
В графической нотации IDEF1X для отображения сущности используются обозначения, изображенные на следующем рисунке.
-
-
Определение атрибутов.
Самый простой способ определения атрибутов – после идентификации сущности, задать себе вопрос «Какую информацию требуется хранить о …?». Существенно помочь в определении атрибутов могут различные бумажные и электронные формы и документы, используемые в организации при решении задачи. Это могут быть формы, содержащие как исходную информацию (например, «Ведомость возвышений наружного рельса в кривых»), так и результаты обработки данных (например, «Форма № 1»).
Выявленные атрибуты могут быть следующих типов:
-
простой (атомарный, неделимый) – состоит из одного компонента с независимым существованием (например, «должность работника», «зарплата», «норма непогашенного ускорения», «радиус кривой» и т.д.);
-
составной (псевдоатомарный) – состоит из нескольких компонентов (например, «ФИО», «адрес» и т. д.). Степень атомарности атрибутов, закладываемая в модель, определяется разработчиком. Если от системы не требуется выборки всех клиентов с фамилией Иванов или проживающих на улице Комсомольской, то составные атрибуты можно не разбивать на атомарные;
-
однозначный – содержит только одно значение для одного экземпляра сущности (например, у кривой в плане может быть только одно значение радиуса, угла поворота, возвышения наружного рельса и т.д.);
-
многозначный – содержит несколько значений (например, у одного отделения компании может быть несколько контактных телефонов);
-
производный (вычисляемый) – значение атрибута может быть определено по значениям других атрибутов (например, «возраст» может быть определен по «дате рождения» и текущей дате, установленной на компьютере);
-
ключевой – служит для уникальной идентификации экземпляра сущности (входит в состав первичного ключа), быстрого поиска экземпляров сущности или задания связи между экземплярами родительской и дочерней сущностей;
-
неключевой (описательный);
-
обязательный – при вводе нового экземпляра в сущность или редактировании обязательно указывается допустимое значение атрибута, т.е. после указанных действий оно не может быть неопределенным (NOT NULL). Атрибуты, входящие в первичный ключ сущности, являются обязательными.
После определения атрибутов задаются их домены (области допустимых значений), например:
-
наименование участка – набор из букв русского алфавита длиной не более 60 символов;
-
поворот кривой – допустимые значения «Л» (влево) и «П» (вправо);
-
радиус кривой – положительное число не более 4 цифр.
Задание доменов определяет набор допустимых значений для атрибута (нескольких атрибутов), а также тип, размер и формат атрибута (атрибутов).
-
-
Определение ключей.
На основании выделенного множества атрибутов для сущности определяется набор ключей. Ключ – один или несколько атрибутов сущности, служащих для однозначной идентификации её экземпляров, их быстрого поиска или задания связи между экземплярами родительской и дочерней сущностей. Ключи, используемые для однозначной идентификации экземпляров, подразделяются на следующие типы:
-
суперключ (superkey) – атрибут или множество атрибутов, которое единственным образом идентифицирует экземпляр сущности. Суперключ может содержать «лишние» атрибуты, которые необязательны для уникальной идентификации экземпляра. При правильном проектировании структуры БД суперключом в каждой сущности (таблице) будет являться полный набор ее атрибутов;
-
потенциальный ключ (potential key) – суперключ, содержащий минимально необходимый набор атрибутов, единственным образом идентифицирующих экземпляр сущности. Сущность может иметь несколько потенциальных ключей. Если ключ состоит из нескольких атрибутов, то он называется составным ключом. Среди всего множества потенциальных ключей для однозначной идентификации экземпляров выбирают один, так называемый первичный ключ, используемый в дальнейшем для установления связей с другими сущностями;
-
первичный ключ (primary key) – потенциальный ключ, который выбран для уникальной идентификации экземпляров внутри сущности;
-
альтернативные ключи (alternative key) – потенциальные ключи, которые не выбраны в качестве первичного ключа.
Рассмотрим пример. Пусть имеется таблица, содержащая сведения о студенте, со следующими столбцами:
- фамилия;
- имя;
- отчество;
- дата рождения;
- место рождения;
- номер группы;
- ИНН;
- номер пенсионного страхового свидетельства (НПСС);
- номер паспорта;
- дата выдачи паспорта;
- организация, выдавшая паспорт.
Для каждого экземпляра (записи) в качестве суперключа может быть выбран весь набор атрибутов. Потенциальными ключами (уникальными идентификаторами) могут быть:
- ИНН;
- номер пенсионного страхового свидетельства;
- номер паспорта.
В качестве уникального идентификатора можно было бы выбрать совокупность атрибутов «Фамилия»+«Имя»+«Отчество», если вероятность учебы в вузе двух полных тезок была бы равна нулю.
Если в сущности нет ни одной комбинации атрибутов, подходящей на роль потенциального ключа, то в сущность добавляют отдельный атрибут – суррогатный ключ (искусственный ключ, surrogate key). Как правило, тип такого атрибута выбирают символьный или числовой. В некоторых СУБД имеются встроенные средства генерации и поддержания значений суррогатных ключей. Также стоит отметить, что некоторые разработчики вместо поиска потенциальных ключей и выбора из них первичного в каждую сущность добавляют искусственный атрибут, который в дальнейшем и используют в качестве первичного ключа.
Если потенциальных ключей несколько, то для выбора первичного ключа рекомендуется придерживаться следующих правил:
-
количество атрибутов, входящих в ключ, должно быть минимальным (желательно, чтобы ключ был атомарным, т.е. состоял из одного атрибута);
-
размер ключа в байтах должен быть как можно короче;
-
тип домена ключа – числовой. При выборе символьных атрибутов в ключ часто возникают проблемы с вводом ошибочных значений (путают регистр букв; добавляют лишние пробелы; используют буквы, пишущиеся на разных языках одинаково). В числовых атрибутах вероятность ошибки при вводе значения меньше;
-
вероятность изменения значений ключа была наименьшей (например, «Номер пенсионного страхового свидетельства» более постоянный параметр, чем «ИНН» или «Номер паспорта»);
-
с ключом проще всего работать пользователям (например, «Номер пенсионного страхового свидетельства» – это набор из 11 цифр, а «Номер паспорта» зависит от его вида: гражданина СССР, гражданина РФ или зарубежный).
Если некий атрибут (набор атрибутов) присутствует в нескольких сущностях, то его наличие обычно отражает наличие связи между экземплярами этих сущностей. В каждой связи одна сущность выступает как родительская, а другая – в роли дочерней. Это означает, что один экземпляр родительской сущности может быть связан с несколькими экземплярами дочерней. Для поддержки этих связей обе сущности должны содержать наборы атрибутов, по которым они связаны. В родительской сущности это первичный ключ. В дочерней сущности для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу родительской. Этот набор атрибутов в дочерней сущности принято называть внешним ключом (foreign key).
-
-
Определение связей.
Наиболее характерными типами связей между сущностями являются:
-
связи типа «часть–целое», определяемые обычно глаголами «состоит из», «включает» и т.п.;
-
классифицирующие связи (например, «тип – подтип», «множество – элемент», «общее – частное» и т. п.);
-
производственные связи (например, «начальник–подчиненный»);
-
функциональные связи, определяемые обычно глаголами «производит», «влияет», «зависит от», «вычисляется по» и т. п.
Среди них выделяются только те связи, которые необходимы для удовлетворения требований к разработке БД.
Связь характеризуется следующим набором параметров:
-
именем – указывается в виде глагола и определяет семантику (смысловую подоплеку) связи;
-
кратностью (кардинальность, мощность): один-к-одному (1:1), один-ко-многим (1:N) и многие-ко-многим (N:M, N = M или N <> M). Кратность показывает, какое количество экземпляров одной сущности определяется экземпляром другой. Например, на одном участке (описывается строкой таблицы «Участки») может быть один, два и более путей (каждый путь описывается отдельной строкой в таблице «Пути»). В данном случае связь 1:N. Другой пример: один путь проходит через несколько раздельных пунктов и через один раздельный пункт может проходить несколько путей – cвязь N:M;
-
типом: идентифицирующая (атрибуты одной сущности, называемые внешним ключом, входят в состав дочерней и служат для идентификации ее экземпляров, т.е. входят в ее первичный ключ) и неидентифицирующая (внешний ключ имеется в дочерней сущности, но не входит в состав первичного ключа);
-
обязательностью: обязательная (при вводе нового экземпляра в дочернюю сущность заполнение атрибутов внешнего ключа обязательно и введенные значения должны совпадать со значениями атрибутов первичного ключа какого-либо экземпляра родительской сущности) и необязательная (заполнение атрибутов внешнего ключа в экземпляре дочерней сущности необязательно или введенные значения не совпадают со значениями атрибутов первичного ключа ни одного экземпляра родительской сущности);
-
степенью участия – количеством сущностей, участвующих в связи. В основном между сущностями существуют бинарные связи, т.е. ассоциации, связывающие две сущности (степень участия равна 2). Например, «Участок» состоит из «Путей». В то же время по степени участия возможны следующие типы связей:
-
унарная (рекурсивная) – сущность может быть связана сама с собой. Например, в таблице «Работники» могут быть записи и по подчиненным, и по их начальникам. Тогда возможна связь «начальник» – «подчиненный», определенная на одной таблице;
-
тернарная – связывает три сущности. Например, «Студент» на «Сессии» получил «Оценку по дисциплине»;
-
кватернарная и т.д.
-
В методологии IDEF1X степень участия может быть только унарной или бинарной. Связи большей степени приводятся к бинарному виду.
Внешний вид связи на диаграммах IDEF1X указывает на ее мощность, тип и обязательность.
-
Логическое проектирование
Цель логического проектирования – развить концептуальную схему БД с учетом принимаемой модели БД (иерархической, сетевой, реляционной и т. д.).
Примем в качестве модели реляционную БД в третьей нормальной форме (набор нормализованных отношений с кратностью связей 1:N). Поэтому необходимо будет проверить концептуальную схему с помощью методов нормализации и контроля выполнения транзакций. Транзакция – одно действие или их последовательность, выполняемых как единое целое одним или несколькими пользователями (прикладными программами) с целью осуществления доступа к БД и изменению ее содержимого.
-
Удаление и проверка элементов, не отвечающих принятой модели данных.
-
Удаление связей N:M.
Если в концептуальной схеме присутствуют связи N:M, то их следует устранить путем определения промежуточной сущности. Связь N:M заменяется двумя связями типа 1:M, устанавливаемыми со вновь созданной сущностью.
-
Удаление связей с атрибутами.
Связи с атрибутами должны быть преобразованы в сущности.
-
Удаление сложных связей (со степенью участия более 2).
Сложную связь заменяют необходимым количеством бинарных связей 1:N со вновь созданной сущностью, которая и показывает эту связь.
-
Удаление рекурсивных связей (со степенью участия 1).
Рекурсивную связь заменяют, определив дополнительную сущность и необходимое количество связей.
-
Удаление многозначных атрибутов (атрибутов имеющих несколько значений).
Многозначность устраняется путем введения новой сущности и связи 1:N. Например, несколько номеров организации выводятся в отдельную сущность «Телефоны». Данное преобразование, помимо соответствия реляционной модели данных, также позволяет хранить любое количество телефонов по одному филиалу.
-
Удаление избыточных связей.
Связь является избыточной, если одна и та же информация может быть получена не только через нее, но и с помощью другой связи.
-
Перепроверка связей 1:1.
В процессе определения сущностей могли быть созданы сущности, которые на самом деле являются одной. В этом случае их следует объединить. Например, сущности «Филиал» и «Руководитель филиала» лучше объединить.
В то же время не всегда можно выполнить такое объединение.
Офисный пакет состоит из строго определенного набора компонентов, причем каждый из них характеризуется большим количеством атрибутов. Кроме этого, некоторые компоненты могут отсутствовать в офисном пакете (например, почтовый клиент) или они не входят в его состав (выступают в качестве самостоятельного продукта). В описанных случаях рекомендуется не объединять сущности.
-
-
Проверка модели с помощью правил нормализации.
Основная идея нормализации заключается в том, чтобы каждый факт хранился в одном месте, т. е. чтобы не было дублирования данных. Многие из требований нормализации, как правило, уже учитываются при выполнении предыдущих шагов проектирования.
Ниже приводятся краткие сведения из теории нормализации.
Проектирование реляционной БД представляет собой пошаговый процесс создания набора отношений (таблиц, сущностей), в которых отсутствуют нежелательные функциональные зависимости.
Функциональная зависимость определяется следующим образом. Пусть A и B – произвольные наборы атрибутов отношения. Тогда B функционально зависит от A (A → B), в том и только в том случае, если каждому значению A соответствует в точности одно значение B. Левая часть функциональной зависимости (A) называется детерминантом, а правая (B) – зависимой частью. В частности, в отношении А может быть первичным ключом, а B – набором неключевых атрибутов, так как одному значению первичного ключа в точности соответствует одно значение набора неключевых атрибутов.
Если в БД отсутствуют нежелательные функциональные зависимости, то это обеспечивает минимальную избыточность данных, что в свою очередь ведет к уменьшению объема памяти, необходимой для хранения данных. Процесс устранения таких зависимостей получил название нормализация. Она выполняется в виде последовательности тестов для некоторого отношения (таблицы, сущности) с целью проверки его соответствия (или несоответствия) набору ограничений для заданной нормальной формы.
Процесс нормализации впервые был предложен Э.Ф. Коддом в 1972 г. Сначала было предложено три вида нормальных форм (1NF, 2NF и 3NF). Затем Р. Бойсом и Э.Ф. Коддом (1974 г.) было сформулировано более строгое определение третьей нормальной формы, которое получило название нормальная форма Бойса–Кодда (BCNF). Вслед за BCNF появились определения четвертой (4NF) и пятой (5NF или PJNF) нормальных форм (Р. Фагин, 1977 и 1979 г.). На практике нормальные формы более высоких порядков используются крайне редко. При проектировании БД, как правило, ограничиваются третьей нормальной формой, что позволяет предотвратить возможное возникновение избыточности данных и аномалии обновлений.
1НФ. Отношение находится в первой нормальной форме (сокращённо 1НФ), если все его атрибуты атомарны, то есть если ни один из его атрибутов нельзя разделить на более простые атрибуты, которые соответствуют каким-то другим свойствам описываемой сущности.
Степень неделимости (атомарности), т.е. решение о том, следует разбивать неатомарный атрибут на атомарные или оставить его псевдоатомарным, определяется проектировщиком БД исходя из конкретных условий. Если при обработке таблиц нет необходимости различать атомарные составляющие псевдоатомарного атрибута, то его можно не делить (например, атрибуты «Фамилия, имя, отчество», «Адрес» и т. д.).
2NF. Отношение находится во 2NF, если оно находится в 1NF, и каждый неключевой атрибут характеризуется полной функциональной зависимостью от первичного ключа.
Полная функциональная зависимость определяется следующим образом. В некотором отношении атрибут В полностью зависит от атрибута А, если атрибут В функционально зависит от полного значения атрибута А и не зависит от какого-либо подмножества полного значения атрибута А.
Например, таблица «Оценки по экзаменам» характеризуется следующим набором атрибутов {Номер зачетной книжки, Дисциплина, Дата сдачи, ФИО студента, № группы, Оценка}. Очевидно, что первичным ключом является набор {Номер зачетной книжки, Дисциплина, Дата сдачи}. Полной функциональной зависимостью обладает только один неключевой атрибут «Оценка». Атрибуты «ФИО студента» и «№ группы» могут быть однозначно определены по части первичного ключа – «Номер зачетной книжки». Таким образом, требуется разбиение исходной таблицы на две.
3NF. Отношение находится в 3NF, если оно находится во 2NF и никакой неключевой атрибут функционально не зависит от другого неключевого атрибута, т. е. нет транзитивных зависимостей.
Транзитивная зависимость. Если для атрибутов А, В и С некоторого отношения существуют зависимости вида А → В и В → С, то атрибут С транзитивно зависит от атрибута А через атрибут В.
Например, таблица «Работник» характеризуется набором атрибутов {Табельный номер, Фамилия, Имя, Отчество, Должность, Зарплата, …}, первичный ключ – {Табельный номер}. В этой таблице от первичного ключа («Табельный номер») зависит неключевой атрибут «Должность», а от «Должности» другой неключевой атрибут «Зарплата». Для приведения к 3NF необходимо добавить новую таблицу.
-
Определение требований поддержки целостности данных.
Ограничения целостности данных представляют собой ограничения, которые вводятся с целью предотвращения помещения в базу противоречивых данных.
К этим ограничениям относятся:
-
обязательные данные – атрибуты, которые всегда должны содержать одно из допустимых значений (NOT NULL). Например, поворот кривой (влево или вправо) должен быть обязательно задан. Обязательными также являются все атрибуты, входящие в первичный ключ сущности;
-
домены – наборы допустимых значений для атрибута. Например, радиус кривой должен быть положительным числом не более 4 цифр или поворот кривой может принимать одно из двух допустимых значений – «Л» (влево) или «П» (вправо);
-
бизнес-правила (бизнес-ограничения) – ограничения, принятые в рассматриваемой предметной области. Например, сумма длин переходных кривых не должна быть более длины всей кривой, километраж начала или конца кривой должен быть в пределах общего километража пути и т.д.;
-
ссылочная целостность – набор ограничений, определяющих действия при вставке, обновлении и удалении записей (экземпляров сущности). Например:
-
при наличии обязательной связи вставка записи в дочернюю сущность требует обязательного заполнения атрибутов внешнего ключа, и введенному значению должна соответствовать запись родительской сущности;
-
аналогичное требование выдвигается при обновлении внешнего ключа в дочерней сущности;
-
удаление записи из дочерней сущности или вставка записи в родительскую не вызывают нарушения ссылочной целостности;
-
удаление записи в родительской сущности может требовать удаления всех связанных записей в дочерней сущности.
-
Автоматическая поддержка всех видов ограничений целостности возможна за счет использования операторов SQL.
Ссылочная целостность может быть обеспечена за счет использования триггеров. Триггер – это хранимая в БД процедура, исполняемая СУБД автоматически при удалении (DELETE), вставке (INSERT) или обновлении (UPDATE) записи. Набор команд, входящих в триггер, зависит от принятой стратегии (типа триггера) поддержания целостности:
-
RESTRICT или NO ACTION — на выполнение действия накладываются ограничения (условия). Под NO ACTION обычно понимаются триггеры, срабатывающие на изменение данных в родительской таблице. При соблюдении условий изменения в БД принимаются, в противном случае отклоняются;
-
CASCADE — каскадное удаление или обновление данных;
-
SET NULL — установка неопределенного значения (NULL) в атрибутах внешнего ключа дочерней таблицы;
-
SET DEFAULT — установка значения по умолчанию в атрибутах внешнего ключа дочерней таблицы;
-
NO CHECK, NONE или IGNORE — поддержка ссылочной целостности встроенными средствами СУБД не предусмотрена, но может быть выполнена за счет клиентских программ, работающих с БД. Данная стратегия принята в СУБД по умолчанию.
-
Физическое проектирование
Цель физического проектирования – преобразование логической схемы с учетом синтаксиса, семантики и возможностей выбранной целевой СУБД.
В связи с тем, что методология физического проектирования существенно зависит от выбранной целевой СУБД, ограничимся лишь общими рекомендациями.
-
Анализ необходимости введения контролируемой избыточности.
При реализации проекта часто для достижения большей эффективности системы требуется снизить требования к уровню нормализации отношений, т.е. внести некоторую избыточность данных. Процесс внесения таких изменений в БД называется денормализацией.
Рассмотрим некоторые виды денормализации, которые в определенных случаях могут существенно повысить производительность системы.
-
Использование производных данных.
С точки зрения физического проектирования любой производный атрибут либо может сохраняться в БД, либо при каждом обращении к нему его значение будет вычисляться заново. Например, длина пути может каждый раз вычисляться по таблицам «Действительный километраж» и «Неправильные пикеты» либо храниться как атрибут в таблице «Пути».
Проектировщик при использовании производных данных должен оценить:
-
дополнительную стоимость хранения производных данных и поддержки согласованности с текущими значениями тех данных, на основании которых они вычисляются, т.е. минусы хранения производных данных;
-
издержки на выполнение вычислений значений производных атрибутов при каждом обращении к ним – плюсы.
-
-
Дублирование атрибутов.
-
Объединение отношений, связанных 1:1.
Даже в тех случаях, когда связь между двумя сущностями необязательная, стоит подумать об их объединении, с учетом того, что часть полей в записях не будет заполняться. Руководствоваться в таких случаях надо из тех же соображений, что и при использовании производных данных. В частности, на рис. 7.4 и 7.5 показана иерархия наследования для сущности «Сотрудник». Если эту иерархию оставить без изменений, то в БД будет четыре сущности (Сотрудник, Постоянный сотрудник, Совместитель и Консультант), согласованность которых надо будет поддерживать. При выполнении запросов по сотрудникам надо будет оперировать четырьмя таблицами. Таким образом, лучше в БД вместо иерархии запроектировать одну таблицу, в которую добавить атрибуты «Ставка» и «Организация». В атрибуте «Ставка» для постоянного сотрудника всегда будет значение «1», а атрибут «Организация» будет заполняться только для консультантов. Несмотря на избыточность, такая замена с точки зрения обработки данных и эксплуатации более выгодна.
-
Дублирование атрибутов в связях типа 1:M.
Например, при запросе к таблице «Раздельные пункты на пути» очень часто будет требоваться наименование самих раздельных пунктов. С целью уменьшения нагрузки на БД следует рассмотреть возможность включения атрибута в эту таблицу.
-
Использование служебных таблиц (справочных таблиц, классификаторов, типовых списков значений).
Служебные таблицы, как правило, создаются для атрибутов символьного типа, значения которых могут выбираться из строго определенного и ограниченного списка. Например, значениями атрибута «Род балласта» могут быть только «Щебеночный», «Песчаный», «Гравийный» и «Асбестовый».
Обычно служебные таблицы содержат два атрибута: идентификатор (код, шифр) и описание (наименование). Например, в БД можно предусмотреть служебные таблицы «Вид раздельного пункта», «Род балласта» и т.д. с атрибутами {ID, Наименование}. Эти таблицы связываются неидентифицирующей обязательной связью с исходной, при этом в ней вместо наименования параметра будет содержаться идентификатор этого наименования.
Использование служебных таблиц дает следующие преимущества:
-
значительно снижается вероятность ошибки при указании значений для этих атрибутов. Если не использовать служебные таблицы, то разные пользователи могут вносить рассогласованные значения, в том числе и с ошибками. Например, «Щебеночный», «щебеночный», «Щебен.», «Шебеночный», «Щ» и т.д. Несмотря на то, что по смыслу это все один и тот же род балласта, программа будет их воспринимать как разные;
-
уменьшается размер исходной таблицы. Например, если непосредственно хранить наименование рода балласта в таблице «План пути», то в каждой записи на этот атрибут будет расходоваться не менее 10 байт (длина слова «Щебеночный» 10 букв), а если использовать идентификатор, то достаточно всего одного байта. Экономия в 10 раз;
-
если описание параметра может измениться, то значительно проще изменить одно значение в служебной таблице, чем корректировать множество записей в исходной. Например, если принято решение вместо полного наименования рода балласта отображать только начальную букву (Щ, П, Г и А), то изменениям подвергнется только служебная таблица, а исходные таблицы «План пути» и «ВСП на прямых участках» останутся без изменений.
-
-
Введение повторяющихся (многозначных) атрибутов.
Для достижения большей производительности при выполнении часто вызываемых запросов может быть целесообразным подход сохранения многозначных атрибутов, чем вынесение их в отдельную таблицу. Например, если количество контактных телефонов у филиала компании невелико (до 10), эта величина постоянная и не увеличится со временем, то в таблице «Филиал» можно предусмотреть атрибуты «Номер телефона 1», …, «Номер телефона 10».
-
Создание сводных таблиц.
Если нагрузка на БД в часы пик велика, а период актуальности отчетов, составляемых на основании данных, – сутки и более, то следует подумать о включении в БД сводных таблиц, обновляемых в часы минимальной нагрузки на БД.
-
-
-
Перенос логической схемы данных в среду целевой СУБД.
Данная стадия включает в себя проектирование таблиц и связей между ними с учетом возможностей целевой СУБД. При этом проектировщик должен хорошо ориентироваться в функциональных возможностях СУБД, а именно поддерживает ли СУБД задание:
- доменов;
- первичных, альтернативных и внешних ключей;
- неопределенных (NULL) и обязательных (NOT NULL) значений;
- значений по умолчанию (DEFAULT);
- правил контроля целостности;
- хранимых процедур и триггеров.
Кроме этого, целевая СУБД должна поддерживать требуемые типы данных или иметь возможность адекватного их хранения. Стадия переноса также включает в себя модификацию логической схемы с учетом семантики и синтаксиса, принятой в целевой СУБД, а именно, соблюдение правил наименования таблиц, атрибутов, типов данных, описания триггеров, хранимых процедур и т. д.
-
Реализация бизнес-правил и анализ транзакций.
Реализацию бизнес-правил (сумма длин переходных кривых не должна быть более длины всей кривой) можно включить в SQL-операторы создания таблиц (CREATE TABLE опция CHECK для полей или таблицы в целом) или в триггеры (CREATE TRIGGER).
После реализации бизнес-правил необходимо проверить выполнимость и эффективность (время отклика, скорость выборки, объем задействованных данных) выполнения всех транзакций.
-
Разработка механизмов защиты.
Ввиду того, что работают с системой, как правило, несколько пользователей, необходимо продумать механизмы защиты данных от несанкционированного просмотра и модификации. В частности, с системой определения скоростей планируется работа разных пользователей: инженера службы пути; начальника службы пути, представителей других служб дороги и Департамента пути и сооружений ОАО «РЖД». Каждый из них должен быть наделен соответствующими полномочиями. Так, например, инженер службы пути «головой отвечает» за достоверность исходных данных и результаты расчетов. В связи с этим он должен быть наделен самыми широкими полномочиями. Другие пользователи должны иметь возможность только просмотра результатов расчета и формирования ведомостей.
Ниже рассматриваются два наиболее популярных способа обеспечения защиты данных.
-
Разработка пользовательских представлений (видов).
Представление пользователя включает в себя данные, необходимые конкретному пользователю для принятия решений или выполнения некоторого задания.
Представление в БД – динамический результат одной или более операций, выполненных над таблицами БД с целью получения новой сводной таблицы. Представление является виртуальной таблицей, которая реально в БД не существует, но создается по запросу (SELECT) определенного пользователя в результате выполнения этого запроса.
В БД представления создаются для упрощения запросов и для организации защиты. Например, с помощью представления можно ограничить доступ к отдельным атрибутам или записям некоторых типов пользователей.
-
Определение прав доступа (привилегий).
В СУБД, поддерживающих SQL, возможно выполнение запросов от имени определенного пользователя, которое задается администратором БД. Каждый пользователь обладает строго определенным набором прав (привилегий) в отношении конкретной таблицы или представления. Наделение правами выполняется с помощью оператора GRANT, отмена – REVOKE. Операции, на которые можно назначить права: SELECT, INSERT, DELETE и UPDATE. Кроме того, возможно задание передачи прав от одного пользователя к другому.
-
-
Организация мониторинга и настройка функционирования системы.
Мониторинг функционирования и достигнутого уровня производительности системы необходим с целью устранения ошибочных проектных решений или изменения требований к системе.
Первоначальный физический проект БД не следует понимать как нечто статическое. Он, скорее, является промежуточным звеном, предназначенным для оценки достигнутого уровня производительности системы. Большинство коммерческих СУБД предоставляет в распоряжение администратора БД набор утилит, предназначенных для наблюдения за функционированием системы и ее настройки.
На практике настройку БД никогда нельзя считать завершенной. На протяжении всего жизненного цикла системы необходимо постоянно вести наблюдение за уровнем ее производительности, что позволит своевременно реагировать на изменения, происходящие в окружающей среде. Внесение в БД изменений, предназначенных для повышения производительности одного из приложений, может отрицательно отразиться на работе другого приложения, возможно, более важного. Таким образом, внесение любых изменений в БД должно проводиться обдумано и осторожно с обязательным их тестированием.
Дополнительная литература
- Нормализация баз данных простыми словами
- Нормализация базы данных и ее формы
Данная статья посвящена проектированию БД. Основана на книге Д. Осипова “Базы данных и Delphi” и некотором личном опыте. В качестве инструмента БД я буду использовать программу MySQL Workbench 6.3 CE.
Теория
Согласно Дмитрию Осипову при проектировании БД мы можем использовать как минимум 2 подхода.
Первый – модель ER или по другому сущность-связь.
И второй подход – нормализация.
Модель сущность-связь (ER модель Питера Чена)
Алгорим проектирования БД в псевдокоде можно изобразить, например так
–Выделить все сущности, подлежащие хранению в БД (отделы, сотрудники, заказы)
–Выявить атрибуты (у отделов – название, у сотрудников – имя, фамилия, зарплата, у заказов – имя, количество)
–Выявить взаимосвязи между сущностями – отсутствие, один к одному (1:1), один ко многим (1:M), многие ко многим (M:N). Связь один ко многим это когда в одном отделе работает несколько сотрудников, у одного поставщика несколько контрактов и так далее).
–Разделить сущности на сильные (независимые) и слабые (зависимые) – если есть взаимосвязь и одна сущность зависит от другой, то говорят, что зависимая сущность – слабая, независимая сильная. Пример – отделы и сотрудники.
–Полученную схему отобразить в диаграммах MySQL Workbench и сделать ForwardEngeneering для создания реальной физической базы данных.
Нотации ER моделей
-Нотация Питера Чена
-Нотация Crow’s foot (“Воронья лапка”)
Нотация Питера Чена
Что касается нотации Питера Чена (схематического изображения), то она может выглядеть так…
Вот принятые обозначения в нотации Питера Чена
Более сложный пример мог бы выглядеть так. Пример из английской Википедии
Нотация Gordon Everest (Гордона Эверста). Под назаванием Crow’s Foot или Fork (вилка).
Самый простой пример мог бы выглядеть так. Как видите справа у нас “воронья лапка”, означающая связь один ко многим. Один артист может спеть несколько песен. Этот пример также из английской Википедии, который есть почти во всех русских блогах на эту тему 🙂
А вот пример из книги Дмитрия Осипова. Одна вертикальная черта означает “один”, воронья лапка справа “ко многим”.
Нормализация базы данных
В книге Д.Осипова говорится о 5 нормальных формах, для практической работы, на мой взгляд, достаточно четырех
1NF – атомарность или 1 поле 1 значение.
2NF – каждой таблице свой уникальный ключ.
3NF – 1 сущность 1 таблица (моя интерпретация)
4NF – каждую связь M:N (многие ко многим) разбить на многие к одному.
В своей книге Дмитрий приводит такой пример, берет вот такую таблицу и последовательно приводит её к 4 нормальной форме.
Как видно таблица – “плохая” в качестве БД, в одном поле несколько значений, уникального ключа нет, да и вообще все данные, все сущности в одной таблице, есть связи многие ко многим (авторы и жанры, и так далее). В общем, ни одной нормальной формы не соблюдено.
Повторим за Дмитрием вкратце его шаги
Приведение к 1NF – одно поле одно значение
Приведение ко 2NF – прописывание уникального ключа таблице. На рисунке ниже указаны ключ и поля таблицы.
Приведение к 3NF – разбиение на отдельные, независимые таблицы. Как видно из рисунка выше – все поля у нас в одной таблице, какие-то поля являются атрибутами для других, если смотреть при помощи модели Питера Чена. С точки зрения пользователя БД это очень, очень неудобно. На 3 шаге сделаем следующее – разобьем 1 большую таблицу на несколько таблиц, соответствующих сущностям и свяжем их. Атрибуты сгруппируем по сущностям. Каждой таблице пропишем свой уникальный ключ. В результате, по книге Дмитрия Осипова, у нас получится следующее.
4NF – разбить каждую зависимость многие ко многим на 2 зависимости 1 ко многим. Это можно сделать введя искусственную коммутационную таблицу.
В нашем случае
-1 автор может написать несколько книг. И также можно сказать – несколько авторов могли написать 1 книгу. Поэтому вводим тип сущности WRITERS_BOOKS
-В 1 жанре может быть несколько книг. 1 книга может быть написана в нескольких жанрах. Вводим GENRES_BOOKS
В принципе этот ряд можно было бы и продолжить
-1 поставщик может иметь несколько контрактов. В 1 контракте может быть несколько поставщиков. Но тут наверное всё зависит от реальной задачи и ситуации. Нельзя угодить на все случаи жизни. А, конечно хочется)))
Но остановимся на том, что написано в книге Дмитрия. Для понимания, думаю, этого достаточно.
Как разбить связь многие ко многие (M:N) на 2 связи один ко многим (1:M) ?
Пример из жизни – разные сотрудники выполняют разные заказы. Дмитрий в своей книге делает вот так, что вполне логично.
Практика
Итак, попробуем решить ту же задачу самостоятельно, используя все накопленные знания. Для начала – поймем, что у нас на входе и что требуется получить на выходе.
На входе
В приведенном к 1NF виде
На выходе
Готовая реляционная БД MySQL, соответствующая 4 нормальным формам.
Рисуем ER диаграмму
Идём по алгоритму, описанному выше, позволю себе его напомнить
Алгорим проектирования БД в псевдокоде можно изобразить, например так
–Выделить все сущности, подлежащие хранению в БД (отделы, сотрудники, заказы)
–Выявить атрибуты (у отделов – название, у сотрудников – имя, фамилия, зарплата, у заказов – имя, количество)
–Выявить взаимосвязи между сущностями – отсутствие, один к одному (1:1), один ко многим (1:M), многие ко многим (M:N). Связь один ко многим это когда в одном отделе работает несколько сотрудников, у одного поставщика несколько контрактов и так далее).
–Разделить сущности на сильные (независимые) и слабые (зависимые) – если есть взаимосвязь и одна сущность зависит от другой, то говорят, что зависимая сущность – слабая, независимая сильная. Пример – отделы и сотрудники.
–Полученную схему отобразить в диаграммах MySQL Workbench и сделать ForwardEngeneering для создания реальной физической базы данных.
В реальной ситуации о полях таблицы (атрибутах сущностей) мы будем догадываться, например, у человека есть руки, у клиентов есть заказы, у складов есть товары и так далее, у книжного магазина есть книги, продавцы, клиенты, поставщики, филиалы, да что угодно! Список это можно перечислять до бесконечности!!!
Важно при проектировании БД выделять те атрибуты, которые непосредственно относятся к решению задачи в техническом задании иначе из проектирования БД можно вообще не вылезти)))
В нашем учебном случае – все немного проще и наш список атрибутов мы можем составить из тех атрибутов, которые даны в таблице. Но это не отменяет первого этапа – поиска сущностей. Итак, поехали.
1 и 2 Этап – поиск сущностей и атрибутов
Cущности (в скобках атрибуты)
1. Supplier
2. Contracts (ContrDate)
3. Order (OrderDate)
4. Writer
5. Book (Titile) // <<Этой сущности не было в таблице, мы увидели её и создали
6. Genre
7. Publisher
8. Deliveries (Amount, Price) // <<Этой сущности не было в таблице, мы увидели её и создали
Как отделить сущность от атрибута?
Верный знак – связь 1:1. Например, у контракта может быть только одна дата. У заказов – аналогично. У книг – только одно название. У поставок поставщиков – только одно количество поставок на конкретную дату и также при поставке – только одна цена.
В общем, логика прослеживается.
Сущность – Атрибут имеет взаимосвязь 1:1 в общем случае
Сущность – Сущность имеет взаимосвязь 1:M или M:N в общем случае
3 и 4 этап – установка взаимосвязей
Здесь можно, конечно как угодно действовать, рисовать на бумаге, рисовать в программах для интеллект-карт, но мне кажется лучше всего воспользоваться готовым софтом для ER-моделирования. Можно 1000 раз переставлять сущности, менять взаимосвязи. Итак, откроем MySQL WorkBench.
File >NewModel >AddDiagram
2 раза кликаем по AddDiagram. И перед нами открывается поле для действий.
Начинаем заполнять. Сначала добавим все сущности с атрибутами. А потом установим взаимосвязи.
Как добавить хотя бы 1 таблицу и заполнить её?
Заполняем таблицу так как нам надо…
Создадим таким образом все таблицы, которые нам нужны. Всего 8 таблиц как и заказывали.
Перед тем как мы будем налаживать взаимосвязи, разберемся в следующем.
В чем разница между identifying and non-identifying relationships?
Теперь, собственно попробуем наладить взаимосвязи! Но прежде, разберемся с пунктирными и непунктирными линиями во взаимосвязях.
Классные объяснения на английском находятся здесь. Больше всего мне понравилось вот это объяснение
A book belongs to an owner, and an owner can own multiple books. But the book can exist also without the owner and it can change the owner. The relationship between a book and an owner is a non-identifying relationship.
A book however is written by an author, and the author could have written multiple books. But the book needs to be written by an author it cannot exist without an author. Therefore the relationship between the book and the author is an identifying relationship.
Если книга может существовать без владельца, а она может, тогда non-identifying relationship
Если книга не может существовать без автора,а она не может, тогда identifying relationship
Технически это отражается следующим образом
identifying relationship:
|
Parent —— ID (PK) Name Child —— ID (PK) ParentID (PK, FK to Parent.ID) — notice PK Name |
non-identifying relationship:
|
Parent —— ID (PK) Name Child —— ID (PK) ParentID (FK to Parent.ID) — notice no PK Name |
То есть, в случае identifying в ключ ребенка встроен ключ родителя. А в случае non-identifying, в ключе ребенка нет ключа родителя.
Строим взаимосвязи
Последний штрих – разрушим связи многие ко многим
В нашем случае
-1 автор может написать несколько книг. И также можно сказать – несколько авторов могли написать 1 книгу. Поэтому вводим тип сущности WRITERS_BOOKS
-В 1 жанре может быть несколько книг. 1 книга может быть написана в нескольких жанрах. Вводим GENRES_BOOKS
Технически это просто
-удаляем старые взаимосвязи
-Теперь выбираем на палитре инструментов связь n:m, соединям наши таблицы и получаем следующее – 2 промежуточные таблицы.
Ну и последний шаг – создаем физическую базу
DataBase > Forward Engeneer
Выбираем опции и настройки, которые нам нужны
Далее собственно выполнение скрипта
Проверяем – создалась ли база и таблицы в реальной базе данных
Содержание
- 1. Какие проблемы могут возникнуть у разработчика при проектировании базы данных?
- 2. Что такое ER-модель (Entity-relationship model)? Для чего нужно разрабатывать ER-модель?
- 3. Что такое сущность в базе данных? Примеры
- 4. Какие существуют разновидности типов сущностей? Обозначение типов сущностей в ER-модели
- 5. Для чего предназначены атрибуты? Виды атрибутов. Обозначение атрибутов на ER-модели
- 6. Как типы сущностей и атрибуты ER-модели реализуются в реальных базах данных и управляемых ими программах?
- 7. Пример фрагмента ER-модели для типа сущности «Студент»
- Связанные темы
Поиск на других ресурсах:
1. Какие проблемы могут возникнуть у разработчика при проектировании базы данных?
При проектировании базы данных и разработке программного продукта наиболее важной проблемой есть проблема взаимодействия разработчика с заказчиком. Задача разработчика – наиболее точно воссоздать пожелания заказчика при разработке программного продукта управления базой данных. Основная проблема, которую нужно решить разработчику – правильное построение базы данных, а точнее схемы (структуры) базы данных.
Кроме того, разработчик дополнительно встречается с другими трудностями, к которым можно отнести:
- поиск эффективных алгоритмов;
- подбор надлежащих структур данных;
- отладка и тестирование сложного кода;
- дизайн и удобство интерфейса приложения.
В процессе разработки программного обеспечения, управляющего базой данных, разработчик должен подробно выучить требования заказчика. База данных должна быть разработана таким образом, чтобы она была понятной, наиболее точно отображала решаемую проблему и не содержала избыточности в данных.
Чтобы облегчить процесс разработки (проектирования) базы данных, используются так называемые семантические модели данных. Для разных видов баз данных наиболее известной есть ER-модель данных (Entity-Relationship model).
⇑
2. Что такое ER-модель (Entity-relationship model)? Для чего нужно разрабатывать ER-модель?
ER-модель (Entity-relationship model или Entity-relationship diagram) – это семантическая модель данных, которая предназначена для упрощения процесса проектирования базы данных. Из ER-модели могут быть порождены все виды баз данных: реляционные, иерархические, сетевые, объектные. В основе ER-модели лежат понятия «сущность», «связь» и «атрибут».
Для больших баз данных построение ER-модели позволяет избежать ошибок проектирования, которые чрезвычайно сложно исправлять, в особенности, если база данных уже эксплуатируется или на стадии тестирования. Ошибки в разработке структуры базы данных могут привести к переделке кода программного обеспечения управляющего этой базой данных. В результате время, средства и человеческие ресурсы будут использованы неэффективно.
ER-модель – это представление базы данных в виде наглядных графических диаграмм. ER-модель визуализирует процесс, который определяет некоторую предметную область. Диаграмма «сущность»-«связь» – это диаграмма, которая представляет в графическом виде сущности, атрибуты и связи.
ER-модель – это только концептуальный уровень моделирования. ER-модель не содержит деталей реализации. Для той же самой ER-модели детали ее реализации могут отличаться.
⇑
3. Что такое сущность в базе данных? Примеры
Сущность в базе данных – это любой объект в базе данных, который можно выделить исходя из сути предметной области для которой разрабатывается эта база данных. Разработчик базы данных должен уметь правильно определять сущности.
Пример 1. В базе данных книжного магазина можно выделить следующие сущности:
- книга;
- поставщик;
- размещение в магазине.
Пример 2. В базе данных учета учебного процесса некоторого учебного заведения можно выделить следующие сущности:
- студенты (ученики);
- преподаватели;
- группы;
- дисциплины, которые изучаются.
⇑
4. Какие существуют разновидности типов сущностей? Обозначение типов сущностей в ER-модели
В модели «сущность»-«связь» различают две разновидности типов сущностей:
- слабый тип. Этот тип сущности есть зависимым от сильной сущности;
- сильный тип. Это самостоятельный тип сущности, который ни от кого не зависит.
На рисунке 1 изображены обозначения слабого и сильного типа сущности в ER-модели.
Рис. 1. Обозначение сильного и слабого типов сущности
⇑
5. Для чего предназначены атрибуты? Виды атрибутов. Обозначение атрибутов на ER-модели
Каждый тип сущности имеет определенный набор атрибутов. Атрибуты предназначены для описания конкретной сущности.
Различают следующие виды атрибутов:
- простые атрибуты. Это атрибуты, которые могут быть частью составных атрибутов. Эти атрибуты состоят из одного компонента. Например, к простым атрибутам можно отнести: код книги в библиотеке или курс обучения студента в учебном заведении;
- составные атрибуты. Это атрибуты, которые состоят из нескольких простых атрибутов. Например, адрес проживания может содержать название страны, населенного пункта, улицы, номера дома;
- однозначные атрибуты. Это атрибуты, которые содержат только одно единственное значение для некоторой сущности. Например, атрибут «Номер зачетной книги» для типа сущности «Студент» есть однозначным, так как студент может иметь только один номер зачетной книги (одно значение);
- многозначные атрибуты. Это атрибуты, которые могут содержать несколько значений. Например, многозначный атрибут «Номер телефона» для сущности «Студент», так как студент может иметь несколько номеров телефона (домашний, мобильный и т.д.);
- произвольные атрибуты. Это атрибуты, значение которых формируется на основе значений других атрибутов. Например, текущий курс обучения студента можно вычислить на основе разности текущего года обучения и года поступления студента в учебное заведение (если студент не имел проблем с учебой и хорошо учил дисциплину «Организация баз данных и знаний»).
На ER-диаграмме атрибуты обозначаются так, как изображено на рисунке 2. Как видно из рисунка, любой атрибут обозначается в виде эллипса с названием внутри эллипса. Если атрибут есть первичным ключом, то его название подчеркивают.
Рисунок 2. Представление атрибутов на диаграммах ER-модели
⇑
6. Как типы сущностей и атрибуты ER-модели реализуются в реальных базах данных и управляемых ими программах?
При разработке программ управления базами данных, типы сущностей и их атрибуты можно представлять по разному при этом придерживаясь нескольких подходов:
- выбрать в качестве источника данных известную технологию (например Microsoft SQL Server, Oracle Database, Microsoft Access, Microsoft ODBC Data Source и т.п.), которая уже исследована, протестирована, стандартизирована и имеет огромный набор средств управления базой данных;
- разработать собственный формат базы данных и реализовать методы ее обработки, а взаимодействие с известными источниками данных реализовать в виде специальных команд наподобие Импорт/Экспорт. В этом случае придется собственноручно программировать всю рутинную работу по ведению и обеспечению надежной работы базы данных;
- реализовать объединение двух вышеприведенных подходов. Современные средства разработки программного обеспечения имеют мощный набор библиотек для обработки сложных наборов и визуализации данных в них (коллекции, массивы, компоненты визуализации и т.п.).
Если база данных реализуется в известных реляционных СУБД (например Microsoft Access, Microsoft SQL Server и т.п.), то типы сущностей представляются таблицами. Атрибуты из ER-модели соответствуют полям таблицы. Одна запись в таблице базы данных представляет один экземпляр сущности.
Каждый вид атрибута реализуется следующим образом:
- простой атрибут или однозначный атрибут может быть представлен доступным набором базовых типов, которые есть в любом языке программирования. Например, целочисленные атрибуты представляются типом int, integer, uint и т.д.; атрибуты содержащие дробную часть могут быть представлены типом float, double; строчные атрибуты типом string и т.д.;
- составной атрибут – это объект, который включает в себя несколько вложенных простых атрибутов. Например, в СУБД Microsoft Access составной атрибут некоторой таблицы может формироваться на основе набора простых типов (полей). В языках программирования объединение полей реализуется структурами или классами;
- многозначный атрибут может быть реализован массивом или коллекцией простых или составных атрибутов;
- произвольный атрибут реализуется дополнительным полем, которое вычисляется при обращении к таблице. Такое поле называется вычислительным полем (calculated field) и формируется на основе других полей таблицы;
- атрибут, который есть первичным ключом может быть целочисленным, строчным или иного порядкового типа. В этом случае, значение каждой ячейки таблицы, которая соответствует первичному ключу, есть уникальным. Наиболее часто, в качестве первичного ключа выступает целый тип (int, integer).
Если база данных реализована в уникальном формате, то типы сущностей удобнее всего представлять в виде классов или структур. Атрибуты сущности реализуются в виде полей (внутренних данных) класса. Методы класса реализуют необходимую обработку полей класса (атрибутов). Взаимодействие (связь) между классами реализуется с помощью специально разработанных интерфейсов с использованием известных шаблонов проектирования.
⇑
7. Пример фрагмента ER-модели для типа сущности «Студент»
Приведенный пример демонстрирует фрагмент ER-модели для типа сущности «Студент».
Рисунок 3. Фрагмент ER-модели для типа сущности «Студент»
На вышеприведенном рисунке объявляются следующие атрибуты, которые в СУБД (программе) могут иметь следующие типы:
- атрибут Первичный ключ – есть уникальным целочисленным значением которое формируется автоматически. В СУБД это есть поле-счетчик;
- атрибут Год вступления – простой атрибут, который можно реализовать целочисленным значением (int, integer);
- атрибут Номер телефона – многозначный атрибут, который может быть реализован как массив или коллекция и т.п.;
- атрибут Номер зачетной книжки – простой атрибут, который можно реализовать как строку символов, поскольку номер зачетной книжки кроме цифр может содержать и буквы;
- атрибут Страна, Город, Улица, Номер дома – это атрибуты, которые образуют составной атрибут Адрес. Все эти атрибуты могут быть строчного (текстового) типа (string, Text);
- атрибут Фамилия, Имя, Отчество – это простые атрибуты, которые являются частью составного атрибута Имя студента. Все эти атрибуты могут быть строчного (текстового) типа (string, Text);
- атрибут День рождения – простой атрибут типа Дата (DateTime);
- атрибут Возраст студента – вычисляемое поле, которое определяется как разность текущей (системной) даты и значения атрибута День рождения.
⇑
Связанные темы
- Подтипы сущностей. Супертип. Пример. Преимущества и недостатки применения подтипов сущностей
- Понятие связи в ER-модели. Мощность связи. Типы связей. Примеры
⇑
Директора, записанные в базе данных,
должны управлять одним и только одним
магазином,
или
Директора должны управлять по крайней
мере одним магазином и могут управлять
только одним магазином.
Отобразим эти связи (с некоторыми
выборочными примерами):
Связи между
МАГАЗИНОМ и ДИРЕКТОРОМ – двоичная связь
типа 1:1, следовательно используя правило
M3b_3, отношение МАГАЗИН будет расширено
до следующего вида (путем добавления
ключа ДИРЕКТОРА, номера соц. страхования,
в МАГАЗИН в качестве внешнего ключа):
А отношение для сущности ДИРЕКТОР
остается таким же, каким оно было
представлено в предыдущей главе.
Следующим нашим шагом будет шаг 7:
Шаг 7. Представить «разработанную»
базу данных пользователю, дополнив ее
английским описанием всех сущностей,
ключей, атрибутов и связей. Пересмотреть
диаграмму в случае необходимости.
В итоге наша реляционная база данных
была преобразована к виду (без данных):
(Примечание: первичные ключи подчеркнуты)
Мы продолжим рассмотрение
данного учебного примера в конце
Главы 5.
Глава 5: Слабая Сущность
Главы 2 и 3
были рассмотрены понятия сущности,
атрибута и связи. В главе
4 были описаны структурные
ограничения, определяющие каким именно
образом связаны две сущности. В этой
главе обсуждается понятие слабой
сущности, используемое в Chen-модели.
Слабые сущности могут сами по себе не
иметь ключевых атрибутов, поскольку
они зависят от сильных сущностей (которые
имеют ключевые атрибуты). Слабая сущность
имеет некоторые ограничения при
использовании и образуют некоторые
интересные диаграммы. Данная глава
переопределяет шаги 3 и 4 методологии
ER-дизайна,
расширяя ее для учета понятия слабой
сущности. Также приводится грамматика
для описания слабых сущностей и правила
преобразования таких диаграмм.
Сильные
и Слабые Сущности
Как обсуждалось в Главе
2, возможны ситуации,
когда трудно определить ключ для связи.
Поэтому мы до сих пор рассматривали с
сильными сущностями – то есть с теми,
где ключ легко распознается. Сильная
сущность почти всегда имеет уникальный
идентификатор, который является набором
всех ее атрибутов; уникальный идентификатор
может быть атрибутом или группой
атрибутов. Например, номер студента,
номер автомобиля, номер водительских
прав может являться уникальным
идентификатором для сильных сущностей.
Слабой является сущность,
которая для своего существования должна
зависеть от другой сущности. Как было
замечено ранее, слабая сущность может
не иметь уникального идентификатора.
Классическим примером сущности такого
рода является сущность ПОДЧИНЕННЫЙ,
связанная с сущностью СЛУЖАЩИЙ. Если
бы создавалась БД о служащих и их
подчиненных, то запись о подчиненном
полностью зависела бы от записи о
некотором служащем, в противном случае
информация о подчиненных не хранилась
бы в БД. Сущность СЛУЖАЩИЙ называется
родительской,
или идентифицирующей
сущностью для слабой сущности ПОДЧИНЕННЫЙ
Каким образом слабая сущность отображается
на диаграммах?
При создании базы данных у сущности
появился бы многозначный атрибут
имя_подчиненного, как изображено на
рисунке 5.1. Пример данных для диаграммы:
Рисунок
5.1:
Сущность СЛУЖАЩИЙ имеет многозначный
атрибут имя_подчиненного
Предположим, что после
переговоров с пользователем выяснилось,
что потребуется собирать больше
информации о подчиненных. Согласно
нашей методологии, такое утверждение
означает то, что подчиненные должны
являться сущностью, поскольку они
удовлетворяют критерию сущности.
Следовательно, мы должны определить
сущность ПОДЧИНЕННЫЙ и описать ее
атрибуты. После нашей методологии, это
подтверждение – что иждивенцы должны
быть объектами; то есть они соответствуют
критериям для «объекта»,
что бы мы сделали бы запись информации
иждивенец. Следовательно, мы должны
описать сущность ПОДЧИНЕННЫЙ. Введя
сущность ПОДЧИНЕННЫЙ, расширим диаграмму,
изображенную на рисунке
5.1:
Рисунок
5.2:
ER-диаграмма
СЛУЖАЩИЙ/ПОДЧИНЕННЫЙ в первом приближении
Рисунок 5.2
иллюстрирует ситуацию: сущность
ПОДЧИНЕННЫЙ зависит от сущности СЛУЖАЩИЙ
для своего существования. Она также не
имеет определенного уникального
идентификатора. Такая зависимость от
сущности СЛУЖАЩИЙ делает сущность
ПОДЧИНЕННЫЙ слабой. Поэтому характерным
является то, что ни имя подчиненного,
ни дата рождения, ни страховые пособия
не являются сами по себе потенциальными
ключами. Значение ни одного из этих
атрибутов не будет уникальным. Не
существует простого атрибута, выступающего
в роли потенциального ключа.
В Chen-модели
при разработке диаграмм слабые сущности
изображаются в двойном прямоугольнике,
а соответствующая связь с родительской
сущностью – в двойном ромбе (см. рис.
5.3). Говорится, что слабая
сущность ПОДЧИНЕННЫЙ идентифицируется
сущностью СЛУЖАЩИЙ, поэтому сущность
СЛУЖАЩИЙ называется родительской, или
определяющей сущностью для ПОДЧИНЕННЫЙ.
Рисунок
5.3:
ER-Диаграмма
СЛУЖАЩИЙ-ПОДЧИНЕННЫЙ
Атрибуты для слабых сущностей определяются
также, как и для сильных, с той лишь
разницей, что для слабых сущностей может
не существовать первичных ключей. Мы
добавили несколько атрибутов, поэтому
рисунок 5.3 отображает следующее (на
упрощенной грамматике):
Подчиненный
должен быть связан с одним служащим и
служащий может иметь много подчиненных.
Сущность ПОДЧИНЕННЫЙ имеет
следующие атрибуты: имя (составной
атрибут), дата рождения, страховое
пособие. Поскольку родителем для слабой
сущности ПОДЧИНЕННЫЙ является сильная
сущность СЛУЖАЩИЙ, процесс идентификации
будет основываться на ключе сущности
СЛУЖАЩИЙ и плюс некоторой информации
о слабой сущности ПОДЧИНЕННЫЙ. Имя
подходит в качестве потенциального
ключа для ПОДЧИНЕННЫЙ, и оно будет
называться частичным
ключом.
На Рисунке
5.3, мы подчеркнули
пунктиром неделимые части составного
ключа имя. Имя является частичным ключом,
поскольку оно идентифицирует подчиненного,
но оно не является уникальным. Так как
имя является составным атрибутом, то
совокупность его составных частей
определяет частичный ключ. Это предполагает
то, что все подчиненные имеют уникальные
имена.
На рисунке 5.3
мы не дали название связи, и обозначили
его просто СП для сущностей
СЛУЖАЩИЙ/ПОДЧИНЕННЫЙ. Подходящим
названием могло бы стать «имеет»:
Служащие могут иметь
много подчиненных.
или «подчиняются»
Служащие могут иметь
много подчиненных, подчиняющихся
им.
Также можно было использовать «связан
с»
Служащие связаны со многими подчиненными..
Каждая из этих глагольных
форм подразумевает избыточность
(подчиняются) или вводит в заблуждение
(связан с). Поэтому в данном случае лучшим
вариантом будет просто оставить отношение
без названия (СП)
Слабые
Сущности и Структурные Ограничения
Слабые сущности всегда
имеют полное или обязательное участие
в связи слабой стороны с сильной стороной.
В противном же случае мы будем иметь
элемент в базе данных, который уникально
не идентифицирован, и который не привязан
к сильной сущности. В нашем примере
СЛУЖАЩИЙ-ПОДЧИНЕННЫЙ это было бы похоже
на запись о подчиненном, которая бы
никак не была бы связана с некоторым
служащим. Числовой коэффициент связи
между сильной и слабой сущностью 1:M,
хотя это не обязательно.
Слабые
Сущности и Определяющая Родительская
Сущность
Существуют ситуации, в
которых слабые сущности могут быть
связаны с родительской сущностью, и в
то же время существуют другие связи
apart
from
родительской связи. К примеру, рассмотрим
рисунок 5.4.
На нем изображены две связи между
сущностями СЛУЖАЩИЙ и АВТОМОБИЛЬ –
«владеет» и «управляет».
В данном случае АВТОМОБИЛЬ является
слабой сущностью, поскольку при отсутствии
служащих не было бы и автомобилей (то
есть автомобиль должен иметь
владельца-служащего, чтобы существовать
в базе данных). Далее, автомобиль
идентифицируется по своему владельцу;
отметим, что связь «владеет»
обозначена двойным ромбом и сущность
АВТОМОБИЛЬ имеет полное участие в связи
«владеет».
Рисунок
5.4:
Слабая сущность с двумя связями.
На Рисунке
5.4 также изображена
связь «управляет».
Автомобиль управляется другими служащими
помимо владельца. Все автомобили
управляются некоторыми служащими и,
следовательно, это полное участие.
Однако, водитель-служащий может и не
являться фактическим владельцем. Чтобы
идентифицировать АВТОМОБИЛЬ, нам
требуется связь «владеет»,
но могут существовать и другие водители
помимо владельца.
Согласно
Рисунку 5.4, один служащий
может владеть несколькими автомобилями.
Для ответа на вопрос, какими автомобилями
владеет служащий, необходимо помимо
номера служащего знать производителя,
марку и цвет автомобиля. Поэтому атрибуты
сущности АВТОМОБИЛЬ являются частичными
ключами (подчеркнуты пунктиром на
рисунке 5.4).
Контрольная
точка 5.1
1. Как можно
идентифицировать сильную сущность?
2. Как можно
идентифицировать слабую сущность?
3.
Какая линия связи (одинарная или двойная)
вела бы к слабой сущности в диаграмме
Chen-модели?
4. В каких
типах связи в Chen-модели участвует слабая
сущность?
5. Что такое
частичный ключ?
Слабые
Сущности связанные с другими Слабыми
Сущностями
Заключительный пункт,
касающийся слабых сущностей. Факт того,
что некоторая сущность является слабой,
еще не запрещает ей быть родительской
для другой слабой сущности. Рассмотрим
рис. 5.6.
На нем связь СЛУЖАЩИЙ/ПОДЧИНЕННЫЙ
расширена таким образом, что подчиненные
могут иметь хобби. (Неважно, для чего
может возникнуть необходимость хранения
такой информации, просто предположим
такую ситуацию для примера).
Рис.
5.6. ER-диаграмма
СЛУЖАЩИЙ-ПОДЧИНЕННЫЙ-ХОБИИ
ПОДЧИНЕННЫЙ является слабой сущностью.
Сущность ХОББИ также является слабой.
Хобби будут идентифицироваться по
своему типу (коллекционирование марок,
баскетбол и т.д.) Атрибут тип является
частичным ключом сущности ХОББИ.
Сущность ПОДЧИНЕННЫЙ является родительским
для сущности ХОББИ, а сущность СЛУЖАЩИЙ
является родительской для слабой
сущности ПОДЧИНЕННЫЙ.
Данная ситуация была рассмотрена здесь
для того, чтобы показать что возможность
такой связи существует. Позже, когда мы
будем преобразовывать данные связи, мы
рассмотрим этот случай более подробно.
Контрольные
вопросы 5.4.
1. Может ли
слабая сущность зависеть от другой
слабой сущности?
2. Может ли
слабая сущность иметь «не слабую» связь
с идентифицирующей (родительской)
сущностью?
3. Может ли
слабая сущность зависеть от нескольких
сущностей одновременно (сильных и
слабых)?
Возвращение
к методологии
Добавление
слабой сущности в ER-диаграмму заставляет
нас вновь обратиться к методологии и
сделать некоторые поправки. Мы могли
обнаружить слабую сущность в одном из
двух случаев: первый из них – это когда
как мы рассматривали сущность «зависимый»
с развитием многозначного атрибута;
это должно произойти на этапе 3a и 3b:
Шаг 3: Исследовать атрибуты
в первичной сущности (потенциально с
помощью пользователя), чтобы выявить
нужно ли записывать информацию о
каких-либо атрибутах.
Шаг 3a: Если необходима
информация об атрибуте, сделать атрибут
сущностью и затем
Шаг 3b: Определите ее связь с родительской
сущностью.
Добавляем следующее:
Шаг 3с: Если новая сущность
для своего существования должна полностью
зависеть от другой сущности, обозначить
ее как слабую (в двойном прямоугольнике)
и показать связь с идентифицирующей
сущностью в двойном ромбе. Участие
слабой сущности в связи является полным.
Подчеркнуть пунктиром частичный ключ,
идентифицирующий слабую сущность.
Во втором случае слабая сущность может
появиться на шаге 4, на котором выявляются
новые сущности:
Шаг 4: Если можно выделить
еще одну сущность, изобразить диаграмму
для этой сущности и ее атрибутов.
Повторить шаг 2 чтобы выяснить, потенциально
ли дальнейшее выделение сущностей.
Добавляем следующее:
Шаг 4a: Если дополнительная сущность
или сущности не имеют потенциальных
ключей, то изобразить их как слабые
сущности (как описано на шаге 3c) и указать
связь с идентифицирующей сущностью.
Участие слабой сущности в связи является
полным, или обязательным. Подчеркнуть
пунктиром частичный ключ, идентифицирующий
слабую сущность.
Заметим, что слабая сущность не может
существовать без идентифицирующей ее
сущности. Поэтому, если «обнаружена»
слабая сущность, независимая от
идентифицирующей сущности, необходимо
немедленно установить связь.
Проектирование в соответствии с нотацией IDEF1x
В процессе проектирования используются некоторые нотации модели данных, и чаще всего — нотации модели данных «сущность-связь». В частности, достаточно удобная нотация IDEF1x.
Также можно упомянуть пакет ERwin, который предназначен для разработки моделей «сущность-связь». В нём есть возможность разрабатывать соответствующую схему, используя нотацию IDEF1x.
Этапы проектирования
| Номер этапа | Название | Документация |
|---|---|---|
| 1 | Определение сущностей | Пул сущностей (текстовый документ) |
| 2 | Определение связей | Матрица связей. Диаграмма уровня сущностей (ER-диаграмма) |
| 3 | Определение ключей | Диаграмма уровня ключей (KB-диаграмма) |
| 4 | Определение атрибутов | Полноатрибутная диаграмма (FA-диаграмма) |
Определение сущностей
Само название модели «сущность-связь» говорит о том, что мы должны определить сущности. Результатом этого этапа является текстовый документ — пул сущностей, в котором описывается каждая сущность, включенная в проект.
Форма записи этого документа свободная, но удобно использовать табличку. При этом крайне желательно, чтобы все эти документы сохранялись, чтобы подтверждать, что мы сделали именно то, что просил заказчик.
Определение связей
Сущности вступают между собой в какие-то связи, и эти связи надо определить.
При этом, как и на любом другом этапе проектирования, надо как можно больше приставать с вопросами к заказчику как к обладающему знаниями предметной области источнику, если хоть что-то непонятно.
Результатом второго этапа является матрица связей между сущностями — в достаточно свободной форме и первая диаграмма — ER-диаграмма уровня сущностей.
При этом мы ограничиваемся рассмотрением лишь бинарных связей (то есть связей между двумя объектами), и эти связи бывают двух типов: один ко многим и многие ко многим. Диаграмма уровня сущностей — единственный тип диаграммы, на которой допускается связь типа многие ко многим. В этой диаграмме отображаются те связи, которые присутствуют между сущностями в реальном мире.
В матрице связей указываются, какие сущности в принципе связаны между собой. Как они связаны, сколько этих связей, тут не решается.
Результатом этого этапа является диаграмма уровня сущностей. Её надо сохранить и прислать, потому что дальнейшие переходы к следующим этапам должны ей соответствовать.
Определение ключей
В результате получается диаграмма Key_Based, где для каждой сущности определяется уникальная характеристика, идентифицирующая каждую сущность — ключ.
На этом этапе в диаграмме уровня ключей не должны остаться связи типа многие ко многим — для этого есть формальные подходы, позволяющие исключить такие ключи и не нарушить систему в целом.
Чтобы сделать ключевую диаграмму, копируем уже имеющуюся ER-диаграмму в отдельный файлик и на основе её рисуем KB-диаграмму.
Определение атрибутов
Результат — полная атрибутная диаграмма, которая позволяет по её виду легко перевести её на язык реляционных баз данных. Поэтому после этого уже можно писать SQL запросы на создание табличек.
При определении атрибутов может понадобиться ввести какие-то новые сущности, которые на первом этапе были не очевидны. Это нормальная ситуация.
Пример проектирования
Постановка задачи
Спроектировать систему для организации учебных занятий в институте.
Система должна:
- хранить информацию о студентах, учебных группах, преподавателях и изучаемых предметах (учебный план)
- хранить информацию о проведении учебных занятий в группах конкретными преподавателями
- хранить информацию о контроле успеваемости студентов по изучаемым предметам
Для того, чтобы спроектировать модель, недостаточно знать, что в неё входит — нужно знать, и какие ограничения накладываются на данные, хранящиеся в этой системе.
Требования к системе
- Студенты зачисляются (переводятся) в группу перед началом учебного года; переводы в середине учебного года не допускаются.
- Занятия организуются для групп
- Преподаватели назначаются для проведения занятий в группах в соответствии со своей специализацией.
- Преподаватель может проводить занятия по разным предметам и в разных группах
- Занятия по одному и тому же предмету в группе могут проводить несколько преподавателей
Для того, чтобы определить, какую информацию хранить в системе, нужно чётко представлять бизнес-процессы, которые предъявляют определённые требования к хранящейся информации.
Определение сущностей
По сути, все существительные, которые встречаются в тексте задания, являются кандидатами в сущности.
- Кафедра/Е1
- Группа/Е2
- Студент/Е3
- Предмет/Е4
- Преподаватель/Е5
- Контроль/Е6
Однако это только кандидаты в сущности. Для каждой из них надо ответить на целый ряд вопросов:
1. Можно ли как-то описать соответствующий объект? Например, кафедра — некоторое подразделение института, осуществляющее подготовку студентов по конкретным специальностям. Такие описания нужно фиксировать — они потом войдут в пул сущностей и позволят прийти к общему видению задачи с заказчиком.
2. Имеет ли соответствующий кандидат в сущность какие-либо свойства? Например, кафедра имеет название, номер специальности.
3. Можно ли получить информацию о свойствах объекта?
4. Могут ли существовать объекты с одинаковыми свойствами? Две кафедры с одинаковыми названиями вряд ли могут существовать, но могут существовать разные кафедры, выпускающие специалистов по одному и тому же направлению.
5. Можно ли отличить один объект от другого? Каждая кафедра имеет своё уникальное название и номер
6. Является ли кандидат в сущность некоторой характеристикой другого объекта? Если да, то он исключается из списка кандидатов в сущности.
Если на первые пять вопросов ответ «да», а на последний — «нет», то кандидат в сущность является сущностью.
Пример пула сущностей
| Номер множества сущностей | Имя множества сущностей | Определение | Описание |
|---|---|---|---|
| Е1 | Кафедра | Подразделение института, которое выпускает специалистов по конкретной специальности | Как только в институте фиксируется решение о создании новой кафедры, формируется новый экземпляр данного множества сущностей. |
| E2 | Группа | Учебная единица, для которой организуются занятия в соответствии со специальностью | Как только в институте для выпуска специалистов по какой-либо кафедре создаётся учебная группа, формируется новый экземпляр данного множества сущностей |
| E3 | Студент | Человек, достигший совершеннолетия, успешно сдавший соответствующий экзамены и зачисленный (переведённый) в группу соответствующим приказом по институту | Студент зачисляется в соответствующую группу. В случае необходимости создаётся новая группа, и в таком случае создаётся новый экземпляр данного множества сущностей. Ограничения: группа может состоять минимум из 5, максимум из 25 студентов. |
Матрица связей
Модели сущность-связь используют графическое представление. Конкретные графические элементы могут отличаться в разных нотациях: мы ориентируемся на нотацию IDEF1x, в соответствии с которой сущность изображается прямоугольником, разделённым горизонтальной линией на две области (для диаграммы уровня сущностей такой разделение необязательно), а связь, поскольку IDEF1x ограничивается рассмотрением только бинарных связей, представляется просто линией. Однако в реляционной модели данных бинарные связи могут быть разными, поэтому преставление конкретной бинарной связи может выглядеть по-разному.
Если мы задаём сущность, в общем случае эти две области прямоугольника имеют специфическое название. В диаграмме уровня сущности название сущности всегда — существительное в единственном числе, хотя оно и определяет множество экземпляров. Эти две области на ER-диаграмме могут отсутствовать и не надо их сразу там заполнять, потому что это приводит к дополнительным ошибкам на дальнейших этапах проектирования.
Связь
- Только бинарные связи.
- Название связи определяется глаголом или глагольной фразой. Для каждой бинарной связи определяются два отображения, каждое из которых надо назвать.
- Именование бинарной связи осуществляется для двух отображений: СОТРУДНИК, ОТДЕЛ (Отдел состоит из нуля или более сотрудников, Сотрудник зачислен в один отдел). Очень важно, чтобы в записи отображений были записаны и минимальные, и максимальные кардинальные числа: нельзя писать «отдел состоит из многих или нескольких сотрудников». Если написать так, это будет ошибкой. Имя связи: «состоит из / зачислен в»
- Тип связи определяется кардинальными числами двух отображений
Определённая 1:n (связь типа один ко многим)
Для одного отображения минимальное кардинальное число равно 1, максимальное — много.
На стороне связи «много» — там где максимальное кардинальное число, ставится точка, а там где связь 1, никаких обозначений не ставится.
Например, для такого отображения говорится, что для отображения сотрудника на отдел минимальное кардинальное число и макс равно 1, а для отображения одела на сотрудники минимальное число равно 0, а максимальное — бесконечность.
Такая связь характеризуется одной глагольной связью от одного ко многим. Для второго отображения связь можно не писать
Неопределённая (n:n) связь многие ко многим
Например, связь между товаром и товарным документом. Один товар может быть указан в нуле или большем количестве товарных документов, а товарный документ может содержать
На обоих концах указываются точки. Связь указывается в обоих направлениях. Причём сначала указывается отображение слева направо сверху вниз.
Между сущностями предмет и преподаватель дву связи: по одной — преподавать проводит занятия, а по второй —специализация преподавателя. Поэтому между сущностями предмет и преподаватель две разные связи.
Если мин кард число не ноль, то на конце связи мб указана буква Р (Positive).
Если мин кард число 0, а макс 1, то мб указана буква Z.
Плохо, если для связей типа многие ко многим на обоих концах связи стоит буква Р — тогда непонятно, как надо будет создавать базу данных. Поэтому для обоих концов связи лучше вообще ничего не указывать: в реляционной модели данных связи типа многие ко многим существовать не могут, но когда мы проектируем ИС, мы начинаем разработку именно с модели сущность-связь и не всегда понятна реализация бизнес-логики.
Но если на первом этапе при разработке ER-диаграммы мы не будем использовать связи многие ко многим, это может привести к тому, что мы некорректно опишем предметную область, и потом придётся много всего исправлять. Поэтому в ER диаграмме связи типа многие ко многим приветствуются, если они отображают семантику предметной области.
Первый этап проектирования предполагает следующие документы
- пул сущностей
- прислать обязательно ER диаграмму
Для каждой связи в ER диаграмме надо написать два отображения — это обязательное условие.
Семинар 2
Фаза 3. Определение ключей
Определение ключей
- Выделение первичных и альтернативных ключей
- определение доменов
- разрешение неопределённых связей (типа n:n)
- определение внешних ключей
Надо иметь средства, позволяющие идентифицировать каждый экземпляр сущности. Для этой цели используются ключевые атрибуты: если мы в сущности определяем ключ, то это означает, что в данном множестве не могут оказаться два разных экземпляра сущности с одинаковыми значениями ключевых атрибутов. Причём таких ключей может быть много, один из них выдвигается на роль первичного ключа (Primary Key), а остальные, если они есть, — альтернативные (AK). Поскольку ключи — это атрибуты, а они определены на домене, то на этой фазе надо определить домены для ключей.
На этом же этапе неопределённые связи типа многие ко многим надо заменить определёнными связями.
Для определения связей между сущностями в РМД используются внешние ключи — FK.
Когда мы выделяем ключевые атрибуты, надо решить, есть у сущностей в этом множестве какие-то собственные уникальные атрибуты: например, серия и номер паспорта у сотрудника или номер зачётной книжки студента. Если такая ситуация оказывается невозможной: например, нет таких уникальных атрибутов или они неудобны (например, к неудобным атрибутам относят дату и время, которые везде представляются по-разному; текстовые строки), поэтому на роль ключевых атрибутов лучше выбирать целые числа; то если нет таких атрибутов, то вводят искусственный атрибут, который не является собственным атрибутом сущности, но используется как первичный ключ — суррогатный ключ.
Однако такие суррогатные ключи определяются в рамках конкретной организации, поэтому иногда поиск по ним затруднителен. Поэтому сначала надо искать собственные ключевые атрибуты.
При этом ключи могут быть простыми (представлены одним атрибутом) или составными (представлены комбинацией нескольких атрибутов). Если среди собственных ключевых атрибутов есть целые, то мы выделяем его на роль первичного ключа, иначе выдвигается суррогатный целочисленный ключ, а все собственные уникальные ключи становятся альтернативными.
Первое, что мы делаем на этом этапе, — для каждого типа сущности пытаемся выделить ключевые атрибуты.
Результатом этой фазы будет диаграмма уровня ключей — KB-диаграмма со всеми именами ключей.
На ER-диаграмме определённая связь отображается просто линией с точкой, а на KB-диаграмме это может быть либо идентифицирующей, либо неидентифицирующая; обязательная или обязателньая.
Тип связи оказывает влияние на вид сущности. Они определяются как зависимые по идентификации (скруглённые углы) и независимые (с прямыми углами).
Если для идентификации сущности мы можем ограничиться только собственными атрибутами сущности без учета связи, то эта сущность независимая по идентификации.
Если для идентификации сущности надо учитывать связь, в которую вовлечена эта сущность, то она зависимая по идентификации.
Разновидность сущности определяется связью.
Определённая идентифицирующая обязательная связь
Поскольку эта связь определённая, то для одного конца минимальное кардинальное число любое, а максимальное кардинальное число — бесконечность ( об этом говорит точка). Со стороны прямой линии минимальное и максимальное кардинальные числа равны 1.
Это определённая обязательная связь, так что экземпляры из второго множества сущностей (то есть со стороны «много») не могут существовать дез связанных с ними экземпляров их первого множества сущностей.
Кроме того, связь характеризуется внешним ключом. Внешний ключ — это атрибут сущности, который не является её собственным атрибутом, но определяет связь.
Например, у нас есть сотрудники, и для выполнения каких-то работ сотрудник назначается в конкретную бригаду — он становится членом этой бригады. Чтобы идентифицировать члена бригады, мы не можем ограничиваться только табельным номером сотрудника, потому что один сотрудник мб членов нескольких бригад ⇒ используется собственный атрибут «номер бригады» и атрибут сотрудника — номер сотрудника, который является внешним ключом по отношению к сущности «член бригады».
Если внешний ключ становится частью первичного ключа, то такая связь называется идентифицирующей, а сущность — зависимой по идентификации.
Поэтому сущность на конце 1 определяется как родительская сущность, а сущность на конце много — дочерняя. Экземпляры дочерней сущности идентифицируются с учётом связи. Частью первичного ключа является внешний ключ ⇒ связь идентифицирующая и сущность зависима по идентификации.
Поскольку этот внешний ключ становится частью первичного ключа, а атрибуты первичного ключа не могут отсутствовать — они обязательные, то эта связь ещё и является обязательной ==> минимальные и максимальные кардинальные числа слева равны 1: член бригады это обязательно сотрудник.
Определённая неидентифицирующая обязательная связь
Определённая — связь типа «один ко многим». Обязательность означает, что на стороне 1 минимальное и максимальное кардинальные числа равны 1, а свойство «не идентифицирующая» говорит о том, что атрибут внешнего ключа не является частью первичного ключа.
Если сотрудник однозначно идентифицируется собственным табельным номером без учёта отдела, в который он зачислен, а внешний ключ попадает в область прочих атрибутов, то это не идентифицирующая связь.
Должность имеет составной первичный ключ, и весь он мигрирует в область FK2 сущности сотрудника. При этом очень важно, чтобы атрибуты перечислялись в том же порядке, в которому они перечисляются в записи первичного ключа сущности. Если используем ERWin, то там всё будет автоматически, а если вручную — надо следить за этим самим.
Определённая неидентифицирующая необязательная связь
Определённая — значит, связь 1 ко многим
Неидентифицирующая — внешний ключ в области внешних атрибутов
Необязательное — минимальное кардинальное число мб равно нулю
Ромбик говорит что минимальное кард число 0, макс — 1.
Внешний ключ не мб включен в область первичного ключа, тк он может отсутствовать, а для первичного ключа все атрибуты обязательные.
Обычно така связь используется для определения иерархической структуры: разные экземпляры одного и того же множества сущностей вступают в одну связь. Такая связь означает, что отображается древовидная структура, а для корня нет родительской категории, и значение внешнего ключа будет пустым.
Связь типа категория
Часто раньше упоминалась связь 1 к 1, но от неё отказались. Если надо представить связь 1 к 1, то это частный случай типа один ко многим.
Но есть и частные случаи, когда множество сущностей рассматривается как подмножество другого множества сущностей.
Обозначается кружком, который подчёркнут либо одной (это означает неполную категорию: может существовать элемент множества, не относящийся ни к одной категории) или двумя линиями (полная категория).
Например, юридическое и частное лицо — подмножества множества покупателей, а её полнота определяется из анализа предметной области.
Разрешение связей типа n:n
Реляционная модель данных не позволяет представлять связи типа «многие ко многим». Когда мы от ER-диаграммы переходим к KB-диаграмме, происходит разрешение таких связей. Она приводит к тому, что появляется дополнительная сущность и две связи типа 1 ко многим, причём «много» стоит на стороне дополнительной сущности.
При этом часто эта дополнительная сущность становится зависимой по идентификации: первичные ключи исходных сущности мигрируют в область первичного ключа дополнительной сущности.
В некоторых случаях такое разрешение мб неприемлемым. Например, если есть две связи многие ко многим, то для каждой такой связи появляются дополнительные сущности
Однако составные первичные ключи в дополнительных ключах часто бывают неудобными, поэтому иногда вводятся суррогатные ключи (типа «номер записи»).
KB-диаграмма
После разрешения таких связей получается диаграмма уровня ключей. Надо обязательно прислать ER-диаграммы, и при проверке диаграммы уровня ключей надо видеть ER-диаграмму, потому что при переходе между ними часто допускаются ошибки, которые дальше могут сказаться на этапе создания базы данных или на более поздних этапах.
4. Разработка полноатрибутной схемы
Определение атрибутов
- выделение атрибутов и доменов
- представление «неудобных» атрибутов в виде отдельных сущностей. Неудобные атрибуты — это длинные строки, значения которых могут повторяться (например, должность сотрудника). Надо гарантировать, что такой текст для всех сотрудников будет представлен правильно: поэтому если появляются такие неудобные атрибуты, целесообразно ввести новую сущность «должность» и ввести суррогатный ключ «код» и альтернативный «название должности».
В результате получается FA-диаграмма с атрибутами всех сущностей. Эту схему можно не присылать, но она используется уже для этапа создания базы данных.
Семинар 4
Следующим этапом после создания полноатрибутной схемы является создание базы данных.
Для этого выполняется предложение
create database имя_базы;
И потом в созданной базе данных создаются все необходимые объекты. Для нас такими объектами являются, прежде всего, таблицы: каждому отношению из FA ставится в соответствие таблица реляционной БД. Для этого используется подмножество SQL для описания данных:
CREATE TABLE имя_таблицы ( имя_колонки тип_данных ограничения_на_колонку, ..., табличное_ограничение, ... )
После того, как мы напишем sql скрипт создания БД надо прислать его на проверку. Кроме того, после этого надо проверить, что мы правильно создали базу данных (реинжиниринг).
В разных СУБД используются свои диалекты sql, которые могут отличаться как в формате представления предложения create table, так и типах данных.
В состав ЯОД входят всего два предложения — create и drop, где после этих слов указывается, что именно мы описываем — например, table, database, index и так далее.
При этом если в РМД порядок перечисления доменов в отношении не важен, то в sql это свойство нарушается, и колонки будут включаться в таблицу именно в таком порядке, в котором они описываются.
Несмотря на то, что РМД определяет атрибуты на доменах, в реляционных СУБД обычно вместо доменов используются типы данных, и принадлежность атрибута к домену устанавливается как тип данных.
Табличные ограничения — это те, которые охватывают сразу несколько колонок таблицы. Они описываются отдельно, но все колонки, которые в этом ограничении упоминаются, должны быть описаны до табличного ограничения.
Типы данных
Числовые — используются для представления целых, вещественных и десятичных чисел
smallint - полуслово (2 байта) tinyint - 1 байт integer real decimal - обычно используется для представления вещественны чисел
Строковые — используются для представления строк
char - строки фиксированной длины, после него опционально может идти указание длины, например, char[5], но если длина не указана, то по умолчанию она принимается равной 1 varchar - строковые данные переменной длины
При этом если мы объявили пятисимвольный char(5), а использовали только два символа, то они будут расширены до 5 символов, то есть во всех строках этот атрибут будет именно указанной длины, а незанятое место будет заполнено пробелами.
Для varchar надо указывать предполагаемое максимальное значение; по умолчанию равно 1, что для varchar бессмысленно, так что это грубейшая ошибка.
Если мы задаём varchar(5), а используем только два символа, то только эти два символа и будут храниться, и до 5 ничего дополняться не будет. Однако в памяти каждая строка типа varchar также содержит дополнительное поле, указывающее её длину.
Если попытаться сравнить char(5) 'ab' и varchar(5) 'ab', то результат сравнения будет отрицательным, так как для char(5) будет представление 'ab' и три пробела.
Дата-время используются для представления даты и времени
date time datetime smalldatetime
Обычно всё, что касается даты-времени, в СУБД реализуется с помощью библиотечных функций.
Выражения
В sql нет никакого неявного преобразования типов операндов. Если оно нужно, надо явно выполнять его с помощью функции cast.
Операция конкатенации (+) выполняет сцепление двух строковых операндов и образует строковое выражение
Арифметические операции можно использовать с операндами числовых типов
Бинарные операции / + — определяют сложение, вычитание, умножение и деление
Операции над датой и временем реализуются с помощью библиотечных функций
Ограничения целостности
| Тип ограничения целостности | Представление в SQL |
|---|---|
| Уникальность значений | PRIMARY KEY ИЛИ UNIQUE |
| Обязательность значений | NULL или NOT NULL |
| Допустимость значений | CHECK логическое условие |
| Ссылочные ограничения | FOREIGN KEY |
Допустимость значений
CHECK (условие) Условие: [NOT] предикат [ бинарная_операция [NOT] предикат] Предикат: операции отношения = <> != < <= > >= expr1 [NOT] between expr2 and expr3 expr [not] in (expr_list) expr [not] like template
Ссылочное ограничение
Ссылочное ограничение на колонку: ... references parent_table (pk_name_in_parent_table) -- если FK и PK названы одинаково, можно не указывать имя ПК в род таблице on delete reaction on update reaction reaction: - no action (restrict в других диалектах) - cascade - set null Табличное ссылочное ограничение (когда в родительской таблице ПК составной, тогда и FK составной) foreign key (columns_list) -- важно чтобы атрибуты перечислялись том же порядке что и у родительской таблицы references parent_table (pk_from_parent_table) on delete reaction
Удаление таблицы
Нельзя удалить родительскую таблицу, если существует хотя бы одна связанная с ней дочерняя таблица
Предложения SQL
insert into имя_таблицы (колонка1, ...) values (значение1, ...), ( ... ) ... запрос -- явные ограничения разработываются с помощью триггеров и процедур -- неявные с помощью create table -- для каждого диалекта sql стандарт бизнес логики свой -- перед заполнением БД имело бы смысл сделать триггеры -- иначе для тех строк которые уже были включены в таблицы триггеры вызваны не будут -- имена колонок перечисляются в любом удобном порядке -- значения можно задать самому (values) -- или вместо values можно написать запрос select delete from имя_таблицы where условие_отбора_строк update имя_таблицы set колонка1 = выражение, ... where условие_отбора_строк -- имя колонки может повторяться: update sp set qty = qty + 10 // это будет выполнено для всех строк в таблице
Формирование запросов
select [distinct] список_вывода -- имена колонок, выражения, встроенные функции СУБД from источники -- имена таблиц, из которых выбираются данные where условие_отбора_строк group by список_для_группирования having условие_отбора_групп order by список_для_упорядочивания
Для заполнения таблиц нужно разрабатывать триггеры
Триггеры
На них стандарта нет и в каждом диалекте используется свой язык, в Postgres — PL/SQL.
create trigger checkSal1 -- имя триггера уникально в пределах БД on employee -- триггер всегда привязывается к какой-то таблице after insert -- и какому-то действию с этой таблицей: after/before insert/delete/update -- здесь триггер срабатывает уже после вставки данных в таблицу: -- еслик какие-то неявные ограничения нарушены, вставка не произойдёт и триггер не сработает -- обычно пишутся триггеры after, потому что в этом случае гарантируется, что будут выполняться все внутренние ограничения, чтобы не делать лишние проверки [for each row] / [for each statement] -- for each row: триггер будет срабатывать после вставки каждой строки -- for each statement: сначала будут вставлены все строчки, и только после этого вызван триггер as set nocount on // специфика ms sql; в postgres такой необходимости нет declare // объявляем переменные @sal decimal(10, 2), // имена локальных переменных начинаются с @ @minSal decimal(10, 2), @maxSal decimal(10, 2), @jobId int; // поскольку триггер срабатывает после insert, то в нём есть временная таблица с именем inserted // вставляется только одна строка (for each row), значит, в inserted есть только одна строка данных // раз одна строка, то можно считать значения из этой строки и записать в переменные select @sal = sal, @jobId = jobId from inserted; select @minSal = minsal, @maxSal = maxsal from job where jobid = @jobId; // считали вилку должностных окладов для данной должности // проверяем корректность if @sal < @minSal or @sal > @maxSal begin raiserror('Incorrect salary for jobId = %d', 11, 1, @jobId); // вывести сообщение об ошибке, raiserror // 11 - код серьёзности ошибки // 1 - уровень разделения серьёзности ошибки внутри кода rollback // все действия которые были выполнены (вставка записи) откатывается end; // аналогичный вариант select @sal=sal from inserted; select @minSal = minsal, @maxSal=maxsal from job join inserted i on i.jobId = job.jobId; if @sal < @minSal or @sal > @maxSal begin raiserror('Incorrect salary', 11, 1); rollback end;
В Postgres нет таблички inserted, но можно указать такую конструкцию
create trigger trigger_name on table_name after insert old as T1 new as T2 ...
тогда таблица T2 определяет новое имя таблицы после вставки
Предложения SQL являются атомарными: не может быть такого, что часть предложения выполнилась, а часть — нет. Поэтому если мы вставляем в таблицу несколько строчек и если хотя бы в одной строке будут нарушены ограничения целостности, то ни одна строчка из запроса вставлена в итоге не будет.
Триггер представляет собой некоторую специальную процедуру, которая пишется на расширенных диалектах SQL для бизнес-логики. Для SQL определён стандарт, касающийся только работы непосредственно с таблицами — вставка, удаление, изменение, запросы, при этом на диалект SQL, касающийся бизнес-логики и процедур, стандарта нет. Следовательно, форматы предложений create trigger в MSSQL и Postgres будут разные.
Перед тем, как мы начнём заполнять базу, надо разработать и отладить свои триггеры.
create or replace trigger имя -- если триггер с такими именем есть, то он просто пересоздастся (or replace) условие_срабатывания on имя_таблицы // триггер обязательно привязывается к таблице [for each row] // триггер будет вызываться для каждой строчки отдельно - это понизить производительность // по умолчанию for each statement // если мы пишем after insert for each statement, то сначала в таблицу будут вставлены все строки, но только после этого вызовется триггер // это мб быстрее, но сложнее - мы не будем получать доступ к каждой вставленной строке отдельно [when (условие)] // перед срабатыванием триггера проверяется условие - если оно не выполнено, триггер срабатывать не будет declare // объявление локальных переменных как в create table ... // тип данных для переменных можно указать так a таблица.колонка type // тип переменной совпадает с типом колонки - так триггер сам будет "подхватывать" обновления таблиц begin // что нужно сделать ... end // обычно условие срабатывания задаётся так: {before, after, instead of} // время выполнения триггера относительно операции insert / delete / update // какой операции /* более предпочиттельным является создание триггера after он будет срабатывать только если строчка прошла проверку целостности, так повысится производительность триггер instead of используется обычно не для таблиц, а для представлений (view) view - это представление, которое хранится в виде select-запросов, и в отличие от таблиц, реально в базе не существует поэтому с view можно выполнять только select но если хочется с ними выполнять insert/delete/update, то можно перехватить эти операции с помощью триггера */
Пример триггера, проверяющего корректность оклада
// postgres create or replace trigger checkSal1 after insert or update on employee [referencing new as t1 old as t2] // переименование предопределённых имен старых и новых значений for each row declare minSal number, maxSal number; // к старым и новым значениям можно обращаться через :old._ и :new._ // если мы не уверены в типах данных переменных, можно указать: minSal job.minSal%TYPE // из таблицы job для указанного значения jId считывается minsal и maxsal begin select j.min_sal, j.max_sal into minSal, maxSal // selectы с into мб только в скалярных запросах - то есть тех, которые возвращают максимум одну строку результата from job j where j.job_id = :new.job_id -- проверяется корректность if :new.sal < minSal or :new.sal > maxSal then raise_application_error(-200001, 'incorrect salary'); // первый аргумент - код ошибки: отрицательное значение - пользовательская ошибка end if; end;
Написание запросов
1. Сформировать общий итог всех встреч в виде Команда | Общее количество игр | Количество побед
Одна и та же команда может встречаться и в качестве хозяина встречи, и в качестве гостя.
with -- 1 табличное выражение: количество побед в играх, где команда была хозяином tab1(cmd, "match", win) as (select cowner, count(cowner), sum(case when scored > conceded then 1 else 0 end) from game group by cowner), -- 2 табличное выражение: количество побед в играх, где команда была гостем tab2(cmd, "match", win) as (select cguest, count(cguest), sum(case when concede > scored then 1 else 0 end) from game group by cguest) -- основной запрос select tab1.cmd as command, tab1.match + tab2.match as games, tab1.win + tab2.win as win from tab1 join tab2 on tab1.cmd = tab2.cmd
Если данные реализованы в виде рекурсивной структуры (иерархическая связь), часто используются рекурсивные табличные выражения:
with t1(c1, c2, ...) as (основная_часть union all рекурсивная_часть) основной_запрос
Например
with v1(a, b) as ( select first, second from tab -- основная часть union all select first, b from tab, v1 where v1.a < tab.first -- рекурсивная часть: используется табличное выражение ) select * from v1 order by a, b
При формировании рекурсивного запроса сначала выполняется основная часть запроса, которая формирует «базу» результата. В нашем случае это копия таблицы tab. Потом начинает выполняться рекурсивная часть, где в табличное выражение постепенно добавляются всё новые и новые строки, удовлетворяющие условию. При этом важно следить за тем, чтобы это табличное выражение не образовало бесконечную рекурсию.
Ещё один пример рекурсивного табличного выражения — когда у нас есть отношение, задающее структуру некоторого изделия (иерархическая связь).
with rect(part, subpart, qty) as ( select r.part, r.subpart, r.qty from Comp r where r.part = 1 union all select c.part, c.subpart, c.qty from rect p, Comp c where p.subpart = c.part ) select distinct part, subpart, qty from rect order by part, subpart, qty
Когда выполнится основная часть (до union all), в таблице rect мы получим данные для основной детали, то есть
| part | subpart | qty |
|---|---|---|
| 1 | 2 | 2 |
| 1 | 3 | 3 |
| 1 | 4 | 4 |
| 1 | 6 | 3 |
И дальше начинается цикл — эту таблицу мы называем p, а таблицу с компонентами, которая лежит в базе (Comp) мы называем c. Дальше из таблицы c мы выбираем те строки, в которых указаны составляющие детали (c.part = p.subpart). В итоге мы будем вытаскивать информацию о деталях 2, 3, 4, 6, и получится
| part | subpart | qty |
|---|---|---|
| 1 | 2 | 2 |
| 1 | 3 | 3 |
| 1 | 4 | 4 |
| 1 | 6 | 3 |
| 2 | 5 | 7 |
| 2 | 6 | 6 |
| 3 | 7 | 6 |
| 4 | 8 | 10 |
| 4 | 9 | 11 |
| 6 | 12 | 10 |
| 6 | 13 | 10 |
Затем мы перейдём к составляющим деталей 2, 3, 4, 6 — это 5, 6, 7, 8, 9, 12, 13. Когда мы попытаемся получить данные о детали 8, мы обнаружим, что её нет в таблице компонентов — на этом рекурсивное табличное выражение формироваться перестанет и расти не будет.
Когда табличное выражение будет сформировано, будет выполнен основной запрос.
Теперь если нужно определить все составляющие детали и определить, в каком итоговом количестве они входят
with rect(part, subpart, qty) as ( select r.part, r.subpart, r.qty from Comp r where r.part = 1 union all select p.part, c.subpart, p.qty * c.qty form rect p, Comp c where p.subpart = c.part ) select part, subpart, sum(qty) as total from rect group by part, subpart order by part, subpart
Update:
See this article in my blog in which I try to cover the subject in more detail:
- What is entity-relationship model?
An entity is a term from the entity-relationship model.
A relational model (your database schema) is one of the ways to implement the ER model.
Relational tables represent relations between simple types like integers and strings, which, in their turn, can represent everything: entities, attributes, relationships.
You cannot tell what is it only from the relational structure, you need to see the ER model.
For table persons,
id name surname
1 John Smith
id, name and surname are entities in the real world and may or may not represent entities in the underlying ER model.
The fact of a record exists in the table means that these entities are in the following relation: «person 1 has name John and has surname Smith«.
In the example above, the entity is defined by id (from the model’s point of view).
If a person changes his name from John to Jack, the person remains the same (again, from the model’s point of view), but gets related to another name.
In example above name and surname can be treated as attribute (as opposed to entity), but again, you need to see the ER model which this schema implements to tell what is it.
In some ER-to-relational model mappings, an entity should be defined in a table referenceable with a FOREIGN KEY to be considered an entity (which should constrain its domain).
However, this constraint can exist but not be represented in a database (due to technological limitations or something else).
Like, we cannot keep a list of all possible names, but the name of @#$^# is most probably a non-name, hence, it does not belong to the domain of names.
Therefore, an attribute is an entity which can participate in a relationship but cannot be contained in a domain-defining table.
For instance, the table prices:
good_id price
defines relationships between the set of goods (which is defined by the table goods) and the set of real numbers (which cannot be contained in a table since it’s not even countable).
Still each price (like $2.00) is a real-world entity just as well.
Update:
See this article in my blog in which I try to cover the subject in more detail:
- What is entity-relationship model?
An entity is a term from the entity-relationship model.
A relational model (your database schema) is one of the ways to implement the ER model.
Relational tables represent relations between simple types like integers and strings, which, in their turn, can represent everything: entities, attributes, relationships.
You cannot tell what is it only from the relational structure, you need to see the ER model.
For table persons,
id name surname
1 John Smith
id, name and surname are entities in the real world and may or may not represent entities in the underlying ER model.
The fact of a record exists in the table means that these entities are in the following relation: «person 1 has name John and has surname Smith«.
In the example above, the entity is defined by id (from the model’s point of view).
If a person changes his name from John to Jack, the person remains the same (again, from the model’s point of view), but gets related to another name.
In example above name and surname can be treated as attribute (as opposed to entity), but again, you need to see the ER model which this schema implements to tell what is it.
In some ER-to-relational model mappings, an entity should be defined in a table referenceable with a FOREIGN KEY to be considered an entity (which should constrain its domain).
However, this constraint can exist but not be represented in a database (due to technological limitations or something else).
Like, we cannot keep a list of all possible names, but the name of @#$^# is most probably a non-name, hence, it does not belong to the domain of names.
Therefore, an attribute is an entity which can participate in a relationship but cannot be contained in a domain-defining table.
For instance, the table prices:
good_id price
defines relationships between the set of goods (which is defined by the table goods) and the set of real numbers (which cannot be contained in a table since it’s not even countable).
Still each price (like $2.00) is a real-world entity just as well.




















































