Главная » Просмотр файлов » Теория и практика построения баз данных

Теория и практика построения баз данных (1088289), страница 46

Файл №1088289 Теория и практика построения баз данных (Теория и практика построения баз данных) 46 страницаТеория и практика построения баз данных (1088289) страница 462018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 46)

210 Глава 6. Проектирование баз данных в рамках модели «сущность — связь» Преобразование моделей «сущность — связь», 211 Тем не менее, отношения в ДКНФ ие всегда являются самыми предпочтительными. Если отношения запутаны и с ними сложно работать, более удачным может оказаться решение, не основанное на ДКНФ. Производительность также может иметь значение. Обращение к двуга или трем отношениям для получения необходимых данных о клиенте может отнимать чересчур много времени. Независимо от того, каким будет наше решение относительно нормализаццп, мы должны исследовать каждое из отношений сущности применительно к критериям нормализации. То естть если мы собираемся «согрешить», следует принять на этот счет взвешенное и обдуманное решение.

Попутно мы определим типы аномалий модификации, которым подвержены исследуемые отношения. Представление слабых сущностей Слабые сущности требуют особого подхода при создании реляционной структуры. Вспомните, что существование слабой сущности зависит от некоторой другой сущности. Если слабая сущность является экзистенциально-зависимой, но не идентификационно-зависимой, ее можно преобразовать в реляционную конструкцию с помощью приемов, описанных в предыдущем разделе. Экзистенциальная зависимость должна быть встроена в реляционную конструкцию таким образом, чтобы приложение не могло создать слабую сущность без ее родителя (сущности, от которой данная сущность зависит). Более того, деловой регламент необходимо дополнить положением, согласно которому при удалении родителя слабая сущность также удаляется.

Эти правила должны быть описаны в реляционной структуре. Данная ситуация вы~ладит несколько по-иному, если слабая сущность является также идентификационно-зависимой. На рис. 6.4, а СТРОКА РАСХОДОВ является идентификационно-зависимой сущностью. Эта сущность слабая, поскольку ее логическое существование зависит от сущности СЧЕТ, и идентификационно-зависимая, поскольку ее идентификатор содержит идентификатор сущности СЧЕТ.

При создании отношения для иде~ттнфикационно-зависимой сугцностн мы обязаны поместить в него ключ как самой сущности, так и ее родителя. Посмотрим, например, что получилось бы, если бы мы просто ввели отношение для сущности СТРОКА РАСХОДОВ и не включили в него ключ сущности СЧЕТ. Такое отношение показано на рис. 6.4, б. Что является ключом этого отношения? Поскольку сущность СТРОКА РАСХОДОВ является идентификационно-зависимой, у пее нет полноценного ключа, и фактически, это отношение вполне может иметь повторяющиеся строки. (Такое может случиться, если в двух заказах указано одно и то же количество определенного тонара в одной и той же строке.) Таким образом, если имеется идентификационно-зависимая сущность, в отношение для этой сущности необходимо добавить ключ родительского отношения, и этот дополнительный атрибут становится частью ключа слабой сущности.

На рис. 6А, в мы добавили в отношение СТРОКА РАСХОДОВ атрибут НомерСчета— ключ отношения СЧЕТ. Ключом отношения СТРОКА РАСХОДОВ является комбинация (НомерСчета, НомерСтроки). СТРОКА РАСХОДОВ (Номврстдокии, Количество, Нем«РТовврв, Описание, Цена, Стоимость) б ~к«г (а«к, к Описание, цена, Стоимость) Рис. В.4. Реляционное представление слабой сущности: в — пример слабой сущности; б — отношение, представляющее сущность СТРОКА РАСХОДОВ, с неправильным ключом; в — отношение, представляющее сущность СТРОКА РАСХОДОВ, с правильным ключом Представление связей типа «ИМЕЕТ» В модели «сущность — связь> есть две разновидности связей; связь типа «ИМЕЕТ», характерная для сущностей, принадлежащих к разным логическим типам, и связь типа «ЕСТЬ», возникающая между сущностями, которые являются подтипами одного и того же логического типа.

В этом разделе мы рассмотрим связи типа ИМЕЕТ»; к связям типа «ЕСТЬ» мы обратимся позже. Существует три вида связей типа «ЕСТЬ»: «один к одному», «один ко многим» и «многие ко многим». Представление связи «один к одному» Простейшая форма бинарной связи — зто связь «один к однотиу» (1;1), при которой сущность одного типа связана не более чем с одной сущностью другого типа. В примере с сущностями СОТРУДНИК и АВТОМОБИЛЬ такая связь отражает ситуацию, когда за сотрудником может быть закреплено не более одного автомобиля, а автомобиль может быть выделен не более чем одному сотруднику. ЕК-диаграхгма для этого случая изображена на рнс.

6.5. Представление связи 1:1 с помощью реляционной модели осуществляется просто. Сначала каждая сугцность представляется в виде отношения, а затем ключ одного из отнонтений помегпается в другое. На рис. Б.6, а ключ отношения СОТРУДНИК помещается в отношение АВТОМОБИЛЬ, а на рис. 6.6, б ключ отношения АВТОМОБИЛЬ помещается в отношение СОТРУДНИК. Когда ключ одного отношения помещается в другое отношение, он называетгя внешттим ключом (Тоге)цп )сеу).

