- •1. Основные понятия: база данных (бд), банк данных (БнД), субд.
- •2. Компоненты БнД
- •IИнфологическое моделирование как результат разработки модели по
- •IiДаталогическое проектирование
- •IiiФизическое проектирование
- •IvЭтап определения подсхем
- •5. Инфологическое моделирование предметной области. Состав инфологической модели (илм)
- •6. Описание объектов и их свойств. Разновидности свойств объектов
- •7. Описание связи между объектами. Типы (степени) связи, классы принадлежности.
- •9.Описание сложных объектов. Составные, обобщенные, агрегированные объекты
- •Разновидности сложных объектов
- •10. Даталогическое проектирование бд: цель и этапы даталогического проектирования. Определение состава бд.
- •11. Разновидности даталогических моделей (длм)
- •12.Основные понятия реляционных бд (рбд): кортеж, домен, отношение, степень отношения, мощность отношения, первичный и внешний ключи.
- •13. Индексация файлов (таблиц) в бд. Индексные файлы и индексные ключи.
- •14. Метод проектирования рбд на основе илм (правила 1-12).
- •15. Пример проектирования рбд: создание илм и переход к длм.
- •1. Описание объектов и связей между ними.
- •2. Лингвистические отношения
- •16 Сравнение однотабличной и многотабличной баз данных.
- •17 Операции Реляционной Алгебры.
- •19 Правила записи оператораSelect.
- •20 ПредложениеSelect
- •21, 22 ПредложениеWhere
- •23 Составные условия поиска. Таблицы истинности.
- •26 Многотабличные запросы на чтение.
- •27 Псевдонимы таблиц, самосоединение таблиц.
- •28 Агрегатные функции языкаSql.
- •29. Запросы с группировкой и ограничения на них.
- •Примеры.
- •Ограничение на запросы с группировкой.
- •Ограничение на список возвращаемых столбцов.
- •30. Условия поиска групп и ограничения на эти условия.
- •Ограничения на условия поиска групп
- •31. Вложенный запрос и его особенности. Пример.
- •32. Внешние ссылки и связанные подзапросы. Пример.
- •Процедура выполнения запроса, в составе которого имеется связанный подзапрос.
- •33. Условия поиска с вложенным запросом.
- •34. Внесение изменений в бд: добавление, удаление и обновление данных.
- •InsertintOимя таблицы, в которую добавляется строка
- •Обновление существующих данных
- •35. Задание и изменение структуры бд: операторыCreatetable,droptable,altertable.
- •2. Удаление таблицы. Ненужные таблицы можно удалить из бд посредством оператора drop table.
- •3. Изменение определения таблицы.
- •36. Создание и удаление индексов операторамиCreate/dropindex. Индексы.
- •37. Создание представлений операторомCreateview.
26 Многотабличные запросы на чтение.
Например: вывести список жителей, имеющих телефоны, с указанием ФИО и номера телефона.
Операция ПРОЕКЦИИ. PERSON [ADR = ADR] TPHONE.
SELECT FIO, NTEL FROM PERSON, TPHONE
WHERE PERSON.ADR = TPHONE.ADR.
27 Псевдонимы таблиц, самосоединение таблиц.
Формат: ИМЯ_ТАБЛИЦЫ ПСЕВДОНИМ. Например:
SELECT NOM, FIO, SOURSE, MONEY
FROM PERSON A, PROFIT B, HAVE_D C
WHERE A.NOM = C.NOM AND C.ID = B.ID AND NOM = 13.
Можно соединить таблицу саму с собой. Например, для поиска однофамильцев:
SELECT A.ADR, B.ADR
FROM PERSON A, PERSON B
WHERE A.FIO = B.FIO AND A.ADR = B.ADR.
28 Агрегатные функции языкаSql.
Итоговые запросы можно составить из различных операторов и агрегатных функций языка. Все функции принимают в качестве аргумента какой-либо столбец данных целиком, а возвращает одно, подытоженное значение.
SUM() – сумма в столбце.
SUM(DISTINCT <имя столбца>) – сумма неповторяющихся значений в столбце.
SELECT SUM(SUMD) FROM PERSON
AVG() – среднее значение в столбце.
AVG(DISTINCT <имя столбца>) – среднее значение для неповторяющихся значений в столбце.
MIN(), MAX()– минимум и максимум.
COUNT() – количество значений в столбце.
COUNT(DISTINCT <имя столбца>) – количество неповторяющихся значений в столбце.
COUNT(*) – количество строк в ТРЗ.
ПРИМЕРЫ:
SELECT ‘СРЕДНЕДУШИВОЙ ДОХОД =’, AVG (SUMD) FROM PERSON.
SELECT AVG(SUMD*0.13) FROM PERSON
SELECT SUM(SUMD) FROM PERSON
SELECT SUM(DISTINCT SUMD) FROM PERSON
SELECT ‘ПОЛУЧЕННО СТЕПЕНДИЙ НА СУММУ’, SUM(MONEYS) FROM HAVE_D, PROFIT WHERE PROFIT.ID = HAVE_D.ID AND SOURSE = ‘СТИПЕНДИЯ’
SELECT MIN(R_DATE), MAX (R_DATE) FROM PERSON
SELECT MIN(FIO), MAX (FIO) FROM PERSON
SELECT COUNT(ADR) FROM PERSON WHERE ADR = ’Зеленоград, 1__-%’
Правила:
1. Если какие-либо значения в столбце имеют значение NULL, то они исключаются из столбцов.
2. Если все значения в столбце имеют значение NULL, то все функции, кромеCOUNTвернутNULL.COUNTвернет 0.
3. COUNT(*) подсчитывает количество строк в ТРЗ, и возвращаемое значение не зависит от наличияNULL. Если строк нет, то вернется 0.
29. Запросы с группировкой и ограничения на них.
SelectADR,AVG(SUMD)FROMPERSON
GROUPBYADR
Сведения о жителях в таблице Personделятся на группы – по одной группе на каждую квартиру. В каждой группе все квартиры имеют 1 адрес.
Для каждой группы вычисляется среднее значение SUMD, генерируется одна итоговая строка в таблице результатов, эта строка содержит значение столбцаADRи средний общий доход для данной группы.
Запрос с группировкой – запрос, в котором используется предложениеGROUPBY.
Столбцы группировки – столбцы, в которые указываются предложенияGROUPBY, по какому признаку строки объединяются в группы.
Примеры.
Количество жителей квартиры и сформировать таблицу результатов
SELECT ADR, COUNT(*) FROM PERSON
GROUP BY ADR.
Нужно подсчитать количество источников дохода у каждого жителя.
SELECT NOM, COUNT(ID) FROM HAVE_D
GROUP BY NOM.
Сколько различных источников дохода имеют жители каждой квартиры.
SELECET ADR, COUNT(DISTINCT ID) FROM HAVE_D, PERSON
WHERE HAVE_D.NOM = PERSON.NOM
GROUPBYADR.
Предложение GROUPBYвидоизменяет действие агрегатных функций; результаты запроса следует разделять на группы, применить агрегатную функцию к каждой группе и получить для каждой группы 1 строку в таблице результата.