Слайд 2Рекомендуемая литература
"Системы баз данных полный курс", Г.Гарсиа-Молина, Дж. Ульман, Дж. Уидом, Вильямс,
![Рекомендуемая литература "Системы баз данных полный курс", Г.Гарсиа-Молина, Дж. Ульман, Дж. Уидом,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-1.jpg)
2003
"Введение в системы баз данных", К.Дж. Дейт, Вильямс, 2001 (или любое другое издание)
"PostgreSQL для профессионалов", Дж. Уорсли, Дж. Дрейк, Питер, 2003
"Основы PostgreSQL", Р. Стоунз, Н. Мэттью, СПб., 2002
Слайд 3Базы данных и СУБД
Точное понятие базы данных не существует. В разных ситуациях
![Базы данных и СУБД Точное понятие базы данных не существует. В разных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-2.jpg)
под этим термином подразумевают разные вещи. Мы попробуем дать следующее абстрактное определение:
База данных – это набор порций информации, существующий в течении длительного времени.
Это понятие очень обширное поэтому в нашем случае этот термин будет немного усложнен. Мы будем работать лишь с компьютерными базами данных, т.е. такими, взаимодействие с которыми осуществляется посредством специального управляющего программного обеспечения – СУБД.
Слайд 4СУБД
Для создания нормальной базы данных нужны три основные составляющие:
сами данные;
аппаратное обеспечение;
программное обеспечение.
Под
![СУБД Для создания нормальной базы данных нужны три основные составляющие: сами данные;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-3.jpg)
программным обеспечением мы будем подразумевать все те средства, которые позволяют конечным пользователям получать доступ к данным и редактировать их. Кроме того это программное обеспечение может решать и другие задачи, такие как например: обеспечение безопасности данных, одновременный доступ и т.д. Весь этот комплекс программ обычно называют системой управления базами данных – СУБД.
Слайд 5Требования, предъявляемые к современным СУБД
Современная СУБД должна предоставлять возможность работы пользователя:
на ЭВМ
![Требования, предъявляемые к современным СУБД Современная СУБД должна предоставлять возможность работы пользователя:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-4.jpg)
разной архитектуры с установленными на них различными операционными системами;
в компьютерных сетях разных типов, работающих по различным протоколам;
с различными графическими и символьными системами представления информации.
Слайд 6Функции СУБД
Современная СУБД должна обеспечивать очень широкий набор функций. Вот некоторые из
![Функции СУБД Современная СУБД должна обеспечивать очень широкий набор функций. Вот некоторые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-5.jpg)
них:
поддержка логической модели данных (определение данных и оперирование с ними);
восстановление данных (транзакции, журналирование, контрольные точки);
управление одновременным доступом;
конфиденциальность данных (безопасность с точки зрения несанкционированного доступа);
самостоятельная оптимизация выполнения операции;
другие функции (администрирование, статистика, распределение данных и т.д.).
Слайд 7Модели данных
Большинство объектов физического мира неимоверно сложны по своей организации. Когда мы
![Модели данных Большинство объектов физического мира неимоверно сложны по своей организации. Когда](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-6.jpg)
пытаемся описать какой-либо из таких объектов мы на самом деле придумываем модель, соответствующую ему в нашем понимании. Если объекты можно поделить на некоторые группы, удовлетворяющие одинаковым моделям, то мы получаем ситуацию, когда внутри базы данных хранятся две группы сущностей:
описания моделей объектов;
записи, удовлетворяющие какой-либо из модели и соответствующие различным представителям объектов.
Но бывают ситуации, когда объекты настолько различны, что их нельзя классифицировать. Тогда база данных представляет из себя набор из одних лишь моделей.
Слайд 8Разновидности моделей данных
Когда мы говорим о моделях данных мы должны понимать, что
![Разновидности моделей данных Когда мы говорим о моделях данных мы должны понимать,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-7.jpg)
нужно уметь хранить не только сами объекты, но и взаимосвязи между ними. За долгую историю развития баз данных было разработано много вариантов организации информации. Вот основные из них:
иерархическая модель;
сетевая модель;
реляционная модель;
объектная модель.
Сейчас актуальны в основном реляционная и объектная модели. Причем хотя наибольшее распространение имеет первая из них, обе модели имеют применение в современном программном обеспечении.
Слайд 9Иерархическая модель
Модель представляет собой неоднородное дерево (группу деревьев), каждый узел которого обозначает
![Иерархическая модель Модель представляет собой неоднородное дерево (группу деревьев), каждый узел которого](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-8.jpg)
некоторую сущность. Узел может иметь только одного родителя и 0 или более порожденных узлов. Каждая связь “родитель-ребенок” означает наличие отношения 1:M между соответствующими сущностями.
Слайд 10Пример
Расписание
Понедельник
Вторник
Физика
Ин. язык
Физ-ра
Мат. анализ
Другие
дни
Другие
предметы
![Пример Расписание Понедельник Вторник Физика Ин. язык Физ-ра Мат. анализ Другие дни Другие предметы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-9.jpg)
Слайд 11Некоторые определения
Пусть какой-то класс объектов из жизни может быть представлен набором свойств
![Некоторые определения Пусть какой-то класс объектов из жизни может быть представлен набором](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-10.jpg)
(A1, A2 … AN). Тогда набор значений, описывающий определенного представителя данного класса мы будем называть записью. А каждое из свойств A1, A2 … AN – атрибутом.
Пример: пусть нашим объектом будут собаки. Будем считать, что для наших целей достаточно знать имя, породу, возраст и хозяина пса. Тогда имя, порода, возраст и хозяин – это атрибуты, а например набор значений (Бобик, Дворняжка, 10, Дядя Федя) – это запись.
Слайд 12Некоторые определения
Атрибут А функционально зависит от атрибута B, если по заданному значению
![Некоторые определения Атрибут А функционально зависит от атрибута B, если по заданному](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-11.jpg)
атрибута B можно однозначно определить значение атрибута A.
Пример: пусть у каждого хозяина будет только одна собака. Тогда мы можем сказать, что атрибут имя функционально зависит от атрибута хозяин.
Слайд 13Некоторые определения
Атрибут или набор атрибутов от которого функционально зависят все остальные атрибуты
![Некоторые определения Атрибут или набор атрибутов от которого функционально зависят все остальные](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-12.jpg)
записи называется ключом.
В нашем предыдущем примере ключом был хозяин.
Если атрибут (набор атрибутов) B функционально зависит от набора атрибутов (A1, A2), но не зависит функционально от каждого из них в отдельности, то атрибуты A1, A2 образуют составной ключ.
Слайд 14Недостатки иерархической модели
неадекватность отображения взаимосвязей между объектами;
частая необходимость в искусственной избыточности;
проблемы поиска
![Недостатки иерархической модели неадекватность отображения взаимосвязей между объектами; частая необходимость в искусственной](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-13.jpg)
по дереву в обратном направлении.
Несложно понять, что в иерархической модели наряду с ее простотой имеется функциональная зависимость неключевых атрибутов от пути в дереве.
Слайд 15Сетевая модель
Сетевая модель подчиняется следующим правилам:
Один и тот же объект может находиться
![Сетевая модель Сетевая модель подчиняется следующим правилам: Один и тот же объект](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-14.jpg)
с другими объектами более чем в одном отношении.
Допускаются отношения N:M.
Нет иерархии.
Запись может не находиться ни в одном отношении с другими объектами.
В общем случае сетевая модель представляет собой произвольно ориентированный граф, возможно с петлями, узлы которого обозначают типы объектов, а дуги связи между ними.
Слайд 16Внутренняя архитектура сетевой модели данных
Основные правила построения сетевых баз данных были сформулированы
![Внутренняя архитектура сетевой модели данных Основные правила построения сетевых баз данных были](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-15.jpg)
в 1971 рабочей группой по базам данных DTBG ассоциации по языкам систем обработки данных CODASYL. Они носят название CODASYL DTBG.
Сетевая СУБД оперирует следующими объектами: элементами данных, агрегатами данных, записями, и наборами.
В настоящее время широко известна сетевая СУБД db_Vista, работающая на персональных компьютерах в DOS и Windows.
Слайд 17Элементы данных и агрегаты данных
Элемент данных (ЭД) - наименьшая поименованная единица данных
![Элементы данных и агрегаты данных Элемент данных (ЭД) - наименьшая поименованная единица](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-16.jpg)
(аналог поля), с помощью которой осуществляется построение всех остальных структур. Имя элемента данных используется для его идентификации в схеме структуры данных более высокого уровня. Значение элемента данных может быть одного из встроенных типов: числовым (целым, вещественным) или нечисловым (символьным, логическим). В некоторых приложениях может использоваться «неопределенное» значение элемента данных и говорит о том, что значение соответствующего свойства объекта не определено в БД.
Слайд 18Элементы данных и агрегаты данных
Агрегат данных - поименованная совокупность элементов данных внутри
![Элементы данных и агрегаты данных Агрегат данных - поименованная совокупность элементов данных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-17.jpg)
записи, которую можно рассматривать как единое целое. Имя агрегата используется для его идентификации в схеме структуры данного более высокого уровня. Агрегат данных может быть простым если состоит только из элементов данных, и составным если включает в свой состав другие агрегаты.
Слайд 19Виды агрегатов данных
Простой агрегат
данных
Составной агрегат
данных
![Виды агрегатов данных Простой агрегат данных Составной агрегат данных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-18.jpg)
Слайд 20Виды агрегатов данных
Различают агрегаты типа «вектор» и типа «повторяющаяся группа». Агрегат, повторяющийся
![Виды агрегатов данных Различают агрегаты типа «вектор» и типа «повторяющаяся группа». Агрегат,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-19.jpg)
компонент которого является простым элементом данных, называется «вектором». Агрегат, повторяющийся компонент которого представлен совокупностью данных, называется повторяющейся группой. В повторяющуюся группу могут входить отдельные элементы данных, векторы, агрегаты или повторяющиеся группы.
Максимальное количество элементов данных (или агрегатов данных) для вектора и повторяющейся группы ограничено и задается при спецификации схемы записи.
Слайд 21Виды агрегатов данных
Вектор
Повторяющаяся
группа
![Виды агрегатов данных Вектор Повторяющаяся группа](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-20.jpg)
Слайд 22Запись
Запись - поименованная совокупность элементов данных и/или агрегатов. Иными словами, запись -
![Запись Запись - поименованная совокупность элементов данных и/или агрегатов. Иными словами, запись](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-21.jpg)
это агрегат, который не входит в состав никакого другого агрегата и может иметь сложную иерархическую структуру, поскольку допускается многократное применение агрегации. Имя записи используется для идентификации типа записи в схемах типов структур более высокого уровня. Экземпляр записи – это набор конкретных значений, которые принимают все входящие в запись агрегаты и элементы данных.
Слайд 23Набор
Набор записей - поименованная совокупность записей, образующая двухуровневую иерархическую структуру подчинения: каждый
![Набор Набор записей - поименованная совокупность записей, образующая двухуровневую иерархическую структуру подчинения:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-22.jpg)
тип набора представляет собой отношение (связь) между двумя или несколькими типами записей. В силу иерархичности набора для каждого его типа один тип записи объявляется «владельцем», тогда остальные типы записей - «члены», т.е. имеют место «запись-владелец» и «запись-член (набора)». Каждый экземпляр набора должен содержать только один экземпляр записи-владельца и любое количество экземпляров записей-членов.
Различают сингулярные, двухтипные и множественные наборы. Сингулярный набор содержит только тип записи члена. Записью владельцем выступает система. Двухтипный набор подразумевает одну запись с типом-владельцем и много записей с типами-членами. Множественный набор подразумевает несколько типов записей членов набора. Тогда экземпляр набора включает в себя один экземпляр записи владельца и все связанные с ним экземпляры записей-членов заданных типов.
Слайд 24Виды наборов
Название
Значение
Система_Константа
Константа
Руководитель_Подчиненные
Сумма
Название
Обязанность
Договор
Фамилия
Имя
Отчество
Персона
Персона
Должность
Зарплата
Сингулярный
Множественный
![Виды наборов Название Значение Система_Константа Константа Руководитель_Подчиненные Сумма Название Обязанность Договор Фамилия](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-23.jpg)
Слайд 25Реляционная модель
В реляционной модели все данные представлены в виде таблиц. Строки таблиц
![Реляционная модель В реляционной модели все данные представлены в виде таблиц. Строки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-24.jpg)
– это отдельные записи, а колонки – это атрибуты. Каждая таблица представляет набор объектов (записей) удовлетворяющих определенному отношению (соответствующему таблице). Отсюда и название – реляционная модель. Значения атрибутов таблиц удовлетворяют некоторым заранее предопределенным доменам – областям определения. Реляционная база данных представляет из себя набор таких отношений-таблиц.
Более подробно данную модель мы рассмотрим позже.
Слайд 26Объектная модель
Объектную модель иногда называют также объектно-ориентированной моделью.
Основные понятия с которыми оперирует
![Объектная модель Объектную модель иногда называют также объектно-ориентированной моделью. Основные понятия с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-25.jpg)
данная модель:
объекты, обладающие внутренней структурой и однозначно идентифицируемые уникальным внутрисистемным ключом;
классы, являющиеся по сути типами объектов;
операции над объектами одного или разных типов называемые методами;
инкапсуляция структурного и функционального описания объектов, позволяющая разделять внутреннее и внешнее описания;
наследуемость внешних свойств объектов на основе отношения “класс-подкласс”.
Слайд 27Недостатки и преимущества объектной модели
Преимущества:
Возможность определять сколь угодно сложные типы данных;
Наличие наследуемости
![Недостатки и преимущества объектной модели Преимущества: Возможность определять сколь угодно сложные типы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/398604/slide-26.jpg)
свойств объектов;
Повторное использование программного описания типов объектов при обращении к другим типам, на них ссылающимся.
Недостатки:
Отсутствие строгой математической модели;
Более сложные механизмы поиска и взаимодействия.