
- •Билеты по базам данных
- •М одели данных
- •Реляционная модель данных
- •Отличия отношения от реальной таблицы
- •Реляционная алгебра
- •Архитектура базы данных
- •Инфологические модели. Модель «сущность-связь».
- •Виды сущностей
- •С ущности
- •Тип Подтип Сильные Слабые
- •Определение:
- •Понятие целостности данных
- •Избыточность данных и нормальные формы
- •Язык структурированных запросов (sql). История, стандарты.
- •Синтаксис
- •Оператор select. Агрегатные функции. Предложения group by и having.
- •Оператор select. Многотабличные запросы.
- •Многопользовательские субд
- •Распределённые базы данных
- •Трансакции. Нарушение целостности при параллельном и последовательном их выполнении.
- •Трансакции. Откат, восстановление. Журнал регистраций.
- •Методы защиты бд
Синтаксис
DatePart (интервал, дата [, первый_день_недели] [, первая_неделя_года] )
и другие функции.
Оператор SELECT. Задание условий отбора записей.
Условие – это выражение, принимающее значение «истина» или «ложь».
В условиях запроса можно задавать:
логические операции (например, когда нужно выбрать товары не дешевле 100 рублей и не дороже 200)
агрегатные функции (например, если нужно подсчитать суммарную стоимость всех заказов)
функции для работы с датами (например, когда нужно найти все заказы за определенный месяц)
список значений (для этого используется предикат IN; например, когда нужно выбрать все товары со скидками 5, 10, 20 и 25 процентов)
диапазон значений (для этого используется предикат BETWEEN; например, если нужно выбрать товары со скидкой между 5 и 10 процентами)
и т.д.
Оператор select. Агрегатные функции. Предложения group by и having.
Агрегатные функции в Access еще называют статистическими. Это могут быть функции COUNT (подсчитывает кол-во записей), MAX (вычисляет максимальное значение), MIN (вычисляет минимальное значение), AVG (вычисляет среднее значение) и SUM (вычисляет сумму заданного диапазона значений).
Предложение GROUP BY применяется для разбиения таблицы на группы строк с применением к каждой группе агрегатных функций.
Пример:
Необходимо в таблице Заказано подсчитать для каждого наименования (кода) товара количество заказов и максимального количества товара в одном заказе (для уменьшения количества выводимых результатов нужно ограничиться кодами товаров от 1 до 5).
Программа:
SELECT КодТовара, Count(*) AS [Кол-во заказов], Max([Количество]) AS [Макс_к-во_товара]
FROM Заказано
WHERE КодТовара<6
GROUP BY КодТовара;
Предложение HAVING служит для задания условий, содержащих агрегатные функции.
Пример:
Выбрать в таблице Заказы города, для которых сделано более десяти заказов. Вывести название города и количество заказов.
Программа:
SELECT ГородПолучателя, Count (КодЗаказа) AS [К-во заказов]
FROM Заказы
GROUP BY ГородПолучателя
HAVING Count(КодЗаказа)>10;
Оператор select. Многотабличные запросы.
Многотабличный запрос позволяет сформировать записи результата путем объединения взаимосвязанных записей из таблиц базы данных и выбора из них нужных полей и записей. Многотабличный запрос часто осуществляет объединение данных, которые на этапе проектирования были разделены на множество объектов в соответствии с требованиями нормализации. В таких объектах, прежде всего, обеспечивалось отсутствие дублируемости данных в базе, повторяются только значения ключевых полей. В результате выполнения запроса формируется таблица с повторяющимися данными, в которой каждая запись собирает необходимые данные из разных таблиц.
В многотабличном запросе можно использовать любые условия для отбора данных. Если не использовать никаких условий, то будет выведено декартово произведение из всех строк и таблиц, используемых в запросе.
Оператор SELECT. INNER JOIN.
INNER JOIN – это внутреннее соединение.
Например, запрос на выборку наименований книг и их авторов будет выглядеть так:
SELECT a.Наим, b.ФИО
FROM книга а INNER JOIN писатель b ON a.Автор=b.КодП
В результате этого запроса не будут выбраны названия книг и авторы, не удовлетворяющие условию:
книга.Автор=писатель.КодП
Оператор SELECT.Левое и правое внешнее соединения.
Правое и левое внешние соединения (RIGHT JOIN и LEFT JOIN) имеют одинаковый принцип действия, только при RIGHT JOIN условие будет ориентировано на вторую таблицу, а при LEFT JOIN – на первую.
Оператор SELECT. Предложение UNION.
Предложение UNION применяется для объединения результатов нескольких запросов в одной выводимой таблицы. Количество столбцов во всех запросах должно быть одинаковым и типы соответствующих столбцов должны быть сравнимыми.
Добавление данных в базу. Оператор INSERT.
Вставка в таблицу одной или нескольких строк производиться с помощью оператора INSERT.
Синтаксис:
INSERT INTO <имя таблицы>
[(<имя столбца>)]
{VALUES (<значение>.,..)}
│<выражение запроса>
│ {DEFAULT VALUES};
Редактирование данных. Оператор UPDATE.
Изменение и редактирование данных производится с помощью оператора UPDATE.
Синтаксис:
UPDATE <имя таблицы>
SET {<имя столбца>={<выражение для вычисления значения>
│NULL │DEFAULT}}.,..
[WHERE <предикат>]
Удаление данных. Оператор DELETE
Удаление строк таблицы осуществляется с помощью оператора DELETE.
Синтаксис:
DELETE FROM <имя таблицы>
[WHERE <предикат>]
Этапы проектирования информационной системы
Проектирование информационных систем всегда начинается с определения цели проекта. Основная задача любого успешного проекта заключается в том, чтобы на момент запуска системы и в течение всего времени ее эксплуатации можно было обеспечить:
требуемую функциональность системы и степень адаптации к изменяющимся условиям ее функционирования;
требуемую пропускную способность системы;
требуемое время реакции системы на запрос;
безотказную работу системы в требуемом режиме, иными словами - готовность и доступность системы для обработки запросов пользователей;
простоту эксплуатации и поддержки системы;
необходимую безопасность.
Производительность является главным фактором, определяющим эффективность системы. Хорошее проектное решение служит основой высокопроизводительной системы.
Проектирование информационных систем охватывает три основные области:
проектирование объектов данных, которые будут реализованы в базе данных;
проектирование программ, экранных форм, отчетов, которые будут обеспечивать выполнение запросов к данным;
учет конкретной среды или технологии, а именно: топологии сети, конфигурации аппаратных средств, используемой архитектуры (файл-сервер или клиент-сервер), параллельной обработки, распределенной обработки данных и т.п.
В реальных условиях проектирование - это поиск способа, который удовлетворяет требованиям функциональности системы средствами имеющихся технологий с учетом заданных ограничений.
Один из классических подходов к разработке информационных систем выглядит так: