[27.04.11] Лекция №10 (1059233)
Текст из файла
Лекция №10 [27.04.11]
Транзакции
Транзакция – совокупность операторов, выполняющаяся как одно неделимое целое. Чтобы когда одновременно несколько пользователей вносят изменения не наломать дров. Каждый вносит изменения у себя локально, в системных буферах, а по команде конца транзакции все изменения вносятся разом.
Оператор конца текущей транзакции: COMMIT
Оператор отката (отмена транзакции): ROLLBACK
Оператор контрольной точки: SAVEPOINT
Оператор наделениям правами: GRANT
Оператор отмены прав: REVOKE
Использование контрольных точек:
INSERT …………………
UPDATE …………………
DELETE …………………
SAVEPOINT a1.
UPDATE …………………
SELECT …………………
SELECT …………………
UPDATE ………………… -- а вот тут у нас ошибка, например, надо откатить
DELETE …………………
SAVEPOINT a2.
SELECT …………………
SELECT …………………
ROLLBACK TO SAVEPOINT a1. -- вот мы откатили на контрольную точку a1
Создать пользователя с логином ivanov и паролем spec:
CREATE USER ivanov IDENTIFIED BY spec.
Разрешить пользователям Иванову и Петрову создавать таблицы и представления:
GRANT CREATE TABLE, CREATE VIEW TO ivanov, petrov.
Разрешить Козлову чтение таблицы Покупатели:
GRANT SELECT ON customer TO kozlov.
Администратор предоставляет другому пользователю право назначения полномочий на таблицу Покупатели:
GRANT SELECT, INSERT, UPDATE, DELETE ON customer TO ivanov WITH GRANT OPTION.
Администратор даёт Петрову права на подключение к базе данных:
GRANT CREATE SESSION TO petrov.
Роль (профиль) пользователей хранит набор прав:
CREATE ROLE semiadmin.
GRANT SELECT, INSERT, UPDATE, DELETE
ON customer
TO semiadmin.
GRANT SELECT, INSERT, UPDATE, DELETE
ON orders
TO semiadmin.
GRANT SELECT, INSERT, UPDATE, DELETE
ON item
TO semiadmin.
GRANT SELECT, INSERT, UPDATE, DELETE
ON stock
TO semiadmin.
COMMIT.
Теперь созданную роль (профиль) можно назначить Иванову:
GRANT ROLE semiadmin TO ivanov.
Роль можно присваивать к другой роли, тогда гранты объединятся, дополнятся.
Запретить Петрову создавать таблицы:
REVOKE CREATE TABLE FROM ivanov.
Пользователю Петрову отменить полномочия на ввод данных в таблицу Покупатели:
REVOKE INSERT ON customer FROM petrov.
А Козлову вообще всё запретить:
REVOKE ALL FROM kozlov.
А у Иванова отнять все права только на таблицу Покупатели:
REVOKE ALL ON customer FROM ivanov.
Функции
Определить число покупателей (сколько строк в таблице):
SELECT COUNT(*) FROM customer.
Ввести в заказ сегодняшнюю дату:
INSERT INTO orders(ID, customerID, orderdata) VALUES (34, 515, SYSDATA).
Для заказа №32 подсчитать общую сумму:
SELECT SUM(quabtity * unitprice)
FROM item, stock
WHERE ordered=32 AND item.stockID=stockID.
На экран после такого выведет вот что:
| SUM(quabtity * unitprice) |
| 100500 |
Рассчитать средний оклад кассиров:
SELECT AVG(oklad) FROM slyjashie WHERE doljnost=’кассир’.
Для всех служащих в магазине №5 рассчитать полный доход, состоящий из оклада и комиссионых:
SELECT fio, oklad + komissija FROM slyjashie WHERE magazine=5.
Выдаст вот так:
| fio | oklad + komissija |
| Иванов Иван Иванович | 100500 |
| Петров Пётр Петрович | 500100 |
| Сидоров Сидр Сидорович | 500600 |
Изменение структуры таблицы
Добавить к таблице Покупатели новый столбец для второго факса (купили новые вместо сгоревших, а тут ещё и сгоревшие починили):
ALTER TABLE customer ADD (fax2 VARCHAR2(20)).
Модифицировать (тип значения) столбец в таблице Покупатель (длиннее поле телефона):
ALTER TABLE customer MODIFY (phone VARCHAR2(22)).
Удаление таблицы, не имеющее ссылок на другие таблицы:
DROP TABLE stock.
Удаление таблицы, имеющей ссылки на другие таблицы:
DROP TABLE orders CASCADE CONSTRAINTS.
Создание представления
Нужны чтобы юзвери не поломали оригинальные таблицы. Вместо таблиц работают с представлениями. В одной базе данных не должно быть представлений с одинаковыми именами.
CREATE VIEW имя представления AS (запрос SELECT)
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














