- •Содержание
- •1.1. Основные понятия
- •1.2. Компоненты БнД
- •1.3. Классификация БнД и бд
- •1.4. Этапы проектирования бд
- •1.5. Взаимосвязь этапов проектирования бд
- •Вопросы для самоконтроля
- •Раздел 2. Проектирование баз данных. Тема 2. Инфологическое моделирование (начало)
- •2.1. Необходимость инфологического моделирования
- •2.1.1. Виды ограничений целостности
- •2.1.2. Причины, приводящие к нарушению ограничений целостности
- •2.2. Описание объектов и их свойств
- •Тема 3. Инфологическое моделирование (окончание)
- •3.1. Описание связей между объектами.
- •3. 2. Описание сложных объектов
- •Вопросы для самоконтроля
- •Тема 4. Даталогическое проектирование
- •4.1. Общие сведения
- •4.2. Подход к даталогическому проектированию
- •4.3. Определение состава бд
- •4.4. Разновидности даталогических моделей
- •Вопросы для самоконтроля
- •Тема 5. Реляционная даталогическая модель базы данных
- •5.1. Основные понятия
- •5.2. Цели проектирования рбд
- •5.2.1. Возможность хранения всех необходимых данных в бд
- •5.2.2. Исключение избыточности данных
- •5.2.3. Сведение числа хранимых в бд отношений к минимуму
- •5.2.4. Нормализация отношений
- •Вопросы для самоконтроля
- •Тема 6. Метод проектирования реляционной базы данных на основе илм
- •Вопросы для самоконтроля
- •Тема 7. Пример проектирования реляционной базы данных на основе илм
- •7.6. Определение состава бд
- •7.7. Определение отношений, включаемых в бд
- •7.8. Описание логической структуры бд на языке субд (схема бд)
- •7.9. Сравнение спроектированной рбд с однотабличной бд
- •Вопросы для самоконтроля
- •Раздел 3. Описание информационных потребностей пользователей базы данных. Тема 8. Информационные потребности пользователей базы данных.
- •8.1. Типы и языки запросов
- •8.2. Реляционная алгебра (алгебра отношений)
- •8.2.1. Проекция
- •8.2.2. Выборка
- •8.2.3. Соединение
- •8.2.4. Объединение
- •8.2.5. Пересечение
- •8.2.6. Вычитание
- •8.2.7. Умножение
- •8.2.8. Деление
- •8.3. Примеры запросов на реляционном языке
- •Вопросы для самоконтроля
- •Раздел 4. Использование языкаSql для работы с базами данных. Тема9. Структурированный язык запросов sql
- •9.1. Стандарт и разновидности языка sql
- •9.2. Краткое введение в sql
- •Тема 10. Основные элементы языка sql. Использование языка sql для выборки данных
- •10.1. Оператор select
- •Тема 11. Отбор строк из таблиц. Условия поиска строк
- •Вопросы для самоконтроля
- •Тема 12. Сортировка таблиц
- •Тема 13. Использование псевдонимов для обозначения таблиц базы данных. Самосоединение таблиц. Итоговые запросы и агрегатные функции
- •Вопросы для самоконтроля
- •Тема 14. Запросы с группировкой
- •Тема 15. Вложенные запросы
- •Вопросы для самоконтроля
- •Тема 16. Изменение данных в базе данных
- •16.1. Корректировка таблиц бд
- •16.2. Создание объектов бд
- •16.3. Создание представлений
- •Вопросы для самоконтроля
- •Рекомендуемая литература
Вопросы для самоконтроля
Для учебной БД напишите запрос, вычисляющий сумму доходов, полученных жителями от источника с названием "Стипендия".
Для учебной БД напишите запрос, определяющий даты рождения самого молодого и самого старого жителя.
Для учебной БД напишите запрос, определяющий количество источников дохода, реально используемых жителями.
Для учебной БД напишите запрос, определяющий количество жителей, имеющих источники дохода.
Для учебной БД напишите запрос, определяющий количество источников дохода у жителя с номером 222.
Какой запрос называется запросом с группировкой?
Какие столбцы называются столбцами группировки?
Как изменяется действие агрегатных функций в запросах с группировкой по сравнению с обычным итоговым запросом?
Перечислите требования к столбцам группировки.
Что может быть элементом списка возвращаемых столбцов в запросе с группировкой?
В каком предложении записывается условие поиска групп?
Что можно использовать в условии поиска групп для запроса с группировкой?
Для учебной БД напишите запрос, определяющий количество жителей в каждой квартире.
Какой запрос называется вложенным?
Перечислите особенности вложенного запроса.
Что называется внешней ссылкой во вложенном запросе?
Какой вложенный запрос называется связанным подзапросом?
Укажите особенность связанного подзапроса.
Для учебной БД напишите запрос, формирующий список самых молодых жителей.
Тема 16. Изменение данных в базе данных
16.1. Корректировка таблиц бд
В таблицу можно включать новую строку с помощью оператора
INSERT INTO <список значений> [(<список столбцов>)]
{VALUES (<список значений>) | <подзапрос>}
Если список столбцов не задан, то значения должны вводиться в каждое поле новой строки; если список столбцов задан, то значения соответственно должны вводиться в те поля, которые перечислены в списке столбцов, и в том порядке, в каком они расположены в списке. Например:
INSERT INTO Have_D VALUES (999111, ‘РАБОТА1’, 500000)
Если значения, которые надо ввести, являются результатом выполнения подзапроса, то эти значения также помещаются в указанные столбцы и должны соответствовать им по типу. При использовании <подзапроса> в таблицу вводятся данные, отобранные из другой таблицы или даже нескольких таблиц.
Для изменения значения заданных столбцов служит оператор
UPDATE <имя таблицы> SET <имя столбца> =<значение>, . . . [WHERE <условие>]
Оператор позволяет изменить значения указанных столбцов для всех строк таблицы или для отобранных строк, если используется фраза WHERE. Например:
UPDATE Have_D SET source=‘ПОСОБИЕ’,money=100
WHERE nom=999111 AND source=‘РАБОТА1’
Для удаления строк таблицы предназначен оператор
DELETE FROM <имя таблицы> [WHERE <условие>]
Если фраза WHERE отсутствует, то удаляются все строки таблицы. При использовании фразы WHERE <условие> из таблицы удаляются строки, удовлетворяющие заданному условию.
16.2. Создание объектов бд
Для того чтобы обращаться к данным на языке SQL, надо предварительно создать БД. БД создается при помощи оператора
CREATE DATABASE <имя БД>
В БД должны быть включены таблицы и, если надо, индексные файлы. этого можно достичь несколькими способами. Первый из них заключается в том, чтобы создать таблицы средствами самого языка SQL, другие способы создания таблиц связаны с их экспортированием из других систем.
Для создания таблицы предназначен оператор
CREATE TABLE <имя таблицы> (<имя столбца>
<тип данных>, ...);
Например,
CREATE TABLE Have_D (nom NUMERIC(6,0),
Source CHAR(10), money NUMERIC(10,0))
Средствами SQL могут быть созданы также индексы. Для этого предназначен оператор
CREATE INDEX <имя индекса> ON <имя таблицы>
Опция UNIQUE определяет уникальный индекс. В языке SQL это означает, что значения в столбцах таблицы должны быть уникальны, и, как следствие, уникальными являются и элементы индекса. Если объявлен уникальный индекс, то при вводе данных в столбцы, указанные в операторе CREATE INDEX, могут быть включены только уникальные значения.
Если в операторе указаны несколько имен столбцов, то индексирование будет производиться по составному ключу. Компоненты этого составного ключа могут быть разнотипными.
При создании индекса может быть указан порядок сортировки: ASC - по возрастанию; DESC - по убыванию. По умолчанию принимается значение ASC.
Пример создания индекса:
CREATE UNIQUE INDEX H_D_index ON Have_D (nom,source,money)