Добавлен: 28.06.2023
Просмотров: 57
Скачиваний: 2
Правовые и морально-этические меры и средства защиты включают в себя действующие в стране законы, нормативные акты, регламентирующие правила, нормы поведения, соблюдение которых способствует защите информации.
Практическое применение операций над данными
Для иллюстрации различных операций над данными воспользуемся базой данных, схема которой состоит из четырех таблиц:
Product(maker, model, type, date)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, price, screen)
Printer(code, model, color, type, price)
Таблица Product представляет производителя (maker), номер модели (model), тип ('PC' - ПК, 'Laptop' - ПК-блокнот или 'Printer' - принтер) и дату занесения сведений в базу данных (date). Предполагается, что номера моделей в таблице Product уникальны для всех производителей и типов продуктов.
В таблице PC для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product), скорость - speed (процессора в мегагерцах), объем памяти - ram (в мегабайтах), размер диска - hd (в гигабайтах), скорость считывающего устройства - cd (например, '4x') и цена - price.
Таблица Laptop аналогична таблице РС за исключением того, что вместо скорости CD содержит размер экрана -screen (в дюймах).
В таблице Printer для каждой модели принтера указывается, является ли он цветным - color ('y', если цветной), тип принтера - type (лазерный – 'Laser', струйный – 'Jet' или матричный – 'Matrix') и цена - price.
Собранные данные необходимо внести в базу данных. Согласно стандарту ANSI, в языке манипулирования данными для этого используется оператор INSERT.
Добавим в таблицу Printer запись о цветном принтере с уникальным кодом 7, моделью 5607, неизвестным типом и ценой 450:
INSERT INTO LAPTOP (CODE, MODEL, COLOR, PRICE)
VALUES (7, 5607, Y, 450)
Для удаления данных используется оператор DELETE. Команда DELETE удаляет из таблицы все записи, удовлетворяющие условию. Если условие WHERE не задано, то из таблицы удаляются все записи.
Команда DELETE возвращает количество удаленных записей.
Следует учитывать, что если в команде DELETE не задано условие WHERE, то команда возвратит 0, хотя записи были удалены.
Некоторые ключевые слова:
LOW_PRIORITY - Если указано это ключевое слово, то удаление записей из таблицы не будет произведено до тех пор, пока другие процессы не закончат чтение их этой таблицы.
QUICK - Если указано это ключевое слово, то при удалении записей обработчик таблицы не будет объединять индексы, что может ускорить операцию удаления.
LIMIT - Задает максимальное количество строк, которые могут быть удалены за текущий запрос.
Удалим запись о принтере с уникальным кодом 7 из таблицы Printer
DELETE FROM PRINTER
WHERE CODE=7
Для поиска и фильтрации используется оператор SELECT. Данный оператор позволяет очень гибко фильтровать и одновременно обрабатывать данные, в том числе и из разных таблиц и схем. Полный синтаксис SELECT очень сложен.
Основные атрибуты и ключевые слова:
WHERE - основной фильтр по записям;
GROUP BY - объединение записей с одинаковыми значениями в определенном поле;
HAVING - условие, прилагаемое к сгрупированным записям;
ORDER BY - сортировка по возрастанию/убыванию по определенному полю.
Для обработки данных в запросе могут быть использованы агрегатные функции:
COUNT определяет количество строк или значений поля, выбранных посредством запроса и не являющихся NULL-значениями;
SUM вычисляет арифметическую сумму всех выбранных значений данного поля;
AVG вычисляет среднее значение для всех выбранных значений данного поля;
МАХ вычисляет наибольшее из всех выбранных значений данного поля;
MIN вычисляет наименьшее из всех выбранных значений данного поля.
Найдем для каждого производителя, выпускающего ПК-блокноты c объёмом жесткого диска не менее 10 Гбайт, скорости таких ПК-блокнотов, выведем производителя и скорость
SELECT DISTINCT PRODUCT.MAKER, LAPTOP.SPEED
FROM PRODUCT JOIN
LAPTOP ON LAPTOP.MODEL=PRODUCT.MODEL
WHERE LAPTOP.HD>=10
Найдем среднюю скорость ПК, выпущенных производителем A.
SELECT AVG(SPEED) FROM
PRODUCT JOIN PC
ON PRODUCT.MODEL=PC.MODEL
WHERE MAKER='A'
Фильтрация данных осуществляется с помощью оператора ORDER BY.
Функции данного оператора:
- Упорядочение результирующего набора запроса по заданному списку столбцов и (дополнительно) ограничение числа возвращаемых строк указанным диапазоном. Порядок, в котором строки возвращаются в результирующем наборе, не гарантируется, если не указано предложение ORDER BY.
- Определение порядка, в котором значения ранжирующей функции применяются к результирующему набору.
Найдем номер модели, скорость и размер жесткого диска ПК, имеющих 12x или 24x CD и цену менее 600 дол., и расположим результаты в порядке убывания стоимости
SELECT DISTINCT MODEL,SPEED, HD
FROM PC
WHERE PRICE <600 AND (CD='12X' OR CD='24X')
ORDER BY PRICE
В SQL преобразование данных может быть явного и неявного типа: при явном преобразовании в коде указывается, в какой тип данных преобразовываются данные и в какой формат. При неявном преобразовании СУБД самостоятельно распознает разницу в форматах и типах данных и преобразует данные.