Файл: Конспект лекций по учебной дисциплине по дисциплине мдк. 02. 02. Технология разработки и защиты баз данных.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 26.04.2024

Просмотров: 232

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Содержание

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

ТЕМАТИЧЕСКИЙ ПЛАН

ПОЯСНЕНИЯ К НАПИСАНИЮ КОНСПЕКТА

Раздел 1 Основы теории баз данных.

Тема: Понятие базы данных, системы управления баз данных.

Тема: Классификация баз данных. Архитектура баз данных.

Тема: Администратор базы данных и его функции. Пользователи баз данных.

Раздел 2 Модели данных.

Тема: Понятие о моделировании данных

Тема: Иерархическая модель данных. Сетевая модель данных.

Раздел 3 Реляционная модель данных.

Тема: Основные понятия реляционной модели данных.

Тема: Инфологическая модель данных.

Проектирование инфологической модели данных

Тема: ER моделирование базы данных.

Раздел 4. Основы реляционной алгебры.

Тема: Реляционная алгебра. Операции: объединение, пересечение, разность, декартово произведение

Тема: Выборка, проекция, соединение, деление

Тема: Применение реляционной алгебры.

Раздел 5. Этапы проектирования базы данных.

Тема: Этапы проектирования базы данных.

Тема: Концептуальное моделирование предметной области.

Тема: Метод нормальных форм

Тема: Нормальные формы

Тема: ER моделирование предметной области.

Тема: Методы создания основных объектов

Тема: Создание таблиц в СУБД Access

Тема: Разработка схемы базы данных

Тема: Создание однотабличных запросов в СУБД Access.

Тема: Создание многотабличных запросов в СУБД Access.

Раздел 6. Язык запросов SQL.

Тема: Основные понятия и компоненты языка SQL.

Тема: Выражения, условия и операторы языка SQL.

Тема: Средства управления таблицами.

Тема: Средства управления данными.

Раздел 7. Оформление и работа с базой данных.

Тема: Типы и виды форм. Методы и средства создания.

Тема: Создание отчётов. Создание печатных форм отчётов

Тема: Макросы. Основные макрокоманды

1 Определение макроса

1 Определение макроса

Раздел 8. Распределенные, параллельные базы данных.

Тема: Основные условия и требования к распределённой обработке данных

1 Терминология распределенных баз данных

3 Принципы функционирования распределенной БД

1 Терминология распределенных баз данных

3 Принципы функционирования распределенной БД

Тема: Базовые архитектуры распределенных баз данных

Тема: Архитектура сервера баз данных

ПЛАН

2 Архитектура «активный сервер баз данных»

3. Архитектура сервера приложений

2 Архитектура «активный сервер баз данных»

3. Архитектура сервера приложений

Тема: Доступ к базам данных в архитектуре «клиент-сервер»

Тема: Вычисление распределенных запросов.

Тема: Транзакции и целостность базы данных.

Тема: Триггеры и хранимые процедуры.

Раздел 9. Защита базы данных.

Тема: Безопасность данных. Управление правами доступа.

Тема: Обязательные методы защиты базы данных.

3 Поддержка мер обеспечения безопасности в языке SQL

3 Поддержка мер обеспечения безопасности в языке SQL

Директивы GRANT и REVOKE

Раздел 10. Базы данных в Интернете.

Тема: Основы XML.

1 Определение XML

1 Определение XML

Тема: Доступ к данным с помощью ADO.NET.


ЛЕКЦИЯ 26

Тема: Средства управления данными.


ПЛАН

1 Создание запросов на выборку с помощью SQL

2 Примеры создания запросов на выборку с помощью SQL
ЛИТЕРАТУРА: [1], стр. 192 – 233
1 Создание запросов на выборку с помощью SQL

Команды языка манипулирования данных используются для отбора записей в таблицах, модификации, добавления или удаления записей. Для выполнения этих задач используется ряд различных команд, однако, большинство из них представляет часть общей структуры запроса на выборку.

SELECT (запрос на выборку) предназначен для получения записей из БД в виде набора записей.

Для выбора информации из таблиц используется команда SELECT следующего формата:

