
- •Независимость данных. Трехуровневая модель описания данных.
- •Основные функции субд. Архитектуры приложений, использующих субд.
- •Модель данных сущность-связь: сущности, атрибуты и множества сущностей.
- •Модель данных сущность-связь: связи. Использование сущностей и связей при проектировании бд.
- •Модель данных сущность-связь: наследование, агрегирование. Использование при проектировании бд.
- •Модель данных сущность-связь: ограничения целостности.
- •Модель данных сущность-связь: Диаграммные и предикатные представления.
- •Реляционная модель данных: отношения, таблицы, домены, атрибуты. Описание таблиц и представлений в языке sql.
- •Реляционная модель данных: алгебраические операции.
- •Реляционная модель данных: исчисления. Эквивалентность алгебры и исчислений.
- •Объектно-ориентированные базы данных: типы данных. Идентификация и изменяемость.
- •Объектно-ориентированные базы данных: алгебраические операции.
- •Отображение модели сущность-связь в реляционную.
- •Иерархическая и сетевая модели данных, отображения в другие модели.
- •Функциональные зависимости и аномалии вставки, обновления, удаления.
- •Нормализация: декомпозиция отношений. Нормальные формы.
- •Язык запросов sql: операции реляционной алгебры.
- •Первичные и вторичные индексы. Плотные и неплотные индексы.
- •Протокол установки замков для дерева.
- •Мультигранулярные замки.
- •Уровни изоляции в sql и оптимистические замки.
- •Многоверсионные протоколы управления транзакциями.
- •Оптимистические протоколы управления транзакциями.
- •Распределенные субд: фиксация транзакций.
- •Хранение и использование xml в базах данных.
- •Темпоральные расширения моделей данных.
Модель данных сущность-связь: Диаграммные и предикатные представления.
Диаграмма – прямоугольники, ромбы и овалы.
Предикаты - множество сущностей описывается предикатом, аргументы которого соответствуют атрибутам сущностей. Множество связей описывается предикатом, аргументы которого представляют атрибуты связи и ключи связываемых сущностей. Ограничения целостности описываются дополнительными предикатами (как?). Естественным образом получаются оу, осц, од и оов, но непонятно, как делать кратность связи (понятно, что внутренность предиката не важна, важен только набор аргументов). Предикатное представление полезно для автоматической обработки больших схем. Эквивалентно диаграммному представлению.
Пример: Producer(name, address, group), Consumer(name, address, account), Product(model), Feature(name), Has(product, feature, value), Buys(consumer, product), Makes(producer, product).
Реляционная модель данных: отношения, таблицы, домены, атрибуты. Описание таблиц и представлений в языке sql.
Эффективные реализации SQL: 1990. Реляционная модель никогда не была реализована в промышленных системах.
Домены: множества, элементы которых рассматриваются как скалярные значения.
Отношения: предикаты, заданные на прямом произведении (не обязательно разных) доменов. Неформально отношения — прямоугольные таблицы с атомарными элементами.
Заменив предикат на множество, являющееся прообразом значения TRUE, записываем это множество в виде перечисления и получаем таблицу. Её колонки соответствуют атрибутам, строки - экземплярам т.е. кортежам (атрибуты: аргументы отношений, кортежи: элементы области определения отношения). Позиционные или именованные атрибуты?
Домены D1, D2,…, атрибуты A1, A2, …, A, B, C. Кортежи t = <a1, a2,…,an> , ai ∈ Ai. Формально R : D1 х D2 .. Dn → {0,1} или R ⊂ D1 х D2 .. Dn. Отношения являются множествами, поэтому все элементы (кортежи) различны. Rlessthan = D1 = D2 = {1, 2, 3, 4} {< 1, 2 >, < 1, 3 >, < 1, 4 >, < 2 , 3 >, < 3, 4 >}
Пример: Сотрудник(имя, отдел, начальник, дата_рожд, дата_начала_работы)
Множество истинности: {(Анна, 11. Юрий, 1980, 1999), (Виктор, 11, Юрий, 1970, 2003), (Георгий,15, Ирина, 1960, 2005), (Дмитрий, 12, Марина, 1970,2003)}
Отношения соответствуют таблицам, атрибуты – колонкам, кортежи – строкам.
Отношения являются множествами, поэтому все элементы (кортежи) различны. На практике первым теряется именно это свойство. Ни одна из реальных систем не проверяет строки на уникальность.
Второе различие между теорией и практикой касается операций. Во многих (устаревших и отживающих свой век) системах нет необходимых операций над данными. В модели плоских файлов используется табличная структура, но не используются обычные реляционные операции (и даже отсутствует специализированный язык запросов).
Третье отличие реляционной модели от практической реализации, которое медленно уходит в прошлое, заключается в том, что в реляционной модели домен — это набор возможных значений определённого типа. Помимо прочего данное определение означает, что значения из разных доменов нельзя сравнивать между собой (например, невозможно сравнить вес с объёмом). В практических системах тоже используются типы, но они более абстрактны (числа, строки, даты и т.д.), при этом мы можем сравнить любое число с любым.
Для приложений желательно, чтобы порядок колонок был несущественен. Колонки (и атрибуты) идентифицируются не порядковыми номерами, а именами атрибутов.
[ По Молине утверждение о том, что порядок атрибутов неважен, не совсем верно. Там говорится, что мы вольны менять его как нам заблагорассудится, однако, для удобства в любой момент времени мы этот порядок фиксируем, таким образом, получая возможность представлять данные как набор кортежей ] (стр 88)
Представление (view) — виртуальная (логическая) таблица, представляющая собой поименованный запрос (алиас к запросу), который будет подставлен как подзапрос при использовании представления.
Материализо́ванное представле́ние — физический объект базы данных, содержащий результат выполнения запроса.
Табличная модель данных SQL: в быту называется реляционной, понятие домена не существует, атрибуты -> колонки, отношения -> таблицы, кортежи -> строки, не требуется уникальность строк, операции отличаются от реляционных. (чем?) Например, нет деления