Размер шрифта:
Смелик В.В. – Управление данными – Лекции
Play

Смелик В.В. – Управление данными – Лекции

1.Статистический(стохастический). Измеряет количество информациив сообщении как уменьшение энтропии (неопределённости) приёмника.

2.Понятийный (семантический). Измеряет количество информациив сообщении как степень приращения тезауруса приёмника. Тезаурус — словарь предметной области с более-менее однозначнойтрактовкой терминов предметной области.

3.Полезностный(прагматический). Определяет количество информации в сообщении как изменение расстояния до цели.

Любые оценки зависят от получателя информации, то есть являются субъективными. Информациикак объекта реального мира не существует.

Данные — сведения об объектах и явлениях окружающегомира, выраженныев форме, доступной для восприятия, передачи и хранения.

Тип данных — способ представленияданных в оперативнойили постоянной памяти, а так же связанные с ним методы обработки.

• Byte. 1 байт, 256 значений.

• Short. 2 байта. Ushort (unsigned short). 2байта, только неотрицательные числа.

• Long, ulong. 4байта.

• Sreal (short real). 2байта с плавающей точкой.

• Decimal. В каждом байте хранится по 2 цифры от 0 до 9.

• String. Определяет строку заданной длины, инициированнуюпробелами (изначально заполняется пробелами).

• CString. Строка с терминатором. Терминатор — специальныйсимвол, обозначающийконец данных в строке. Можем использоватьна один байт меньше, чем заявленно.

• PString. Строка фиксированнойдлины с указателем длины в левом байте.

• VChar (varchar).Строка переменной длины.

• Blob "помойка". Тип переменно длины для хранения двоичных данных, неиндексируемых.

Домашнее задание: дать описание типам date и time.

Домашнее задание на листе А4. В левом верхнем углу: ФИО, группа, дата исполнения, номер задания.

2.Средства ввода, вывода и передачи данных.

Термины баз данных

Атрибут — неотъемлемоесвойство объекта, без которого он не может ни существовать, ни мыслиться. Объекты одного класса описываютсяодними атрибутами.

Домен — определяет потенциальноемножество значений данного типа (атрибута) и, возможно, правила обработки.

Схема отношения — именованноемножество пар, "имя атрибута – имя домена".

Схема базы данных — набор именованныхсхем отношений.

Кортеж (соответствующийданной схеме отношений) — множество пар, "имя атрибута – значение", которые содержат одно вхождение каждого имени атрибута, принадлежащегосхеме отношений.

Отношение — множество кортежей, соответствующиходной схеме отношения.

1.Отсутствие кортежей-дубликатов. Первичный ключ — атрибут (или набор атрибутов), однозначно определяющийкортеж отношений.

Домашнее задание: изобразить соответствиеклассическихтерминов теории БД их коммерческиманалогам.

1.Каким образом отразить объекты предметной области в абстрактные объекты базы данных?

Из каких отношений должна состоять база данных?

Какие атрибуты должны быть у этих отношений?

2.Как обеспечить эффективностьвыполнения запросов к базе данных?

•Проектированиес использованиемнормализации(математический подход).

•Проектированиес учётом смысла предметной области (семантическое проектирование). Заключаетсяв построении ER-диаграмм (entity – relationship). Набор сущностей, между которыми установлена связь. Элементы:

Сущность. На диаграмме прямоугольник. В заголовке имя сущности. Под именем сущности указываютсяатрибуты, которые характеризуютэту сущность. Ключевые атрибуты выделяются.

Связь. Отображаетсялинией. Прерывистаялиния обозначает необязательностьсвязи. На концах связи может отражаться мощность связи (указываетсяколичество экземпляровсущности, с которыми может быть установлена связь (в чаще всего либо 1, либо много (трезубец))). При необходимостисвязи подписываются.

Между сущностями устанавливаетсясвязь. Связей может быть несколько. Связь может связывать одну и ту же сущности.

Пример. Предметная область "Брачные отношения".

Моногамный брак. У одного мужчины может быть только одна жена, при этом он не может не иметь жену. То же и про жён.

Домашнее задание: придумать предметную область для диаграммы и дополнить её текстовым описанием.

Порядок построения ER-диаграмм

1.Предметная область полно и непротиворечивоописываетсяна естественномязыке.

2.Из описания предметной области выбираются все существительные.

3.В списке существительныхвыбираются синонимы и оставляется только один вариант.

