Основы баз данных PDF

Document Details

SurrealMoldavite6819

Uploaded by SurrealMoldavite6819

Tags

базы данных системы управления базами данных (СУБД) информационные технологии информатика

Summary

Этот документ предоставляет вводный обзор понятий, связанных с базами данных. Он описывает структуру баз данных, системы управления базами данных (СУБД), различные типы данных, требования к базам данных и этапы их развития. Данное руководство полезно для студентов, изучающих информационные технологии.

Full Transcript

1. Определение базы данных База данных (БД) - это данные, организованные в виде набора записей определенной структуры и хранящиеся в файлах, где, помимо самих данных, содержится описание их структуры. Oracle (Россия и СНГ) База данных — это упорядоченный набор структурированной информации или данных...

1. Определение базы данных База данных (БД) - это данные, организованные в виде набора записей определенной структуры и хранящиеся в файлах, где, помимо самих данных, содержится описание их структуры. Oracle (Россия и СНГ) База данных — это упорядоченный набор структурированной информации или данных, которые обычно хранятся в электронном виде в компьютерной системе. База данных обычно управляется системой управления базами данных (СУБД). Данные вместе с СУБД, а также приложения, которые с ними связаны, называются системой баз данных, или, для краткости, просто базой данных. База данных— это совокупность взаимосвязанных, хранящихся вместе данных, которые можно обрабатывать другими программами, дополнять, модифицировать и обновлять с помощью специальных средств управления базой данных (СУБД). 2. СУБД. Классификация СУБД. Типы данных, используемые в СУБД Система управления базами данных – это комплекс программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями. Программно-логический аппарат, организующий систему хранения данных, а также обеспечивающий средства занесения, обновления и выборки данных. В состав СУБД входят языки: Описания данных Манипулирования данными Структурированных запросов - SQL –Structured Query Language Запросов по образцу – QBE –Query By Example Классификация СУБД СУБД классифицируются по модели данных (реляционные, документно-ориентированные, графовые)Реляционные СУБД, такие как MySQL, используют таблицы, а графовые, такие как Neo4j, работают с узлами и связями Типы данных, используемые в СУБД числовые символьные логические даты временные и дата-временные символьные переменной длины двоичные (мультимедиа данные) гиперссылки данные в xml формате 3. Требования к БД Многократное использование данных Сохранение затрат умственного труда Небольшие затраты на разработку Уменьшение избыточности данных Легкость использования Простота внесения изменений Достоверность Конфиденциальность (секретность) Защита от уничтожения и искажения Готовность 4.Этапы развития баз данных На больших ЭВМ Настольные СУБД (эпоха ПК) Распределенные БД (интеграция, транзакции, поддержка структурной целостности, многоплатформенная архитектура, начало работ по созданию ООБД, разработка стандартов языков) Интранет Особенности первого этапа Все СУБД базируются на мощных мультипрограммных операционных системах (MVS, SVM, RTE, OSRV, RSX, UNIX), поэтому в основном поддерживается работа с централизованной базой данных в режиме распределенного доступа. Функции управления распределением ресурсов в основном осуществляются операционной системой (ОС). Поддерживаются языки низкого уровня манипулирования данными, ориентированные на навигационные методы доступа к данным. Значительная роль отводится администрированию данных. Проводятся серьезные работы по обоснованию и формализации реляционной модели данных, и была созданная первая система (System R), ориентированная идеологию реляционной модели данных. Проводятся теоретические работы по оптимизации запросов и управлению распределенным доступом к централизованной БД, было введено понятие транзакции. Результаты научных исследований открыто обсуждаются в печати, идет мощный поток общедоступных публикаций, касающихся всех аспектов теории и практики баз данных, и результаты теоретических исследований активно внедряются в коммерческие СУБД. Особенности второго этапа Все СУБД были рассчитаны на создание БД в основном с монопольным доступом. И это понятно. Компьютер персональный, он не был подсоединен к сети, и база данных на нем создавалась для работы одного пользователя. В редких случаях предполагалась последовательная работа нескольких пользователей, например, сначала оператор, который вводил бухгалтерские документы, а потом главбух, который определял проводки, соответствующие первичным документам. Большинство СУБД имели развитый и удобный пользовательский интерфейс, В большинстве существовал интерактивный режим работы с БД, как в рамках описания БД, так и в рамках проектирования запросов. Кроме того, большинство СУБД предлагали развитый и удобный инструментарии для разработки готовых приложений без программирования. Инструментальная среда состояла из готовых элементов приложения в виде шаблонов экранных форм, отчетов, этикеток (Labels), графический редактор, которые действительно просто могли быть собраны в единый комплекс. Во всех настольных СУБД поддерживался только внешний уровень представления реляционной модели, то есть только внешний табличный вид структур данных. При наличии высокоуровневых языков манипулирования данными типа реляционной алгебры и SQL в настольных СУБД поддерживались низкоуровневые языки манипулирования данными на уровне отдельных строк таблиц. В настольных СУБД отсутствовали средства поддержки ссылочной и структурной целостности базы данных. Эти функции должны были выполнять приложения, однако скудость средств разработки приложений иногда не позволяла это сделать, и в этом случае эти функции должны были выполняться пользователем, требуя от него дополнительного контроля при вводе и изменении информации, хранящейся в БД. Наличие монопольного режима работы фактически привело к вырождению функций администрирования БД и в связи с этим к отсутствию инструментальных средств администрирования БД. И, наконец, последняя и в настоящий момент весьма положительная особенность -- это сравнительно скромные требования к аппаратному обеспечению со стороны настольных СУБД. Вполне работоспособные приложения, разработанные, например, на Clipper, работали на PC 286. Особенности третьего этапа Практически все современные СУБД обеспечивают поддержку полной реляционной модели, а именно: структурной целостности - допустимыми являются только данные, представленные в виде отношений реляционной модели; языковой целостности, то есть языков манипулирования данными высокого уровня (с использованием SQL); ссылочной целостности - контроля за соблюдением ссылочной целостности в течение всего времени функционирования системы, и гарантий невозможности со стороны СУБД нарушить эти ограничения. Большинство современных СУБД рассчитаны на многоплатформенную архитектуру, то есть они могут работать на компьютерах с разной архитектурой и под разными операционными системами, при этом для пользователей доступ к данным, управляемым СУБД, на разных платформах практически неразличим. Необходимость поддержки многопользовательской работы с базой данных и возможностьn децентрализованного хранения данных потребовали развития средств администрирования БД с реализацией общей концепции средств защиты данных. Потребность в новых реализациях вызвала создание серьезных теоретических трудов по оптимизации реализации распределенных БД и работе с распределенными транзакциями и запросами с внедрением полученных результатов в коммерческие СУБД. Для того чтобы не потерять клиентов, которые ранее работали на настольных СУБД, практически все современные СУБД имеют средства подключения клиентских приложений, разработанных с использованием настольных СУБД, и средства экспорта данных из форматов настольных Особенности четвертого этапа Этот этап характеризуется появлением новой технологии доступа к данным- интранет. Основное отличие этого подхода от технологии клиент-сервер состоит в том, что отпадает необходимость использования специализированного клиентского программного обеспечения. Для работы с удаленной базой данных используется стандартный браузер Internet, например Microsoft Internet Explorer, и для конечного пользователя процесс обращения к данным происходит аналогично использованию Internet. При этом встроенный в загружаемые пользователем HTML- страницы код, написанный обычно на языках Java, Java-script, Perl и других, отслеживает все действия пользователя и транслирует их в низкоуровневые SQL-запросы к базе данных, выполняя, таким образом, ту работу, которой в технологии клиент-сервер занимается клиентская программа. 5. Определение целостности - свойство БД, означающее, что в ней содержится полная, непротиворечивая и полностью отражающая предметную область информация. Различают целостность: Физическую (означает наличие физического доступа к данным и что данные не утрачены) Логическую (означает отсутствие логических ошибок в базе данных, к которым относятся нарушение структуры данных, ее объектов, удаление или изменение установленных связей между объектами и т.п.) 6. Функции СУБД СУБД обеспечивает управление данными: их хранение, извлечение, изменение и удаление. Также она поддерживает транзакции, обеспечивает целостность данных и управляет доступом пользователей. 7. Низкоуровневые функции СУБД Низкоуровневые функции включают управление физическим хранением данных, оптимизацию запросов, буферизацию и индексацию. Эти процессы обеспечивают эффективное выполнение операций на уровне оборудования. 8. Пользователи СУБД В обязанности администратора данных входит: принимать решение, какие данные необходимо вносить в базу данных в первую очередь, а также обеспечивать поддержание порядка при обслуживании данных и использовании их после занесения в базу данных. Например, он должен указывать, кто, при каких условиях, над какими данными и какие операции может выполнять. Другими словами, он должен обеспечивать безопасность данных. Итак, администратор базы данных, в отличие от администратора данных, должен быть профессиональным специалистом в области информационных технологий. Работа АБД заключается в создании самих баз данных и техническом контроле, необходимом для осуществления решений администратора данных. АБД также несет ответственность за обеспечение необходимого быстродействия системы и ее технического обслуживания Прикладные программисты. Они отвечают за создание программ, использующих базу данных. Конечные пользователи базы данных. Работают с ней непосредственно через терминал или рабочую станцию. Как правило, имеют строго ограниченный набор привилегий манипулирования данными. 9. Транзакция. Её свойства Последовательность операций над БД, рассматриваемая СУБД как единое целое. При выполнении транзакция может быть либо успешно завершена (СУБД зафиксирует изменения во внешней памяти), либо ни одно изменение не отразится в БД. Свойства транзакции: атомарность ( Транзакция рассматривается как единая, неделимая единица работы. Это означает, что либо все операции в транзакции завершаются успешно, либо ни одна из них не применяется к базе данных) сериализуемость (отсутствует взаимное влияние)( Это свойство базы данных, которое гарантирует, что если несколько транзакций выполняются одновременно, их результат будет таким же, как если бы они выполнялись строго по очереди, одна за другой. Иными словами, транзакции не влияют друг на друга и не мешают друг другу, даже если работают одновременно); согласованность ( В результате выполнения транзакции база данных не будет содержать несогласованных данных. Это свойство означает, что любая транзакция, завершаясь, сохраняет целостность данных. Если база данных была в правильном состоянии до начала транзакции, она останется в правильном состоянии после её завершения.); долговечность (Обеспечивает сохраняемость данных. Иными словами, эффект транзакции должен оставаться действенным даже в случае системной ошибки). 10.12 принципов Кодда 1) Информация логически представлена в виде таблиц. 2) Логический доступ к данным должен осуществляться по таблице, первичному ключу и столбцу. 3) Пустые значения трактуются как «отсутствие информации», а не как пустые строки, пробелы или нули. 4) Метаданные (данные о базе данных) должны храниться в базе данных, как обычные данные. 5) Для работы с данными, представлениями, целостностью, авторизацией, транзакциями и операциями должен использоваться единый язык должен использоваться один язык. 6) Обновления в таблицах базы данных должны быть отражены в представлениях, и наоборот. 7) Каждое действие должно осуществляться при помощи одной отдельной операции: извлечение данных, вставка данных, обновление данных и удаление данных. 8) Методы работы с данными для пользователей и внутренние механизмы хранения логически разделены. 9) Схему базы данных можно изменять (с помощью пакетных операций и операций конечных пользователей) без необходимости пересоздания самой базы или приложения, которое ее использует. 10) Ограничения, которые обеспечивают целостность данных, должны храниться в метаданных, а не в прикладной программе. 11) Язык манипулирования данными реляционной системы не должен учитывать, где и как распределены данные физически, и не должен требовать внесения изменений в зависимости от того, являются данные централизованными или распределенными. 12) Любые операции(процессы) со строками должны соблюдать те же правила целостности, что и процессы обработки наборов данных. 11.Модели данных, используемые в СУБД Модели представления данных Иерархическая Сетевая Реляционная Постреляционная Многомерная Картотека Объектно-ориентированная 12.Иерархическая модель представления данных Данные организованы в виде дерева, где каждое значение связано с одним родительским узлом. Эта модель эффективна для структур с естественной иерархией, таких как каталоги. 13.Сетевая модель представления данных В этой модели данные организованы в виде графа, где узлы представляют сущности, а связи — отношения между ними. Она подходит для сложных взаимосвязанных структур. 14.Реляционная модель представления данных Все данные, доступные пользователю, организованны в виде таблиц, а все операции над данными сводятся к операциям над этими таблицами. Свойства двумерной таблицы: каждый элемент таблицы - один элемент данных, повторяющиеся группы отсутствуют; все столбцы в таблице однородные; столбцам присваиваются однозначные имена; в таблице нет двух одинаковых строк; при выполнении операций с таблицей ее строки и столбцы можно обрабатывать в любом порядке безотносительно к их информационному содержанию. 15.Постреляционная модель представления данных Постреляционная модель расширяет реляционную модель, добавляя поддержку более сложных типов данных, таких как массивы и объекты. Она используется в современных системах для гибкой работы с неструктурированными данными. 16.Многомерная модель представления данных Эта модель ориентирована на аналитическую обработку данных (OLAP) и представляет данные в виде многомерных кубов, что позволяет быстро выполнять агрегации и анализ. 17.Структура реляционной модели. Типы данных реляционной модели Реляционная модель включает таблицы с атрибутами, где строки представляют кортежи, а столбцы — свойства. Типы данных могут быть числовыми, текстовыми, временными и др. 18.Отношение. Атрибуты и кортежи. База данных. Схема БД. Свойства отношений. Элементы реляционной БД: Записано в виде: Элемент реляционной модели - Форма представления Отношение - Таблица Схема отношения - Строка заголовков таблицы Кортеж - Строка таблицы Сущность - Заголовок таблицы(описание свойств объекта) Атрибут - Заголовок столбца таблицы Первичный ключ - Один или несколько атрибутов Тип данных - Тип значений элементов таблицы Схема базы данных — это её структура, которая определяет, какие таблицы и атрибуты есть в базе, какие типы данных они хранят, а также связи между таблицами. Свойства отношений: Данные в таблице (отношении) не должны повторяться — строки уникальны. Порядок строк и столбцов не имеет значения. Все значения в столбцах принадлежат одному типу данных. Таблица имеет первичный ключ, который обеспечивает уникальность строк 19.Зависимости между атрибутами Функциональные В функционально зависит от А, если каждому А в точности соответствует одно В) А->В Функциональная взаимозависимость АВ Частичная зависимость – зависимость атрибута от части составного ключа Составной ключ - это первичный ключ таблицы, который состоит из двух или более атрибутов, вместе образующих уникальную идентификацию каждой строки. Представьте, что в одном магазине может быть одна продажа за день, тогда: Полная зависимость – неключевого атрибута от всего составного ключа Транзитивные A->B->C (Фио->Должность->Оклад) Если "ФИО сотрудника" определяет "Должность", а "Должность" определяет "Оклад", то "Оклад" зависит от "ФИО" через "Должность" Проблемы: - Избыточное (явное и неявное) дублирование - таблица содержит повторяющиеся значения, например, одна и та же информация о названии продукта хранится в каждой строке продаж - Неизбыточное дублирование - повторения сведены к минимуму через разбиение данных на связанные таблицы - Аномалии (ситуация в таблицах БД, которая приводит к противоречиям): модификации, удаления и добавлении Многозначные: A=>B - каждому значению A может соответствовать несколько значений B Если A - "Студент", а B - "Курс", то одному студенту могут быть назначены несколько курсов A Y), если в любом экземпляре схемы R каждому значению атрибута X (левая часть зависимости) в каждый момент времени соответствует точно одно значение Y (правая часть зависимости) 20.Метаданные Метаданные — это данные о данных, такие как структура таблиц, типы данных, связи между таблицами. Они помогают организовывать и управлять базой данных. 21.Целостность. Типы. - свойство БД, означающее, что в ней содержится полная, непротиворечивая и полностью отражающая предметную область информация. Различают целостность: Физическую (означает наличие физического доступа к данным и что данные не утрачены) Логическую (означает отсутствие логических ошибок в базе данных, к которым относятся нарушение структуры данных, ее объектов, удаление или изменение установленных связей между объектами и т.п.) Ограничения целостности: Ограничения значений атрибутов отношений (недопустимость пустых или повторяющихся отношений) Структурные ограничения на кортежи отношений (любой кортеж отношений должен быть отличим от другого кортежа этого отношения) Внешний ключ -> первичный ключ 22.Элементы модели «Сущность-Связь» Метод «сущность связь»: - подход к проектированию базы данных, который помогает наглядно представить её структуру с помощью диаграмм. Этот метод используется для определения объектов (сущностей), их характеристик (атрибутов) и взаимосвязей Метод «ER-диаграмм» Essence – сущность Relation – связь Основные понятия метода: Сущность - это объект или элемент, который хранит данные в базе (например, «Магазин», «Товар») Атрибут сущности - атрибут описывает свойства сущности и представляет отдельное поле данных (например, атрибуты сущности «Товар»: «Название», «Цена», «Код») Ключ сущности - уникальный идентификатор, который позволяет однозначно идентифицировать каждый экземпляр сущности («Код товара») Связь между сущностями - связь указывает на отношения между двумя или более сущностями (например, «Покупатель заказывает Товар») Степень связи - определяет количество сущностей, участвующих в отношении («Клиент» оформляет «Заказ» - степень 2, «Продавец» поставляет «Товар» на «Склад» - степень 3) Класс принадлежности экземпляров сущности - указывает, обязательны ли экземпляры сущности для участия в связи (обязательная/необязательная) - Обязательная: связь: «Клиент оформляет Заказ». Каждый клиент должен оформить хотя бы один заказ. - Необязательная: связь: «Клиент участвует в Промо-акции». Здесь не обязательно, чтобы каждый клиент участвовал в промо-акции. Диаграммы ER-экземпляров - диаграммы, на которых показаны конкретные экземпляры сущностей и связей (например, клиент Иванов связан с заказом №123) Диаграммы ER-типа - обобщённые диаграммы, описывающие типы сущностей, их атрибуты и связи между ними, без привязки к конкретным данным 23.Связывание таблиц Связь описывает бинарное состояние между двумя сущностями Связь бывает рекурсивной (внутри одной сущности) У каждой стороны связи есть имя Связывание таблиц 1:1 Каждой записи в одной таблице соответствует ровно одна запись в другой таблице Пример: Один человек - один паспорт 1: М Одной записи в первой таблице могут соответствовать несколько записей во второй таблице. Пример: Один автор - много книг М:1 Много записей из одной таблицы могут соответствовать одной записи в другой таблице (обратная связь для 1:М). Пример: Много студентов - один преподаватель М:М Каждой записи в одной таблице могут соответствовать несколько записей в другой таблице, и наоборот. Пример: Студенты записываются на курсы, и один курс может включать много студентов Разрешение связи М:М : - Сделать новую сущность (Сущность-связку) - Связать сущность с двумя исходными - Ввести уникальный идентификатор (можно объединив пару) 24.Реляционная алгебра. Отношение. Предикат отношения Предикат отношения — это логическое выражение, которое определяет условия или свойства, которым должны удовлетворять кортежи в отношении (например, предикат может утверждать, что возраст человека больше 18 лет). 25.Декартово произведение Произведение отношения R1 степени k1 и отношения R2 степени k2 (R1 TIMES R2), которые не имеют одинаковых имен атрибутов, есть такое отношение R степени (k1 + k2), заголовок которого представляет собой сцепление заголовков отношений R1 и R2, а тело имеет кортежи такие, что первые k1 элементов кортежей принадлежат множеству R1, а последние k2 элементов – множеству R2. 26.Первичный ключ. Целостность сущностей это поле для однозначной идентификации записи Ключ должен быть уникальным Ключ должен иметь значение отличное от нуля В течение всего времени существования экземпляра его ключ не меняется Первичный ключ обеспечивает: Однозначную идентификацию полей таблицы Предотвращение повторений значений ключей Ускорение выполнения запросов к БД Установление связи между таблицами БД Использование ограничений ссылочной целостности 27.Вторичный индекс Строится по полям таблицы Не уникален Не обязателен Повышает производительность при поиске и сортировке данных Замедляет модификацию и увеличивает размер таблицы 28.Правила формирования отношений Связь 1:1 Правило 1. Если класс принадлежности сущностей О:О, то формируется одно отношение Пример: Сущности: "Паспорт" и "Гражданин". Каждый гражданин должен иметь один паспорт, и каждый паспорт должен быть выдан одному гражданину Правило 2. Если класс принадлежности сущностей О:Н, то под каждую из сущностей формируется отношение. Далее к отношению с обязательным КП (класс принадлежности) добавляется ключ сущности с необязательным КП Пример: Сущности: "Клиент" и "Лояльная программа". Каждый клиент должен иметь связь с программой лояльности, но не все клиенты обязательно участвуют в программе лояльности. Два отношения: одно для клиентов (обязательное участие), второе для программы лояльности с дополнительным атрибутом, указывающим, принимает ли конкретный клиент участие в программе (необязательная связь) Правило 3. Если класс принадлежности сущностей Н:Н, то необходимо использовать 3 отношения Связь 1:М Правило 4. Если класс принадлежности М-связной сущности О, то формируются два отношения. Ключ односвязной сущности добавляется как атрибут в отношение. Пример: Сущности: "Заказ" и "Клиент". Каждый заказ принадлежит одному клиенту, но один клиент может сделать несколько заказов. Два отношения: одно для клиентов, другое для заказов, где в таблице заказов будет ключ клиента Правило 5. Если класс принадлежности М-связной сущности Н, то необходимо формирование трех сущностей Пример: Сущности: "Отдел" и "Сотрудник". Каждый отдел имеет несколько сотрудников. Каждый сотрудник работает только в одном отделе, но он может не иметь обязательной привязки к отделу. Три сущности: таблица "Отделы", таблица "Сотрудники", связующая таблица Связь М:М Правило 6. Независимо от класса принадлежности необходимо использовать 3 отношения Пример: Сущности: "Студент" и "Курс". Студенты могут записываться на несколько курсов, а каждый курс может быть посещен несколькими студентами. Три отношения: одно для студентов, одно для курсов, связь между ними (указывает, какие студенты записаны на какие курсы) 29.Внешний ключ. Целостность внешних ключей Внешний ключ — это атрибут, который связывает одну таблицу с другой. Целостность внешних ключей гарантирует, что значения внешнего ключа соответствуют значениям первичного ключа связанной таблицы. 30.Ссылочная целостность. Стратегии поддержания ссылочной целостности Ссылочная целостность гарантирует, что каждая ссылка на внешний ключ соответствует существующему значению. Стратегии включают каскадное удаление, обновление или запрет изменений. 31.Замкнутость реляционной алгебры. Совместимость отношений по типу. Её достижение Замкнутость означает, что результат операций реляционной алгебры также является отношением. Совместимость достигается, если отношения имеют одинаковые заголовки и типы данных. 32.Теоретико-множественные операторы реляционной алгебры Операции над множествами: объединение, пересечение, разность, деление, декартово произведение Специальные операции: проекция, соединение, выбор 33.Выборка. Проекция. Соединение Выборка Выборка (R WHERE f) представляет собой новое отношение с тем же заголовком и телом, состоящим из таких кортежей отношения R, которые удовлетворяют истинности логического выражения, заданного формулой f. Проекция Проекция отношения А на атрибуты X,Y,…,Z (A[X,Y,…,Z]), где множество {X,Y,…,Z} является подмножеством полного списка атрибутов заголовка отношения А, представляет собой отношение с заголовком X,Y,…,Z и телом, содержащим кортежи отношения А, за исключением повторяющихся кортежей Дополнительные варианты записей: Отсутствие списка атрибутов подразумевает указание всех атрибутов (тождественная проекция) R[] – пустая проекция, результат – пустое множество Операция проекции может применяться к произвольному отношению, в т.ч. и к результату выборки Соединение Общая операция соединения ϴ – соединение (тета) Эквисоединение Естественное соединение Внешнее соединение Соединение C(R1,R2) отношений R1 и R2 по условию, заданному формулой f представляет собой отношение R, которое можно получить путем декартова произведения отношений R1 и R2 с последующим применением к результату операции выборки по формуле f (R1 TIMES R2) WHERE f. 34.Эквисоединение. Естественное соединение. Деление. Эквисоединение это вид операции соединения таблиц в реляционной базе данных, эквисоединение берет строки из двух таблиц и соединяет их только тогда, когда значения в указанных столбцах совпадают F задает равенство операндов, т.е. возвращаются только те записи, для которых значения указанных полей совпадают. Естественное соединение Частный случай эквисоединения (работает так же, но проще, так как использует только общие столбцы) Основано на операторе равенства (соединение выполняется на основе равенства значений в общих столбцах) Участвуют все общие поля В результирующий набор записей включен только один набор общих полей (в итоговой таблице дублирующие столбцы исключаются) Обладает свойством ассоциативности (порядок выполнения соединений не влияет на результат) Деление Результатом деления отношения R1 с атрибутами А и В на отношение R2 с атрибутом В (R1 DIVIDEBY R2) , где А и В простые или составные атрибуты, причем В – атрибут общий, определенный на одном и том же домене, является отношение R с заголовком А и телом, состоящим из кортежей r таких, что в отношении R1 имеются кортежи (r,s), причем множество значений s включает множество значений атрибута В отношения R2. 35. Внешнее соединение OUTER JOINS Возвращает все записи, участвующие в соединении, которые возвращает внутреннее соединение плюс все записи из одного или обоих наборов данных, участвующих в соединении Левое (один из «один ко многим») Возвращает все записи из левой таблицы и те записи из правой, которые с ними совпадают. Если совпадений нет, вместо значений из правой таблицы будут NULL. Правое (все из «многих к одному») Полное (все записи) Возвращает все записи из обеих таблиц: те, которые совпадают, и те, которые не имеют соответствий. Для записей без пары значения недостающих полей будут NULL 36.Законы эквивалентных преобразований реляционной алгебры 37.Реляционное исчисление Для получения результата необходимо указать свойства искомого отношения без конкретизации его получения Запрос Получить номера и города поставщиков, выпускающих деталь Р2 Реляционная алгебра Образовать естественное соединение отношений S и SP по атрибуту П# Выбрать из результата этого соединения кортежи с деталью Р2 Спроецировать результат предыдущей операции на атрибуты П# и Город_П RANGE of IS Исчисление Получить атрибуты П# и Город_П для таких поставщиков, для которых существует поставка в отношении SP с тем же значением атрибута П# и со значением Р2 атрибута Д# Варианты исчислений Исчисление кортежей Исчисление доменов Исчисление кортежей RANGE of IS 38.SQL. История SQL (Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Является информационно-логическим языком, а не языком программирования. Основан на реляционном исчислении ПРЕИМУЩЕСТВА Независимость от конкретной СУБД Наличие стандартов Полноценность как языка для управления данными НЕДОСТАТКИ Нереляционность Сложность Отступления от стандартов Сложность работы с иерархическими структурами ИСТОРИЯ В начале 1970-х годов в компании IBM была разработана экспериментальная СУБД «System R» на основе языка SEQUEL (Structured English Query Language — структурированный английский язык запросов). В 1981 году IBM объявила о своём первом основанном на SQL программном продукте — SQL/DS. в 1986 году первый стандарт языка SQL был принят ANSI (American National Standards Institute) в 1987 году первый стандарт языка SQL был принят ISO (Международной организацией по стандартизации) в (SQL level 1) и уточнён в 1989 году (SQL level 2). 1992 г. - новый расширенный стандарт (ANSI SQL-92 или SQL-2). 1999 г. - следующий стандарт SQL-99 2003 г. - SQL-3 2008 г. - действует в настоящее время 39.SQL. Запросы действия Запросы действия в SQL включают команды INSERT, UPDATE и DELETE, которые изменяют содержимое таблиц. Эти команды позволяют добавлять, изменять или удалять данные. 40.SQL. Команды языка DDL, DML, DCL ЯЗЫК SQL ДЕЛИТСЯ НА ТРИ ЧАСТИ: операторы определения данных (Data Definition Language, DDL) операторы манипуляции данными (Data Manipulation Language, DML) операторы определения доступа к данным (Data Control Language, DCL) КОМАНДЫ ЯЗЫКА DDL CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX. CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE TRIGGER, CREATE USER, CREATE ROLE… КОМАНДЫ ЯЗЫКА DML INSERT, UPDATE, DELETE. КОМАНДЫ ЯЗЫКА DСL GRANT REVOKE SET ROLE 41.SQL. Составные части и методы использования ЯЗЫК SQL ДЕЛИТСЯ НА ТРИ ЧАСТИ: операторы определения данных (Data Definition Language, DDL) операторы манипуляции данными (Data Manipulation Language, DML) операторы определения доступа к данным (Data Control Language, DCL) МЕТОДЫ ИСПОЛЬЗОВАНИЯ SQL Статический (в тексте программы имеются вызовы функций языка SQL, которые жестко включаются в выполняемый модуль после компиляции) Динамический (динамическое построение вызовов SQL-функций и интерпретация этих вызовов) 42.SQL. Управляющие конструкции SQL предоставляет управляющие конструкции, такие как IF, WHILE, и CASE, для реализации логики в запросах. Они используются для выполнения условий и циклических операций.\ Блок BEGIN…END. Выполняет группировку двух и более команд. Используется в конструкциях ветвлений, условий и циклов. Блоки BEGIN…END могут быть вложенными. Конструкция IF…ELSE. Переход по условию. Допускается в каждой ветви исполнять одну команду или использовать блок BEGIN…END. Конструкция CASE…END. Реализует множественное ветвление. Особенностью конструкции является то, что её можно использовать непосредственно в выражениях, например, при выполнении запроса. Конструкция WHILE…. Организует циклы в SQL. Цикл можно принудительно остановить, если в его теле выполнить команду BREAK, и перезапустить из любого места внутри тела цикла с помощью команды CONTINUE 43.SQL. Курсор Курсор в SQL Курсор — это область памяти базы данных, предназначенная для хранения последнего SQL-оператора. Используется для работы с выборкой данных построчно. курсоры сервера действуют на сервере и реализуют программный интерфейс приложений для ODBC, OLE DB, DB_Library; Основные действия при работе с курсором Создание и объявление (DECLARE). Открытие ,т.е. наполнение его данными, которые сохраняются в многоуровневой памяти (OPEN). Выборка данных и изменение с его помощью строк данных; (FETCH). Закрытие ,после чего он становится недоступным для пользовательских программ; (CLOSE). Освобождение курсора, т.е. удаление курсора как объекта, поскольку его закрытие необязательно освобождает ассоциированную с ним память. (DEALLOCATE). Категории курсоров Последовательные и прокручиваемые. Статические, динамические, управляемые ключами. Команды для управления курсором DECLARE — объявление курсора. OPEN — открытие курсора. FETCH — выборка данных из курсора. CLOSE — закрытие курсора. DEALLOCATE — освобождение курсора. 44.SQL. Триггер Триггеры в SQL Триггер – это откомпилированная SQL-процедура, исполнение которой обусловлено наступлением определенных событий внутри реляционной базы данных. Используются для поддержания целостности данных. каждый триггер привязывается к конкретной таблице. ЦЕЛИ, ДОСТИГАЕМЫЕ С ПОМОЩЬЮ ТРИГГЕРОВ: проверка корректности введенных данных и выполнение сложных ограничений целостности данных; выдача предупреждений, напоминающих о необходимости выполнения некоторых действий при обновлении таблицы; накопление аудиторской информации посредством фиксации сведений о внесенных изменениях и тех лицах, которые их выполнили; поддержка репликации. Типы триггеров INSERT TRIGGER — при вставке. UPDATE TRIGGER — при обновлении. DELETE TRIGGER — при удалении. Пример триггера CREATE TRIGGER Триггер_ins ON Сделка FOR INSERT AS... (пример обработки остатков на складе). 45.SQL. Хранимая процедура Хранимые процедуры Хранимая процедура — это набор SQL-команд, сохраняемых в БД в откомпилированном виде. Виды процедур: системные, пользовательские, временные. Этапы создания хранимой процедуры Определение типа процедуры. Планирование прав доступа. Определение параметров. Разработка кода процедуры. Пример создания хранимой процедуры CREATE PROC my_proc AS UPDATE Товар SET Цена = Цена * 0.9 WHERE Сорт = 'Первый'. 46.SQL. Методы защиты данных СИСТЕМА УПРАВЛЕНИЯ ПОЛЬЗОВАТЕЛЯМИ - обязательное условие безопасности данных, хранящихся в любой реляционной СУБД. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЕЙ(после проектирования логической структуры базы данных, связей между таблицами, ограничений целостности) УРОВНИ ДОСТУПА на первом уровне необходимо создать учетную запись пользователя (login) на втором уровне для каждой базы данных SQL-сервера на основании учетной записи необходимо создать запись пользователя (user). Пример: в SQL Server(в 2 этапа) В MySQL учетная запись пользователя создается с помощью команды CREATE USER. В отличие от SQL Server, в MySQL учетная запись сразу включает как уровень сервера, так и доступ к базам данных.(т.е 2 в 1) РОЛЬ ( Дополнительный объект базы данных, который определяет уровень доступа к объектам баз данных или базам данных) Больше ничего не написано, но там ссылка на сайт – осн.информация с ссылки про SQL Server там Существует два типа ролей уровня базы данных: предопределенные роли базы данных, предопределенные в базе данных и определяемые пользователем роли базы данных, которые можно создать. Фиксированные роли базы данных определяются на уровне базы данных и существуют в каждой базе данных. 47.SQL. Индексы Индекс – это набор ссылок, упорядоченных по определенному столбцу таблицы, который в данном случае будет называться индексированным столбцом. Хотя индекс и связан с конкретным столбцом (или столбцами) таблицы, все же он является самостоятельным объектом базы данных. Физически индекс –всего лишь упорядоченный набор значений из индексированного столбца с указателями на места физического размещения исходных строк в структуре базы данных. типы индексов кластерные индексы; некластерные индексы; уникальные индексы. Некластерные индексы – наиболее типичные представители семейства индексов, они не перестраивают физическую структуру таблицы, а лишь организуют ссылки на соответствующие строки. Кластерный индекс При его определении в таблице физическое расположение данных перестраивается в соответствии со структурой индекса. Логическая структура таблицы в этом случае представляет собой скорее словарь, чем индекс. Данные в словаре физически упорядочены, например по алфавиту. Уникальный индекс является своеобразной надстройкой и может быть реализован как для кластерного, так и для некластерного индекса. В одной таблице может существовать один уникальный кластерный и множество уникальных некластерных индексов. Способы определения индекса ⁃ автоматическое создание индекса при создании первичного ключа; ⁃ автоматическое создание индекса при определении ограничения целостности UNIQUE; ⁃ создание индекса с помощью команды CREATE INDEX. Создать уникальный кластерный индекс для таблицы Клиент по столбцу Фамилия в первичной группе файлов. CREATE UNIQUE CLUSTERED INDEX index_klient1 ON Клиент (Фамилия) WITH DROP_EXISTING ON PRIMARY 48.Оператор SELECT. Использование агрегатных функций. Использование группировок. Использование имён корреляции. Использование сортировок Оператор SELECT поддерживает агрегатные функции (SUM, AVG), группировку (GROUP BY), псевдонимы для удобства работы с данными и сортировку (ORDER BY). Эти возможности помогают анализировать и упорядочивать данные. 49.Оператор SELECT. Использование подзапросов. Использование объединения, пересечения и разности Подзапросы позволяют вложенные запросы для получения данных, например, в WHERE. Операторы объединения (UNION), пересечения (INTERSECT) и разности (EXCEPT) комбинируют или разделяют результаты. UNION добавляет результаты второго запроса к результатам первого. По умолчанию оператор удаляет повторяющиеся строки из результирующего набора. Если указан параметр ALL, то результат будет содержать все строки, в том числе повторяющиеся. INTERSECT возвращает все строки, которые есть как в результате первого запроса, так и в результате второго запроса. Дублирующиеся строки отфильтровываются, если не указано ALL. EXCEPT возвращает все строки, которые включены в результат первого запроса, но не входят в результат второго запроса. ( Иногда это называют разницей двух запросов). Дублирующиеся строки отфильтровываются, если не указано ALL. 50.Оператор SELECT. Предикат EXIST. Предикат LIKE. Предикат IN. Предикат BETWEEN. Предикат NULL. Предикат в SQL — это выражение, которое вычисляет TRUE, FALSE или UNKNOWN. Он используется для фильтрации, сравнения или манипуляции с данными в запросах SQL. Предикаты применяются в условиях поиска предложений WHERE и HAVING, в условиях соединения предложений FROM и других конструкциях, где требуется логическое значение EXIST проверяет наличие записей. LIKE ищет шаблоны в строках. IN сравнивает значения со списком. BETWEEN задаёт диапазоны. NULL проверяет на отсутствие значений. 51.Порядок выполнения оператора SELECT Запрос выполняется в следующем порядке: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. Это обеспечивает фильтрацию, группировку и выборку данных. 52.Оптимизация реляционных запросов. Аспекты. План выполнения запроса Аспекты оптимизации Внутренняя задача СУБД, которая заключается в определении наиболее оптимального (эффективного) способа выполнения реляционных запросов. Задача программиста (или квалифицированного пользователя): заключается в написании таких реляционных запросов, для которых СУБД могла бы использовать более эффективные способы нахождения данных. Цель СУБД -Выполнить запрос, причём сделать это как можно более эффективным способом. -Под оптимизацией понимается построение квазиоптимального процедурного плана выполнения декларативного запроса. План выполнения запроса Построением этого плана занимается оптимизатор. План - последовательность шагов, на каждом из которых либо физически извлекаются данные из памяти, либо выполняется подготовительная работа. Последовательность выполнения запроса 53.Критерии оптимизации запросов Наилучшая общая производительность системы. Минимальное время реакции – время, необходимое для обработки и выдачи первой строки. Минимальные затраты времени на обработку всех строк, к которым обращается данная команда. 54.Методы оптимизации запросов По синтаксису (по правилам, Rule) По стоимости (Cost) (использует статистическую информацию о данных в таблице и ранее использовавшиеся планы запросов) Метод оптимизации, основанный на синтаксисе План составляется на основании существующих путей доступа и их рангов. Все пути доступа ранжируются на основании знаний о правилах и последовательности осуществления этих путей. Ранг пути доступа определяется на основании знаний о последовательности реализации этого пути. Например, самый быстрый способ доступа – это чтение по КБД: если он известен, то это одно физическое чтение; поиск конкретного значения через индекс (ранг 9) обычно занимает меньше времени, чем поиск в закрытом интервале значений (ранг 10). Метод оптимизации, основанный на синтаксисе Учитывает ранги путей доступа. Если для какой-либо таблицы существует более одного пути доступа, то выбирается тот путь, чей ранг выше, т.к. при прочих равных условиях он выполняется быстрее, чем путь с более низким рангом. Однако, оптимизации по синтаксису может приводить к построению неоптимальных планов выполнения запроса. Метод оптимизации, основанный на стоимости Оптимизатор сначала строит несколько возможных планов выполнения запроса (обычно, 2-3 плана). Для каждого из построенных планов рассчитывается его стоимость. (Стоимость – это оценка ожидаемого времени выполнения запроса с использованием конкретного плана выполнения). Из множества возможных планов выполнения запроса оптимизатор в соответствии с критерием выбирает лучший план. 55.Рекомендации по написанию запросов (оптимальных запросов) 1. Если запрос содержит несколько условий, то они должны располагаться в порядке уменьшения селективности. 2. В запросе, который реализует соединение двух и более таблиц, эти таблицы должны стоять в списке FROM в порядке уменьшения количества записей в них, а в части WHERE первым должно стоять условие на основную (родительскую) таблицу. 3. Если запрос содержит условие с неопределённой лидирующей частью типа (field LIKE'%...') или (field LIKE'_...'), то необходимо дополнять это условие так, чтобы система могла воспользоваться индексом по полю field (если он существует). 4. Если запрос содержит условие для проиндексированного поля маленькой таблицы, которая может быть считана за одно обращение к памяти, то запрос нужно сформулировать так, чтобы система игнорировала индекс. 5. Следует использовать UNION ALL вместо UNION, если в объединяемых отношениях отсутствуют одинаковые записи (или наличие одинаковых записей некритично). 6. Следует использовать IN вместо EXISTS, если EXISTS не оптимизируется. 7. Если оптимизатор плохо оптимизирует операцию "или" (OR), то можно заменять её операцией UNION при наличии индексов. 8. Условие "не равно" ('') также подавляет использование индекса. Поэтому, если значения индексированного столбца распределены неравномерно, следует заменять его комбинацией условий '' реализовывать с помощью UNION. 9. Некоторые оптимизаторы будут использовать индексное сканирование, если запрос содержит раздел ORDER BYс указанием индексированного столбца. 10. Условие op, где op–операция, также не позволяют использовать индекс. Из выражений надо по возможности вынести в левую часть поле, по которому есть индекс. 56.Этапы разработки базы данных. Критерии оценки качества логической модели Логическое проектирование Определение числа и структуры таблицы Формирование запросов к БД Определение типов отчетных документов Разработка алгоритмов обработки информации Создание форм для ввода и редактирования данных И т.п. Методология логического проектирования данных 1. Выявить и смоделировать сущности 2. Выявить с смоделировать связи между сущностями 3. Выявить и смоделировать атрибуты 4. Указать уникальный идентификатор для каждой сущности 5. Провести нормализацию (ДОП ИНЕТ): Этапы разработки базы данных: Модель предметной области Модель предметной области - это наши знания о предметной области. Знания могут быть как в виде неформальных знаний в мозгу эксперта, так и выражены формально при помощи каких-либо средств. Логическая модель данных Логическая модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью. Примеры понятий - "сотрудник", "отдел", "проект", "зарплата". Физическая модель данных Физическая модель данных описывает данные средствами конкретной СУБД. Отношения, разработанные на стадии формирования логической модели данных, преобразуются в таблицы, атрибуты становятся столбцами таблиц, для ключевых атрибутов создаются уникальные индексы, домены преображаются в типы данных, принятые в конкретной СУБД. Собственно база данных и приложения Критерии оценки: Адекватность базы данных предметной области Легкость разработки и сопровождения базы данных Скорость выполнения операций обновления данных (вставка, обновление, удаление кортежей) Скорость выполнения операций выборки данных 57.Первая нормальная форма. Функциональная зависимость Отношение находится в 1НФ, если все его атрибуты являются простыми (имеют единственное значение) В данном случае поле "Курсы" не является атомарным, так как оно содержит несколько значений. Чтобы привести таблицу в 1НФ, нужно разделить курс на отдельные строки. 58.Вторая нормальная форма Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа В этой таблице "Название товара" зависит только от "Код товара", а не от всего первичного ключа (Код продажи, Код товара). Это частичная зависимость, и таблица не находится во 2НФ. Для приведения к 2НФ нужно создать отдельную таблицу для товаров (код товара, название товара) 59.Третья нормальная форма. Алгоритм нормализации. Третья усиленная форма 3 НФ Отношение находится в 3НФ, если оно находится в 2НФ и ни один неидентифицирующий атрибут не зависит от каких-либо других неидентифицирующих атрибутов (нет транзитивных зависимостей) В таблице "Сумма" зависит от "Цена товара" и "Количество", то есть, существует транзитивная зависимость между атрибутами. Создать таблицу продажи (код прод, код товара, кол-во), таблица товара (код товара, цена), таблица сумма (код прод, сумма) 3-ая усиленная НФ Отношение находится в БКНФ (3-ей усиленной НФ), если оно находится в 3НФ и в нем отсутствуют зависимости ключей от неключевых атрибутов Алгоритм нормализации: (хз) Такого в презентациях не нашла конкретно, но предполагаю, что это приведение к 3НФ. Поэтому пример из курсача. R2 – Курсы (id_lesson, lesson_name, description, cost, lvl_draw, timetable, lenght) Все атрибуты простые и имеют единственное значение, следовательно, отношение находится в 1НФ. Первичный ключ id_lesson, т.е. Х= id_lesson. Проверим атрибуты, так чтобы: Y: X → Y, Y X: Y = (lesson_name, description, cost, lvl_draw, timetable, lenght) Все атрибуты однозначно определяются первичным ключом, значит отношение находится во 2НФ. В отношении нет транзитивных связей между атрибутами, следовательно, отношение находится в 3НФ. 60.Четвертая нормальная форма Отношение находится в 4НФ в том и только том случае, когда существует многозначная зависимость А=> В, а все остальные атрибуты отношения функционально зависят от А Здесь "Товары" и "Поставщики" зависят от "Код магазина", но их зависимости независимы. Для 4НФ нужно разделить таблицу на несколько, чтобы избежать таких зависимостей. 61.Пятая нормальная форма Отношение находится в 5НФ (или нормальной форме проекции соединения) в том и только том случае, когда любая зависимость соединения в R следует из существования некоторого возможного ключа в R Пример 5НФ: Если у вас есть таблица, которая хранит информацию о продавцах, клиентах и товарах, то это может привести к ненужному дублированию данных, если таблица будет иметь слишком много соединений. 5НФ устраняет такие избыточности, разбивая таблицу на более мелкие связи. 62.Дополнительные нормальные формы (шестая и доменно- ключевая) Шестая нормальная форма устраняет все зависимости между атрибутами, включая временные. Доменно-ключевая нормальная форма требует, чтобы все ограничения в таблице базировались на ключах и доменах. 63.Объектно-ориентированные базы данных: Объектно-ориентированные базы данных – базы данных, в которых информация представлена в виде объектов, как в объектно- ориентированных языках программирования. Объектно-ориентированная база данных (ООБД) — база данных, в которой данные моделируются в виде объектов, их атрибутов, методов и классов. a. Активные и дедуктивные базы данных. БД называется активной, если СУБД по отношению к ней выполняет не только те действия, которые явно указывает пользователь, но и дополнительные действия в соответствии с правилами, заложенными в саму БД. Дедуктивная БД – это система баз данных, которая может делать выводы (то есть заключать дополнительные факты) на основе правил и фактов хранящихся в (дедуктивной) базе данных. Дедуктивная БД состоит из двух частей: экстенциональной, содержащей факты, и интенциональной, содержащей правила для логического вывода новых фактов на основе экстенциональной части и запроса пользователя. b. Достоинства. Недостатки. Достоинства: 1. ООБД позволяют представлять сложные объекты более непосредственным образом, нежели реляционные системы. 2. Определение пользовательских абстракций. ООБД предоставляют возможность определять новые абстракции и управлять реализацией таких абстракций. 3. Облегченное проектирование некоторых связей. 4. Отсутствие потребности в определяемых пользователями ключах. 5. Наличие предикатов сравнения (дополнительные типы сравнения). 6. Меньшая потребность в соединениях. 7. Выигрыш в производительности. В большинстве ООБД при загрузке объекта в память хранимые в этом объекте идентификаторы объектов преобразуются в указатели по памяти. 8. Объектная алгебра. Объектная алгебра определяет пять фундаментальных операций, сохраняющих объекты: union, difference, select, generate и map. Недостатки: 1. Недостаточность средств для оптимизации запросов. 2. Отсутствие стандартной алгебры запросов. 3. Отсутствие средств обеспечения запросов. 4. Отсутствие поддержки представлений. 5. Проблемы с безопасностью. 6. Отсутствие поддержки динамических изменений определений классов. 7. Ограниченная поддержка ограничений целостности; 8. Ограниченные возможности настройки производительности. 9. Недостаточная поддержка сложных объектов. 10.Ограниченная интеграция с объектно-ориентированными системами программирования. c. Язык Smalltalk. Объектно-ориентированный язык программирования с динамической типизацией, основанный на идее посылки сообщений, разработанный в Xerox PARC Аланом Кэйем, Дэном Ингаллсом, Тедом Кэглером, Адель Голдберг, и другими в 1970-х годах. d. Объект. Поведенческий аспект объектов. Каждый объект имеет состояние и поведение. Состояние объекта - набор значений его атрибутов. Поведение объекта - набор методов (программный код), оперирующих над состоянием объекта. Значение атрибута объекта — это тоже некоторый объект или множество объектов. Состояние и поведение объекта инкапсулированы в объекте; взаимодействие между объектами производится на основе передачи сообщений и выполнении соответствующих методов. Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Поведенческий аспект объектов: Формальный аппарат и системная поддержка совместного моделирования и гарантирования согласованности этих структурной (статической) и поведенческой (динамической) частей. В среде ООБД проектирование, разработка и сопровождение прикладной системы становится процессом, в котором интегрируются структурный и поведенческий аспекты. e. Объектно-ориентированные модели данных. два уровня моделирования объектов: нижний (структурный) и верхний (поведенческий) ООБД — это набор элементов данных, связанных отношениями “входит в класс” или “является атрибутом” может рассматриваться как ориентированный граф четкое разделение схемы БД и самой БД в качестве первичных концепций схемного уровня ООБД выступают типы и классы 64.Объектно-реляционные базы данных: Объектно-реляционная СУБД (ОРСУБД)—реляционная СУБД(РСУБД), поддерживающая некоторые технологии, реализующие объектно-ориентированный подход: объекты, классы и наследование реализованы в структуре баз данных и языке запросов. Объектно-реляционными СУБДявляются, например, широко известные OracleDatabase, Informix, DB2, PostgreSQL. a. Манифест систем баз данных третьего поколения. 1990 год Майкл Стоунбрейкер Принципы: помимо традиционных услуг по управлению данными, СУБД третьего поколения должны обеспечивать поддержку более богатых структур объектов и правил; СУБД третьего поколения должны включить в себя СУБД второго поколения; СУБД третьего поколения должны быть открыты для других подсистем. b. Поколения СУБД. Первое поколение относится к дореляционнымсистемам, таким как IMS, СУБД второго поколения —это системы SQL, СУБД третьего поколения —те, что придут (пришли) за ними c. Informix Universal Server, Oracle8, DB2 Universal Database. INFORMIXUNIVERSALSERVER Интеллектуальные большие объекты Определение новых базовых типов данных Индивидуальные типы Типы со скрытой структурой Специальные методы хранения, поиска и индексации Составные типы данных Тип данных со структурой записи Типы коллекций (множеств, мультимножеств и списков ) Модули DataBlade ORACLE8 Объектные типы и объектные таблицы аналог типа записи можно определить и набор методов типа строки объектных таблиц -строчные объекты (rowobjects). Типы коллекций Табличный тип (тип одного из столбцов) Тип массива (переменного размера) DB2 UNIVERSALDATABASE Компания IBM Вконце 1998 Базовые идеи объектно-реляционных расширений DB2: Объектная инфраструктура Реляционные расширители Создание иерархий типизированных таблиц Дополнительные объектно-реляционные возможности: Структура, поведение, наследование Создание иерархий типизированных таблиц d. Возможности. n-мерное объектно-ориентированное моделирование; двухмерное реляционное моделирование; наследование; инкапсуляция; постоянство существования объектов ( objectpersistence); композиция классов; полиморфизм; навигационный доступ к объектам; реляционный доступ (соединения); непроцедурный доступ через запросы; интерфейсы для традиционных языков третьего поколения; интерфейсы для объектных языков третьего поколения; интерфейсы для языков четвертого поколения; независимое от языков хранение данных; независимость служб баз да?

Use Quizgecko on...
Browser
Browser