
- •1. Основные понятия: база данных (бд), банк данных (БнД), субд.
- •2. Компоненты БнД
- •I Инфологическое моделирование как результат разработки модели по
- •II Даталогическое проектирование
- •III Физическое проектирование
- •IV Этап определения подсхем
- •5. Инфологическое моделирование предметной области. Состав инфологической модели (илм)
- •6. Описание объектов и их свойств. Разновидности свойств объектов
- •7. Описание связи между объектами. Типы (степени) связи, классы принадлежности.
- •Диаграмма er-экземпляра.
- •Диаграмма er-типа
- •9.Описание сложных объектов. Составные, обобщенные, агрегированные объекты
- •Разновидности сложных объектов
- •10. Даталогическое проектирование бд: цель и этапы даталогического проектирования. Определение состава бд.
- •11. Разновидности даталогических моделей (длм)
- •12.Основные понятия реляционных бд (рбд): кортеж, домен, отношение, степень отношения, мощность отношения, первичный и внешний ключи.
- •13. Индексация файлов (таблиц) в бд. Индексные файлы и индексные ключи.
- •14. Метод проектирования рбд на основе илм (правила 1-12).
- •15. Пример проектирования рбд: создание илм и переход к длм.
- •1. Описание объектов и связей между ними.
- •Определение состава бд и отношений
- •16 Сравнение однотабличной и многотабличной баз данных.
- •17 Операции Реляционной Алгебры.
- •19 Правила записи оператора select.
- •20 Предложение Select
- •21, 22 Предложение where
- •23 Составные условия поиска. Таблицы истинности.
- •26 Многотабличные запросы на чтение.
- •27 Псевдонимы таблиц, самосоединение таблиц.
- •28 Агрегатные функции языка sql.
- •29. Запросы с группировкой и ограничения на них.
- •Примеры.
- •Ограничение на запросы с группировкой.
- •Ограничение на список возвращаемых столбцов.
- •32. Внешние ссылки и связанные подзапросы. Пример.
- •Процедура выполнения запроса, в составе которого имеется связанный подзапрос.
- •33. Условия поиска с вложенным запросом.
- •1) Сравнение с результатом вложенного запроса.
- •3) Проверка на существование результатов вложенного запроса.
- •34. Внесение изменений в бд: добавление, удаление и обновление данных. Добавление новых элементов.
- •1Insert into имя таблицы, в которую добавляется строка )
- •2) Многострочный оператор
- •Удаление существующих данных
- •Обновление существующих данных
- •35. Задание и изменение структуры бд: операторы create table, drop table, alter table.
- •2. Удаление таблицы. Ненужные таблицы можно удалить из бд посредством оператора drop table.
- •3. Изменение определения таблицы.
- •36. Создание и удаление индексов операторами create/drop index. Индексы.
- •37. Создание представлений оператором create view.
16 Сравнение однотабличной и многотабличной баз данных.
Могут возникать проблемы вставки, обновления, удаления.
Проблема вставки
В любой БД не должно быть полей с неопределенными или пустыми значениями.
Например: для однотабличной БД жителей Зеленограда, появляется новорожденный, у которого отсутствует источники дохода. Мы не можем внести его в таблицу, учитывая ограничение, приведенное выше. Для многотабличной БД: занесем в общую базу, указав, что источник дохода = 0.
Проблема обновления
Явная избыточность однотабличной БД может проявляться в том, что фамилия жителей и др. Могут встречаться несколько раз.
Например: Петрова поменяла место жительства. Придется изменять адрес во всех строках, относящихся к фамилии Петрова. В спроектированной БД изменится значение адреса в одной строке таблицы PERSON и информация в таблице FLAT.
Неявная избыточность в однотабличной БД проявляется в том, что все жители одной квартиры имеют один и тот же номер телефона. Если Иванов 1928г.р. сообщает об изменении телефона, то изменяется информация в графе Иванов 1928г.р., а информация об остальных жителях квартиры остается неизмененной.
В многотабличной БД ищем в таблице PERSON номер квартиры. Затем по номеру квартиры находим номер телефона и обновляем его.
Проблема удаления
Если житель лишится единственного источника дохода, то информация о нем будет удалена полностью. В многотабличной БД в таблице HAVED общий доход станет = 0, остальная информация сохранится.
17 Операции Реляционной Алгебры.
РА – мат. основа РБД, это алгебра взаимосвязи между особыми множествами, называемыми отношениями. В РА предусматриваются проекция, выборка, соединение, объединение отношений, пересечение и вычитание отношений, умножение и деление.
R
НП |
ЗАВКАФ |
НТЕЛ |
104 |
Шангин |
2854 |
103 |
Вернер |
2533 |
110 |
Вернер |
2533 |
101 |
Шангин |
2854 |
r – конкретный картеж в R,
X – подмножество атрибутов в отношении,
r[X] – расположенные в ряд значения атрибутов картежа r, входящих в подмножество Х.
X = {НП, ЗАВК}; r[X] = <103, Вернер>.
Результат операции ПРОЕКЦИЯ –
проекция исходного отношения R
на подмножество X, которое
состоит из R[X]
= {z[x] | z
R}
R1=R[НП ЗАВКАФ]
НП |
ЗАВКАФ |
104 |
Шангин |
103 |
Вернер |
110 |
Вернер |
101 |
Шангин |
R1=R[ЗАВКАФ НТЕЛ]
ЗАВКАФ |
НТЕЛ |
Шангин |
2854 |
Вернер |
2533 |
ВЫБОРКА – операция, при которой отношения исследуют по строкам и выбирают из отношения строки, удовлетворяющие некоторым условиям.
R[
(x)]
= {r | z
R
(r[x])};
X={ЗАВКАВ};
(x)=(ЗАВКАФ
= ‘Шангин’)
НП |
ЗАВКАФ |
НТЕЛ |
104 |
Шангин |
2854 |
101 |
Шангин |
2854 |
СОЕДИНЕНИЕ (ОБРАТНАЯ ПРОЕКЦИИ) – для создания 1 нового отношения из двух уже существующих, путем сцепления кортежей 1 отношения с картежами второго. Причем сцепляются только кортежи, в которых значения атрибута Х в первом отношении = значению Y во втором отношении.
R1->r1; R2->r2;
R1[X=Y]R2 = {<r1, r2> | r1 R1 r2 R2 (r1[X]=r2[Y])}
R1 = [ЗАВКАФ= ЗАВКАФ]R2
НП |
ЗАВКАФ |
ЗАВКАФ |
НТЕЛ |
104 |
Шангин |
Шангин |
2854 |
103 |
Вернер |
Вернер |
2533 |
110 |
Вернер |
Вернер |
2533 |
101 |
Шангин |
Шангин |
2854 |
ОБЪЕДИНЕНИЕ – получение отношения, полностью объединяющего картежи, содержащиеся в отношениях R и S. Эти отношения ДОЛЖНЫ иметь одинаковое количество атрибутов и одинаковый порядок их следования. Результат объединения равен сумме отношений
R
S
= {x | x
R
x
S}
ПЕРЕСЕЧЕНИЕ – отношение, состоящее из картежей, одновременно присутствующих в отношениях R и S.
R
S
= {x | x
R
x
S}
ВЫЧИТАНИЕ – отношение, состоящее из картежей, присутствующих в R и неявляющимися картежами S.
R – S = {x | x
R
x
S}
УМНОЖЕНИЕ – декартово или прямое произведение. Получаем путем скрепления каждого картежа R с каждым из картежей S.
R
S
= {<r,S> | r
R
s
S}
В первом m атрибутов, во втором n, тогда в итоге m+n атрибутов. Количество атрибутов – степень отношения. Количество кортежей – мощность множества. Мощность R S = произведению количества кортежей 1-го и 2-го отношений.
18 Structured Query Language
Конкретные реализации SQL учитывают требования стандарта, но предоставляют и дополнительные возможности (SQL1, SQL2(1992), SQL3(1999))
SQL можно использовать в 2-х режимах:
Интерактивном (диалоговом)
Прикладном
Отсюда две разновидности: интерактивный SQL и программный SQL. В функциональном отношении мало отличаются.
Применение программного:
1. Встроенный SQL. Оператор языка SQL записывается непосредственно в тексте программы (встроенный статический SQL), составленной на обычном языке программирования. Либо формируется в спец. обл. памяти (встроенный динамический SQL). Затем выполняется в ходе исполнения программы.
2. Интерфейс прикладной программы API. Программа взаимодействует с СУБД посредством совокупности функций. Вызывая API-функции, программа передает операторы SQL и получает обратно результаты запроса.
Элементы языка: литералы.
Точные числовые литералы (-22, 300.435)
Числовые литералы (10E-3, 4E2)
Строковые константы заключаются в апострофы