4.Из описания предметной области выбираются все глаголы.

5.Каждое существительноеотображаетсяна ER-диаграмме в виде отдельной сущности.

6.В соответствиис описанием предметной области между сущностями проводятся связи; глаголы используютсядля подписи связей; определяетсямощность концов связи.

7.Выявляются пары сущностей, между которыми установлена связь "один к одному"; пары объединяютсяв сущность с новым именем; объединённыесущности становятся атрибутами новой сущности.

8.Выполняетсяпроверка на наличие избыточных связей; лишние связи удаляются.

9.На ER-диаграмме выявляются сущности-сироты и удаляются.

Правила преобразованияER-диаграммы в схему базы данных

1.ВыполняетсямодификацияER-диаграммы для исключения связей "многие ко многим".

2.Каждая сущность превращаетсяв таблицу. Имя сущности становится именем таблицы, имена атрибутов становятся именами столбцов.

3.Каждая таблица заполняется полем-идентификатором, являющимся первичным ключом.

4.Для каждой связи в таблице, находящейсяна стороне "много" добавляетсяполе, являющееся внешним ключом, по типу соответствующееполю первичного ключа в таблице на стороне связи "один".

5.Атрибуты всех таблиц типизируются.

6.Выделяютсяи детализируютсядомены; в описании таблиц типы заменяются на домены.

Домашнее задание: построить ER-диаграмму предметной области "почтовый адрес". Должен быть почтовый индекс, населённые пункты и улицы должны иметь деление на категории (село, город, улица, проспект).

1.Физическое размещение данных в оперативнойи/или постоянной памяти.

2.Механизм поиска требуемых данных.

3.Система поддержанияфизической и логической целостности данных.

4.Подсистема обмена данными.

5.Система авторизациии прав доступа.

6.Система распараллеливанияпользователей(или сериализации транзакций).

Структуры внешней памяти:

2.Файлы индексов. Индекс — специальнаяструктура внешней памяти, в которой хранятся упорядоченныессылки на строки в файле данных.

3.Журнал. Журнал — это файл с данными о том, кто, что и когда делал с данными.

4.Служебные структуры СУБД.

Физическая организация файлов данных

В файле таблицы хранятся примерно так (А — атрибут, З — запись):

А1,А2,А3,А4 З1,З2,З3,З4 З5,З6,З7,З8

Проблема в том, что приходится искать каждый разделитель (запятые) для перехода к нужной строке. А давайте сделаем строки фиксированнойдлины

Операции с данными: add, del, put (edit).

Домашнее задание: придумать предметную область, составить ER-диаграмму и схему базы данных по рисунку.

Жёсткие диски читают и записывают минимум кластерами (1–2 МБ), поэтому файлы данных разбиваютсяна страницы в соответствиис размером кластера. Есть 2 вида страниц:

1.Корневые (R). Хранятся указатели на задействованныестраницы данных. В конце указываетсяидентификаторследующей корневой страницы. Размер файлов ограничиваетсяколичествомбайтов, выделеннымна указатели.

2.Страницы данных (D). У каждой строки есть идентификатор.

Домашнее задание: построить ER-диаграмму и схему базы данных для магазинного чека.

Индексы — структуры внешней памяти, обеспечивающиеупорядоченный доступ к данным.

Таблицы данных не отсортированы. Для того, чтобы обеспечить доступ с сортировкойстроятся индексы.

Один из популярных алгоритмов построения индексов —би-дерево. Бидерево — сбалансированноесильно ветвистое дерево во внешней памяти. Сбалансированность — свойство дерева, подразумевающее, что расстояние от корня до любого листа одинаково. Сильная ветвистость подразумевает, что у каждого отца может быть много детей. В узлах дерева хранятся пары «значение ключа (ЗК) – номер страницы индекса (НСИ)». Правило: ЗК1,НСИ1 ≤ ЗК2,НСИ2 ≤ … ≤ ЗКn,НСИn. В листе пары «значение ключа (ЗК), номер страницы данных (НСД)». Правило: ЗК1,НСД1 < ЗК2,НСД2 < … < ЗКn,НСДn. Прелесть такой структуры в том, что она самоорганизующаяся.

Занесение новой записи (шаги):

1.Поиск листовой страницы (поиск по ключу).

2.Считывание листовой страницы в буфер оперативнойпамяти. Буфер оперативнойпамяти должен быть больше, чем размер страницы.