На рис. 6.6, а НомерСотрудника является внешним ключом отношения АВТОМОБИЛЬ, а на рпс, 6.6, б НомерЛицензии — внешний ключ оттто~пения СОТРУДНИК, На этом рисунке внешние ключи выделены куренном, но иногда их подчеркивают пунктирной линией. Бывает и так, что внешние ключи вообще никак специально не выделяются, В тех местах данного текста, где потенциально может возникнуть путаница, мы будем выделять внешние ключи курсивом, но в болыпинстве случаев они не будут обозначаться явно. При связи 1:1 можно взять ключ любой из таблиц и поместить его в качестве ннешнего ключа в другую таблицу.

На рис. 6.6, а в таблицу СОТРУДНИК помещен нпешний ключ НомерЛицензии. При такой структуре мы можем двигаться от 212 Глава б. Проектирование баз данных в рамках модели «сущность — связь» Преобразование моделей «сущность — связь» 213 таблицы СОТРУДНИК к таблице АВТОМОБИЛЬ или в обратном направлении. В первом случае нам известен сотрудник, и мы хотим узнать, какой автомобиль закреплен за этим сотрудником. Чтобы получить данные о сотруднике, мы находим в таблице СОТРУДНИК строку с этой информацией по значению атрибута Номер- Сотрудника. Из найденной строки мы берем НоиерЛицензии автомобиля, закрепленного за данным сотрудником. По номеру лицензии мы находим информацию об автомобиле в таблице АВТОМОБИЛЬ. Рис.

6.6. Пример связи 1:1 сОтРУДник (Но»дар ~отоудникаа, имлсотрулника, телефон, ... ноыерл«пензии) "(Ы > «Е~ "" ' ек ""' '" '-( Ограничения осы»очной целостности; Значение атрибута НоыерЛицензии е отношении СОТРУДНИК должно существовать среди значений атрибута НомерЛ«цензе« е отношении АВТОМОБИЛЬ а СОТРУДНИК 1НомедСатйудндий, ИылСотрудеика, Телефон, ...) ю~~~ю~ (~, е~ .к Номер Со(»рудника) Ограничения ссыпочной целостности: Значение атрибута НоыерСотрудника е отношении АВТОМОБИЛЬ должно существовать среди значений атрибута НоыерСогрудника е отношении СОТРУДНИК Рис. 6.6. Возможные варианты представления связи 1;1: а — помещение ключа отношения АВТОМОБИЛЬ е отношение СОТРУДНИК; б — помещение ключа отношения СОТРУДНИК е отношение АВТОМОБИЛЬ Теперь рассмотрим движение в противоположном направлении.

Допустим, у нас имеется автомобиль, и мы хотим выяснить, за кем он закреплен. Используя структуру, изображенную на рис, 6.6, а, мы обращаемся к таблице СОТРУДНИК и ищем в ней с~року, которая содержит заданный номер лицензии. Данные о сотруднике, эа которым закреплен этот автомобиль, находятся в этой строке. Аналогичные действия предпринимаются для движения в двух направлениях при альтернативной структуре, в которой внешний ключ НомерСотрудника помещается в таблицу АВТОМОБИЛЬ. Двигаясь от сотрудника к автомобилю, мы обращаемся напрямую к отношению АВТОМОБИЛЬ и ищем в нем строку с заданным значением атрибута НомерСогрудника. Двигаясь от автомобиля к сотруднику, мы ищем в отношении АВТОМОБИЛЬ строку с заданным значением атрибута НомерЛицензии.

Из этой строки мы извлекаем НоиерСотрудника и по нему находим данные о сотруднике в таблице СОТРУДНИК. Под термином поиск здесь подразумевается нахождение строки по значению одного из столбцов. Позднее, когда мы будем обсуждать модели конкретных СУБД, мы покажем, как это делается. Хотя две структуры, изображенные на рис. 6.6, эквивалентны по сути, они могут различаться по производительности. Например, если запросы в одном направлении осуществляются чаще, чем в другом, мы можем отдать предпочтение какой-либо одной из этих структур. Кроме того, если СУБД осуществляет поиск (н> первичным ключам гораздо быстрее, чем по внешнцм ключам, одна из этих структур также может оказаться более предпочтительной.

«Подозрительные» связи 1:1 Па рис. 6.7 показана еще одна связь 1:1, в которой каждый сотрудник имеет определенный разряд тарифной сетки и каждый разряд тарифной сетки соответствует какому-либо сотруднику. Перпендикулярныс черточки указывают на то, что связь между сущностями СОТРУДНИК и РАЗРЯД носит в обоих направлениях обязательный характер. Когда связь имеет вид 1:1 и является обязательной в обоих на>>равлениях, то с высокой вероятностью указанные записи отражают различные ;юпекты одной и той же сущности, особенно если обе сущности имеют одинаковый ключ, как показано на рпс. 6.7. В таком случае, вообще говоря, записи следует объединить в одно отношение.

Характеристики

Тип файла
DJVU-файл
Размер
9,56 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее