- •Введение в базы данных
- •Основные понятия и определения
- •Традиционные файловые системы
- •Системы с базами данных
- •История развития субд
- •Обзор современных субд
- •Основные термины:
- •Архитектура баз данных
- •Уровни представления баз данных
- •Схемы и подсхемы бд
- •Независимость от данных
- •Модели данных
- •Архитектура баз данных и субд
- •Функции и компоненты субд
- •Понятие целостности данных
- •Компоненты субд
- •Многопользовательские субд и языки баз данных
- •Архитектура многопользовательских субд
- •Языки баз данных
- •Реляционные базы данных
- •Используемая терминология
- •Структуры данных
- •Свойства отношений
- •Реляционные ключи
- •Манипулирование данными
- •5.5.1. Специальные реляционные операции
- •5.5.2. Традиционные операции над множествами
- •Пример манипулирования данными
- •Реляционная алгебра
- •Реляционное исчисление
- •Нормализация отношений в реляционных базах данных
- •Нормализация отношений
- •Аномалии вставки
- •Аномалии удаления
- •Аномалии обновления
- •Функциональные зависимости
- •Процесс нормализации
- •Первая нормальная форма (1нф)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (3нф)
- •Нормальная форма Бойса-Кодда (нфбк)
- •Четвертая нормальная форма (4нф)
- •Пятая нормальная форма (5нф)
- •Проектирование реляционных баз данных
- •Подходы к проектированию бд
- •Понятия er- модели
- •Использование case-инструментов
- •Методология проектирования бд с помощью Case-инструментов silverrun
- •8.1.1. Использование silverrun-bpm
- •8.1.2. Контекстная диаграмма
- •Детализирующая диаграмма
- •8.1.4. Порядок работы с silverrun-врм
- •8.1.5. Использование silverrun-erx
- •8.1.6. Использование silverrun-rdm
- •Реляционные базы данных и субд InterBase
- •Субд InterBase, ее основные возможности и область применения
- •Типы данных
- •9.2.1. Целочисленные типы
- •9.2.2. Вещественные типы данных
- •Типы данных с фиксированной точкой
- •9.2.4. Типы данных для хранения текста
- •Типы для хранения даты и времени
- •Тип данных blob
- •Массивы
- •Язык реляционных баз данных sql
- •Sql и его история
- •Объекты реляционной базы данных
- •Операторы манипулирования данными
- •Агрегирование данных при выборке
- •Представления
- •Новые встроенные функции
- •Диалект базы данных
- •Типы с фиксированной точкой
- •Принципы физической организации баз данных
- •Безопасность данных и субд
- •Безопасность в операционной среде
- •Защита сервера
- •Безопасность на уровне базы данных
- •Файл конфигурации Firebird
- •Объектные субд
- •Сильные стороны реляционной модели субд
- •Недостатки реляционных субд
- •Недостатки оосубд
- •Заключение
- •Список литературы
Языки баз данных
Внутренний язык СУБД для работы с данными состоит из двух частей: языка определения данных (DDL) и языка управления данными (DML). Язык DDL используется для определения схемы базы данных, а язык DML – для чтения и обновления данных, хранимых в базе. Эти языки называются подъязыками данных, поскольку в них отсутствуют конструкции для выполнения всех вычислительных операций, обычно используемых в языках программирования высокого уровня.
Во многих СУБД предусмотрена возможность внедрения операторов подъязыка данных в программы, написанные на таких языках программирования высокого уровня, как Pascal или C. В этом случае язык высокого уровня принято называть базовым языком (host language). Перед компиляцией файла программы на базовом языке эти операторы подъязыка предварительно удаляются и заменяются на вызовы соответствующих функций СУБД. Затем этот предварительно обработанный файл компилируется обычным образом в объектный модуль, который затем компонуется с библиотекой, содержащей вызываемые в программе функции СУБД.
Язык определения данных – DDL, является описательным языком, который позволяет АБД или пользователю описать и поименовать сущности, необходимые для работы некоторого приложения, а также связи, имеющиеся между различными сущностями.
Схема базы данных состоит из набора определений, выраженных на специальных языке определения данных – DDL. Язык DDL используется как для определения новой схемы, так и для модификации уже существующей. Этот язык нельзя использовать для управления данными.
Результатом компиляции DDL-операторов является набор таблиц, хранимых в особых файлах, в которых хранятся данные, описывающие объекты базы данных – метаданные. Такой особый файл называется системным каталогом (иногда каталогом данных).
Метаданные включают определения записей элементов данных, а также другие объекты, необходимые пользователям или для работы СУБД. Перед доступом к реальным данным, СУБД обычно обращается к системному каталогу.
Язык управления данными – DML, это язык, содержащий набор операторов для поддержки основных операций манипулирования данными, содержащимися в базе.
К операциям управления данными относятся:
вставка в базу данных новых сведений;
модификация сведений, хранимых в базе данных;
извлечение сведений, содержащихся в базе данных;
удаление сведений из базы данных.
Одна из основных функций СУБД заключается в поддержке языка манипулирования данными (ЯМД), с помощью которого пользователь может создавать выражения для выполнения перечисленных выше операций с данными.
Языки DML отличаются базовыми конструкциями извлечения данных. Следует различать два типа языков DML: процедурный и непроцедурный. Основное отличие между ними заключается в том, что процедурные языки указывают то, как можно получить результат оператора языка DML, тогда как непроцедурные языки описывают то, какой результат будет получен. Как правило, в процедурных языках записи БД рассматриваются по отдельности, тогда как непроцедурные языки оперируют целыми наборами данных.
Процедурные языки DML – это языки, которые позволяют сообщить системе о том, какие данные необходимы, и точно указать, как их можно извлечь.
С помощью процедурного языка программист указывает на то, какие данные ему необходимы, и как их можно получить. Программист должен определить все операции доступа к данным (осуществляемые посредством вызова соответствующих процедур), которые должны быть выполнены для получения требуемой информации. Обычно такой процедурный язык позволяет извлечь запись, обработать ее, и, в зависимости от полученных результатов, извлечь другую запись, которая должна быть подвергнута аналогичной обработке, и т.д. Подобный процесс извлечения данных продолжается до тех пор, пока не будут извлечены все запрашиваемые данные.
Языки DML сетевых и иерархических СУБД обычно являются процедурными.
Непроцедурные языки DML – это языки, которые позволяют указать лишь то, какие данные требуются, но не то, как их следует извлекать.
Непроцедурные языки позволяют определить весь набор требуемых данных с помощью одного оператора извлечения или обновления. С помощью этих языков пользователь указывает, какие данные ему нужны без определения способа их получения. СУБД транслирует выражение на языке DML в процедуру (или набор процедур), которая обеспечивает манипулирование затребованным набором записей.
Данный подход освобождает пользователя от необходимости знать детали внутренней реализации структур данных и особенности алгоритмов, используемых для извлечения и возможного преобразования данных. В результате работа пользователя получает определенную степень независимости от данных. Непроцедурные языки часто также называют декларативными языками.
Реляционные СУБД обычно включают поддержку непроцедурных языков DML – чаще всего это бывает язык структурированных запросов SQL или язык запросов по образцу QBE (Query-by-Example).
Непроцедурные языки обычно проще понимать и использовать, чем процедурные языки DML, поскольку пользователем выполняется меньшая часть работы, а СУБД – большая.