SELECT [ALL|DISTINCT| DISTINCTROW |

[TOP n [PERCENT]] <список_полей> | *

[FROM {<имя_таблицы>},...]

[WHERE <условие>]

[ORDER BY {<имя_поля> [ASC] | DESC},...]

[GROUP BY {<имя_поля>},...]

[HAVING <условие>]

Каждый из компонентов будет обсуждаться ниже.

КомандаSELECT позволяет выводить все поля (*) или не­которые по указанному списку из(FROM) одной или нес­кольких таблиц по некоторому условию(WHERE).

Самый простой возможный запрос SELECT.

SELECT * FROM <имя_таблицы>

Например, следующий запрос SELECT вернёт все столбцы всех записей из таблицы Авторы: SELECT * FROM Авторы

Звёздочка указывает, что необходимо отобрать все столбцы указанных таблиц.

Инструкция SELECT всегда содержит предложение FROM, указывающее таблицу или таблицы, из которых отбираются столбцы.

Предложение WHERE определяет, какие записи из таблиц, перечисленных в предложении FROM, должны быть включены в результат инструкции SELECT. В предложении WHERE могут использовать различные операторы.
2 Примеры создания запросов на выборку с помощью SQL

Задача 1. Вывести на экран список книг, количество которых на складе более 100 штук.

Решение: SELECT * FROM Книги

WHERE Количество>100;

Задача 2. Найти издательства города Москвы.

Решение: SELECT *FROM Издательства

WHERE Адрес Like "*Москва*";

Задача 3. Найти издательства, у которых указан телефон.

Решение: SELECT *FROM Издательства

WHERE Телефон Is Not Null;

Задача 4. Найти книги, код которых находится в интервале 3 – 9 и стоимость менее 250 руб.

Решение:SELECT *FROM Книги

WHERE ([Кодкниги] Between 3 And 8) And (Стоимость<250);

Часто бывают ситуации, когда названии полей исходных таблиц в выборке необходимо вывести иначе. В этом случае нужно использовать ключевое слово AS и задать соответствующий псевдоним.


Задача 5. Вывести на экран список книг и их цен, изданных в 2005 году.

Решение: SELECT Название, Стоимость AS Цена, [Год издания]FROM Книги WHERE [Год издания]='2005';

Для устранения повторяющихся значений в выборке используется предикат DISTINCT. Он исключает дублирующиеся значения из результата выполнения предложения SELECT. Каждая возвращённая строка будет уникальной. Если в результат выборки включаются два столбца, уникальность будет определяться по значениям обоих этих столбцов. В отдельности значения в первом и втором столбцах могут повторяться, но комбинация значений в обоих столбцах должна быть уникальна. Аналогичные правила действуют и в отношении большего количества столбцов.

Задача 6. Вывести наименования всех книг.

Решение: SELECT DISTINCT Название FROM Книги;Лекция 3. Сортировка и группировка данных с помощью SQL

КЛЮЧЕВОЕ СЛОВО TOP

Общий вид: TOP n [PERCENT]

Использование ключевого слова TOP n, где n – числовое значение, позволяет отобрать в результат не все строки, а только n первых. При этом выбираются первые строки выборки, а не исходных данных.

Задача 7. Найти первые 5 книг изданных издательством, код которого равен1.

Решение: SELECT TOP 5 * FROM Книги

WHERE Издательство=1;

Можно так же выбирать не фиксированное количество строк, а определённый процент от всех строк, удовлетворяющих условию. Для этого необходимо добавить ключевое слово PERCENT.

Задача 8. Вывести 50% книг изданных издательством, код которого равен1.

Решение: SELECT TOP 50 PERCENT * FROM Книги

WHERE Издательство=1;

Строки в БД считываются в том порядке, в котором они были добавлены в таблицу. Необходимый порядок записей в выборке и отражение строк можно задать с помощью предложения ORDER BY. Это предложение всегда располагается после предложений FROM или WHERE.

Общий вид: ORDER BY <список полей> [ASC|DESC]

ASC - является не обязательным, задаёт сортировку по возрастанию, DESC – является обязательным при сортировке по убыванию.

SELECT [ALL|DISTINCT| DISTINCTROW |

[TOP n [PERCENT]] <список_полей> | *

[FROM {<имя_таблицы>},...]

[WHERE <условие>]

[ORDER BY {<имя_поля> [ASC] | DESC},...]

Задача 1. Вывести список всех авторов в алфавитном порядке, фамилии которых заканчиваются на ‘ин’.

Решение: SELECT * FROM Авторы

WHERE Фамилия LIKE ‘*ин’ ORDER BY Фамилия;

Задача 2.Вывести список книг по убыванию относительно цен.

Решение: SELECT * FROM Книги
ORDER BY Название DESC;

Предложение GROUP BY группирует записи таблицы, определенной в предложении FROM, в разделы или группы таким образом, чтобы в каждой группе все строки имели одинаковые значения. Предложение GROUP BY всегда располагается после предложений FROM или WHERE.

Общий вид: GROUP BY <список полей>

SELECT [ALL|DISTINCT| DISTINCTROW |

[TOP n [PERCENT]] <список_полей> | *

[FROM {<имя_таблицы>},...]

[WHERE <условие>]

[GROUP BY {<имя_поля>},...]

[ORDER BY {<имя_поля> [ASC] | DESC},...]

Предложение GROUP BY не предполагает упорядочивания. Для упорядочивания результата следует поместить ORDER BY после GROUP BY.

Задача 3. Найдите книги, изданные в издательстве Вагриус, код которого равен 4. Произвести группировку данных относительно поля Автор.

Решение: SELECT * FROM Книги

WHERE Издательство = 4 GROUP BY Автор;

Можно задать сортировку относительно фамилий автора.

SELECT * FROM Книги

WHERE Издательство = 4 GROUP BY Автор ORDER BY Автор;

FROM Авторы

Пример 3

УДАЛЕНИЕ ЗАПИСЕЙ В ЗАПРОСЕ

INSERT INTO Жанр

INSERT INTO Авторы

ДОБАВЛЕНИЕ ЗАПИСЕЙ В ЗАПРОСЕ

Лекция 4. Ввод, удаление и изменение данных с помощью SQL

Задача 4.

ПРЕДЛОЖЕНИЕ HAVING

Целью предложения GROUP BY является формирование строк для последующих действий над группами посредством других операций. Предложение HAVING используется для фильтрации записей, полученных в результате группировки GROUP BY.

HAVING является не обязательным. Если это предложение присутствует в команде SQL, то оно должно располагаться после предложения GROUP BY.

Функция предложения HAVING схожа с WHERE – используются для фильтрации. WHERE определяет какие записи должны участвовать в группировании а, HAVING определяет какие, из получившихся в результате группировки, записи будут включены в результатирующую выборку.

Решение: SELECT * FROM Книги

WHERE Издательство = 4

GROUP BY Автор HAVING Стоимость > 150;

Все новые записи вводятся в таблицу при помощи конструкции INSERT, которая в простейшем случае имееттакой синтаксис:

INSERT INTO <имятаблицы>

VALUES <значения>;

Пример 1. Чтобы добавить строку в таблицу Авторы, можно использовать следующую команду:

VALUES (3, 'Голицина О.Л.', 'Ольга', 'Леонидовна');

Если нужно вставить NULL-значение, то его необходимо указать как обычное значение.

Пример 2

VALUES (4, NULL);

Строки из таблицы можно исключить с помощью команды обновления DELETE. По этой команде исключаются только целые строки, а не отдельные значения полей. Таким образом, имя поля не является обязательным аргументом для выполнения этой команды и воспринимается как ошибочный аргумент. Синтаксис команды следующий:


DELETE FROM <имя таблицы>

WHERE <критерии отбора> ;

Для исключения всех строк из таблицы, следует ввести следующее предложение:

DELETE FROM <имя таблицы>;

В результате выполнения этой команды таблица становится пустой и ее можно удалить с помощью команды

DROP TABLE <имя таблицы>;

Чаще из таблицы требуется удалить только некоторые строки. Чтобы их определить, нужно, как и для запросовнавыборку, использовать <критерии отбора>.

DELETE *

WHERE Фамилия = 'Голицина О.Л.';

С инструкцией DELETE следует обращаться с величайшей осторожностью. Можно непреднамеренно удалить все строки таблицы. Инструкция DELETE без предложения WHERE применяется чрезвычайно редко, поэтому, прежде чем выполнить запрос, еще раз убедитесь в правильности написания инструкции DELETE.

Для изменения существующих значений в столбцах таблицы можно использовать инструкцию UPDATE. Упрощенный синтаксис этой инструкции следующий:

UPDATE <имя таблицы>

SET <имя столбца1>= значение, ..., <имя столбца n>= значение

WHERE <критерии отбора>;

Нет нужды ограничиваться обновлением значения единственного столбца в результате выполнения команды UPDATE. В предложении SET можно указать любое количество значений для столбцов, разделенных запятыми. Все указанные изменения выполняются для каждой строки таблицы, удовлетворяющей предикату WHERE.

Пример 4

UPDATE Жанр SET Жанр = "Рассказ"

WHERE [Код жанра]=2;
Контрольные вопросы

  1. Выбор столбцов с помощью предложений SELECT и F R O M

  2. Создание псевдонимов столбцов с помощью предложения A S

  3. Удаление повторяющихся строк с помощью ключевого слова D IS T IN C T

  4. Сортировка строк с помощью предложения O R D ER B Y

  5. Фильтрация строк с помощью предложения W H E R E

  6. Комбинирование условий с помощью операторов AND, OR и NOT

  7. Сравнение по шаблону оператором L IK E

  8. Сравнение с диапазоном с помощью оператора B E T W E E N

  9. Фильтрация с помощью оператора I N

  10. Проверка на значение null с помощью оператора IS N U L L

  11. Использование агрегатных функций

  12. Поиск минимума посредством функции M IN ( )

  13. Поиск максимума с использованием функции М А Х ()

  14. Вычисление суммы с помощью функции SU M ()

  15. Порядок расчета среднего значения с помощью функции AVG()

  16. Подсчет строк с помощью функции C O U N T Q

Исключение повторных значений с помощью предложения D IS T IN C T

  1. Группирование строк с использованием предложения GRO UP BY

  2. Фильтрация групп с помощью предложения H A V IN


ЛЕКЦИЯ 27