Бондарев (1208177), страница 3
Текст из файла (страница 3)
Классификация СУБД происходит по различным признакам классификации. По степени универсальности выделяют СУБД общего и специального назначения. СУБД общего назначения не нацелены на информационные потребности отдельной группы пользователей или на какую-либо конкретную предметную область. Функциональные возможности таких СУБД обеспечивают безболезненную эволюцию построенных на их основе автоматизированных информационных систем в рамках их жизненного цикла. Однако в редких случаях доступные СУБД общего назначения не могут добиться требуемой производительности или обеспечить заданные ограничения по объёму памяти, предоставляемой для хранения БД. В таком случае необходимо разрабатывать специализированную СУБД для данного конкретного применения. Примером такой СУБД может служить система IMBASE, которая используется для автоматизации конструкторских и проектных разработок.
1.7.2 Реляционные СУБД и язык SQL
Реляционные и объектно-реляционные СУБД являются одними из самых распространенных систем. Они представляют собой таблицы, у которых каждый столбец (поле) упорядочен и имеет свое уникальное название. Последовательность строк (записи) определяется последовательностью ввода информации в таблицу. При этом обрабатывание столбцов и строк может происходить в любом порядке. Таблицы с данными связаны между собой специальными отношениями, благодаря чему с данными из разных таблиц можно работать при помощи одного запроса.
Для управления реляционными базами данных применяется особый язык программирования – SQL (язык структурированных запросов).
Схема работы с базой данных изображена на рисунке 1.
Рисунок 1
SQL является стандартным языком, используемым для работы с реляционными базами данных. Он не является языком программирования, таким как С, С++ или PHP. SQL – это интерфейсное средство для выполнения различных операций с базами данных, предоставляющее в распоряжение пользователя стандартный набор команд. SQL используется не только для выборки данных из базы. SQL поддерживает множество функций для взаимодействия с базой данных, среди которых:
– Определение структуры данных: определение конструкций, которые используются при хранении данных;
– Выборка данных: получение данных из базы и их представление в удобном формате для вывода;
– Обработка данных: вставка, обновление и удаление данных;
– Контроль доступа: возможность запретить обработку или выборку данных отдельным пользователям;
– Контроль целостности данных: сохранение структуры данных при возникновении системных сбоев.
1.8 Операции реляционной алгебры
Операции реляционной алгебры применимы к реляционным отношениям (таблицам). Результатом выполнения операции реляционной алгебры также является отношение, построенное на основе одного или нескольких исходных отношений.
В состав теоретико-множественных операций входят традиционные операции над множествами:
– Объединение;
– Пересечение;
– Разность;
– Декартово произведение.
Специальные реляционные операции включают:
– Выборку;
– Проекцию;
– Деление;
– Соединение.
Некоторые операторы являются независимыми и могут быть выражены через другие реляционные операторы.
1.8.1 Теоретико-множественные операторы
Объединением двух совместимых по типу отношений и
называется отношение с тем же заголовком, как в отношениях
и
, и с телом, состоящим из множества кортежей, принадлежащих
или
, или обоим отношениям. Синтаксис операции:
Как и любое отношение, объединение не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение , и отношение
, то в объединение он входит один раз.
Пересечением двух совместимых по типу отношений и
называется отношение с тем же заголовком, что и у отношений
и
, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям
и
. Синтаксис операции:
Разностью двух совместимых по типу отношений и
называется отношение с тем же заголовком, как в отношениях
и
, и телом, состоящим из множества кортежей, принадлежащих отношению
и не принадлежащих отношению
. Синтаксис операции:
Декартово произведение двух отношений и
определяется как отношение с заголовком, представляющим собой сцепление заголовков исходных отношений
и
:
и телом, состоящим из кортежей, являющихся сцеплением кортежей отношений
и
:
таких, что
,
. Синтаксис операции:
Перемножать можно любые два отношения, при этом совместимость по типу не требуется.
1.8.2 Специальные реляционные операторы
Выборкой из отношения с условием
называется отношение с тем же заголовком, что и у отношения
, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие
дают значение истина. Условие
представляет собой логическое выражение, в которое могут входить атрибуты отношения
и (или) скалярные выражения. Синтаксис операции:
Операция выборка создает новое отношение, содержащее только те строки отношения-операнда, которые удовлетворяют некоторому условию заданного ограничения.
Проекцией отношения по атрибутам
, где каждый из атрибутов принадлежит отношению
, называется отношение с заголовком
и телом, содержащим множество всех кортежей вида
, таких, что в отношении
имеются кортежи со значением атрибута
равным
, значением атрибута
равным
, …, значением атрибута
равным
. Синтаксис операции:
Операция проекции дает «вертикальный срез» отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей.
Пусть даны отношения и
, причем атрибуты
– общие для двух отношений. Делением отношений
на
называется отношение с заголовком
и телом, содержащим множество всех кортежей
, таких, что существует кортеж
, который принадлежит отношению
, для всех кортежей
, принадлежащих отношению
. Отношение
выступает в роли делимого, отношение
выступает в роли делителя. Деление отношений аналогично делению чисел с остатком. Синтаксис операции:
1.8.3 Операции соединения
Операция соединения отношений, наряду с операциями выборки и проекции, является одной из наиболее важных реляционных операций. Существует несколько разновидностей операции соединения:
– Общая операция соединения;
– Тэта-соединение;
– Экви-соединение;
– Естественное соединение.
Наиболее важным из этих частных случаев является операция естественного соединения. Все разновидности соединения являются частными случаями общей операции соединения.
Соединением отношений и
по условию
называется отношение
Условие
представляет собой логическое выражение, в которое могут входить атрибуты отношений
и
и (или) скалярные выражения. Операция соединения это результат последовательного применения операций декартового произведения и выборки. Если в отношениях
и
имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.
Пусть отношение содержит атрибут
, отношение
содержит атрибут
, а
– один из операторов сравнения. Тогда тэта-соединением отношения
по атрибуту
с отношением
по атрибуту
называется результат вычисления выражения:
-соединение эквивалентно двум операциям: нахождению расширенного декартова произведения двух отношений и последующему выполнению указанной выборки из полученного результата.
Наиболее важным частным случаем тэта-соединения является случай, когда просто равенство. Синтаксис операции экви-соединения:
Недостатком экви-соединения является то, что если соединение происходит по атрибутам с одинаковыми наименованиями, то в результатирующем отношении появляется два атрибута с одинаковыми значениями. Избавиться от этого недостатка можно, взяв проекцию по всем атрибутам, кроме одного из дублирующих. Именно так действует естественное соединение.
Пусть даны отношения и
, имеющие одинаковые атрибуты
. Естественным соединением отношений
и
называется отношение с заголовком
и c телом, содержащим множество кортежей вида
таких, что
и
. Для естественного соединения используют специальный синтаксис:
В синтаксисе естественного соединения не указываются, по каким атрибутам производится соединение. Естественное соединение производится по всем общим атрибутам.
1.9 Базы данных и ORM Doctrine
Одна из самых распространённых и сложных задач для любого приложения включает хранение и чтение информации из базы данных. К счастью, Symfony поставляется с библиотекой Doctrine, главная цель которой дать мощный инструмент, позволяющий делать это легко.
1.9.1 Конфигурация базы данных
Перед использованием Doctrine, необходимо настроить соединение с базой данных. По соглашению эта информация обычно указывается в файле app/config/parameters.yml:
parameters:
database_driver: pdo_mysql