ВЫ СТУДЕНТ ИДК (Институт Деловой Карьеры) и ОБУЧАЕТЕСЬ ДИСТАНЦИОННО?
На ЭТОМ сайте, Вы найдете ответы на вопросы тестов ИДК.
Регистрируйтесь, пополняйте баланс и без проблем сдавайте тесты ИДК.
ПРЕИМУЩЕСТВА ПОЛЬЗОВАНИЯ САЙТОМ ЗДЕСЬ
Как посмотреть ответ ИНСТРУКЦИЯ
У ВАС ДРУГОЙ ВУЗ? НЕ БЕДА…..
ПОСМОТРИТЕ ДРУГИЕ НАШИ САЙТЫ С ОТВЕТАМИ — СПИСОК
Если в списке нет Вашего вуза, вернитесь сюда и купите найденный Вами вопрос, иногда предметы полностью совпадают в разных вузах.
Базы данных
Целостность данных представляет собой логическую непротиворечивость данных одной и другой таблицы.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 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
Выбираем опции и настройки, которые нам нужны
Далее собственно выполнение скрипта
Проверяем – создалась ли база и таблицы в реальной базе данных
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.7
19
Голоса
Рейтинг статьи
Основы проектирования баз данных
Создание базы данных и таблиц
Последнее обновление: 02.07.2017
Качество проектирования базы данных может влиять на работу с ней. С хорошо спроектированной базой данных легче работать, легче
писать к ней запросы. И в данном руководстве мы рассмотрим основные принципы проектирования баз данных.
Для качественного проектирования базы данных существуют различные методики, различные последовательности шагов или этапов, которые во многом похожи. И в целом мы
можем выделить следующие этапы:
-
Выделение сущностей и их атрибутов, которые будут храниться в базе данных, и формирование по ним таблиц. Атомизация сложных атрибутов на более простые.
-
Определение уникальных идентификаторов (первичных ключей) объектов, которые хранятся в строках таблицы
-
Определение отношений между таблицами с помощью внешних ключей
-
Нормализация базы данных
На первом этапе происходит выделение сущностей. Сущность (entity) представляет тип объектов, которые должны храниться в базе данных.
Каждая таблица в базе данных должна представлять одну сущность. Как правило, сущности соответствуют объектам из реального мира.
У каждой сущности определяют набор атрибутов. Атрибут представляет свойство, которое описывает некоторую характеристику объекта.
Каждый столбец должен хранить один атрибут сущности. А каждая строка представляет отдельный объект или экземпляр сущности.
Восходящий и нисходящий подходы
При проектировании базы данных на этапе выделения сущностей и их атрибутов мы можем использовать два подхода: восходящий и нисходящий.
Восходящий подход предусматривает выделение необходимых атрибутов, которые надо сохранить в бд. Затем выделенные атрибуты группируются в сущности, для которых впоследствии создается таблицы.
Такой подход больше подходит для проектирования небольших баз данных с небольшим количеством атрибутов.
Например, нам дана следующая информация:
Том посещает курс по математике, который преподает профессор Смит. Сэм посещает курс по математике, которые преподает профессор Смит. Том посещает курс по языку JavaScript, который преподает ассистент Адамс. Боб посещает курс по алгоритмам, который преподает ассистент Адамс. Сэм имеет следующие электронный адрес sam@gmail.com и телефон +1235768789.
Какие данные из этой информации мы можем сохранить: имя студента, название курса, учебная должность преподавателя, имя преподавателя, электронный адрес студента.
Затем мы можем выполнить группировку по сущностям, к которым относятся эти данные:
Студент |
Преподаватель |
Курс |
Имя студента Название курса Дата рождения студента Электронный адрес студента Телефон студента |
Имя преподавателя Должность преподавателя Название курса |
Имя студента Имя преподавателя Название курса |
Так, те данные, которые имеются позволяют выделить три сущности: студент, преподаватель и курс. При этом мы вполне можем добавлять какие-то
недостающие данные. Также следует отметить, что какие-то данные могут иметь отношение к разным сущностям. Например, курс хранит информацию о
студенте, которые его посещает. А студент хранит информацию о посещаемом курсе. Подобная избыточность данных решается на последующих шагах проектирования в процессе
нормализации базы данных.
Но подобных атрибутов может оказаться очень много: сотни и даже тысячи. И в этом случае более оптимальным будет нисходящий подход. Данный подход подразумевает выявление
сущностей. Затем происходит анализ сущностей, выявляются связи между ними, а потом и атрибуты сущностей.
То есть в данном случае мы могли бы сразу определить, что нам надо хранить данные по студентам, курсам и преподавателям. Затем в рамках каждой сущности выявить атрибуты
Например, у сущности «Студент» мы могли бы выделить такие атрибуты, как имя студента, его адрес, телефон, рост, вес, год его рождения. В тоже время нам надо учитывать не вообще все свойства, которые в принципе могут быть у сущности «Студент»,
а только те, которые имеют значение в рамках описываемой системы. Вряд ли в данном случае играют роль такие свойства как рост или вес студента, поэтому мы можем
их вычеркнуть из списка атрибутов при проектировании таблицы.
Иногда подходы комбинируются. Для описания разных частей системы могут использоваться разные подходы. А затем их результаты объединяются.
Атомизация атрибутов
При определении атрибутов происходит разделение сложных комплексных элементов на более простые. Так, в случае с именем студента мы можем его
разбить на собственно имя и фамилию. Это позволит впоследствии выполнять операции с эти подэлементами отдельно, например, сортировать студентов только по фамилии.
То же самое касается адреса — мы можем сохранить весь адрес целиком, а можем разбить его на части — дом, улицу, город и т.д.
В то же время возможность разделения одного элемента на подэлементы не всегда может быть востребованной. В ряде задач это может быть просто не нужно.
Выделять необходимо только те элементы, которые действительно нужны.
В соответствии с этим аспектом мы можем выделить у сущности «Студент» следующие атрибуты: имя студента, фамилия студента, год рождения, город,
улица, дом, телефон.
Домен
Каждый атрибут имеет домен (domain). Домен представляет набор допустимых значений для одного или нескольких атрибутов.
По сути домен определяет смысл и источник значений, которые могут иметь атрибуты.
Домены могут отличаться для разных атрибутов, но также несколько атрибутов могут иметь один домен.
Например, выше были определены атрибуты сущности Студент. Определим используемые домены:
-
Имя. Домен представляет все возможные имена, которые могут использоваться. Каждое имя представляет строку длиной максимум 20 символов (маловероятно, что нам могут встретиться имена свыше 20 символов).
-
Фамилия. Домен представляет все возможные фамилии, которые могут использоваться. Каждая фамилия представляет строку длиной максимум 20 символов.
-
Год рождения. Домен представляет все года рождения. Каждый год является числовым значением от 1950 до 2017.
-
Город. Домен представляет все города текущей страны. Каждый город представляет строку длиной максимум 50 символов.
-
Улица. Домен представляет все улицы текущей страны. Каждая улица представляет строку длиной максимум 50 символов.
-
Дом. Домен представляет все возможные номера домов. Каждый номер дома является числом от 1 до, скажем, 10000.
-
Телефон. Домен представляет все возможные телефонные номера. Каждый номер является строкой длиной в 11 символов.
Определяя домен, мы сразу видим, какие данные и каких типов будут хранить атрибуты. Какое-то другое значение, которое не соответствует домену, атрибут иметь не может.
В примере выше каждый атрибут имеет свой домен. Но, домены могут совпадать.
Например, если бы сущность содержала бы следующие два атрибута: город рождения и город проживания, то домен бы совпадал и был бы одним и тем же для обоих атрибутов.
Определитель NULL
При определении атрибутов и их домена необходимо проанализировать, а может ли у атрибута отсутствовать значение. Определитель NULL позволяет задать отсутствие значения.
Например, в примере выше у студента обязательно должно быть какое-либо имя, поэтому недопустима ситуация, когда у атрибута, который представляет имя, отсутствует значение.
В то же время студент может не иметь телефонного номера или в рамках системы телефон не обязателен. Поэтому на этапе проектирования таблицы
можно указать, что данный атрибут позволяет значение NULL.
Как правило, большинство современных реляционных СУБД поддерживают определитель NULL и позволяют задать его допустимость для столбца таблицы.
Понятие сущности.
Типы сущностей
Модель «сущность — связь» (или ER-модель) представляет собой способ
логического унифицированного представления данных некоторой предметной области.
Хотя, как мы увидим далее, эта модель
очень напоминает систему связанных друг с другом таблиц, в действительности это
совершенно общее представление. Эта модель может быть преобразована к любой из
существующих конкретных моделей данных: иерархической, сетевой, реляционной,
объектной. Существенно, что ER-модель
позволяет представлять только данные, но не действия, которые с ними могут
производиться, поэтому она используется лишь для проектирования структуры
хранимых данных. Поскольку многие
понятия, которые мы будем разбирать в связи с моделью «сущность — связь»
были нами рассмотрены в основах
реляционных баз данных (параграфы
1.1,1.2,1.3), будем опираться на эти знания.
Достоинствами данной модели
являются
·
Простота
·
Наглядность.
·
Однозначность.
·
Использование естественного языка.
Определение
Сущность это собирательное понятие, некоторая
абстракция реально существующего объекта, процесса, явления или некоторого
представления об объекте, информацию о котором требуется хранить в базе данных.
Необходимо различать такие
понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится
к набору однородных личностей, предметов, событий или идей, выступающих как
целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом
сущности может быть ГОРОД, а экземпляром – Москва, Киев и т.д. Предполагается,
что гарантировано отличие экземпляров одного типа сущности друг от друга.
Данное требование вполне аналогично требованию отсутствия в таблице
тождественных строк. В дальнейшем,
однако, там, где это не может вызвать неоднозначного прочтения, мы не будем
различать типы и экземпляры, а будем просто использовать термин «сущность».
Принято выражать (именовать) сущность существительным или существительным с
характеризующим его прилагательным (СТУДЕНТ, ДЕКАНАТ, ВЫПУСКАЮЩАЯ КАФЕДРА и
др.).
Выделяют три вида сущностей: стержневая, ассоциативная
(ассоциация) и характеристическая (характеристика).
Кроме этого во множестве ассоциативных сущностей также определяют подмножество обозначений. Дадим теперь определение
видам сущностей.
Стержневая сущность.
Стержневая (сильная) сущность – независящая от других сущность.
Стержневая сущность не может быть ассоциацией, характеристикой или обозначением
(см. ниже).
Ассоциация.
Ассоциативная сущность (или ассоциация) выражает собой связь «многие
ко многим» между двумя сущностями. Является вполне самостоятельной сущностью.
Например, между сущностями МУЖЧИНА и ЖЕНЩИНА существует ассоциативная связь,
выражаемая ассоциативной сущностью БРАК.
Характеристика.
Характеристическую сущность еще
называют слабой сущностью. Она связана с более сильной сущностью связями «один
ко многим» и «один к одному». Характеристическая сущность описывает или
уточняет другую сущность. Она полностью зависит от нее и исчезает с
исчезновением последней. Например, сущность Зарплата является характеристикой
конкретных работников предприятия и не может в таком контексте существовать
самостоятельно – при удалении экземпляра сущности Работника должны быть удалены
и экземпляры сущности Зарплата, связанные с удаляемым работником.
Обозначение.
Обозначение это такая сущность, с которой другие сущности
связаны по принципу «многие к одному» или «один к одному». Обозначение, в
отличие характеристики является самостоятельной сущностью. Например, сущность
Факультет обозначает принадлежность студента к данному подразделению института,
но является вполне самостоятельной.
Любой фрагмент предметной области
может быть представлен некоторым набором сущностей и связями между ними.
Например, рассматривая предметную область ФАКУЛЬТЕТ можно
выделить следующие основные сущности: СТУДЕНТ, КАФЕДРА, СПЕЦИАЛЬНОСТЬ, ДЕКАНАТ, ГРУППА,
ПРЕПОДАВАТЕЛЬ, ЭКЗАМЕН. На
первом этапе создания ER-модели
данных следует выделить все сущности,
которые предполагается описывать исходя из постановки задачи. Лишний раз
подчеркнем, что сущностью может быть не
только некоторый материальный объект, но и некоторый процесс, например ЭКЗАМЕН, ЛЕКЦИЯ.
Сущностью может быть и некоторая количественная и качественные характеристики
объекта: УЧЕНОЕ
ЗВАНИЕ, СТАЖ и др. Все в действительности зависит от постановки
задачи и от нашего анализа предметной области.
Основные понятия
Рассмотрим другие важные
понятия, используемые при построении ER-модели. Мы ввели уже понятие сущности. Остановимся на трех других Понятиях: атрибут
сущности, ключ, связь.
Система диаграмм
Следует заметить, что в
настоящее время разработано несколько различных
графических методов представления диаграмм в модели «сущность — связь».
Рассмотрим один из возможных подходов,
в основе которого лежат диаграммы Чена.
Таблица 1.6. Обозначения для
ER-модели
Изображение |
Комментарий |
|
Так на диаграмме изображается сильная сущность[1]. |
|
Так на диаграмме изображается сущность, отличная от |
|
Атрибут сущности. Вместо имени атрибута можно указать |
|
Атрибут сущности, являющийся первичным ключом. |
|
Обозначает связь, между двумя сущностями. |
|
Ассоциативная сущность (связь «многие ко многим»). |
|
Обозначение сущности вида «характеристика». |
|
Показывает сущность вида «обозначение». |
|
Прямая линия указывает на связь между сущностями, либо |
Правила порождения
И так ER-диаграммы построены. Следующий этап
проектирования – перенести диаграммы на язык таблиц конкретной СУБД. Можно
сказать, что ER-диаграммы
порождают реляционную базу данных. Оказывается процесс порождения можно легко
формализовать, довести до автоматизма. Прежде всего, заметим, что почти всегда есть взаимнооднозначное
соответствие между сущностью и таблицей. При этом атрибуты сущности переходят в
атрибуты (столбцы) таблицы, а первичный ключ сущности переходит
в первичный ключ таблицы. В Таблице 1.7 представлены правила
соответствия бинарных связей сущностей и соответствующих элементов реляционной
базы данных.
Таблица 1.7.Правила соответствия
Тип |
Элементы |
Связь (0,1) (1,1) |
Для |
Связь (1,1) |
Строится |
Связь (0,1) |
При |
Связь (0,1) (1,1) – (1,N) |
Каждой |
Связь (0,1) (1,1) – (0,N) |
Обычно |
Связь (0,N) – (0,N) (1,N) – (1,N) (1,N) – (0,N) (0,N) – (1,N) |
Любая |
Правила порождения позволят легко
перейти от логической модели данных к физической модели.
Заканчивая рассматривать ER-модель, заметим, что при
тщательном анализе предметной области, на предмет выявления сущностей, при
переходе к реляционной базе данных дополнительная нормализация таблиц, скорее
всего не понадобится. Зависимости внутри таблицы часто означают, что мы в одной
таблице пытаемся вместить несколько сущностей.
О
диаграммных техниках, используемых при построении информационных систем
Функциональные
диаграммы
Функциональное моделирование
основывается на техниках SADT и IDEF.
SADT была предложена
Дугласом Россом в середине 1960-х годов.
Военно-воздушные силы США использовали методику SADT в своей программе ICAM (Integrated Computer Aided Manufacturing – интеграция компьютерных
и промышленных технологий) и назвали ее IDEF В рамках технологии SADT было разработано несколько графических языков моделирования:
■
IDEF0
– для документирования процессов производства и отображения информации об использовании
ресурсов на каждом из этапов проектирования систем.
■
IDEF1
– для документирования информации о производственном окружении систем.
■
IDEF2
– для отображения поведения систем во времени.
■
IDEF3
– для моделирования бизнес процессов.
■
IDEF4
– объектно-ориентированное моделирование.
■
IDEF5
– моделирование наиболее общих (онтологических) закономерностей системы.
Методология IDEF—SADT представляет собой совокупность методов, правил и процедур,
предназначенных для построения функциональной модели какой-либо предметной области. Центральным
понятием этой методологии является
понятие функции. Иногда
используют и другие термины: деятельность или процесс. Под функцией понимается
некоторое действие или набор действий, которые имеют определенную цель и
приводят к конкретным результатам. Определенная функция на диаграмме
обозначается прямоугольником. На диаграмме используются также стрелки, которые
обеспечивают связь между различными функциями (обеспечивают интерфейсы),
связывая их в конечном итоге в единую
систему, моделирующую предметную область.
В диаграммах используются стрелки четырех видов, их называют
интерфейсными дугами:
■
I
(Input) – вход, т.е.
все что является исходным материалом для данной функции. Стрелка входит слева в прямоугольник, обозначающий
данную деятельность.
■
O
(Output) – результат
выполнения функции. Стрелка выходит справа из прямоугольника, обозначающего
функцию.
■
C
(Control) – ограничения
данной функции (все, что ограничивает функцию). Стрелка входит в прямоугольник
сверху.
■
M
(Mechanism) – механизм,
используемый в данной функции. Стрелка входит снизу в прямоугольник — функцию.
На Рис. 1.15 представлен общий вид фрагмента диаграммы, изображенной
по методологии SADT.
Рис. 1.15. Общий вид
функциональной диаграммы
Рис. 1.18. Диаграмма SADT, полученная из общей диаграммы (см. Рис. 1.17) посредством детализации
Как видно, в частности, на
диаграмме (Рис. 1.18), функции связываются друг с другом при помощи
интерфейсных дуг. Вообще в технологии SADT выделяют семь видов связывания:
■
Случайная связность.
■
Логическая связность. Обусловлена тем, что
функции или данные относятся к одному классу.
■
Временная
связность. Такой тип связности возникает, когда функции выполняются параллельно
в одно и тоже время.
■
Процедурная связность. Тип связности возникает,
когда функции выполняются в одной и той же части процесса.
■
Коммуникационная связность. Возникает, когда
блоки (функции) используют одни и те же данные.
■
Последовательная связность. Возникает, когда
выход (выходная дуга) одной функции является одновременно входными данными для
другой функции.
■
Функциональная связность. Связность возникает,
когда одна функция воздействует на другую через интерфейсные дуги управления
(на Рис. 1.18 блок 1 воздействует на
остальные блоки как раз через дуги управления).
Диаграммы потоков
данных
В основе данной методологии
лежит метод диаграмм потоков данных (DFD — Data Flow Diagram). Данные диаграммы призваны описывать процессы
преобразования информации от ее ввода в систему до выдачи пользователю. Как и
для диаграмм SADT здесь
мы также имеем дело с целой иерархией диаграмм, в которой диаграммы нижнего
уровня детализируют диаграммы верхнего уровня. Диаграммы верхнего уровня
определяют основные процессы и подсистемы информационной системы с внешними
входами и выходами. Далее путем декомпозиции диаграммы детализируются. В
результате возникает иерархия диаграмм, на самом нижнем уровне которой описаны
элементарные процессы. Основными
компонентами диаграмм DFD являются:
■
Внешние сущности.
■
Системы и подсистемы.
■
Процессы.
■
Накопители данных.
■
Потоки данных.
Рис. 1.19. Внешняя сущность в потоковых диаграммах
Внешняя сущность представляет
собой физическое лицо или предмет являющийся источником или приемником информации.
Объект, который мы обозначаем как внешняя сущность, является внешним по
отношению к анализируемой предметной области и анализу не подвергается. Это
может быть клиент какой-либо службы (если анализируется вся службы) и оператор,
работающий с информационной системой (если анализу подвергается только
функционирование ИС). Внешняя сущность обознается квадратом (см. Рис. 1.19), несколько приподнятым над
плоскостью диаграммы.
Рис. 1.20. Обозначение подсистемы в потоковой диаграмме
На самом верхнем уровне
анализируемая предметная область может быть представлена как некоторая система.
В свою очередь система может быть представлена как совокупность (декомпозиция)
нескольких подсистем. Каждая подсистема получает свой номер. На диаграмме она изображается в виде
прямоугольника с округленными углами (см.
Рис. 1.20). Здесь же указывается номер подсистемы, имя подсистемы в виде
развернутого предложения и имя
проектировщика данной подсистемы.
Рис. 1.21. Обозначение процесса в потоковой диаграмме
Процесс в модели DFD представляет собой
некоторое преобразование входного потока данных в выходной. Под процессом можно
понимать и оператора ЭВМ и программу, и работу целого отдела. На диаграмме
процесс изображается как подсистема в виде прямоугольника (см. Рис. 1.21). Номер
процесса является его идентификатором и состоит из номера процесса или
подсистемы верхнего уровня и собственно номера процесса. Имя процесса должно
содержать глагол в неопределенной форме
и четко определять, что данный процесс делает. Наконец в имени процесса
должен быть обозначен объект, который и реализует данный процесс.
Рис. 1.22. Накопитель в потоковой диаграмме
Под накопителем понимается
некоторое устройство, используемое для хранения информации. Способы помещения и
извлечения данных из накопителя могут самые разные. Накопитель данных на
диаграмме изображается в виде прямоугольника (см. Рис. 1.22), разделенного на два отсека. В первом отсеке должен
стоять номер накопителя, начинающийся с буквы D, во втором его имя. Имя накопителя
должно быть достаточно информативным для
использования его в дальнейших разработках. Разумеется при разработке
информационной системы в конечном итоге под накопителем, понимается конкретная
база данных.
Кроме перечисленных элементов в
диаграммах DFD имеются
также потоки данных, которые определяют информацию, передаваемую от источника к
приемнику. Поток данных на диаграммах
изображается линией, заканчивающейся стрелкой. Стрелка указывает на направление
передачи информации. Кроме этого для
каждого потока должно быть указано имя, которое должно определять его
содержание.
Рис. 1.23. Пример потоковой диаграммы, описывающей некоторые
процессы подсистемы «Абонент»
UML диаграммы
Как и другие языки
моделирования сложных систем, язык UML зиждется на трех принципах:
■
Абстрагирование – отбрасывание тех элементов
системы, которые не существенны с точки зрения рассматриваемой модели.
■
Многомодельность – любая достаточно сложная
система не может быть полностью описана только одной моделью.
■
Иерархичность – при описании данной системы
используются различные уровни абстрагирования и детализации. На самой вершине иерархии расположена модель,
представляющая систему в наиболее полном виде.
Всего в языке UML существует одиннадцать типов
диаграмм. Каждая из диаграмм призвана конкретизировать различные представления
о рассматриваемой системе. Перечислим типы диаграмм:
■
Диаграммы вариантов использования.
■
Диаграммы классов.
■
Диаграммы поведения.
■
Диаграммы состояний.
■
Диаграммы деятельности.
■
Диаграммы взаимодействия.
■
Диаграммы последовательности.
■
Диаграммы кооперации.
■
Диаграммы реализации.
■
Диаграммы компонентов.
■
Диаграммы развертывания.
Остановимся только на одном
типе диаграммы – диаграмме классов, который непосредственно можно применить при
разработке структуры баз данных. Данный вид диаграмм должен содержать набор
классов, анализируемой предметной области, связи между ними, а также возможные
ограничения и комментарии.
Классом в языке UML будем называть именованное описание множества однородных
объектов, имеющие одинаковые атрибуты, операции, отношения с другими
объектами и семантику.
Атрибут класса —
именованное свойство класса, описывающее множество значений, которые
принимают экземпляры этого свойства.
Операцией класса будем называть именованную услугу, которую
можно запросить у любого экземпляра данного класса.
Между классами в диаграмме
могут существовать связи трех типов: зависимости,
обобщения и ассоциации.
Определение зависимости.
Связь между двумя классами называю зависимостью, если изменение в
спецификации одного класса может повлиять на поведение другого класса.
Определение обобщения.
Обобщением называется связь между классами, когда один из классов
является частным случаем второго.
Общий класс при наследовании
называется родителем, предком или суперклассом, а частный класс – потомком.
Например, при анализе такой системы как школа, можно выделить суперкласс Человек, в который будут
входить такие классы – потомки, как
учителя, административные работники школы, ученики, родители учеников. В
дальнейшем класс учителей можно рассматривать как суперкласс по отношению к
обычным учителям и классным руководителям.
Определение ассоциации.
Ассоциация показывает, что между объектами одного класса существует
некоторая связь с объектами другого класса. Допускается, что класс может быть связан
сам с собой. Кроме этого в связи могут участвовать более двух классов.
Ассоциативная связь может
характеристики:
■
Имя связи.
■
Роли
связи.
Для каждого класса, участвующего в ассоциативной связи могут быть указаны роли.
Например, для связи между классами Учителя и Ученики можно указать роли:
обучающий и обучаемый.
■
Кратность
связи.
Кратность определяет, сколько объектов данного класса может или должно
участвовать в данной связи. Например, кратность 0..1 говорит, что не все
экземпляры класса могут участвовать в данной связи, но в каждом экземпляре связи может
участвовать только один объект класса.
■
Агрегация.
Если в ассоциативной связи один из классов выступает в роли «целого», а второй
в роли «части целого», то такой типа
связь называется агрегатной связью. В ней один из классов играет главную, а
другой (другие) подчиненную роль. Сильная агрегатная связь называется композицией. При такой связи уничтожении главного класса
приводит к уничтожению подчиненного класса.
В диаграммах классов могут
также указываться ограничения, которые затем должны поддерживаться в базах
данных. Ограничения могут выражаться предложениями на естественном языке, но
могут записываться на специальном языке OCL (Object Constraint Language – язык объектных ограничений). Язык OCL является подмножеством
языка UML. Это
формальный язык, который позволяет выразить логику ограничений, накладываемых
на отдельные элементы диаграмм.
Рис. 1.24. пример простейшей UML-диаграммы
На Рис. 1.24 представлена простейшая UML-диаграмма, на которой изображено три
класса: Студенты, Оценки, Предметы. Связь между всеми тремя между всеми тремя
классами носит ассоциативную природу. Обратите внимание на значок. Он означает,
что налицо агрегатной связи – оценка ставится конкретному студенту и
неотъемлемо принадлежит ему. Более того,
данный тип агрегации, несомненно, является композитной (закрашенный ромб), так
как оценки не могут существовать без конкретного студента. У каждой связи указывается его имя, но роли
связи я не указываю, так в данном случае это не добавляет ясности в диаграмму,
а скорее затруднит ее чтение. Обратим
внимание, что у каждого класса указываются не только атрибуты, но операции (или
методы). Разумеется, диаграмма может не
вместить все атрибуты и операции.
ВЫ СТУДЕНТ ИДК (Институт Деловой Карьеры) и ОБУЧАЕТЕСЬ ДИСТАНЦИОННО?
На ЭТОМ сайте, Вы найдете ответы на вопросы тестов ИДК.
Регистрируйтесь, пополняйте баланс и без проблем сдавайте тесты ИДК.
ПРЕИМУЩЕСТВА ПОЛЬЗОВАНИЯ САЙТОМ ЗДЕСЬ
Как посмотреть ответ ИНСТРУКЦИЯ
У ВАС ДРУГОЙ ВУЗ? НЕ БЕДА…..
ПОСМОТРИТЕ ДРУГИЕ НАШИ САЙТЫ С ОТВЕТАМИ — СПИСОК
Если в списке нет Вашего вуза, вернитесь сюда и купите найденный Вами вопрос, иногда предметы полностью совпадают в разных вузах.
Базы данных
Целостность данных представляет собой логическую непротиворечивость данных одной и другой таблицы.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 82
Подробнее…
Формы представляют собой средства, с помощью которых можно осуществить первоначальный ввод данных в таблицу, просмотр и редактирование записей в первичном для пользователя виде, напоминающем обычный документ, при этом выполнение многих операций упрощается, а присутствие на экране только нужной информации помогает не отвлекаться от сути операции.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 73
Подробнее…
Физический метод упорядочивания данных (сортировка) — порядок следования записей при сортировке становится таким, как требует условие сортировки. Данный порядок становится реальным в большинстве СУБД при сортировке создается новая таблица.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 59
Подробнее…
Структурированные типы данных предназначены для конструирования из конечного набора базисных типов более сложных структур.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 53
Подробнее…
Проекция (вертикальное подмножество) — на выходе операции используют одно отношение. В результирующем отношении картежи-дубликаты устраняются.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 66
Подробнее…
При работе в режиме файл-сервер сетевое программное обеспечение скрывает от пользователей особенности конкретной сети, что приводит к тому, что пользователь работает с другим компьютером как с дополнительным диском (каталогом).
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 70
Подробнее…
Предметная область — это часть реального мира, подлежащая изучению организации управления и, в конечном счете, автоматизации
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 45
Подробнее…
Пошаговый обратимый процесс разложения исходных отношений БД на более мелкие и простые отношения называется нормализацией отношений.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 45
Подробнее…
Поиск наиболее быстро происходит для поля имеющего индекс, так как фактически сначала ищется соответствующий ключ в индексе, а затем осуществляется переход к соответствующей записи. Самый медленный вид поиска — это поиск на совпадение с любым произвольным полем (без индекса). Данный поиск происходит медленно, так как осуществляется последовательно, начиная с первой записи.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 67
Подробнее…
Подсхема — это описание данных на внешнем уровне представления. Фактически эта часть схемы чувствительная для одного или нескольких приложений. В такой схеме — одна внешняя запись может представляться из нескольких записей концептуального уровня. В записях могут присутствовать виртуальные поля, то есть те, которые фактически не хранятся в БД, а вычисляются алгоритмически.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 70
Подробнее…
Отношения, у которого все атрибуты простые, называются приведенной к первой нормальной форме (1НФ).
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 60
Подробнее…
Отношения реляционной БД содержат структурную и семантическую информацию. Структурная задается схемой отношений, а семантическая отражает функциональные зависимости между атрибутами.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 67
Подробнее…
Отношения находятся в 2НФ, если каждый ключевой атрибут функциональнополно зависит от составного ключа.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 50
Подробнее…
Отличие иерархической модели данных в том, что БД может иметь только древовидную структуру.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 49
Подробнее…
Основной предпосылкой современного подхода в обработке информации является относительная стабильность данных.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 59
Подробнее…
Организация данных СУБД сетевого типа определяется в терминах элемент, агрегат, запись или группа, групповые отношения, база данных.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 53
Подробнее…
Описание, при котором логические и физические уровни совмещены, называется схемой данных.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 47
Подробнее…
Описание структуры данных при решении прикладных задач не осуществляется с помощью универсальных языков программирования или языков-спецификаций, так как они представляют объект лишь с определенным уровнем адекватности.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 75
Подробнее…
Наименьшая единица структуры данных — это элемент данных.
Выберите один ответ:
Верно
Неверно
Отзыв
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 71
Подробнее…
Логическое упорядочивание данных в СУБД — упорядочивание таблицы происходит в соответствии с активным индексом. В одной таблице можно создать несколько индексов по различным признакам и, делая активным определенный индекс, можно менять признаки, по которым упорядочиваются таблицы. Количество создаваемых индексов точно соответствует количеству признаков, по которым надо упорядочивать.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 64
Подробнее…
Линейный список предназначен для создания сложных динамических структур, организованных с помощью ссылок в определенном порядке.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 64
Подробнее…
Инфологический уровень абстракции соответствует представлению о логической организации данных администратора БД. На данном уровне существует привязка к модели данных и средствам ее реализации.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 53
Подробнее…
Глобальные промышленные серверы — это комплекс продуктов одной фирмы-производителя, решающей все потребности современного промышленного предприятия.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 74
Подробнее…
Вероятностный подход к процессу управления заключается в том, что при анализе управляемого процесса и построении его модели обязательно учитываются случайные факторы и АСУ проектируется с учетом адаптации их изменений.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 69
Подробнее…
В ER-диаграмме для каждого конца связи указывается имя, множественность и обязательность.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 59
Подробнее…
База данных — это совокупность взаимосвязанных данных, используемых группой пользователей и хранящаяся с регулируемой избыточностью. Хранимые данные не зависят от программ пользователя.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 55
Подробнее…
Атрибут, значение которого идентифицируют картежи, называется ключом.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 55
Подробнее…
Анализ — это стадия, в течение которой разрабатываются детальные модели предметной области, формируются точные требования к будущей программной системе и закладывается точная основа для перехода к проектированию.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 53
Подробнее…
Агрегат — именованная совокупность элементов или других агрегатов.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 56
Подробнее…
ER-модель описывает совокупность важных объектов предметной области сущностей, их свойств (атрибутов) и отношений между объектами (связей).
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 45
Подробнее…
CASE — автоматизированный инжениринг программных средств, то есть совокупность методик проектирования и сопровождения программных средств на всем их жизненном цикле, поддержанная взаимоувязанными средствами автоматизации.
Выберите один ответ:
Верно
Неверно
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 65
Подробнее…
Язык программирования ___ представляет собой язык программирования релейных диаграмм.
Вписать ответ:
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 50
Подробнее…
Правильно ли выражение, что программы для решения определенных задач можно рассматривать как объединение структур данных и алгоритмов?
Вписать ответ:
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 51
Подробнее…
Можно ли сказать, что предметная область представляет собой множество фрагментов реального мира?
Вписать ответ:
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 53
Подробнее…
Экспертные системы — это наиболее распростронненый класс интеллектуальных систем, ориентированный на тиражирование опыта высококвалифицированных специалистов в областях, где качество принятия решений традиционно зависит от уровня экспертизы:
Выберите один ответ:
Наверно.
Верно;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 56
Подробнее…
Укажите стадии жизненного цикла ИС, которые поддерживаются современными технологиями разработки ИС:
Выберите один или несколько ответов:
Сопровождение
Проектирование
Организация
Реализация
Стратегическое планирование
Контроль
Анализ
Консалтинг
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 51
Подробнее…
Укажите способы фильтрации данных в Access:
Выберите один или несколько ответов:
По значению фильтр «Для» — Filter For
Фильтр по значению одного поля
Расширенный фильтр
Фильтр по выделенному фрагменту
Обычный фильтр по значению нескольких полей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 61
Подробнее…
Укажите способ создания таблицы базы данных в СУБД Access, предполагающий использование программы, которая предлагает выбрать поля из списка и содержит заготовки для различных видов таблиц.
Выберите один ответ:
конструктор (Design View);
импорт таблиц (Import Table);
мастер таблиц (Table Wizard);
связь с таблицами (Link Table).
режим таблицы (Datasheet View);
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 131
Подробнее…
Укажите правила чтения ER-диаграммы:
Выберите один или несколько ответов:
Если конец связи является не обязательным, то перед именем связи добавляется фраза «должен», «должен быть»
Если конец связи является обязательным, то перед именем связи добавляется фраза «должен», «должен быть»
Если конец связи является обязательным, то перед именем связи добавляется фраза «может», «может быть»
При чтении ER-диаграммы необходимо учитывать обязательность и множественность выбранного конца связи
ER-диаграмма читается с точки зрения выбранной сущности, отдельно для каждого конца связи, так показывается, как выбранная сущность связывается с другими сущностями ER-модели
Если конец связи является не обязательным, то перед именем связи добавляется фраза «может», «может быть»
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 106
Подробнее…
Укажите основные характеристики составления СУБД:
Выберите один или несколько ответов:
Мощность языковых средств
Пользовательские предпочтения
Целостность, безопасность, расширяемость
Операционная среда
Логическая и физическая организация данных
Возможности сервисных средств
Способы распределения данных
Область использования
Информация о разработчиках и опыте эксплуатации
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 66
Подробнее…
Существующие модели представления знаний можно свести к следующим четырем классам:
Выберите один или несколько ответов:
базы знаний;
формальные логические модели;
базы данных;
семантические сети;
фреймы;
экспертные системы;
продукционные модели;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 60
Подробнее…
СУБД — это…
Выберите один ответ:
комплекс программ и языковых средств, предназначенных для создания, ведения и использования баз данных.
набор данных, относящихся к определенной предметной области.
специальные устройства для создания и обработки базы данных;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 45
Подробнее…
Структура хранения, при которой прикладные программы разрабатывались с учетом файлов данных и, при этом много информации неявным образом содержались в самих программах обработки файлов, имела недостатки:
Выберите один или несколько ответов:
Качество принимаемых решений было неудовлетворительным из-за отсутствия целостности данных
Ответы на идентичные запросы были одинаковыми
Разобщенность файлов
Требуемую информацию трудно было получить, так как необходимо знание языков программирования и организации файлов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 109
Подробнее…
Список вопросов для экспертной проверки сущности:
Выберите один или несколько ответов:
Имя сущности может быть представлено прилагательным в единственной числе
Согласуется ли каждая сущность с принципами нормализации
Являются ли подтипы непересекающимися множествами
Отражен ли смысл сущности в ее имени
Верно ли, что рассматриваемая сущность не является разновидностью другой сущности с упущенной рекурсивной связью
Определяет ли имя сущности тип и класс объектов, а не отдельный экземпляр
Если сущность имеет подтипы, то полностью ли их множество покрывает супертип — главную сущность
Является ли описание каждой сущности достаточно кратким и смысловым
Ключ сущности является минимальным
Ключ действительно идентифицирует каждый экземпляр сущности
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 87
Подробнее…
Создание БД начинается
Выберите один ответ:
С сортировки данных
С создания таблиц
С создания отчетов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 49
Подробнее…
Сколько покалений в истории создания и развития робототехники можно выделить?
Выберите один ответ:
3;
4;
5.
2;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 54
Подробнее…
Система, ядром которой является база знаний или модель предметной области, описанная на языке сверхвысокого уровня, приближенного к естественному, называется:
Выберите один ответ:
Экспертной системой;
Интеллектуальной системой;
Языком представления знаний.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 46
Подробнее…
Реляционную модель данных называют также:
Выберите один ответ:
Моделью Бахмана
Моделью Кодда
Моделью П. Чена
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 47
Подробнее…
Прочитайте ER-диаграмму:
Выберите один ответ:
каждый студент должен учиться в одной и более группах. С другой стороны — каждая группа может состоять из одного и более студентов.
каждый студент может учиться в одной и только одной группе. С другой стороны — каждая группа должна состоять из одного и более студентов.
каждый студент может учиться в одной и более группах. С другой стороны — каждая группа может состоять из одного и только одного студентов.
каждый студент должен учиться в одной и только одной группе. С другой стороны — каждая группа может состоять из одного и более студентов.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 81
Подробнее…
Процесс нормализации последовательно устраняет:
Выберите один или несколько ответов:
Зависимости ключей от неключевых атрибутов
Частичные зависимости неключевых атрибутов от ключа
Независимые многозначные зависимости (4НФ, 5НФ)
Транзитивные зависимости неключевых атрибутов от ключа
Транзитивные зависимости ключей от неключевых атрибутов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 46
Подробнее…
При связывании таблиц в Access необходимо следовать ряду правил:
Выберите один или несколько ответов:
Обязательно соответствие типов полей, которые связываются
Для связи можно использовать типы «один-ко-многом», «один-к-одному», «многие-ко-многим»
Соответствие типов полей не обязательно
Для связи можно использовать типы «один-ко-многим», «один-к-одному»
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 67
Подробнее…
По каким критериям оцениваются точность работы программы экспертной системы и ее полезность?
Выберите один или несколько ответов:
Критерии коллектива разработчиков (эффективность реализации, производительность, время отклика, дизайн, широта охвата предметной области и др.).
Критерии соответствия системы требованиям безопастности.
Критерии экономичности (соотношение затрат на разработку системы и полученного эффекта)
Критерии приглашенных экспертов (оценка решений, предлагаемых системой, сравнение ее с собственными решениями, оценка подсистемы объяснений и др.)
Критерии пользователей (понятность и «прозрачность» работы системы, удобство интерфейсов и др.)
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 59
Подробнее…
По каким категориям классифицируют знания:
Выберите один или несколько ответов:
декларативные;
глубинные;
аналитические;
процедурные;
поверхностные;
семантические;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 52
Подробнее…
Перечислите типы полей БД Access:
Выберите один или несколько ответов:
Числовой
Символьный
Логический
Цифровой
Счетчик
Поле ссылка на объект OLE
Денежный
Гиперссылка
Memo
Текстовый
Финансовый
Датавремя
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Перечислите свойства полей СУБД Access:
Выберите один или несколько ответов:
Проверка данных, вводимых в поле
Поле ссылка на объект OLE
Индексированное поле Indexed
Значение по умолчанию — автоматически добавляется, если пользователь не ввел другое
Формат поля — способ отображения данных из поля
Гиперссылка
Imput Mask — маска ввода
Required (обязательное поле)
Memo
Caption-подпись
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 52
Подробнее…
Перечислите поддерживаемые СУБД модели данных:
Выберите один или несколько ответов:
Иерархическая
Реляционная
Структурированная
Плоский файл
Сетевая
Алгоритмическая
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 43
Подробнее…
Отчет — это…
Выберите один ответ:
элемент данных в записи;
объект базы данных, который используется для вывода на печать данных в отформатированном виде;
объект базы данных Access, содержащий программный код на языке VBA: декларации переменных и функций
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 43
Подробнее…
Основными требованиями к проектированию БД являются:
Выберите один или несколько ответов:
Простота и удобство эксплуатации
Интеграция в систему передачи данных
Обеспечение ограничений, таких как конфигурация вычислительной системы, ресурсы внешней и оперативной памяти
Эффективность функционирования
Соответствие схемы данных моделируемой предметной области
Гибкость
Защита данных от разрушений при сбоях оборудования, некорректных обновлений и, если необходимо, несанкционированного доступа
Способность реагировать на внешние условия и изменения
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 68
Подробнее…
Основные объекты Access —
Выберите один ответ:
таблицы, формы, запросы, отчеты, страницы;
таблицы, запросы, формы, отчеты, страницы, макросы, модули.
запросы, отчеты, формы, макросы, таблицы;
формы, отчеты, макросы, модули;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 42
Подробнее…
Определите верны ли утверждения:
Выберите один или несколько ответов:
Наличие трех типов отношений (класс — элемент класса; свойство — значение; пример элемента класса) не является характерной особенностью семантических сетей;
В семантических сетях не используются пространственные и временные отношения;
Преимуществом семантической сети, как модели представления знаний является ее соответствие современным представлениям о борганизации долговременной памяти человека;
По количеству типов отношений выделяют однородные и неоднородные семантические сети;
Семантика — это наука, устанавливающая отношения между символами и объектами, которые они обозначают, то есть наука, определяющая смысл знаний;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 58
Подробнее…
Обращение к СУБД, содержащее задание на выборку, добавление, изменение или удаление записей — это…
Выберите один ответ:
отчет.
запрос;
форма;
таблица;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Обобщенная структура экспертных систем включает в себя следующие элементы:
Выберите один или несколько ответов:
Инженер по знаниям;
Решатель;
Интерфейс пользователя;
База знаний;
Система объяснений;
Интеллектуальный редактор базы знаний
Пользователь;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 58
Подробнее…
Начальный уровень абстракции или так называемый ЛПП, соответствует представлениям о предметной области:
Выберите один ответ:
Администратора баз данных
Администратора
Конечных пользователей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 48
Подробнее…
На рисунке представлена связь типа «многие-ко-многим», она:
Выберите один ответ:
может существовать, но для реализации конкретного проекта БД, она должна уточняться и представляться в виде двух связей, возможно с помощью дополнительной таблицы
данная связь невозможна на практике, она всегда неправильна
встречается редко, в дальнейшем должна пересматриваться и детализироваться.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 42
Подробнее…
На рисунке представлена связь типа «многие-к-одному», она:
Выберите один ответ:
говорит, что конкретные экземпляры Аи В могут существовать без связи между ними, она применяется редко и требует уточнения
встречается часто и является основным видом связи при построении ER-модели
встречается очень редко
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 45
Подробнее…
На рисунке представлена связь «один-к-одному»
Выберите один ответ:
связи применяются редко
связи применяются редко — для показа альтернативы
связи применяются для отображения иерархических отношений
данные связи невозможны
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 49
Подробнее…
Лингвистическая переменная — это переменная, значение которой определяется набором вербальных (словестных) характеристик некоторого свойства:
Выберите один ответ:
Верно;
Неверно;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 43
Подробнее…
Ключевое поле — это…
Выберите один ответ:
текст любого размера
поле, которое позволяет вводить ограничение для проверки правильности ввода данных.
поле, которое однозначно идентифицирует каждый объект в таблице любого типа;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 45
Подробнее…
Какой из ниже перечисленных запросов нельзя построить
Выберите один ответ:
простой
параллельный
перекрестный
на создание таблицы
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 65
Подробнее…
Какого раздела не существует в конструкторе форм
Выберите один ответ:
верхнего колонтитула
итоговый
заголовка
область данных
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 48
Подробнее…
Какими специфическими особенностями обладает поле типа «счетчик»?
Выберите один ответ:
объект, связанный или внедренный в таблицу Microsoft Access.
уникальные последовательно возрастающие (на 1) или случайные числа, автоматически вводящиеся при добавлении каждой новой записи в таблицу.
текст или числа, не требующие проведения расчетов, например, номера телефонов, коды и т. п.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 50
Подробнее…
Каким двум основным требованиям должен удовлетворять состав атрибутов отношения БД?
Выберите один или несколько ответов:
Количество атрибутов должно быть минимальным
Группировка атрибутов должна обеспечивать минимальное дублирование данных, их обработку без трудностей
Между атрибутами не должно быть нежелательных функциональных зависимостей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 53
Подробнее…
Какие функции выполняет машина вывода (интерпритатор правил)?
Выберите один или несколько ответов:
управляет процессом копсультации, сохраняя для пользователя информацию о полученных заключениях;
просмотр существующих фактов из рабочей памяти (базы данных) и правил из базы знаний и добавление по мере возможности в рабочую память новых фактов;
определение порядка просмотра и применения правил;
запрашивает у пользователя информацию, когда для срабатывания очередного правила в рабочей памяти оказывается недостаточно данных
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 44
Подробнее…
Какие технологические операции входят в ER-моделирование?
Выберите один или несколько ответов:
Разработка ER-модели
Получение ER-диаграммы
Проверка качества ER-модели
Генерация реляционной таблицы из ER-модели
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 62
Подробнее…
Какие способы удаления записей применяются на практике?
Выберите один или несколько ответов:
Комплексное удаление записи
Логическое удаление записи
Физическое удаление записи
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 42
Подробнее…
Какие специалисты входят в коллектив разработки экспертной системы?
Выберите один или несколько ответов:
Бухгалтер;
Психолог;
Эксперт;
Программист;
Пользователь;
Экономист;
Инженер по знаниям.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Какие свойства полей позволяют обеспечивать контроль целостности
Выберите один ответ:
сообщение об ошибке, обязательное поле, пустые строки;
все, вышеперечисленное.
размер поля формат поля, маска ввода;
значение по умолчанию, условия на значения;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 66
Подробнее…
Какие недостатки имеет физическая сортировка?
Выберите один или несколько ответов:
При вводе новых данных нужна новая сортировка
Не может справиться с большим объемом данных
При создании новой таблицы можно столкнуться с нехваткой места
При наличии нескольких таблиц бывают несоответствия данных в них
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 66
Подробнее…
Какие достоинства баз данных обусловили их широкое использование в управлении предприятием?
Выберите один или несколько ответов:
Целостность
Оперативность
Доступность
Безопасность
Простота их использования
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 58
Подробнее…
Какие действия предполагает этап стыковки экспертной системы?
Выберите один ответ:
Интеграция экспертной системы с другими программными средствами в среде, в которой она будет работать, и обучение людей которых она будет обслуживать;
Проведение тестирования экспертной системы в отношении критериев эффективности;
Разработка прототипной версии системы, спроектированной для проверки правильности кодирования фактов, связей и стратегий рассуждения эксперта;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 57
Подробнее…
Какие виды проверок качества ER-модели выделяют:
Выберите один или несколько ответов:
Вариабельная проверка качества
Экспертная проверка качества
Автоматическая проверка качества
Консультационная проверка качества
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 67
Подробнее…
Какие в настоящее время существуют направления исследований в области искусственного интеллекта?
Выберите один или несколько ответов:
Когнитивное моделирование.
Обучение и самообучение;
Представление знаний и разработка систем, основанных на знаниях;
Генетические алгоритмы;
Игры и машинное творчество;
Разработка естественно-языковых интерфейсов и машинный перевод;
Интеллектуальные роботы;
Новые архитектуры компьтеров;
Распознование образов;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 49
Подробнее…
Какие атрибуты (признаки) обьекта должны быть отражены в информационной модели, описывающей хобби ваших однокласников, если эта модель позволяет получить ответы на следующие вопросы:
— указать возраст всех детей, увлекающихся компьютером
— указать фамилии девочек, увлекающихся пением
— указать фамилии мальчиков, увлекающихся хокеем?
Выберите один ответ:
фамилия, имя, пол, возраст, хобби;
имя, пол, хобби;
имя, пол, хобби, возраст;
фамилия, пол, хоккей, пение, возраст;
имя, возраст, хобби.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 43
Подробнее…
Каждому типу связи одной таблицы соответствует одна и более записей во второй таблице. К какому типу связей принадлежит данный тип связи?
Выберите один ответ:
Многие-ко-многим
Один-к-одному
Один-ко-многим
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
Каждому типу связи одной таблицы соответствует одна и только одна запись другой таблицы. К какому типу связи принадлежит данный тип связи?
Выберите один ответ:
Многие-ко-многим
Один-ко-многим
Один-к-одному
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 39
Подробнее…
Каждая запись первой таблицы может (должна) быть связана с одной и более записей во второй таблице. К какому типу связей принадлежит данный тип связи
Выберите один ответ:
Один-к-одному
Один-ко-многим
Многие-ко-многим
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 41
Подробнее…
К способам распределения данных относят:
Выберите один или несколько ответов:
Одинаковые копии данных хранятся в разных местах использования
Независимые БД подразделений, спроектированные без координации, требующие объединения — несовместимые данные
К способам распределения данных относят варианты 1,2,3,4 и 6.
На различных объектах используются одинаковые структуры данных, объединяемые в интегрируемые системы
На различных объектах используются одинаковые структуры, но хранятся разные данные
Группы данных, которые не совместимы с исходной базой данных хранятся отдельно для местной обработки
Данные в системе интегрируются при передаче на более высокий уровень управления
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 55
Подробнее…
К отличительным особенностям фильтрации данных относят:
Выберите один или несколько ответов:
При фильтрации данных показываются или скрываются записи удовлетворяющие, неудовлетворяющие определенному условию
Фильтры не дают возможности включать в результирующую таблицу выбранные поля. При этом отображаются все поля
Результаты фильтрации сохраняются как объект в окне БД
Фильтры не позволяют объединять таблицы
Фильтры не позволяют осуществлять нахождение суммы, поиск среднего значения, подсчет количества записей
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 59
Подробнее…
К основным операциям, допустимыми над объектами в сетевой модели данных не относят:
Выберите один или несколько ответов:
Операция «включить групповое отношение»
Операция «объединение»
Операция «обновить»
Операция «пересечение»
Операция «запомнить»
Операция «удалить»
Операция «переключить»
Операция «копировать»
Операция «извлечь»
Операция «исключить из группового отношения»
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 80
Подробнее…
К грубым ошибкам атрибутов относят:
Выберите один или несколько ответов:
Имя не уникально в пределах сущности
Не определен формат и (или) длина
Нет описания атрибутов
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 70
Подробнее…
Искусственный интеллект — это направление информатики, целью которого является разработка аппаратно-программных средств, позволяющих пользователю-непрограммисту ставить и решать свои, традиционно считающиеся интеллектуальными задачи, общаясь с ЭВМ на ограниченном подмножестве естественного языка.
Выберите один ответ:
Верно;
Неверно.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 36
Подробнее…
Из скольких шагов состоит генерация предварительного проекта БД:
Выберите один ответ:
Трех
Двух
Пяти
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 43
Подробнее…
Из каких элементов состоит хранимая запись?
Выберите один или несколько ответов:
Служебная часть
Информационная часть
Концептуальная часть
Коммерческая часть
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 46
Подробнее…
Задание обеспечения целостности данных в Access позволит контролировать то, что:
Выберите один или несколько ответов:
Невозможно ввести в связанное поле подчиненной таблицы значение, отсутствующее в соответствующем поле главной
Невозможно изменить ключевое поле главной таблицы, если в подчиненной существуют связанные с ней записи
Удаляются все не связанные записи в подчиненной таблице
Невозможно удаление записей из главной таблицы, если существуют связанные с ней записи в подчиненной
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 47
Подробнее…
Если установить каскадное обновление, то при изменении ключевого поля главной таблицы:
Выберите один ответ:
Удаляются все связанные записи в подчиненной
Будут изменены значения полей связанных записей
Оба варианта ответа неверны
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 40
Подробнее…
Для того, чтобы задать в СУБД Access …? Таблицы необходимо использовать кнопку с изображением ключа, выделив …?
Выберите один ответ:
ключ, одно или несколько полей;
пароль для входа, пароль поля.
параметры защиты, поле;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 97
Подробнее…
Для ввода, просмотра и модифицирования в таблице или запросе предназначен объект
Выберите один ответ:
отчет.
таблица;
форма;
запрос;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 50
Подробнее…
Для сети с небольшим объемом данных и отсутствием реальной необходимости их защиты целесообразно применять:
Выберите один ответ:
Систему архитектуры «клиент-сервер»
Файл-сервер
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 73
Подробнее…
Данные — это:
Выберите один ответ:
отдельные факты, характеризующие обекты, процессы и явления предметной области, а также их свойства;
закономерности предметной области, полученные в результате практической деятельности и профессионального опыта, позволяющие специалистам ставить и решать задачи в этой области;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 49
Подробнее…
Выделите грубые ошибки сущности:
Выберите один или несколько ответов:
Нет информации по объему сущности
Ключ состоит из необязательных элементов
У сущности нет описания
Сущность имеет только один подтип
У сущности нет ключа
У сущности нет ни одной связи
Имя не уникально в пределах проекта
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 99
Подробнее…
В таблицу базы данных, содержащей три столбца «Фамилия», «Имя», «Телефон» вписано 200 человек. Сколько полей и записей в таблице?
Выберите один ответ:
полей — 600, записей — 200;
полей — 200, записей — 3;
полей — 3, записей — 200.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 73
Подробнее…
В СУБД Access основное свойство «значение по умолчанию» определяет:
Выберите один ответ:
область или диапазон значений данных, допустимых в поле;
текст, который будет отображаться рядом с полем в форме или в отчете; эксплуатации
как должно отображаться содержимое поля;
определяет значение, которое вводится в поле автоматически при добавлении новых записей (значение, которое наиболее часто встречается в данном поле);
текст сообщения, которое появляется в строке состояния при попытке ввести в поле недопустимое значение.
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 51
Подробнее…
В соответствии с классификацией по связи с реальным временем выделяют следующие виды экспертных систем:
Выберите один или несколько ответов:
Квазидинамические;
Динамические;
Оперативные.
Статические;
Быстродействующие;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 59
Подробнее…
В настоящее время промышленные экспертные системы используются:
Выберите один или несколько ответов:
Для формирования портфеля инвестиций и оценке финансовых рисков;
При постановке медицинских диагнозов;
В управлении сложными диспетчерскими пультами.
При проектировании интегральных микросхем;
При поиске неисправностей в электронных приборах;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 58
Подробнее…
В иерархической модели данных каждой записи БД существует:
Выберите один ответ:
Оба варианта ответа неверны
Два пути от корневой записи
Только один путь от корневой записи
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 51
Подробнее…
База данных содержит информацию об учениках школы: фамилия, класс, балл за тест, балл за практическое задание, общее количество баллов. Какого типа должно быть поле «Общее количество балов»?
Выберите один ответ:
дата.
логическое;
числовое;
любого типа;
символьное;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 42
Подробнее…
База данных задана следующей таблицей:
Записи пронумерованы от 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 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 56
Подробнее…
База данных (БД) -это
Выберите один ответ:
произвольная информация, представленная в символьной (цифровой) форме.
Совокупность взаимосвязанных данных, используемых группой пользователей и хранящиеся с регулируемой избыточностью, при этом хранимые данные не зависят от прикладных программ
програмные средства, осуществляющие поиск информации;
Отзыв
Правильный ответ: Совокупность взаимосвязанных данных, используемых группой пользователей и хранящиеся с регулируемой избыточностью, при этом хранимые данные не зависят от прикладных программ
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 37
Подробнее…
Автономные экспертные системы представляют программный комплекс, агригирующий стандартные пакеты прикладных программ (например, математическую статистику, линейное программирование или системы управления базами данных) и средства манипулирования знаниями.
Выберите один ответ:
Неверно;
Верно;
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 51
Подробнее…
Сопоставьте характеристики систем кодирования информации:
Шифры имеют диапазон по одному классификационному признаку |
Последовательная система кодирования |
Данная классификация информации соответствует иерархической системе классификации. Шифр каждой нижестоящей группировки образуется путем прибавления цифр к вышестоящей группировке. Шифр обладает информативностью, но он громоздкий, в связи с этим система кодирования используется в заранее разработанной системе классификации. |
Серийно-порядковая система кодирования |
Группировки цифр шифра не зависят друг от друга. Шифр имеет большую длину. Данная система применяется для целей маркировки |
Порядковая система кодирования |
Шифры присваиваются последовательно, так, чтобы уникально отличить один объект классификации от другого. Шифр компактен, но не информативен |
Параллельная система кодирования |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 89
Подробнее…
Сопоставьте название и описание этапов разработки экспертной системы.
Проведение тестирования экспертной системы в отношении критериев эффективности. |
Выбор подходящей проблемы |
Этот этап определяет деятельность, предшествующую решению начать разрабатывать конкретную экспертную систему |
Оценка системы |
Интеграция экспертной системы с другими программными средствами в среде, в которой она будет работать, и обучение специалистов которых она будет обслуживать |
Развитие прототипа до промышленной экспертной системы |
Переход от демонстрационного прототипа к промышленной системе, предполагающее расширение базы знаний, то есть добавление дольшего числа правил, фреймов, узлов семантической сети и др. элементов |
Разработка прототипной системы |
Разработка прототипной версии системы, спроектированной для проверки правильности кодирования фактов, связей и стратегий рассуждения эксперта |
Стыковка системы |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 61
Подробнее…
Сопоставьте название и описание этапов перехода от прототипа к промышленной экспертной системе.
Система решает большую часть задач, но неустойчива в работе и не полностью проверена (несколько сотен правил или понятий) |
Действующий прототип ЭС |
Система надежно решает все задачи на реальных примерах, но для сложной задачи требует много времени и памяти |
Исследовательский прототип ЭС |
Промышленная система, пригодная к продаже, то есть хорошо документирована и снабжена сервисом |
Демонстрационный прототип ЭС |
Система решает часть задач, демонстрируя жизнеспособность подхода (несколько десятков правил или понятий) |
Промышленная система |
Система обеспечивает высокое качество решений при минимизации требуемого времени и памяти, переписывается с использованием более эффективных средств представления знаний |
Коммерческая система |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 47
Подробнее…
Сопоставьте название и описание содержания фаз анализа и синтеза при проведении структурного подхода.
Анализ смысла составных частей каждого предложения на основе некоторой предметно-ориентированной базы знаний |
Синтаксический анализ |
Разбор состава предложений и грамматических связей между словами |
Семантический анализ |
Анализ смысла предложений в реальном контексте на основе собственной базы знаний |
Морфологический анализ |
Анализ слов в тексте |
Прагматический анализ |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 64
Подробнее…
Сопоставить характеристики операций обновления баз данных в реляционной модели данных:
Операция выполняется для заданного отношения, при этом можно корректировать как один, так и несколько кортежей отношения |
Операция объединение |
Операция предполагает, что на выходе заданы два односхемных отношения (имеющих одинаковую структуру и атрибуты, но разные названия) |
Операция обновить |
На входе два односхемных отношения, выход — отношение, построенное по той же схеме, содержащее картежи из А, которые есть в В |
Операция включить |
Операция требует задания имени отношения и предварительного формирования значения атрибутов нового кортежа |
Операция пересечения |
В итоге осуществления операции остаются те картежи из А, которых нет в В |
Декартово произведение |
С4=А*В. Операция состоит в том, что отношения А и В построены по разным схемам |
Операция вычитания |
ОТВЕТ предоставляется за плату. Цена 5 руб. ВОЙТИ и ОПЛАТИТЬ
- Предмет: Базы данных
-
Куплено раз: 81
Подробнее…
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.7
19
Голоса
Рейтинг статьи
Введение в проектирование сущностей, проблемы создания объектов +12
PHP, ООП, Проектирование и рефакторинг
Рекомендация: подборка платных и бесплатных курсов дизайна интерьера — https://katalog-kursov.ru/
При моделировании такого понятия предметно-ориентированного проектирования как сущность могут возникнуть некоторые сложности, обусловленные бизнес-требованиями или технической частью. В частности, иногда возникает сложность с созданием объекта-сущности.
В данной статье описываются две такие проблемы, и рассматривается способ их решения. Так же статья подойдет как введение в проектирование сущностей. Для понимания материала понадобится базовое представление о предметно-ориентированном проектировании.
Итак, мы изучили предметную область, сформировали единый язык, выделили ограниченные контексты и определились с требованиями [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
- Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидс, «Приёмы объектно-ориентированного проектирования. Паттерны проектирования.»
Евгений Юрьевич Потехин
Эксперт по предмету «Базы данных»
Задать вопрос автору статьи
Метод сущность-связь
Метод сущность-связь (также называемый методом ER-диаграмм) основывается на использовании диаграмм, которые называют диаграммами ER-типа и диаграммами ER-экземпляров.
Основные понятия метода
Определение 1
Сущностью является объект, о котором информация хранится в базе данных.
Экземпляры сущности отличны один от другого и могут однозначно идентифицироваться. В качестве названий сущностей используют в основном существительные. Например, СТУДЕНТ, ПРЕПОДАВАТЕЛЬ, ФАКУЛЬТЕТ.
Определение 2
Атрибутом является свойство сущности. Например, в качестве атрибутов сущности СТУДЕНТ можно назвать: Фамилия, Факультет, Курс, Группа и т. д.
Сдай на права пока
учишься в ВУЗе
Вся теория в удобном приложении. Выбери инструктора и начни заниматься!
Получить скидку 4 500 ₽
Определение 3
Ключ сущности является атрибутом или набором атрибутов, который используется для идентификации экземпляра сущности.
Определение 4
Связь двух или больше сущностей показывает зависимость между их атрибутами.
Названием связи зачастую является глагол. Например, связью между сущностью СТУДЕНТ и сущностью ДИСЦИПЛИНА будет ИЗУЧАЕТ.
Для повышения удобства проектирования и наглядности представления сущностей, их экземпляров и связей между ними используют следующие графические средства:
- диаграммы ER-muna (или ER-диаграммы);
- диаграммы ER-экземпляров.
На рисунке 1 показана диаграмма ER-экземпляров для сущности ДИСЦИПЛИНА и сущности ПРЕПОДАВАТЕЛЬ со связью ВЕДЕТ.
«Метод сущность-связь. Основные понятия метода» 👇
С помощью диаграммы ER-экземпляров можно увидеть какую именно дисциплину (Паскаль, Фортран и др.) проводит каждый преподаватель.
На рисунке 2 показана диаграмма ER-типа.
На первых этапах проектирования базы данных выделяют атрибуты, которые составляют ключи сущности.
После анализа диаграмм ER-типа формируют отношения проектируемой базы данных, учитывая при этом класс принадлежности сущностей и степень связи сущностей (определяют при анализе диаграмм ER-экземпляров).
Класс принадлежности сущности может быть двух видов: обязательный и необязательный.
Определение 5
Обязательным класс принадлежности сущности является в случае, когда все экземпляры данной сущности обязательно участвуют в данной связи, иначе класс принадлежности сущности является необязательным.
Степень связи характеризует связь между сущностями. Степени могут быть четырех типов: 1:1, 1:М, М:1, М:М.
Пример 1
Рассмотрим рисунок 1. Из него видно, что каждый преподаватель проводит не больше одной дисциплины, и каждая дисциплина проводится не больше, чем одним преподавателем. Таким образом, имеем степень связи 1:1.
Далее имеются преподаватели, которые не ведут ни одну из дисциплин, а также есть дисциплины, которые никто из преподавателей не ведет.
Имеем необязательный класс принадлежности сущностей.
Пример 2
На рисунке 3 показаны диаграммы, на которых каждый преподаватель проводит лишь одну дисциплину и каждую дисциплину проводит лишь один преподаватель.
Таким образом, получаем степень связи 1:1 и обязательный класс принадлежности для сущностей.
Обратим внимание, что на диаграмме ER-типа обязательное участие в связи экземпляров сущности принято отмечать блоком с точкой внутри, который дорисовывается к данной сущности (рисунок 3). Необязательное участие в связи экземпляров сущности показывается с помощью точки, которую размещают на линии связи (рисунок 2). Показатель степени связи записывается над линией связи.
Ключ сущности выделяется подчеркиванием и указывается под соответствующим блоком.
Пример 3
Пусть каждый преподаватель может проводить больше одной дисциплины, но каждую дисциплину проводит только один преподаватель, тогда получаем связь типа 1:М.
Пример 4
Пусть каждый преподаватель может проводить лишь одну дисциплину, но каждая дисциплина может проводиться несколькими преподавателями, тогда получим связь типа М:1.
Пример 5
Каждый преподаватель может проводить более одной дисциплины, а каждую дисциплину может вести несколько преподавателей.
В таком случае получаем связь типа М:М.
Находи статьи и создавай свой список литературы по ГОСТу
Поиск по теме