Содержание:
Соотношение сложности представления обрабатываемых данных и алгоритма вычислений определяет два класса задач:
Развитие систем хранения данных
Этапы развития систем хранения данных
История развития баз данных насчитывает более 50 лет.
0-й этап. Файловые системы.
Фа́йловая систе́ма (file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации
Недостатки применения файловых систем:
Магнитные диски впервые были реализованы в 1956 году в исследовательской лаборатории корпорации IBM, расположенной в Сан-Хосе (Калифорния), где был выпущен серийный дисковый накопитель
IBM 350 — первое устройство с подвижной головкой для чтения и записи.
Первая развитая файловая система была разработана фирмой IBM для ее серии System/360 в 1964 году
В 60-х годах прошлого столетия появилась необходимость в надежной модели хранения и обработки данных. В первую очередь эти данные генерировались банками и финансовыми организациями. В то время не существовало единых стандартов работы с данными и моделями, да и работа как таковая заключалась в ручном упорядочении и организации хранящейся информации.
У банков худо-бедно получалось записывать информацию о транзакциях в виде файлов в заранее подготовленную структуру. У каждой организации было собственное понимание того, как все это должно выглядеть и работать. Не было таких понятий, как консистентность (англ. data consistency), целостности данных (англ. data integrity). В файлах часто встречались дубликаты данных клиентов и их транзакций, которые необходимо было каким-то образом уточнять и приводить в порядок, делалось это в основном вручную. В целом все проблемы того времени в отношении работы с данными можно разделить на несколько основных видов:
1-й этап. Монолитная архитектура
2-й этап. Архитектура «файл-сервер»
Файл-сервер только извлекает данные из файла (файлов) базы данных и передает их клиенту для дальнейшей обработки.
Особенности:
3-й этап. Трехуровневая архитектура (клиент-сервер)
Эволюция моделей данных
Модель данных — это абстрактное, самодостаточное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину доступа к данным, с которой взаимодействует пользователь.
Теория СУБД включает, по меньшей мере, три аспекта:
Иерархическая модель данных
Модель данных, где используется представление базы данных в виде древовидной (иерархической) структуры, состоящей из объектов (данных) различных уровней.
Сетевая модель данных
Модель данных, являющаяся расширением иерархического подхода, — у потомка может быть любое число предков.
Достоинства:
Реляционная модель данных
Реляционная модель использует таблицы и базируется на двух утверждениях:
Not Only SQL (4 типа)
Система управления базами данных (СУБД)
Понятие «База данных»
База данных — это совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ.
Отличительные признаки БД:
Состав СУБД
Функции СУБД
Двенадцать правил Дейта
Физическая организация данных
Логическая организация данных
Реляционная структура данных и операции реляционной алгебры
Реляционная структура
Операции реляционной алгебры
Кодд описал восемь основных операций реляционной алгебры, позволяющих манипулировать с кортежами:
Для любых множеств:
select A, B from R
UNION
select A, B from S
select A, B from R
INTERSECT
select A, B from S
select A, B from R
EXCEPT
select A, B from S
select A, B, C, D
from R, S
select A, B
from R
WHERE R.A = 'a1'
select A, C
from R
select A, M, N, B
from R, S
WHERE R.M = S.N
select A, M, N, B
from
R INNER JOIN S on R.M = S.N
SELECT DISTINCT A, B
from R
WHERE
NOT EXIST
SELECT * from S
WHERE NOT EXIST
S.c = R.c AND
S.d = R.d
SELECT DISTINCT A, B
FROM R
LEFT JOIN S ON S.c = R.c. AND S.d = R.d
GROUP BY A, B
HAVING
Count (Distinct S.c, S.d) = (Select Count(*) from S)
AND
Count (Distinct R.a, R.b) = (Select Count(*) from S)
Реляционная алгебра. Выводы
Реляционная алгебра — это язык операций, выполняемых над отношениями — таблицами реляционной базы данных. Операции реляционной алгебры позволяют на основе одного или нескольких отношений создавать другое отношение без изменения самих исходных отношений.
Реляционная алгебра = реляционные отношения + реляционные операции
Реляционная алгебра:
Недостатки реляционной алгебры
Диалекты языка SQL (расширения SQL)
Язык SQL — это стандарт, он реализован во всех реляционных базах данных, но у каждой СУБД есть расширение этого стандарта, есть собственный язык работы с данными.
Целостность данных (Constraint)
Ограничение целостности — cоответствие имеющейся в базе данных информации её внутренней логике, структуре и всем явно заданным правилам.
Ограничение — формулировка требования к данным на уровне поля или таблицы.
Два способа обеспечения целостности:
Декларативные способы
ACID