Основы реляционных баз данных Лекция 2. Введение в проектирование Желенкова Ольга Петровна, с.н.с. ОИ САО РАН, к.ф.-м.н. 14-18 апреля 2008 Базовые понятия • Тип данных • Домен • Атрибут • Кортеж • Отношение • Первичный ключ • Вторичный ключ Типы данных • Символьные (CHAR, VARCHAR2) • Целые числа • с плавающей точкой (NUMBER) • Битовые сроки (RAW) • Специализированные числовые данные • Временные данные (DATE) • Домен - это семантическое понятие (несет определенную смысловую нагрузку) • Домен определен на некотором простом типе данных или на другом домене. • Домен может иметь некоторое логическое условие, позволяющее описать подмножество данных, допустимых для данного домена. Область допустимых значений атрибута Отношение – именованная таблица • Атрибут отношения - некоторое свойство, характеристика отношения или наименование столбца таблицы • Кортеж отношения – строка таблицы База данных – набор отношений Схема базы данных – набор заголовков таблиц Фундаментальные свойства отношений • Отсутствие кортежей-дубликатов • Отсутствие упорядоченности кортежей • Отсутствие упорядоченности атрибутов • Атомарность значений атрибутов • Предметная область • Модель предметной области (инфологическая модель) • Логическая модель данных • Физическая модель данных • Собственно база данных и приложения • информативными и полезными при разработке баз данных являются описания предметной области, выполненные при помощи специализированных графических нотаций. Имеется большое количество методик описания предметной области ER-диаграммы, UML-диаграммы и т.д. • Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. • тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. • экземпляр сущности относится к конкретной вещи в наборе • Атрибут – поименованная характеристика сущности • Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. • Связь – ассоциирование двух или более сущностей. • Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. • Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. Entity-Relation-диаграммы • Первый тип – связь ОДИН-К-ОДНОМУ (1:1) в каждый момент времени каждому представителю (экземпляру) сущности А соответствует 1 или 0 представителей сущности В: • Второй тип – связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В • Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще два типа связи МНОГИЕ-К-ОДНОМУ (М:1) и МНОГИЕКО-МНОГИМ (М:N). • множество связей между одними и теми же сущностями • три основные класса сущностей: стержневые, ассоциативные и характеристические. • Первичный ключ - служат идентификаторами объектов предметной области (т.е. предназначены для различения объектов) • Значения первичных ключей не могут содержать неизвестные значения (NULL). • Различные объекты предметной области, информация о которых хранится в базе данных, всегда взаимосвязаны друг с другом. • Такие взаимосвязи отражаются в реляционных базах данных при помощи внешних ключей, связывающих несколько отношений. Внешние ключи • Внешний ключ, также как и потенциальный, может быть простым и составным и определяется на тех же доменах, что и соответствующий первичный ключ родительского отношения. • Внешний ключ, как правило, не обладает свойством уникальности. В дочернем отношении может быть несколько кортежей, ссылающихся на один и тот же кортеж родительского отношения. • Хотя каждое значение внешнего ключа обязано совпадать со значениями потенциального ключа в некотором кортеже родительского отношения, то обратное, вообще говоря, неверно. Например, могут существовать поставщики, не поставляющие никаких деталей. • Правило целостности сущностей. Атрибуты, входящие в состав некоторого потенциального ключа не могут принимать null-значений. • Правило целостности внешних ключей. Внешние ключи не должны быть несогласованными, т.е. для каждого значения внешнего ключа должно существовать соответствующее значение первичного ключа в родительском отношении. Ссылочная целостность (или связь родительская-дочерняя таблицы) может нарушиться в результате операций (добавления, обновление и удаление) изменяющих состояние базы данных. В определении ссылочной целостности участвуют два отношения - родительское и дочернее. Ссылочная целостность в принципе может быть нарушена при выполнении одной из четырех операций: • Обновление кортежа в родительском отношении. • Удаление кортежа в родительском отношении. • Вставка кортежа в дочернее отношение. • Обновление кортежа в дочернем отношении. Существуют две основные стратегии поддержания ссылочной целостности: • RESTRICT (ОГРАНИЧИТЬ)- не разрешать выполнение операции, приводящей к нарушению ссылочной целостности (требуется проверка, имеются ли кортежи в дочернем отношении, связанные с некоторым кортежем в родительском отношении). • CASCADE (КАСКАДИРОВАТЬ)- разрешить выполнение требуемой операции, но внести при этом необходимые поправки в других отношениях так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи. Изменение начинается в родительском отношении и каскадно выполняется в дочернем отношении. В реализации этой стратегии имеется одна тонкость, заключающаяся в том, что дочернее отношение само может быть родительским для некоторого третьего отношения. Нормализация таблиц основана на понятии функциональной зависимости атрибутов отношения. • 1 нормальная форма (1НФ)– нет дублирующих кортежей, однако первой нормальной формы недостаточно для правильного моделирования данных • Отношение находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа • Отношение находится в третьей нормальной форме (3НФ) тогда и только тогда, когда отношение находится в 2НФ и все неключевые атрибуты взаимно независимы. Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого