- •Концепция баз данных
- •Не реляционные модели данных. Примеры реализации.
- •Реляционная модель данных. Таблицы, записи, поля, связи.
- •Нормализация баз данных
- •Достижения реляционной алгебры
- •Особенности языка sql
- •Преимущества и недостатки sql
- •Реляционные операции.
- •Расширения, диалекты и средства интеграции языка sql
- •Группы операторов sql и операторы, входящие в группы.
- •Sql и реляционная модель. Компромиссы в технических решениях
- •Базы данных и субд. Определение реляционной субд.
- •Развитие реляционных субд. Современные субд. Классификация субд.
- •Основные функции субд (в скобочках в основном дополнение пункта, а не расшифровка)
- •Транзакции. Свойства транзакции.
- •Поддержка транзакций в sql.
- •Механизмы транзакций. Снапшот.
- •Блокировки и клинчи. Разрешение клинчей
- •Журнализирование. Зачем нужны журналы транзакций.
- •Восстановление субд после сбоев.
- •Управление внешней памятью.
- •Словарь субд. Данные в словаре субд.
- •Архитектура субд. Взаимодействие субд с клиентом.
- •Создание таблиц и атрибутов. Ограничение таблиц и атрибутов.
- •Типы связей между сущностями и их реализация в реляционной субд.
- •Ключи, как средство создания связей, первичные и внешние ключи.
- •Ключи и атрибуты. Суррогатные ключи как идеальные первичные ключи.
- •Вопрос 31 про ключи.
- •Ключи и индексы.
- •Использование индексов и основные сведения о индексах.
- •Удаление записей и целостность базы данных.
- •Секционирование и кластеризация таблиц.
- •Основные цели и основной результат проектирования бд.
- •Представление и их место в бд.
- •Роли пользователей субд. Пользователи, роли и разграничение прав доступа.
- •Хранимые (встроенные) процедуры субд. Типы хранимых процедур.
- •Триггеры и их использование в субд.
- •NoSql базы, особенности и место в информационных системах.
- •Особенности тестирования программ, написанных на языке sql.
- •Администрирование субд. Основные функции администратора субд.
- •Обеспечение живучести и отказоустойчивости. Копирование и репликация.
Расширения, диалекты и средства интеграции языка sql
Поскольку SQL не является привычным процедурным языком программирования (то есть не предоставляет средств для построения циклов, ветвлений и т. д.), вводимые разными производителями расширения касались в первую очередь процедурных расширений. Это хранимые процедуры (stored procedures) и процедурные языки-«надстройки». Практически в каждой СУБД применяется свой процедурный язык, в частности, в Oracle Database используется PL/SQL (поддерживается также в DB2 и Timesten[en]), в Interbase и Firebird — PSQL, в DB2 — SQL PL[en], в Microsoft SQL Server и Adaptive Server Enterprise — Transact-SQL, в PostgreSQL — PL/pgSQL.
PL/SQL - язык Oracle четвертого поколения, объединяющий структурированные элементы процедурного языка программирования с языком SQL, разработанный специально для организации вычислений в среде клиент/сервер. Он позволяет передать на сервер программный блок PL/SQL, содержаший логику приложения, как оператор SQL, одним запросом. Используя PL/SQL, можно значительно уменьшить объем обработки в клиентской части приложения и нагрузку на сеть. Например, может понадобиться выполнить различные наборы операторов SQL в зависимости от результата некоторого запроса. Запрос, последующие операторы SQL и операторы условного управления могут быть включены в один блок PL/SQL и пересланы серверу за одно обращение к сети.
Функции. Часть логики приложения ориентированной на выполнение конкретного комплекса операций на сервере, результат которых возвращается в виде значения функции. Откомпилированные функции и их исходные тексты содержатся в базе данных.
Хранимые процедуры. Часть логики приложения, особенно нуждающаяся в доступе к базе данных, может храниться там, где она обрабатывается (на сервере). Хранимые процедуры не возвращают значения результата, обеспечивают удобный и эффективный механизм безопасности. Откомпилированные хранимые процедуры и их исходные тексты содержатся в базе данных.
Пакеты. Часть логики приложений: фукций и пакетов, предназначеных для решения задач в рамках одного модуля (подсистемы) АИС.
Триггеры базы данных. Можно использовать триггеры, чтобы организовать сложный контроль целостности, выполнять протоколирование (аудит) и другие функции безопасности, реализовать в приложениях выдачу предупреждений и мониторинг.
Декларативная целостность. Ограничения активизируются сервером всякий раз, когда записи вставляются, обновляются или удаляются. В дополнение к ограничениям ссылочной целостности, которые проверяют соответствие первичного и внешнего ключей, можно также накладывать ограничения на значения, содержащиеся в столбцах таблицы. Поддержка целостности на сервере уменьшает размер кода клиентской части, необходимого для проверки допустимости данных, и увеличивает устойчивость бизнес- модели, определенной в базе данных.
Transact-SQL (T-SQL) — процедурное расширение языка SQL, созданное компанией Microsoft (для Microsoft SQL Server) и Sybase (для Sybase ASE). SQL был расширен такими дополнительными возможностями как:
управляющие операторы,
локальные и глобальные переменные,
различные дополнительные функции для обработки строк, дат, математики и т. п.,
поддержка аутентификации Microsoft Windows
Язык Transact-SQL является ключом к использованию MS SQL Server. Все приложения, взаимодействующие с экземпляром MS SQL Server, независимо от их реализации и пользовательского интерфейса, отправляют серверу инструкции Transact-SQL.
PL/SQL - Oracle
SQL PL - DB2
Transact-SQL - MS SQL Server
SYBASE (ASE)
PL/pgSQL - PostgreSQL
Из лекции (расширения и диалекты):
Из лекции (средства интегрирования):
Язык Программное средство
программирования
Java JDBC (Java Database Connectivity) (JavaSoft)
C++ RogueWave SourcePro DB
C/C++ Pro*C (Oracle)
C API (MySQL)
DB2 Call Level Interface (IBM)
C# ADO.NET (Microsoft)
VisualBasic ADO.NET (Microsoft)
