Программируемые объекты в базе данных MySQL
Здравствуйте. В сегодняшней статье мы поговорим о программируемых объектах в базе данных MySQL. Что же такое программируемые объекты, применительно к базе данных. Программируемые объекты — это объекты, которые могут быть созданы и использованы в процессе разработки приложений для баз данных
В базе данных могут существовать различные типы программируемых объектов, которые могут быть созданы и использованы в процессе разработки приложений. Некоторые из наиболее распространенных программируемых объектов в базе данных включают в себя:
Хранимые процедуры (Stored procedures) — это программируемые объекты, которые хранятся в базе данных и содержат набор инструкций на языке запросов базы данных для выполнения определенных операций.
CREATE PROCEDURE GetAllCustomers()
BEGIN
SELECT * FROM Customers;
END
Функции (Functions) — это программируемые объекты, которые могут принимать параметры и возвращать значения, похожие на функции в языках программирования.
CREATE FUNCTION GetCustomerNameById(CustomerId INT)
RETURNS VARCHAR(50)
BEGIN
DECLARE CustomerName VARCHAR(50);
SELECT CustomerName INTO CustomerName FROM Customers WHERE CustomerId = CustomerId;
RETURN CustomerName;
END
Триггеры (Triggers) — это программируемые объекты, которые запускаются автоматически при определенных событиях в базе данных, например, при вставке, обновлении или удалении записей в таблицах.
CREATE TRIGGER OrderInsertedTrigger AFTER INSERT ON Orders
FOR EACH ROW
BEGIN
UPDATE Customers
SET TotalOrders = TotalOrders + 1
WHERE Customers.CustomerId = NEW.CustomerId;
END
Представления (Views) — это программируемые объекты, которые представляют собой виртуальные таблицы, созданные на основе данных, хранящихся в таблицах базы данных.
CREATE VIEW CustomerOrdersView AS
SELECT c.CustomerId, c.CustomerName, COUNT(o.OrderId) AS OrderCount
FROM Customers c
INNER JOIN Orders o ON c.CustomerId = o.CustomerId
GROUP BY c.CustomerId, c.CustomerName;
Пользовательские типы данных (User-defined data types) — это программируемые объекты, которые позволяют определить собственные типы данных, используемые в базе данных.
CREATE TYPE Phone AS VARCHAR(20);
Индексы (Indexes) — это программируемые объекты, которые ускоряют производительность запросов, индексируя определенные столбцы таблицы для быстрого доступа к данным.
CREATE INDEX IX_Customers_Country ON Customers (Country);
Схемы (Schemas) — это программируемые объекты, которые позволяют группировать объекты базы данных в логически связанные наборы, обеспечивая удобство управления исходными данными.
CREATE SCHEMA Sales;
CREATE TABLE Sales.Orders ( . );
Таким образом, мы рассмотрели основные типы программируемых объектов для базы MySQL.
Создано 18.04.2023 13:14:38
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.
Объекты базы данных
Все возрастающая сложность приложений баз данных привела к появлению следующего поколения СУБД – объектно-ориентированных СУБД. Объектно-ориентированный подход предполагает создание программного обеспечения на основе стандартных и повторно используемых компонентов.
Расширение реляционной модели функциями объектно-ориентированного подхода определило создание объектно-реляционных СУБД, акцентирующих факт включения в систему понятия объект. В модели этих СУБД, наряду с использованием базовых реляционных таблиц и языка запросов, включено понятие объекта, реализована возможность сохранения методов (процедур) так же, как и данных в базе.
В качестве объектов в объектно-ориентированном программировании рассматриваются любые программируемые элементы. Основными объектами в Access, как и многих других СУБД, являются таблицы, запросы, формы, отчеты, страницы доступа к данным, модули, макросы. Все объекты имеют сохраняемый набор свойств, изменяя которые, можно управлять объектом.
С каждым объектом связывается ряд методов – процедур, которые работают с объектами. Один и тот же метод может использоваться для обработки различных объектов.
Все многообразие объектов, их свойств и методов обработки сводится в иерархически упорядоченные совокупности, что упорядочивает и облегчает программирование.
Объекты Access целесообразно подразделять на две группы:
- таблицы, запросы, схемы данных, имеющие непосредственное отношение к базе данных;
- формы, отчеты, страницы доступа к данным, макросы и модули, называемые объектами приложения.
Программируемые объекты базы данных
Хранимые процедуры — это именованный набор операторов Transact-SQL, хранящийся на сервере. Зная имя, пользователи могут вызвать процедуру, запуская тем самым на выполнение весь набор команд, представляющих тело процедуры. Почти любая команда Transact-SQL может быть включена в процедуру, что делает возможным выполнение повторяющихся задач в пользовательских приложениях и администрировании.
При первом обращении к хранимой процедуре сервер генерирует и сохраняет в кэше процедур планы компиляции и выполнения процедуры, которые используются последующими выполнениями. Кэш процедур — это пространство памяти, содержащее план выполнения всех выполняемых сейчас операторов Transact-SQL. Размер кэша изменяется, динамически соответствуя необходимому уровню. Если в кэше есть план выполнения, то процедура выполняется быстрее, за счет того что серверу не нужно разбирать запрос и вырабатывать необходимые действия для решения поставленной задачи. Это дает некоторый выигрыш в производительности. Кроме того, хранимая процедура выполняется не на клиентском, а на серверном компьютере, что позволяет реализовать логику обработки данных на сервере. Тем самым снижается загрузка клиентских компьютеров и сети, поскольку клиенту по сети передается только результат запроса, а не все промежуточные наборы данных, образующиеся при его выполнении. Главным же назначением хранимых процедур является создание защитного слоя и прикладного интерфейса для пользовательских баз данных, которые отделяют приложения от изменений в структуре хранимых данных. Если процедуры поддерживают все бизнес-функции, которые нужны для выполнения пользователю, пользователь никогда не нуждается в прямом доступе к таблицам. Все можно делать через процедуры, которые могут выступать дополнительным гарантом целостности данных и безопасности базы данных. Пользователи могут получать право выполнять процедуры, даже если у них нет права на использование представления или таблицы, на которую ссылается процедура, а это дает дополнительный механизм защиты данных.
Сервер SQL поддерживает следующие талы хранимых процедур:
- • системные хранимые процедуры — хранятся в базе данных master. Система хранит процедуры (определяющиеся по префиксу sp_), предоставляющие эффективные методы получения информации из системных таблиц. Они позволяют системному администратору выполнять администраторские задачи над базой данных, которые обновляют необходимые таблицы напрямую. Системные встроенные процедуры могут быть выполнены из любой базы данных;
- • пользовательские хранимые процедуры — создаются в определенных пользовательских базах данных;
- • расширенные встроенные процедуры (содержат в имени префикс хр_) — разрабатываются в виде DLL (Dynamic Link Library, динамически подгружаемая библиотека) и выполняются вне окружения SQL Server. Обычно такие процедуры идентифицируются по префиксу хр_.
Наибольший интерес для разработчика представляют, конечно, пользовательские хранимые процедуры. Для создания хранимой процедуры необходимо воспользоваться следующей командой:
CREATE PROC[EDURE] [имя_схемы.]имя_процедуры
Когда хранимая процедура создается, операторы проверяются на синтаксическую корректность, чтобы в коде не было явных ошибок написания и использования операторов. На этом этапе логика работы еще не может быть проверена. Если синтаксис ошибочен, то возвращается ошибка и встроенная процедура не сохраняется. Если синтаксис корректен, то сервер SQL сохраняет имя процедуры в системной таблице sysobjects, а текст в системной таблице syscomments текущей базы данных.
Опция Recompile предписывает каждый раз генерировать план запроса, а не помещать его в кэш. При указании опции Encryption происходит шифрование кода процедуры в таблице syscomments.
Рассмотрим создание простой хранимой процедуры, которая выводит список книг какого-либо издательства из таблицы book базы BookLibrary. В качестве входного параметра необходимо использовать имя издательства. CREATE PROCEDURE Getlzd
select *from Book where Izd=@izd
Текст оператора Create необходимо указать в окне запроса среды SQL Server Management Studio, после чего нажать кнопку Выполнить. Текущей базой данных во время выполнения запроса должна быть база BookLibrary (рис. 10).
Чтобы выполнить процедуру, необходимо в новом окне запроса выполнить оператор Ехес и указать фактическое значение параметра @Izd:
Exec Getlzd ’Прогресс ’
Результаты выполнения процедуры представлены на рис. 11.
к Среда Microsoft SQL Server Management Studio
Файл Правка Вид Запрос Проект Отладка Сервис Окно Сообщество Справка
J. Создать запрос ft dj SI ft J A J
: l BookLibrary » ‘f Выполнить ? ? >/ jQ Jp J 2^ © 3D S ^F =F * в
В Ld SH77 (SQL Server Ю.0.1600 — SH77St
5QLQuery7.sqL.H77Sh7 (52))* SQLQuery6.sql.. .H77Sh7 (51))* exec Getlzd ‘Прогресс’
В LJ Диаграммы баз данных
В ГД Значения по умолчани