БАЗЫ  ДАННЫХ

БАЗА ДАННЫХ (БД) – хранилище интегрированных и коллективно используемых данных,
организованное с целью:
•	обеспечить независимость структур хранимых данных от обрабатывающих программ,
•	оптимизировать использование памяти и время доступа.

Пользователи БД: прикладные программы, непрограммирующие пользователи, прикладные программисты,
		     администраторы БД.	

СУБД – программный комплекс, обеспечивающий создание, модификацию и использование БД.

СХЕМА БД			< ------------ >		ЭКЗЕМПЛЯР БД

ОБЪЕКТ				-		Экземпляр, Запись (студент, деталь)
	имеет ИМЯ
	имеет АТРИБУТЫ		-		Поля (ФИО-студента, номер-детали)

ОТНОШЕНИЯ между Объектами

КЛЮЧ – атрибут (или группа атрибутов), однозначно идентифицирующая ОБЪЕКТ.
 
ФУНКЦИИ СУБД
•	ОБРАБОТКА ЗАПРОСА:
	Пользователь выдает ЗАПРОС
	СУБД интерпретирует ЗАПРОС
	СУБД обследует:	внешнюю схему
				отображение “внешний - концептуальный”
концептуальную схему
				отображение “концептуальный - внутренний”
				структуру хранимой БД (внутренний уровень)
	СУБД выполняет необходимые операции над хранимой БД

•	КОНТРОЛЬ ПОЛНОМОЧИЙ (обеспечение БЕЗОПАСНОСТИ)
Обеспечение безопасности – защита данных в БД от несанкционированного раскрытия, изменения или разрушения. 

•	ОБЕСПЕЧЕНИЕ ЦЕЛОСТНОСТИ
Обеспечение целостности – защита данных от неверных (vs. незаконных) изменений и обеспечение правильности данных в БД.
причины нарушения целостности: 
сбои оборудования; 
ошибки человека (пользователя, обслуживающего персонала);
программные ошибки в СУБД, ОС;
программные ошибки в прикладных программах.

•	ПРОГРАММЫ ОБСЛУЖИВАНИЯ:
- ведение журнала,
- копирование,
- восстановление,
- откат,
- контрольные точки,
- контроль нарушения ограничений.

БАЗЫ  ДАННЫХ
ПРИМЕР

ЗЧ (заказчик)

З	ФИО	АДР	ГОР	

ТР (товар)

Т	НАИМ	МАРКА	ЦЕНА	ГОР	

ЗЗ (заказ)

Зi   < --- >  Tj
            Nij

ПОИСК (SEARCH):			найти ЗЧ, заказавших Т2

ВКЛЮЧЕНИЕ (INSERT):		появился новый ЗЧ – З4

УДАЛЕНИЕ (DELETE):		З3 отказался от заказа на Т2

ОБНОВЛЕНИЕ (UPDATE):		изменился адрес (ГОР) З1

ЗЧ
З	ФИО	АДР	ГОР	
З1	Иванов	<текст>	М	
З2	Петров	<текст>	М	
З3	Сидоров	<текст>	С-П	

ТР
Т	НАИМ	МАРКА	ЦЕНА	ГОР	
Т1	ХОЛ	ЗИЛ	2000	М	
Т2	ХОЛ	МОРОЗ	1500	С-П	
Т3	ТВ	РЕК	2500	В	
Т4	ТВ	РУБ	3500	М	

ЗЗ
З	Т	К	
З1	Т1	1	
З1	Т2	2	
З1	Т3	4	
З2	Т1	3	
З2	Т2	4	
З3	Т2	3	

РЕЛЯЦИОННАЯ СХЕМА:
DOMAIN  З	CHAR (2)	
DOMAIN  ФИО	CHAR (20)
. . .
REL ЗЧ (З, ФИО, АДР, ГОР)  KEY(З)	
REL ТР (Т, НАИМ, МАРКА, ЦЕНА, ГОР)  KEY(Т)	
REL ЗЗ (З, Т, К)  KEY(З, Т)
БАЗЫ  ДАННЫХ

Языки:
•	ЯЗЫКИ ОПИСАНИЯ ДАННЫХ (ЯОД)		- для описания схемы БД
•	ЯЗЫКИ МАНИПУЛИРОВАНИЯ ДАННЫМИ (ЯМД)	- для изменения состояния БД (включ., поиск и др.)
•	ЯЗЫКИ ЗАПРОСОВ (ЯЗ)				- для пользователя (может совпадать с ЯМД)

Язык  SQL

ПОИСК (ВЫБОРКА):
SELECT  <что>
FROM    <где>
WHERE   <условия выборки>

ЗЧ
З	ФИО	АДР	ГОР	
З1	Иванов	<текст>	М	
З2	Петров	<текст>	М	
З3	Сидоров	<текст>	С-П	

ТР
Т	НАИМ	МАРКА	ЦЕНА	ГОР	
Т1	ХОЛ	ЗИЛ	2000	М	
Т2	ХОЛ	МОРОЗ	1500	С-П	
Т3	ТВ	РЕК	2500	В	
Т4	ТВ	РУБ	3500	М	

ЗЗ
З	Т	К	
З1	Т1	1	
З1	Т2	2	
З1	Т3	4	
З2	Т1	3	
З2	Т2	4	
З3	Т2	3	

ПОИСК (SEARCH):			найти ЗЧ, заказавших Т2
SELECT  З
FROM    ЗЗ
WHERE   Т = ‘Т2‘

ВКЛЮЧЕНИЕ (INSERT):		появился новый ЗЧ – З4
INSERT INTO  ЗЧ ‘З4‘, ‘Иваненко ‘,‘. . .‘, ‘М‘

УДАЛЕНИЕ (DELETE):		З3 выбыл из числа заказчиков
DELETE  ЗЧ
WHERE   З = ‘З3‘

ОБНОВЛЕНИЕ (UPDATE):		изменился адрес (ГОР) З1
UPDATE  ЗЧ
SET     АДР = ‘С-П‘
WHERE   З = ‘З1‘

БАЗЫ  ДАННЫХ

РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ							
(есть еще: ИЕРАРХИЧЕСКАЯ МОДЕЛЬ ДАННЫХ, СЕТЕВАЯ МОДЕЛЬ ДАННЫХ)

РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ – модель данных, представленная набором отношений
					    (изменяющихся во времени, нормализованных)

Нормализованные отношения:
•	нет одинаковых строк,
•	порядок строк несуществен,
•	порядок столбцов несуществен,
•	все значения атомарны (в каждой клетке одно и только одно значение)

Множества: D1, D2, . . . Dn
R – множество упорядоченных n-ок (кортежей) вида <d1, d2, . . . dn>, где di  Di
R – отношение
n – степень отношения
Di – домены отношения R

ОТНОШЕНИЕ		-	ТАБЛИЦА
КОРТЕЖ		-	СТРОКА ( ЗАПИСЬ )
АТРИБУТ		-	СТОЛБЕЦ
ДОМЕН		-	МНОЖЕСТВО ЗНАЧЕНИЙ В СТОЛБЦЕ

КЛЮЧ – атрибут (или группа атрибутов), однозначно идентифицирующая ОБЪЕКТ.