3.Помещаем на место в странице новую запись.

4.Если в странице осталось свободное место, она выталкиваетсяиз буфера. Если превышен размер страницы, то выделяется буфер под новую страницу, и выполняетсярасщеплениестраницы примерно пополам. После этого выполняетсявыталкиваниебуферов и считывание родительскойстраницы. В родительскуюстраницу добавляетсякорректирующаязапись, анализируетсястраница на предмет переполнения, и действия с ней выполняютсяпо вышеописанномуалгоритму.

Домашнее задание: ещё раз сделать ER-диаграмму и схему базы данных для чека.

Домашнее задание: сделать ER-диаграмму и схему базы данных для таблицы с фотографи (р/с — расчётный счёт, еи — единица измерения).

Домашнее задание: сделать ER-диаграмму и схему базы данных склада рефератов.

Журналы — служебные файлы систем хранения данных, содаржащиезаписи о выполненныхоперациях модификацииданных. Операции: добавление и удаление (изменение — удаление старых и добавление новых).

Транзакция — операция модификациибазы данных, характеризующаяся логической неделимостьюи переводящаябазу данных из одного согласованногосостояния в другое согласованноесостояние.

1.Отсутствие экземпляровсущностей. являющихся сиротами. Все значения внешних ключей должны присутствоватьв первичных ключах тех сущностей, на которые они ссылаются.

2.Данные должны соответствоватьограничениям, накладываемым доменами.

Проблемы, связанные с транзакциями:

1.Проблема грязного чтения. Чтение изменяющейсяв данный момент

2.Проблема повторного чтения. Внутри одной транзакции выборка по заданным условиям должна быть идентична, сколько бы раз не повторялась.

3.Проблема смертельногообъятия (проблема конкурирующегодоступа). Транзакция 1 читает таблицу 1 и изменяет таблицу 2, а транзакция 2 читает таблицу 2 и изменяет таблицу 1. Транзакция 1 захватывает таблицу 1, а транзакция 2 захватываеттаблицу 2, и они ждут, когда освободитсядругая таблица для записи. Ждут друг друга бесконечно.

Журнал содержит поля:

1.Транзакция. Идентификатор, внешний ключ.

3.Где. Какая таблица.

4.Что. Операция и значения.

Операторы для работы с транзакцией:

• BEGIN — оператор начала транзакции.

• COMMIT —оператор успешного завершения транзакции; операции из журнала полностью применяютсяк хранилищу данных.

• ROLLBACK —оператор отката транзакции; все операции из журнала должны быть отражены в хранилище данных в обратном порядке и с обратными операторами.

1.Жёсткий сбой. Характеризуетсяфизическим нарушением в хранилище данных. Приёмы защиты:

Базы данных и файлы журнала должны храниться на физически разных носителях.

Архивацияданных. Раз в неделю делается полный бэкап, а

каждый день бэкап только изменений в системе. Рекомендованнаяглубина бэкапа: 3 полных бэкапа.

2. Мягкий сбой. Характеризуетсяутратой содержимогооперативной памяти.

Домашнее задание: придумать предметную область на 7–9 сущностей и представить её в табличной форме, ER-диаграмме и схеме БД.

Темпаральные (временные) базы данных — это базы данных, в которых учитываетсявремя выполнения операций модификацииданных.

Домашнее задание: почтовый конверт.

Главное требование, предъявляемоек транзакциям — изолированность.

Сериализация транзакций — определениепорядка выполнения транзакций.

1.Метод синхронизационныезахваты. Заключаетсяв том, что у каждой таблицы может быть проставленаметка, информирующаяо использованииэтой таблицы в транзакции. Выделяют 2 режима захвата таблиц: S-Shared (совместный, можно захватывать в режиме S, но не X), X-eXclusive (монопольный, нельзя захватывать).

2.Гранилированныесинхронизационныезахвати. Проставляетметки не только у таблиц, но и у картежей (записей). Объект любого уровня может быть захвачен в режиме S или X. Перед захватом объекта должен быть выполнен захват объекта верхнего уровня в режимах IS (Intended for Shared lock), IX (Intended for eXclusive lock)и SIX (Shared with Intended for eXclusive lock).

3.Предикатныезахваты. Захватываетобъекты, удовлетворяющие заданному условию.

📎📎📎📎📎📎📎📎📎📎