- •Основы баз данных. Введение.
- •БзХранятся не только данные, но и знания о применении этих данных. Реализуются они в виде процедур и алгоритмов. Выборки обрабатывают данные.
- •История БнД.
- •Проблемы бд:
- •Состав БнД.
- •Процесс проектирования базы данных.
- •Er-модель (модель Чена).
- •Основные понятия:
- •Виды связи
- •Рекурсивные связи
- •Представление связей более высокого порядка (не бинарных).
- •Избыточное дублирование.
- •Реляционная модель данных.
- •12 Правил Кодда, которым должна удовлетворять реляционная база данных.
- •Операции над данными.
- •Реляционная алгебра.
- •Свойства реляционных операций.
- •Понятие функциональной зависимости (ф.З).
- •Запись запросов на языке реляционной алгебры.
- •Проектирование реляционной базы данных.
- •Методы проектирования.
- •7 Правил Джексона.
- •Язык доступа к данным, основанный на исчислении с переменными кортежами.
- •Атрибуты, используемые для описания таблиц.
- •Обработка ссылочной целостности.
- •Операторы манипулирования данными.
- •Как задается условие?
- •Запросы, которые реализуются на основе соединения.
- •Подзапрос.
- •Использование квантора exists для поиска пересечения и разности.
- •Квантор общности моделирующий операцию деления.
- •Соответствия между операциями реляционной алгебры и sql.
- •Технологии клиент-сервер.
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •Внутренняя модель данных.
- •B-дерево.
- •Язык query by example (qbe)
- •Операции выборки в отношениях, имеющих древовидную структуру
- •Операции запоминания
- •Библиотечные функции
Атрибуты, используемые для описания таблиц.
Атрибуты, описывающие характеристики столбца:
Primary key - данное поле является первичным ключом;
References имя_таблицы (имя_поля) – данный столбец является внешним ключом, он взят из таблицы и поля, указанного в атрибуте;
Not null – в этом столбце не должно быть пустых значений;
Default значение – указывает значение, которое принимается по умолчанию.
Unique - все значения в этом поле должны быть уникальными, по умолчанию поле Primary key должно быть Not null и Unique;
Check (Условие) – задает условие, которое должно быть истинным при заполнении информации в этом поле.
Атрибуты на уровне таблицы.
Check (Условие) – это значение должно быть истинным, чтобы компьютер признал все изменения правильными;
Unique (список полей) – все значения в комбинации полей должны быть уникальными;
Primary key (список полей) – указывается на уровне таблицы, если первичный ключ состоит из нескольких полей;
References имя_поля1 from имя_таблицы1 (поле1) – в нашей таблице имя_поля1 берется из таблицы1, поля1.
Обработка ссылочной целостности.
Restrict - указывает каким образом поддерживается
On delete cascade процедура удаления в связующей таблице.
null
restrict - указывае каким образом поддерживается
On update cascade процедура изменения в связующей таблице.
null
Restrict указывает, что удаление (изменение) в связующей таблице при наличие связей запрещено.
Cascade обозначает, что удаление (изменение) сначала происходит в связующей таблице, а затем изменяется сам объект.
Null указывает, что ключи связей получают значение null.
Рассмотрим на примере оn update:
Пусть у нас есть 2 таблицы, в первой находится описание объекта, а вторая таблица является связующей.
-
№поставщика
Фамилия
1
Петров
1
Петров
-
№поставщика
Название_детали
вес
количество
1
Болт
13
244
1
Гайка
12
200
Если в оn update стоит restrict, то при изменении №поставщика, например, на 10, будет выдано сообщение о том, что данный номер используется в связующей таблице, и изменение будет запрещено.
Если в оn update стоит cascade, то сначала произойдет изменение в №поставщика в связующей таблице, и только потом изменится №поставщика в первой таблице.
Если в оn update стоит null, то в первой таблице №поставщика изменится с 1 на 10, а в связующей таблице вместо №поставщика будет записано null.
Операторы манипулирования данными.
Добавление информации в таблицу.
Insert into имя_таблицы (список полей) values (список выражений)
добавление одной записи,
Чтобы добавить несколько значений из другой таблицы можно использовать следующий оператор –
Insert into имя_таблицы [(список добавляемых полей)]
или использовать полузапрос
select список полей
from список таблиц
where условие
из таблиц будут выбраны поля, удовлетворяющие некоторому условию, и добавлены в новую таблицу.
Оператор обновления.
Update имя_таблицы set поле=значение [where условие] (все что записано в квадратных скобках это не обязательно, может быть, а может и не быть).
Удаление записи из таблицы.
Delete from имя_таблицы [where условие]
Если where условие опущено, то удаляются все записи.
Оператор поиска данных в таблицах
distinct
Select all список_полей from список_таблиц
[where условие] [group by список_полей] [having условие]
[order by поля[asc,desc]] [union [all] подзапрос]
distinct – режим, исключающий повторяющиеся записи в ответе.
All – режим, при котором в ответ включаются все записи. По умолчанию принято all, его можно не указывать.
Если одновременно присутствует where и having, то сначала будет выполняться where.
Если присутствует where, having, group by, то сначала выполнится where, потом group by, а потом having.
Select список_полей - указывает имена полей, которые должны содержаться в ответе;
from список_таблиц – указывает имена таблиц, которые участвуют в запросе;
where условие – задает условие отбора записей в ответ;
group by список_полей – задает условие группировки записей, группировка – это операция разбиения на группы, каждая из которых содержит одинаковые значения в отмеченных столбцах;
having условие задает условие отбора групп, если нет group by, то это условие применяется ко всей таблице;
order by поля[asc,desc] – задает тип сортировки записей в ответе, asc – это сортировка по возрастанию, desc – по убыванию, по умолчанию ставится asc;
union [all] подзапрос позволяет объединить главный Select с результатом подзапроса, подзапросом называется вложенный оператор Select.