Концепция баз данных. Требования, предъявляемые к бд Требования предъявляемые к системе бд пример

Цель занятия: усвоить знания по содержанию этапов проектирования базы данных, требований к БД.

План

    Требования, предъявляемые к базе данных

    Основные этапы проектирования БД.

    Модель "сущность-связь".

  1. Требования, предъявляемые к базе данных

Развитие технологий баз данных определяется рядом факторов: ростом информационных потребностей пользователей, требованиями эффективного доступа к информации, появлением новых видов машиной памяти и увеличением ее емкости, новыми средствами и возможностями в сфере телекоммуникаций и др.

К современным базам данных предъявляются следующие основные требования:

    Высокое быстродействие (малое время отклика на запрос). Время отклика - промежуток времени от момента запроса к БД до фактического получения данных. Похожим является термин время доступа - промежуток времени между выдачей команды записи (считывания) и фактическим получением данных. Под доступом понимается операция поиска, чтения данных или записи их. Часто операции записи, удаления и модификации данных называют операциями обновления.

    Простота обновления данных. Важнейшими являются эти первые два противоречивых требования: повышение быстродействия требует упрощения структуры БД, что, в свою очередь, затрудняет процедуру обновления данных, увеличивает их избыточность

    Независимость данных - возможность изменения логической и физической структуры БД без изменения представлений пользователей. Независимость данных предполагает инвариантность к характеру хранения данных, программному обеспечению и техническим средствам. Она обеспечивает минимальные изменения структуры БД при изменениях стратегии доступа к данным и структуры самих исходных данных. Это достигается, как будет показано далее, «смещением» всех изменений на этапы концептуального и логического проектирования с минимальными изменениями на этапе физического проектирования

    Совместное использование данных многими пользователями.

    Безопасность данных - защита данных от преднамеренного или непреднамеренного нарушения секретности, искажения или разрушения. Безопасность данных включает их целостность и защиту. Целостность данных - устойчивость хранимых данных к разрушению и уничтожению, связанных с неисправностями технических средств, системными ошибками и ошибочными действиями пользователей. Целостность данных предполагает:

1) отсутствие неточно введенных данных или двух одинаковых записей об одном и том же факте;

2) защиту от ошибок при обновлении БД;

3) невозможность удаления (или каскадное удаление) связанных данных разных таблиц;

4) неискажение данных при работе в многопользовательском режиме и в распределенных базах данных;

5) сохранность данных при сбоях техники (восстановление данных).

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

    целостности сущностей - любой кортеж любого отношения отличим от любого другого кортежа этого отношения

целостности по ссылкам - для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведется ссылка, должен найтись кортеж с таким же значением первичного ключа, либо значение внешнего ключа должно быть неопределенным

Целостность обеспечивается триггерами целостности - специальными приложениями-программами, работающими при определенных условиях. Защита данных от несанкционированного доступа предполагает ограничение доступа к конфиденциальным данным и может достигаться:

1) введением системы паролей;

2) получением разрешений от администратора базы данных (АБД);

4) формирование видов - таблиц, производных от исходных и предназначенных конкретным пользователям.

Три последние процедуры легко выполняются в рамках языка SQL .

    Стандартизация построения и эксплуатации БД (фактически СУБД). Стандартизация обеспечивает преемственность поколений СУБД, упрощает взаимодействие БД одного поколения СУБД с одинаковыми и различными моделями данных. Стандартизация (ANSI/SPARC) осуществлена в значительной степени в части интерфейса пользователя СУБД и языка SQL. Это позволило успешно решить задачу взаимодействия различных реляционных СУБД как с помощью языка SQL, так и с применением приложения Open DataBase Connection (ODBC). При этом может быть осуществлен как локальный, так и удаленный доступ к данным (технология клиент/сервер или сетевой вариант).

    Минимальная избыточность – любой элемент данных должен храниться в единственном экземпляре.

    Многократное использование данных.

    Однократный ввод данных.

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

    Дружелюбный интерфейс пользователя.

1. Требования к БД

БД – совокупность спец. образом организованных данных, хранимых в памяти ВС, и отражающих состояние объектов и их взаимосвязей.

Основные требования к организации БД:

1. Установление многосторонних связей 2. Производительность

3. Мин. Затраты 4. Мин. Избыточность (мин. Использование памяти)

5. Возможность поиска 6. Целостность (восстановление данных)

7. Безопасность и секретность (без – защита от доступа третьих лиц, секр – возможность руководит без.)

[Как обеспечить безопасность:

а. Данные должны быть восстановимы б. Возможность контроля данных

в. Система недоступна для вмешательства в нее

г. Процедура идентификации

д. Данные защищены от хищения, уничтожения, изменения

е. Контроль действий пользователя с точки зрения допустимости]

8. Связь с прошлым. Совместимость версий

9. Связь с будущим. Данные отделены от их представления

10. Настройка БД 11. Перемещение данных 12. Простота

2. Основные компоненты СУБД

Абстракция" href="/text/category/abstraktciya/" rel="bookmark">абстракция , которая, будучи приложена к конкретным данным, позволяет пользователям и разработчикам трактовать это как информацию, то есть сведения, содержащие не только данные, но и связь между ними.

Ограничение целостности – не противореч. данных задан. логич. огранич.

Огранич. зад-тся не только для атриб-тов, но и для типов объ-тов и связей.

Виды связи : 1:1 1:M M:1 M:M

Модель данных , поддерживаемая БД на логическом уровне определяется 3 компонентами:

1. Допустимая структура данных, разнообразие и количество типов объектов, которые можно описать с помощью модели

2. Множество допустимых операций над данными

3. Ограничения для контроля целостности.

Модели данных:

0 " style="border-collapse:collapse;border:none">

Сотрудник

Сущность

Табельный номер

Ключевой атрибут

Атрибуты

Дата рождения

Между сущностями могут быть установлены связи – бинарные ассоциации, показывающие, каким образом сущности соотносятся или взаимодействуют. Связи могут быть как между двумя сущностями, так и рекурсивно.

https://pandia.ru/text/78/193/images/image004_68.gif" width="17" height="17">Связь может быть

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

Можно использовать принцип категоризации сущности, то есть наследовать сущности друг от друга (как в ООП). Сущность-родитель, от которой строятся подтипы, называется супертипом.

Для построения модели ER проводится системный анализ.

Для библиотеки это будет книги-экземпляры-читатели.

6. Реляционная модель данных.

В основе лежит математическая теория отношений.

Массив данных, представленный реляционным набором структур, образует реляционную БД, и схема РБД будет представлена набором схем-отношений. R1(A11,A12,A13,..A1k) R2(A21,A22,A23,..A2k) R3(A31,A32,A33,..A3k), где R-отношения, A-атрибуты. Пусть A, B атрибуты отношения R.

Говорят , что B функционально зависит от A , если в каждый момент времени каждому A соотв. не более одного значения B.

Если имеется мн-во атрибутов A1-An отношения R, а также множество функц. Завис. XàY, где X и Y подмножества A1-An, Тогда из функц. Завис., входящих в мно-во F могут быть выведены другие функц. Завис., присущие R. F + - замыкание множества ф-х зависимостей, т. е. полное множество зависимостей, которые могут быть получены из F. Св-ва:

1. Рефлексивность: XÍU, YÍU, YÍX, то XàY

2. пополнение: XÍU, YÍU, ZÍU, XàY, то XÈZàYÈZ

3. транзитивность: XÍU, YÍU, ZÍU, XàY, YàZ, то XàZ

4. расширения: XÍU, YÍU, XàY, то "ZÍU XÈZàY

5. продолжения XÍU, YÍU, WÍU, ZÍU, XàY, то "WÍZ, XÈZàYÈW

6. псевдотранзит. XÍU, YÍU, ZÍU, WÍU, XàY, YÈWàZ, то XÈWàZ

7. аддитивность. X, Y,ZÍU XàY, XàZ, то XàYÈZ

Домен – совокупность однотипных значений данных

Степень отношения – число атрибутов, входящих в отношение.

Мощность – число кортежей отношения.

Интенсионал A(R1..Rn) – интенсионал

Экстенсионал – некоторое заполнение кортежей отношений.

Ключ K отношения R - комбинация атрибутов, обладающих следующими свойствами:
1. в каждом кортеже отношения R величина k единственным образом определяет этот кортеж

2. не существует атрибута в ключе k, который может быть удален без нарушения св-ва 1.

Если в отношении R существует несколько возможных ключей, один из них выбирается в качестве первичного.

Отношение нормализовано , если каждая компонента кортежа является простым атомарным значением, не состоящим из группы значений.

Элементы реляционной модели

Форма представления

Отношение

Схема отношения

Заголовок таблицы

Строка таблицы

Сущность

Свойства объекта

Заголовок столбца

Множество допустимых значений атрибута

Значение атрибута

Значение поля записи

Первичный ключ

Один или несколько атрибутов

Тип значений элементов таблицы

9. 6 видов простых запросов :

пусть E1-En - набор объектов. A1-An – множество атрибутов. K11-Knm – домены атрибутов

Тип запроса

Значение атрибута

Какой объект имеет заданное значение

Какой атрибут имеет значение

Все атрибуты объекта

Данный Атрибут для всех объектов

Все, что равно V

10. Алгоритм преобразования ER в РМД:

1. Каждой сущности ER соответствует отношение РМД.

2. Каждый атрибут сущности становится атрибутом соответствующего отношения.

3. Первичный ключ сущности становится первичным ключом соответствующего отношения.

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

5. Для моделирования необязательного вида связи на физическом уровне у атрибутов, соответствующих внешнему ключу, устанавливается свойство допустимости неопределенных значений. При обязательном типе связи – наоборот.

6. Для отражения категоризации сущности при переходе в РМД возможны несколько вариантов представления. Возможно создать только одно отношение для всех подтипов супертипа. Достоинство – создается всего одно отношение. Недостаток – избыточность. Второй подход – свое отношение для каждого подтипа.

11. НФ1, НФ2, Аномалия

1НФ : каждый атрибут отношений является простым атомарным атрибутом, т. е. отсутствуют составные.

2НФ : отношение нормировано, то есть каждый атрибут полностью зависит то первичного ключа.

Аномалия – такая ситуация в таблице БД, которая приводит к противоречиям в БД, либо существенно усложняет обработку данных.

Разновидности аномалий:

1. избыточность – одинаковые элементы информации повторяются многократно в нескольких кортежах.

2. аномалии изменения – один и тот же фрагмент данных изменяется в одном кортеже, но остается нетронутым в другом.

3. аномалия удаления – если множество значений становится пустым это может косвенным образом привести к потере другой информации

Один из способов устранения аномалии – декомпозиция отношения. Декомпозиция отношения R предполагает разбиение множества атрибутов R c целью построения схем двух новых отношений с последующим занесением в эти отношения определенных в отношении R кортежей. Например таблицу “поставщик, товар, цена” надо разбить на две. В противном случае:

Аномалия включения: пока поставщик не начнет поставлять товар, мы не сможем узнать информацию о товаре.

Аномалия удаления: если поставка товара прекращается, теряется вся информация о товаре.

Аномалия обновления: при изменении цены товара придется обновлять его у всех поставщиков.

12. НФ3

3НФ : каждый непервичный атрибут в отношении R не содержит транзитивных зависимостей от первичного ключа.

Например : хранение (фирма, склад, объем)

Каждая фирма – только с одного склада. Фирмаàсклад, складàобъем

Аномалия включения: Если никто не получает со склада товар, мы не знаем его объем

Аномалия удаления: если последняя фирма перестает получать товар со склада, инфа о складе теряется

Аномалия обновления: если объем склада меняется, нужно менять все объемы для всех фирм

Усиленная 3НФ: в отношении отсутствует зависимость первичных атрибутов от непервичных.

Или Необходимо, чтобы все домены функц. зависимостей были возможными ключами

Например проект(Деталь, проект, поставщик)

В проекте несколько деталей. Каждая деталь – только одним поставщиком. Каждый поставщик обслуж. только один проект.

Деталь, ПроектàПоставщик

ПоставщикàПроект

Аномалия включения: Факт поставки деталей не может быть занесен, пока детали не начнут использовать

Аномалия удаления: Если поставщик ничего не поставляет, его придется убить

Аномалия обновления: Если меняется поставщик какого либо типа деталей, придется менять асе кортежи

13. Пример НФ1,НФ2,НФ3

Отошение преподаватель-предмет

№ препода

Название предмета

Кол-во часов

Фамилия препод.

Должность

Отношение с составным ключом номер препода, название предмета.

Функциональные зависимости:

Должностьàоклад, номерàфамилия, кафедраàтелефон, должностьàоклад

Имеется транзитивная зависимость номерàкафедраàтелефон. Значит отошение находится в 1НФ. Имеет место неполная функциональная зависимость фамилия, должность, оклад от части ключа №препода. Эта неполная зависимость приводит к следующим аномалиям:

1. имеет место дублирование данных о преподавателях.

2. проблема избыточности данных. Изменение оклада приводит к изменению кортежа

3. Возникает проблема с преподавателем, который не ведет предметы.

4. Если препод. уходит, приходится удалять предмет.

Чтобы перейти в 2НФ разобьем составной ключ на части, и разделим по зависимости:

Имеются транзитивные зависимости номерàкафедраàтелефон, номерàдолжн.àоклад

Это приводит к аномалиям:

1. дублирование информации о телефоне

2. Изменение телефона вынуждает искать его для всех преподов

3. нельзя включать данные о новой кафедре, если там нет преподов.

Переходим в 3НФ

14. Переход к 4НФ

Многозначная зависимость существует если при заданных значениях атрибута X существует множество, состоящее из 0 или более взаимосвязанных значений атрибута Y, причем множество значений атрибута Y связано со значением атрибута отношением U-X-Y, где U – все множество атрибутов отношений.

Обозначение многозначной зависимости X->>Y.

Аксиомы многозначной зависимости

1. дополнение X>Y, то X->>U-X-Y

2. пополнение Если X>Y, то WuX->>VuY

3. транзитивность Если X>Y, X->>Z, то X->>Z-Y

Дополнительные правила вывода для многозначных зависимостей

1. объединение Если X>Z, X->>Y, то X->>YuZ

2. псевдотранзитивность Если X>Y, WuY->>Z, то WuX->>Z-WuY

3. смешанное правило транзитивности Если X>Y, XuYàZ, то XàZ-Y

4. правило декомпозиции X>X, X->>Z, то X->>X^Z, X->>Y-Z, X->>Z-Y

Рассмотрим зависимость (№, курс, дети, должность)

Между преподавателем и курсом связь M:M

Между преподавателем и детьми 1:M

Многозначные зависимости №->>курс, №->>дети

Схема отношения находится в 4НФ, если всякий раз, когда существует многозначная зависимость X->>Y, где Y непусто, и не является подмножеством X, и XvY состоит не из всех атрибутов R, X содержит к-н ключ отношения R, атрибуты, между которыми существует многозначная зависимость, выделяют в отдельные отношения

R1(№,курс) R2(№,дети) R3(№,должность)

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

Обратимость предполагает:

1. Отсутствие потери кортежей 2. Не появляются ранее отсутствующие кортежи 3. Сохраняются функциональные зависимости

15. Переход в 5НФ

Отношение в 5НФ <=> любая зависимость по соединению V определяется возмож. ключами R иначе каждая проекция R содержит не менее одного возможного ключа и по крайней мере один непервичный атрибут

Процесс нормализации отношений последовательно устраняет следующие типы зависимостей:

1. частичные зависимости неключевых атрибутов от ключа

2. транзитивные зависимости неключевых атрибутов от ключа

3. зависимости ключей от неключевых атрибутов

4. многозначные зависимости

16. Соединение без потерь, сохраняющих зависимость

Из всех возможных разложений схемы должны использоваться только те, которые обладают свойством соединений без потерь . Пусть в схеме R имеется множество функциональных зависимостей. Говорят, что схема R разложима без потерь на отношения R1,R2,Rk, с сохранением функциональной зависимости, если для каждого кортежа r из R может быть r восстановлен соединением его проекций.

Условия отсутствия потерь при соединении:

Если R1 и R2 являются разложением R, с сокращением функциональных зависимостей – это разложение обеспечивает соединение без потерь с сохранением функциональной зависимости <=> если R1^R2àR1-R2 либо R1^R2àR2-R1 при многозначной зависимости R1^R2->>R1-R2, либо R1^R2->>R2-R1

Операции пересечения и разности определены над списками атрибутов отношений.

Пример:

Служащие(№,отдел, город)

1 разложение E1(№, отдел) E2(№, город)

2 разложение E3(№, отдел) E4(отдел, город)

1. E1^E2=№ E1-E2=отдел E2-E1=город. №àотдел, №àгород условие удовлетворяет, разложение без потерь.

2. E3^E4=отдел E3-E4=№ E4-E3=город. отделà№, отделàгород эти зависимости в исходном разложении не существуют, а исходные функциональные зависимости утеряны, значит это разложение с потерями.

Для разложений более чем из двух отношений можно использовать метод Табло

17. Метод Табло

Дано множество функциональных зависимостей, схема отношения полученная в результате разложения. Процедура состоит в построении таблицы, строками которой являются разложенные отношения, а столбцами – список атрибутов этих отношений без повторений. Таблица заполняется символом aj если элементы строки i в столбце j соответствуют атрибуту Aj отношения Ri в противном случае ставится bij. После построения таблицы следует просмотр всех функциональных зависимостей XàY если для атрибутов из X найдутся строки, где в соответствующих местах стоят aj, то элементы bij этих строк соответствующие столбцам атрибутов из Y заменяется на aj. Если в результате появляется строка таблицы, полностью заполненная aj, то это соединение без потерь.

Пример : R(A, B,C, D) Ф. З. AàC, BàC, CàD.

Разложили: R1(A, B) R2(B, D) R3(A, B,C) R4(B, C,D)

Есть строки со всеми a, разложение без потерь.

18. Реляционная алгебра.

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

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

Пересечение Получают однотипные кортежи для, общие для R1 и R2

Разность Получаем кортежи, входящие в R1, но не входящие в R2

Декартово произведение Объединяем столбцы как в обычном ДП

Проекция Операция заключается в том, что из отношения R выбираются столбцы, и компонуются в указанном порядке

Ограничение Включают в выходное отношение множество строк, удовлетворяющее заданному ограничению. Пример: R

Соединение Обратная операции проекции. Берутся два отношения, и соединяются, используя указанный атрибут (JOIN): Пример: R1∞R2

Деление R1÷R2=П1,2..n-m(R1)- П1,2..n-m(П1,2..n-m(R1)xR2-R1)

Где R1-n местное отн-ие, R2-mместное отношение n>m. Не дошли руки

19. Реляционное исчисление с переменными кортежами

Формула реляционного исчисления помимо арифметических операций включает дополнительные логические операции (A и E). Используются также операции И, ИЛИ, НЕ.

Формулы реляционного исчисления строятся из атомов и совокупности арифметических и логических операторов, выражение реляционного исчисления с переменными кортежами может иметь вид:

{r|Ψ(r)},где r-кортеж, Ψ(r) – некоторая формула исчисления.

Пример; {r|R1(r)^R2(r)} – необходимо получить множество всех кортежей, таких, что они принадлежат отношениям R1 и R2.

Атомы формул бывают трех типов:

1. R(t), где R – имя отношения, t – кортеж в отношении

2. s[i]θu[j], где s и u – переменные кортежи, θ – арифметический оператор. i, j – номера или имена интересующих столбцов. S[i]- i-й компонент кортежа переменной S u[j]-… 3. s[i]θa, или aθs[i], где a=const.

Вхождение переменной x в формулу РИ Ψ(x) связано , если она находится в части формулы, начинающейся квантором A или E, за которым непосредственно следует переменная x. В таких случаях говорят, что квантор ее связывает. Понятие связанной переменной аналогично понятию локальной переменной, несвязанной аналогично глобальной.

Выражение в РИ является безопасным, если:

1. Из истинности Ψ(t) следует, что каждый компонент кортежа t принадлежит D(Ψ).

2. Для любой подформулы вида (Eu)(Ψ1(u)) входящей в состав Ψ, из истинности Ψ1(u) следует, что u принадлежит D(Ψ1).

3. Для любой подформулы вида (Au)(Ψ1(u)), входящей в состав Ψ, из истинности Ψ1(u) следует, что u не принадлежит D(Ψ1).

Множество D(Ψ) определяется как функция фактических отношений , которая указывается в Ψ(t) констант, присутствующих в формуле Ψ(t) и элементов кортежей тех отношений, которые указывают в θ(t)

D(Ψ)={a1Ψ}U{a2Ψ}U…U{anΨ}UП1(R1)U…UПk(Rn), где aiΨ – const, встреч. В формуле Ψ(t),

Пi(Rj) – проекции кортежей фактических отношений R1-Rn встретившихся в формуле Ψ(t), то есть, в данном случае, компоненты кортежей.

Для каждого выражения реляционной алгебры существует эквивалентное ему безопасное выражение в реляционном исчислении с переменными на кортежах.

20. Реляционное исчисление с переменными на доменах.

Строится так же, как и исчисление на кортежах (с использованием тех же самых операторов).

1. Чего то там Этот атом указывает, что значение тех xi, которые являются переменными д. б. выбраны так, чтобы (x1..xk) было кортежем отношения R.

2. xθy, где x, y-const, или переменные на некотором домене. θ – арифметический оператор сравнения, смысл атома заключается в том, что x и y представляют собой значения, при которых истинно xθy. Формулы в РИ с переменными на доменах также используют A, E, И, ИЛИ, НЕ. Аналогично используются понятия свободной и связанной переменной .

Формула РИ с переменными на домене имеет вид: {x1..xk|Ψ(x1..xk)}, где Ψ – формула, обладающая тем свойством, что только ее свободные переменные на доменах являются различн. Перемен. X1..Xk.

Выражение РИ c переменными на доменах является безопасным , если

1. Из истинности Ψ(x1..xk) следует, что xi принадлежит D(Ψ).

2. Если существует и (Eu)(Ψ1(u)) является подформулой Ψ, то из истинности Ψ1(u) следует, что u принадлежит D(Ψ1)

3. Если для любого u (Au)(Ψ1(u)) является подформулой Ψ1(u) следует, что u не принадлежит D(Ψ1).

Каждому выражению с переменными на доменах существует эквив-е ему выражение реляционного исчисления с переменными на кортежах.

Выражение строится следующим образом:

1. Если t является кортежем арности k, то вводится k новых переменных на доменах t1..tk 2. Атомы R(t) заменяются атомами R(t1..tk) 3. Каждое свободное вхождение t[i] заменяется на ti 4. Для каждого кванта (Eu) и (Au) вводится m новых переменных на доменах u1..um, где u-арность кортежа. В области действия выполняются следующие замены:

RmàR(U1..Um) U[i]àUi EUàEU1..EUm AUàAU1..AUm

Выполняется построение выражения {t1..tk|Ψ`(t1..tk)}, где Ψ’, это Ψ, в которой выполнены соответствующие замены.

21. Сравнение алгебраических языков и языков исчисления.

Языки исчисления – это не процедурные языки, поскольку их средствами можно выразить все, что необходимо, и необязательно указывать, как это получить.

Выражение реал. Алгебры наоборот, специфицирует конкретный порядок выполнения операций. Пример: ISBL (Information System Base Language).

Пример языка на доменах: QBE Пример языка на кортежах: SQL

SQL : Не процедурный язык. Как правило встроен в среду некоторого языка программирования. Ориентирован на доступ к данным, и не обладает свойствами языка разработки.

Методы использования встроенного SQL :

1. статический: функции языка SQL включены в. exe после компиляции

2. динамический: динамическое построение SQL вызовов и интерпретация. Используется, когда заранее неизвестна форма запроса.

DDL(Description)Create table, drop table, alter table, create view, drop view, alter view, create index, drop index.

DML(Manipulation)delete(удалить строки), insert (вставить), update(обнов.).

DQL(Query) Select

DCL(Data control language) Используется для управления доступом.

Alter password, grant, rewoke.

УПРАВЛЕНИЕ ТРАНЗАКЦИЯМИ Commit, rollback

22. Транзакции

Виды транзакций:

1. Плоские (классические, ACID). Свойства:

атомарности – транзакция должна быть выполнена целиком, или не выполнена вообще

согласованности – транзакция не нарушает взаимной согласов-ти данных

изолированности – конкурирующие на доступ к БД транзакции фактически обрабатываются последовательно.

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

Фиксация транзакции – запись измененных данных на диск. После этого они будут видны другим транзакциям.

Откат транзакции - отмена.

В СУБД организован принцип сохр. промеж. сост. подтверждения или отката транзакиции обеспечивается специальным механизмом для поддержания которого создается журнал транзакций. Он предназначен для надежного хранения данных в БД. Это требование предполагает возможность восстановления состояния БД после сбоя.

Принципы восстановления:

1. результаты зафиксированных транзакций должны быть в БД.

2. результаты незафиксированных транзакций должны отсутствовать.

Возможны следующие ситуации, при которых требуется восстановление состояния БД:

1. Индивидуальный откат транзакции (стандартный, аварийное завершение работы, в результате блокировки).

2. Восстановление после потери данных в ОП (мягкий сбой) (отключение электричества, сбой процессора)

3. Восстановление после поломки основного носителя БД (жесткий сбой). Основа восстановления – архивная копия и журнал БД.

Основа восстановления – избыточное хранение данных. Избыточные данные хранятся в журнале, и содержат информацию об изменениях в БД. Возможны 2 варианта:

1. Отдельный (локальный) журнал для каждой транзакции – для откатов.

2. Глобальный журнал для восстановления после сбоев.

23. Параллельное выполнение транзакций

Параллельное выполнение транзакций должно удовлетв. след. условиям:

1. В ходе выполнения транзакции пользователь видит только согласованные данные.

2. Когда 2 транзакции выполняются параллельно, СУБД гарантирует независимое выполнение. Это называется сериализация транзакций. Обычно выполняется с помощью механизма блокировок. Самый простой способ – блокировка (синхронизационный захват) объекта на все время выполнения транзакции. Также может быть блокировка на уровне страниц. Типы блокировок (захватов):

1. Совместный (shared). Нежесткая блокировка. Выполняется при чтении объекта.

2. Жесткая (exclusive). Монопольный захват объекта для операции записи.

Возможны тупики. Основой их обнаружения является построение графа ожидания транзакции. Потом одной из транзакций (самой дешевой) жертвуют – для нее выполняется откат.

24. Иерархическая модель данных.

Самая простая. Появилась первой. Основные информационные единицы база данных , поле, сегмент.

Поле – мин. и независимая единица данных, доступная пользователю с помощью СУБД.

Сегмент (DBTS) - называется записью.

Тип сегмента – поименованная совокупность типов данных.

Экземпляр сегмента образуется из конкретных значений полей.

Каждый тип сегмента в рамках иерархической модели образует некоторый набор однородных записей. Каждый тип сегмента может иметь ключ.

Сегменты объединяются в древовидный орграф.

Тип сегмента, нах-ся на более высоком уровне иерархии называется лог. исходным по отношению к типам сегмента под ним.(лог. подчиненным) .

Схема иерархической БД представляет собой совокупность отдельных деревьев. Каждое дерево в рамках модели называется физ. БД и удовлетворяет следующим ограничениям:

1. Существует 1 корневой сегмент

2. Каждый лог. Исх. Элемент м. б. связан с любым числом подчненных.

3. Каждый логически подчиненный сегмент м. б. связан только с одним родительским.

Сегмент является экземпляром типа сегмента. Между экземплярами сегмента также существует иерархическая связь.

Близнецы – потомки одного типа с одним предком.

Набор всех экземпляров сегмента в одном дереве наз-ся физ. Записью Совокупность физических БД образует концептуальную БД.

Для организации физического размещения используются следующие группы методов:

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

2. Нелинейным списком

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

Механизмы поддержания целостности между отдельными деревьями отсутствуют.

(+) 1. Эффективное использование памяти ЭВМ

2. Высокая скорость операций над данными

3. Удобно для работы с иерархически упорядоченными данными

5. Классы могут содержать методы.

6. Классы могут содержать генераторы методов.

7. Многие общие характеристики поведения объектов могут автоматически управляться Cache. Также поведение объектов может определяться пользователем.

Виды классов :

классы типов данных

Классы объектов

Незарегистр. Классы

Зарегистр. Классы

Встраиваемые классы

Хранимые классы

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

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

Незарегистрированные классы: все их методы разработчик определяет сам, отвечая за назначение и поддержку уникальных идентификаторов, объектов и объектных ссылок.

Ограничения:

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

2. Отсутствует автоматическая подкачка объекта, на который делается ссылка. 3. Полиморфизм не поддерживается.

4. Переменные, ссылающиеся на незарегистрированные объекты должны декларироваться с указанием соответствующего класса.

Зарегистрированные классы имеют полный набор методов. Автоматически наследуют методы управления объектов от системного класса. Экземпляры существуют временно в памяти процесса. Их называют временными объектами. Созданием новых объектов, зарегистрированных классов и управлением их размещения в памяти занимается Cache. Наследуются от Library Registered Object. Допускают полиморфизм.

Встраиваемые классы могут храниться не только временно в памяти, но и продолжительное время в БД. Эти классы наследуют свое поведение от класса Library Serial Object. Главное в их поведении – то, что экземпляры в памяти существуют как независимые объекты и могут быть сохранены в БД лишь будучи встроенными в другие объекты.

Хранимые классы обеспечивают длительное хранение экземпляра в БД. Наследуются от Library Persistent. Экземпляры обладают однозначными объектными идентификаторами и могут независимо храниться в Cache. Когда хранимый объект используется как свойство класса говорят о ссылке на хранимые объекты.

Элементы класса :

1. Название

2. Ключевые слова

3. Свойства, то есть элементы данных, хранящихся в классе. Могут быть константами, встроенными объектами и ссылками на хранимые объекты. Классы типов данных не содержат свойств. При доступе к свойствам возможно изменение формата и другое преобразование. Объекты, на которые делаются ссылки автоматически загружаются в память. Свойства могут быть public и private.

4. Методы, то есть код, реализующий те или иные функциональные возможности.

5. Параметры класса, значения, осуществляющие формирование класса во время компиляции.

Типы данных реализуются классами.

Классы могут

1. Выполнять преобразование данных между форматами, хранимыми в БД, памяти, памяти и отображаемыми.

2. Отвечают за проверку значений

3. Обеспечивают взаимодействие с SQL, Java, ActiveX.

Отличия от классов объектов.

1. Невозможно образование экземпляров

2. не могут содержать свойств

3. методы предоставляются программисту через интерфейс типов данных

4. Имеет методы проверки значений.

Коллекция

Свойства, обладающие множеством значений могут быть представлены в Cache в виде коллекций. Могут содержать константы, объекты, и ссылки на объекты.

Коллекция массив: каждый элемент упорядочивается по ключу.

Коллекция список: в качестве ключа выступает позиция элемента.

Значение

Методы – операции, которые может выполнять объект. Каждый аргумент имеет имя, параметры и т. д.

Бывают методы экземпляра и методы класса (static)

Виды методов:

Code – содержит код на языке ObjectScript.

Expression – содержит одно выражение. При компиляции все вызовы метода заменяются этим выражением.

Запросы – могут быть представлены в виде хранимых процедур SQL или представлений. Результаты доступны через специальный интерфейс.

Индексы – Используются для оптимизации скорости выполнения запросов. Каждый индекс создается на основе одного или нескольких свойств класса. Может быть определен метод сортировки

Объектное понятие

Реляционное

Экземпляр

идентификатор объекта

свойство константа

внешний ключ

встраиваемый объект

индивидуальные столбцы

коллекция список

столбец с полем-списком

коллекция массив

Подтаблица

поток данных

хранимая процедура

метод класса

хранимая процедура

В реляционной модели нет аналогов для параметров классов, многомерных свойств и методов экземпляров. Компилятор Cache автоматически создает таблицы для всех хранимых классов.

32. Universe

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

Достоинства: возможность представления совокупности связанных таблиц одной постреляционной таблицой.

Недостатки: сложность решения проблемы целостности и непротиворечимости данных.

33. Хранилище данных

В хранилище могут помещаться результаты транзакционных данных, также могут подвергаться конвертированию, чтобы обеспечить совместимость данных, полученных из других источников. Для обеспечения процесса отсечения и извлечения данных используются термины: Расслоение, Расщепление.

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

Рисунок

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

Аннотация: В лекции рассматривается общий смысл понятий базы данных (БД) и системы управления базами данных (СУБД). Даются основные понятия, относящиеся к базе данных такие, как алгоритм, кортеж, объект, сущность. Основные требования, предъявляемые к банку данных. Определения БД и СУБД.

Цель лекции: Уяснить разницу между базой данных и системой управления базой данных. Ознакомиться с основными требованиями, которые предъявляются к банку данных и основными определениями, относящимися к БД и СУБД.

Рассмотрим общий смысл понятий базы данных (БД) и системы управления базами данных (СУБД).

С самого начала развития вычислительной техники образовались два основных направления использования ее.

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

Второе направление, это использование средств вычислительной техники в автоматических или автоматизированных информационных системах . В самом широком смысле информационная система представляет собой программный комплекс, функции которого состоят в поддержке надежного хранения информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации и/или вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса. Обычно объемы информации, с которыми приходится иметь дело таким системам, достаточно велики, а сама информация имеет достаточно сложную структуру. Классическими примерами информационных систем являются банковские системы , системы резервирования авиационных или железнодорожных билетов, мест в гостиницах и т.д.

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

Легко видеть, что указанные ограничения не очень существенны для чисто численных расчетов. Даже если программа должна обработать (или произвести) большой объем информации, при программировании можно продумать расположение этой информации во внешней памяти, чтобы программа работала как можно быстрее.

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

Именно требования к вычислительной технике со стороны не численных приложений вызвали появление съемных магнитных дисков с подвижными головками , что явилось революцией в истории вычислительной техники. Эти устройства внешней памяти обладали существенно большей емкостью, чем магнитные барабаны, обеспечивали удовлетворительную скорость доступа к данным в режиме произвольной выборки, а возможность смены дискового пакета на устройстве позволяла иметь практически неограниченный архив данных.

С появлением магнитных дисков началась история систем управления данными во внешней памяти. До этого каждая прикладная программа, которой требовалось хранить данные во внешней памяти, сама определяла расположение каждой порции данных на магнитной ленте или барабане и выполняла обмены между оперативной и внешней памятью с помощью программно-аппаратных средств низкого уровня (машинных команд или вызовов соответствующих программ операционной системы). Такой режим работы не позволяет или очень затрудняет поддержание на одном внешнем носителе нескольких архивов долговременно хранимой информации. Кроме того, каждой прикладной программе приходилось решать проблемы именования частей данных и структуризации данных во внешней памяти.

Историческим шагом стал переход к использованию систем управления файлами. С точки зрения прикладной программы файл - это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Правила именования файлов, способ доступа к данным, хранящимся в файле, и структура этих данных зависят от конкретной системы управления файлами и, возможно, от типа файла. Система управления файлами берет на себя распределение внешней памяти, отображение имен файлов в соответствующие адреса внешней памяти и обеспечение доступа к данным.

Любая задача обработки информации и принятия решений может быть представлена в виде схемы, показанной на рис. 1.1 .


Рис. 1.1.

Определение основных терминов

Дадим определения основных терминов. В качестве составных частей схемы выделяются информация (входная и выходная) и правила ее преобразования.

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

Алгоритм - последовательность правил перехода от исходных данных к результату. Правила могут выполняться компьютером или человеком.
Данные - совокупность объективных сведений.
Информация - сведения, неизвестные ранее получателю информации, пополняющие его знания, подтверждающие или опровергающие положения и соответствующие убеждения. Информация носит субъективный характер и определяется уровнем знаний субъекта и степенью его восприятия. Информация извлекается субъектом из соответствующих данных.
Знания - совокупность фактов, закономерностей и эвристических правил, с помощью которых решается поставленная задача.

Последовательность операций обработки данных называют информационной технологией (ИТ). В силу значительного количества информации в современных задачах она должна быть упорядочена. Существует два подхода к упорядочению.

  1. Данные связаны с конкретной задачей (технология массивов) - упорядочение по использованию. Вместе с тем алгоритмы более подвижны (могут чаще меняться), чем данные. Это вызывает необходимость переупорядочения данных, которые к тому же могут повторяться в различных задачах.
  2. В связи с этим предложена другая, широко используемая технология баз данных, представляющая собой упорядочение по хранению.

Под базой данных (БД) понимают совокупность хранящихся вместе данных при наличии такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений. Целью создания баз данных , как разновидности информационной технологии и формы хранения данных, является построение системы данных, не зависящих от принятых алгоритмов (программного обеспечения), применяемых технических средств и физического расположения данных в ЭВМ; обеспечивающих непротиворечивую и целостную информацию при нерегламентируемых запросах. БД предполагает многоцелевое ее использование (несколько пользователей, множество форм документов и запросов одного пользователя).

База знаний (БЗ) представляет собой совокупность БД и используемых правил, полученных от лиц, принимающих решения ( ЛПР ).

Наряду с понятием "база данных" существует термин " банк данных ", который имеет две трактовки.

  1. В настоящее время данные обрабатываются децентрализовано (на рабочих местах) с помощью персональных компьютеров (ПК). Первоначально же использовалась централизованная обработка на больших ЭВМ. В силу централизации базу данных называли банком данных и потому часто не делают различия между базами и банками данных.
  2. Банк данных - база данных и система управления ею (СУБД). СУБД (например, FoxPro) представляет собой приложение для создания баз данных как совокупности двумерных таблиц.
Банк данных (БнД) - это система специально организованных данных, программных, языковых, организационных и технических средств, предназначенных для централизованного накопления и коллективного многоцелевого использования данных.
Базы данных (БД) - это именованная совокупность данных, отображающая состояние объектов и их отношения в рассматриваемой предметной области. Характерной чертой баз данных является постоянство: данные постоянно накапливаются и используются; состав и структура данных, необходимы для решения тех или иных прикладных задач, обычно постоянны и стабильны во времени; отдельные или даже все элементы данных могут меняться - но и это есть проявления постоянства - постоянная актуальность.
Система управления базами данных (СУБД) - это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Иногда в составе банка данных выделяют архивы. Основанием для этого является особый режим использования данных, когда только часть данных находится под оперативным управлением СУБД. Все остальные данные обычно располагаются на носителях, оперативно не управляемых СУБД. Одни и те же данные в разные моменты времени могут входить как в базы данных, так и в архивы. Банки данных могут не иметь архивов, но если они есть, то в состав банка данных может входить и система управления архивами.

Эффективное управление внешней памятью являются основной функцией СУБД . Эти обычно специализированные средства настолько важны с точки зрения эффективности, что при их отсутствии система просто не сможет выполнять некоторые задачи уже по тому, что их выполнение будет занимать слишком много времени. При этом ни одна из таких специализированных функций не является видимой для пользователя. Они обеспечивают независимость между логическим и физическим уровнями системы: прикладной программист не должен писать программы индексирования, распределять память на диске и т. д.

Основные требования, предъявляемые к банкам данных

Развитие теории и практики создания информационных систем, основанных на концепции баз данных, создание унифицированных методов и средств организации и поиска данных позволяют хранить и обрабатывать информацию о все более сложных объектах и их взаимосвязях, обеспечивая многоаспектные информационные потребности разных пользователей. Основные требования, предъявляемые к банкам данных, можно сформулировать так:

  • Многократное использование данных: пользователи должны иметь возможность использовать данные различным образом.
  • Простота: пользователи должны иметь возможность легко узнать и понять, какие данные имеются в их распоряжении.
  • Легкость использования: пользователи должны иметь возможность осуществлять (процедурно) простой доступ к данным, при этом все сложности доступа к данным должны быть скрыты в самой системе управления базами данных.
  • Гибкость использования: обращение к данным или их поиск должны осуществляться с помощью различных методов доступа.
  • Быстрая обработка запросов на данные: запросы на данные должны обрабатываться с помощью высокоуровневого языка запросов , а не только прикладными программами, написанными с целью обработки конкретных запросов.
  • Язык взаимодействия конечных пользователей с системой должен обеспечивать конечным пользователям возможность получения данных без использования прикладных программ.

База данных - это основа для будущего наращивания прикладных программ: базы данных должны обеспечивать возможность быстрой и дешевой разработки новых приложений.

  • Сохранение затрат умственного труда: существующие программы и логические структуры данных не должны переделываться при внесении изменений в базу данных.
  • Наличие интерфейса прикладного программирования: прикладные программы должны иметь возможность просто и эффективно выполнять запросы на данные; программы должны быть изолированными от расположения файлов и способов адресации данных.
  • Распределенная обработка данных: система должна функционировать в условиях вычислительных сетей и обеспечивать эффективный доступ пользователей к любым данным распределенной БД, размещенным в любой точке сети.
  • Адаптивность и расширяемость: база данных должна быть настраиваемой, причем настройка не должна вызывать перезаписи прикладных программ. Кроме того, поставляемый с СУБД набор предопределенных типов данных должен быть расширяемым - в системе должны иметься средства для определения новых типов и не должно быть различий в использовании системных и определенных пользователем типов.
  • Контроль целостности данных: система должна осуществлять контроль ошибок в данных и выполнять проверку взаимного логического соответствия данных.
  • Восстановление данных после сбоев: автоматическое восстановление без потери данных транзакции. В случае аппаратных или программных сбоев система должна возвращаться к некоторому согласованному состоянию данных.
  • Вспомогательные средства должны позволять разработчику или
  • Лингвистические средства;
  • Программные средства;
  • Технические средства;
  • Организационно-административные подсистемы и нормативно-методическое обеспечение.

Организационно-методические средства - это совокупность инструкций, методических и регламентирующих материалов, описаний структуры и процедуры работы пользователя с СУБД и БД.

Пользователи БД и СУБД

Пользователей (СУБД) можно разделить на две основные категории: конечные пользователи ; администраторы баз данных .

Особо следует поговорить об администраторе базы данных (АБД). Естественно, что база данных строится для конечного пользователя (КП). Однако первоначально предполагалось, что КП не смогут работать без специалиста-программиста, которого назвали администратором базы данных. С появлением СУБД они взяли на себя значительную часть функций АБД, особенно для БД с небольшим объемом данных. Однако для крупных централизованных и распределенных баз данных потребность в АБД сохранилась. В широком плане под АБД понимают системных аналитиков, проектировщиков структур данных и информационного обеспечения, проектировщиков технологии процессов обработки, системных и прикладных программистов, операторов, специалистов в предметной области и по техническому обслуживанию. Иными словами, в крупных базах данных это могут быть коллективы специалистов. В обязанности АБД входит:

  1. анализ предметной области, статуса информации и пользователей;
  2. проектирование структуры и модификация данных;
  3. задание и обеспечение целостности;
  4. защита данных;
  5. обеспечение восстановления БД;
  6. сбор и статистическая обработка обращений к БД, анализ эффективности функционирования БД;
  7. работа с пользователем.

Краткие итоги

Базы данных (БД) - это именованная совокупность данных, отображающая состояние объектов и их отношения в рассматриваемой предметной области.

Система управления базами данных (СУБД) - это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Основные требования, предъявляемые к банкам данных: многократное использование данных, простота, легкость использования, гибкость использования, быстрая обработка запросов на данные, язык взаимодействия.

Пользователей (СУБД) можно разделить на две основные категории: конечные пользователи; администраторы баз данных.

Вопросы для самопроверки

  • Дайте определение базы данных.
  • Дайте определение банка данных.
  • Назовите две трактовки банка данных.
  • Что такое система управления базой данных?
  • Основные требования, предъявляемые к банку данных.
  • Что такое данные, информация, знания?
  • Пользователи СУБД и БД?
  • Основные функции администратора БД.
  • Что обеспечивает возможность быстрой и дешевой разработки новых приложений?

Правильно спроектированная БД должна удовлетворять следующим требованиям:

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

2. Целостность данных.

3. Независимость данных.

4. Возможность ведения (добавления и удаления) и актуализации (корректировки, модификации) данных.

5. Безопасность и секретность.

6. Высокая производительность. Минимальные затраты.

7. Соблюдение стандартов.

1. Минимальная избыточность означает то, что данные в БД не должны дублироваться. Избыточность данных, если она существует, влечет две опасности:

Неоправданно большой расход памяти и уменьшение времени отклика системы при обработке излишне больших объемов данных.

Нарушение непротиворечивости данных, т.е. возникновение такой ситуации, когда в различных местах машинной памяти хранятся противоречивые данные. Возникновение противоречивости чрезвычайно опасно для БД.

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

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

В СУБД существуют сложные механизмы блокирования обновляемых данных от доступа к ним других пользователей. Параллельные запросы к одним и тем же данным обычно выполняются последовательно.

В ряде СУБД есть средства, предотвращающие дублирование и возникновение противоречивости данных. В противном случае такие средства разрабатывает системный программист.

2. Целостность данных означает то, что в БД должны храниться только правильные данные, т.е. соблюдаются логические условия, в соответствии с которыми данные считаются правильными. Разрушение и искажение данных возможны в результате неосторожных действий пользователей, в результате ошибок в программах и сбоев оборудования.

Существуют специальные методы и приемы обеспечения целостности.

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

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

Целостность данных может нарушиться при неудачном завершении транзакции. Транзакцией называется некоторая неделимая последовательность операций над данными, выполняемая по одному запросу к БД. Примером транзакции является операция перевода денег с одного счета на другой в банковской системе. Здесь необходимо последовательное выполнение нескольких операций. Деньги снимаются с одного счета, данные корректируются, затем деньги добавляются к другому счету и данные вновь корректируются. Если хотя бы одно из действий не выполняется успешно, результат транзакции окажется неверным. СУБД должна отслеживать ход выполнения транзакции от начала до ее завершения. Если по какой-то причине какая-либо из операций не выполнилась, то транзакция отменяется полностью. При этом выполняется "откат" путем отмены всех уже выполненных изменений.

В БД должны быть предусмотрены средства восстановления данных после программных сбоев и сбоев оборудования. Существуют программы создания резервных копий и специальные программы, которые автоматически фиксируют любые внесенные в БД изменения (создается файл корректур). Если текущая версии БД испорчена, то берется предыдущая версия, в нее вносятся изменения, зафиксированные в файле корректур, и текущее (актуальное) состояние БД восстанавливается.

Различные СУБД в той или иной мере располагают средствами обеспечения целостности данных. В противном случае такие средства разрабатываются системным программистом.

3. Независимость данных означает то, что прикладные программы не должны зависеть от хранимых данных, т.е. от способа хранения данных в физической памяти. Это позволяет добавлять в БД новые данные, изменять структуры хранения данных, создавать на БД новые приложения. Ранее созданные программы при этом не должны "чувствовать" эти изменения.

СУБД обычно обеспечивают это требование.

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

5. Безопасность и секретность означает защиту данных от несанкционированного доступа, преднамеренного и непреднамеренного разрушения данных, хищения данных. Система защиты БД призвана решать следующие задачи.

Идентификация пользователей. Данными, хранящимися в БД должны пользоваться только лица, имеющие на это право и подтвердившие свои полномочия. Наиболее распространенным способом решения этой задачи является система паролей.

Ограничение доступа к данным. Каждый пользователь должен работать только с теми данными, которые необходимы для решения его задач, остальные данные должны быть для него "невидимыми".

Каждому пользователю предоставляются определенные полномочия (привилегии) для работы с данными. Ему может быть предоставлено право только чтения из БД, право ввода в БД или право обновления и т.п. Все привилегии предоставляются только администратору БД.

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

Средства защиты и обеспечения безопасности данных содержатся в СУБД или разрабатываются системным программистом.

6. Организация БД и методы доступа к данным должны обеспечивать высокую скорость обработки данных такую, чтобы пользователь мог работать с БД в диалоговом режиме. Стоимость обслуживания пользователей не должна быть высокой.

Возможность выполнения этих требований определяется рядом факторов: объемом хранимых данных, быстродействием техники, способом организации данных в БД и во многом зависит от решений, принимаемых разработчиками на этапе создания БД. Например, можно организовать способ размещения данных на носителе таким образом, что наиболее часто используемые данные хранятся на наиболее доступных участках внешней памяти.

7. Представление данных в БД, сопроводительная документация, способ взаимодействия пользователя с БД должны удовлетворять определенным стандартам. Стандарты могут быть корпоративными, ведомственными, промышленными, национальными и международными. Соблюдение стандартов совершенно необходимо для совместного использования данных и для организации обмена данными между отдельными системами. Например, без принятия определенных стандартов нельзя было бы организовать сеть Internet.


Введение

1. Понятие информационной системы.

2. Понятие базы данных.

3. Эволюция концепций баз данных

4. Требования, которым должна удовлетворять организация базы данных.

4.1. Установление многосторонних связей

4.2. Производительность

4.3. Минимальные затраты

4.4. Минимальная избыточность

4.5. Возможности поиска

4.6. Целостность

4.7. Безопасность и секретность

4.8. Связь с прошлым

4.9. Связь с будущим

4.10. Простота использования

5. Модели представления данных

5.1. Иерархическая модель данных

5.2. Сетевая модель данных

5.3. Реляционная модель данных

5.3.1. Таблицы

5.3.2. Ключевые поля

5.3.4. Отношения предок/потомок

5.3.5. Внешние ключи

5.3.6. Реляционная алгебра

5.3.7. Нормализация базы данных

5.3.7.1. Первая нормальная форма

5.3.7.2. Вторая нормальная форма

5.3.7.3. Третья нормальная форма

5.3.7.4. Четвертая нормальная форма

5.3.7.5. Пятая нормальная форма

6. Язык SQL как стандартный язык баз данных.

6.1. Язык SQL

6.2. Достоинства SQL

6.2.1. Независимость от конкретных СУБД

6.2.2. Переносимость с одной вычислительной системы на другие

6.2.3. Стандарты языка SQL

6.2.4. Одобрение SQL компанией IBM (СУБД DB2)

6.2.5. Протокол ODBC и компания Microsoft

6.2.6. Реляционная основа

6.2.7. Высокоуровневая структура, напоминающая английский язык

6.2.8. Интерактивные запросы

6.2.9. Программный доступ к базе данных

6.2.10. Различные представления данных

6.2.11. Полноценный язык для работы с базами данных

6.2.12. Динамическое определение данных

6.2.13. Архитектура клиент/сервер

7. Архитектуры баз данных

7.1. Локальные базы данных и архитектура "файл-сервер"

7.2. Удаленные базы данных и архитектура "клиент-сервер"

8. Среда Delphi как средство для разработки СУБД

8.1. Высокопроизводительный компилятор в машинный код

8.2. Мощный объектно-ориентированный язык

8.3. Объектно-ориентированная модель программных компонент

8.4. Библиотека визуальных компонент

8.5. Формы, модули и метод разработки “Two-Way Tools”

8.6. Масштабируемые средства для построения баз данных

8.7. Настраиваемая среда разработчика

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

9. Проектирование базы данных

Инфологическая модель данных

9.2. Инфологическая модель данных "сущность-связь"

9.3. Даталогическая модель данных

9.4. Переход от ER – модели к реляционной.

9.5. Физическая модель данных

9.6. Этапы проектирования базы данных

10. Практическая часть

10.1. Предметная область и задачи, возложенные на базу данных

10.2. Определение объектов базы данных

10.3. Инфологическая и даталогическая модели базы данных

10.4. Физическое описание модели

10.5. Програмная реализация

Заключение

Список литературы


ВВЕДЕНИЕ


Опыт применения компьютеров для построения прикладных систем обработки данных показывает, что самым эффективным инструментом здесь являются системы управления базами данных (СУБД, англ. DBMS – DataBase Management System).

Потоки информации, циркулирующие в мире, который нас окружает, огромны. Во времени они имеют тенденцию к увеличению. Поэтому в любой организации, как большой, так и маленькой, возникает проблема такой организации управления данными, которая обеспечила бы наиболее эффективную работу. Некоторые организации используют для этого шкафы с папками, но большинство предпочитают компьютеризированные способы – базы данных, позволяющие эф­фективно хранить, структурировать и систематизировать большие объемы дан­ных. И уже сегодня без баз данных невозможно представить работу большинства финансовых, промышленных, торговых и прочих организаций. Не будь баз данных, они бы просто захлебнулись в информационной лавине.

Существует много веских причин перевода существующей информации на компьютерную основу. Сейчас стоимость хранения информации в файлах на компьютере дешевле, чем на бумаге. Базы данных позволяют хранить, структурировать информацию и извлекать оптимальным для пользователя образом. Использование клиент/серверных технологий позволяют сберечь значительные средства, а главное и время для получения необходимой информации, а также упрощают доступ и ведение, поскольку они основываются на комплексной обработке данных и централизации их хранения. Кроме того компьютер позволяет хранить любые форматы данных текст, чертежи, данные в рукописной форме, фотографии, записи голоса и т.д.

Для использования столь огромных объемов хранимой информации, помимо развития системных устройств, средств передачи данных, памяти необходимы средства обеспечения диалога человек-компьютер, которые позволяют пользователю вводить запросы, читать файлы, модифицировать хранимые данные, добавлять новые данные или принимать решения на основании хранимых данных. Для обеспечения этих функций созданы специализированные средства – системы управления базами данных (СУБД). Современные СУБД - многопользовательские системы управления базой данных, которые специализируется на управлении массивом ин­формации одним или множеством одновременно работающих пользователей.

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

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

Реализация данной задачи проводится в системе программирования Delphi 5.0, располагающей широкими возможностями по созданию приложений баз данных, необходимым набором драйверов для доступа к самым известным форматам баз данных, удобными и развитыми средствами для доступа к информации, расположенной как на локальном диске, так и на удаленном сервере, а также большим коллекцией визуальных компонент для построения отображаемых на экране окон, что необходимо для создания удобного интерфейса между пользователем и исполняемым кодом.


Понятие информационной системы


Веками человечество накапливало знания, навыки работы, сведения об окружающем мире, другими словами – собирало информацию. Вначале информация передавалась из поколения в поколение в виде преданий и устных рассказов. Возникновение и развитие книжного дела позволило передавать и хранить информацию в более надежном письменном виде. Открытия в области электричества привели к появлению телеграфа, телефона, радио, телевидения – средств, позволяющих оперативно передавать и накапливать информацию. Развитие прогресса обусловило резкий рост информации, в связи с чем, вопрос о ее сохранении и переработке становился год от года острее. С появлением вычислительной техники значительно упростились способы хранения, а главное, обработки информации. Развитие вычислительной техники на базе микропроцессоров приводит к совершенствованию компьютеров и программного обеспечения. Появляются программы, способные обработать большие потоки информации. С помощью таких программ создаются информационные системы . Целью любой информационной системы является обработка данных об объектах и явлениях реального мира и предоставление человеку нужной информации о них..

Если мы рассмотрим совокупность некоторых объектов, то сможем выделить объекты, обладающие одинаковыми свойствами. Такие объекты выделяют в отдельные классы. Внутри выделенного класса объекты можно упорядочивать как по общим правилам классифицирования, например по алфавиту, так и по некоторым конкретным общим признакам, например по цвету или материалу. Группировка объектов по определенным признакам значительно облегчает поиск и отбор информации. Все эти сведения накапливаются в совокупности файлов называемой базой данных, а для управления этими файлами создаются специальные программы – системы управления базами данных (СУБД)..

Информационные системы (ИС) можно условно разделить на фактографические и документальные.

В фактографических ИС регистрируются факты – конкретные значения данных (атрибутов) об объектах реального мира. Основная идея таких систем заключается в том, что все сведения об объектах (фамилии людей и названия предметов, числа, даты) сообщаются компьютеру в каком-то заранее обусловленном формате (например дата – в виде комбинации ДД.ММ.ГГГГ). Информация, с которой работает фактографическая ИС, имеет четкую структуру, позволяющую машине отличать одно данное от другого, например фамилию от должности человека, дату рождения от роста и т.п. Поэтому фактографическая система способна давать однозначные ответы на поставленные вопросы.

Документальные ИС обслуживают принципиально иной класс задач, которые не предполагают однозначного ответа на поставленный вопрос. Базу данных таких систем образует совокупность неструктурированных текстовых документов (статьи, книги, рефераты и т.д.) и графических объектов, снабженная тем или иным формализованным аппаратом поиска. Цель системы, как правило, - выдать в ответ на запрос пользователя список документов или объектов, в какой-то мере удовлетворяющих сформулированным в запросе условиям.

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

Для систем обработки экономической и статистической информации больше подходят фактографические ИС, которые используются буквально во всех сферах человеческой деятельности.

Понятие базы данных.

Существует хорошо известное, но трудно реализуемое на практике понятие базы данных как большого по объему хранили­ща, в которое организация помещает все необходимые ей данные и из которого различные пользователи могут эти данные получать. Устройства памяти, в которых хранятся все данные, могут быть расположены в одном или нескольких местах; в последнем слу­чае они должны быть связаны средствами передачи данных. К дан­ным должны иметь доступ программы.

Действительно, большинство существующих на сегодняшний день баз данных предназначено для ограниченного ряда приложений. Часто на одном компьютере создается несколько баз данных. Со временем базы данных, предназначенные для реализа­ции отдельных родственных функций, можно будет объединить, если такое объединение будет способствовать увеличению эффективности и интенсивности использования всей системы.

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

Говорят, что система содержит совокупность баз данных, если эти базы дан­ных структурно полностью самостоятельны. В системах с простой организацией данных для каждого при­ложения создается своя совокупность записей. Назначение базы данных заключается в том, чтобы одну и ту же совокупность дан­ных можно было использовать для максимально возможного числа приложений. Исходя из этого, базу данных часто разрабатывают в качестве хранилища такой информации, необходимость в котором возникает в процессе выполнения определенных функ­ций на заводе, правительственном учреждении или какой-либо другой организации. Такая база данных должна обеспечивать возможность не только получения информации, но также постоян­ной ее модификации, необходимой для процессов управления в данной организации, может оказаться, что для получения информации для целей планирования или ответов на вопросы потребу­ется осуществлять поиск в базе данных. Совокупностью данных могут пользоваться несколько ведомств независимо от того, име­ются ли при этом между ними ведомственные барьеры..

База данных может разрабатываться для пакетной обработки данных, обработки в реальном времени или оперативной обработ­ки (в этом случае обработка каждого запроса завершается к определенному моменту времени, но при этом на время обра­ботки не накладывается жестких ограничений, существующих в системах реального времени). Во многих базах данных преду­смотрена совокупность этих методов обработки, а во многих си­стемах с базами данных обслуживание терминалов в реальном времени происходит одновременно с пакетной обработкой данных..

Большая часть дисковых или ленточных библиотек, которые существовали до использования средств управления базами дан­ных, содержали большое количество повторяющейся информации. При запоминании многих элементов данных допускалась избы­точность, так как на носители информации для различных целей записывались одни и те же данные и, кроме того, хранились различные варианты модификаций одних и тех же данных. База данных предоставляет возможность в значительной степени изба­виться от такой избыточности. Базу данных иногда определяют как неизбыточную совокупность элементов данных. Однако в действительности для уменьшения времени доступа к данным или упрощения способов адресации во многих базах данных избыточ­ность в незначительной степени присутствует. Некоторые записи повторяются для того, чтобы обеспечить возможность восстанов­ления данных при их случайной потере. Чтобы база данных была неизбыточной и удовлетворяла другим требованиям, приходится идти на компромисс. В этом случае говорят об управляемой, или минимальной, избыточности или о том, что хорошо разрабо­танная база данных свободна от излишней избыточности.

Неуправляемая избыточность имеет несколько недостатков. Во-первых, хранение нескольких копий данных приводит к допол­нительным затратам. Во-вторых, при обновлении, по крайней мере, нескольких избыточных копий необходимо выполнять многократные операции обновления. Из­быточность поэтому обходится значительно дороже в тех случаях, когда при обработке файлов обновляется большое количество ин­формации или, что еще хуже, часто вводятся новые элементы или уничтожаются старые. В-третьих, вследствие того, что различные копии данных могут соответствовать различным стадиям обнов­ления, информация, выдаваемая системой, может быть противо­речивой..

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

Одной из наиболее важных характеристик большинства баз данных является их постоянное изменение и расширение. По мере добавления новых типов данных или при появлении новых прило­жений должна быть обеспечена возможность быстрого изменения структуры базы данных. Реорганизация базы данных должна осу­ществляться по возможности без перезаписи прикладных про­грамм и в целом вызывать минимальное количество преобразова­ний. Простота изменения базы данных может оказать большое влияние на развитие приложений баз данных в управлении про­изводством..

О независимости данных часто говорят как об одном из основ­ных свойств базы данных. Под этим подразумевается независи­мость данных и использующих их прикладных программ друг от друга в том смысле, что изменение одних не приводит к измене­нию других. В частности, прикладной программист изолирован от влияния изменений данных и их организации, а также от изме­нения характеристик физических устройств, на которых они хра­нятся. В действительности же полностью независимыми данные бывают так же редко, как и полностью неизбыточными. Как мы увидим ниже, независимость данных определяется с различных точек зрения. Сведения, которыми должен располагать програм­мист для доступа к данным, различны для различных баз данных. Тем не менее, независимость данных-это одна из основных причин использования систем управления базами данных.

В том случае, когда один набор элементов данных использу­ется для многих приложений, между элементами этого набора устанавливается множество различных взаимосвязей, необходи­мых для соответствующих прикладных программ. Организация базы данных в значительной степени зависит от реализации взаи­мосвязей между элементами данных и записями, а также от того, как и где эти данные хранятся. В базе данных, используемой мно­гими приложениями, должны быть установлены многочисленные промежуточные взаимосвязи между элементами. В этом случае при хранении и использовании данных контролировать их пра­вильность, обеспечивать их защиту и секретность труднее, чем при хранении данных в простых, несвязанных файлах. Что касается обеспечения секретности данных и восстановления их после сбоев, то этот вопрос является очень важным при конструировании баз данных..

В некоторых системах средства управления базами данных применяются для того, чтобы пользователи могли использовать данные таким путем, который не был предусмотрен разработчи­ками системы. Администраторы или сотрудники могут обращаться к вы­числительной системе с вопросами, которые заранее в ней не пре­дусматривались. Наличие этой возможности означает такую орга­низацию данных в системе, при которой доступ к ним можно осу­ществлять по различным путям, причем одни и те же данные могут использоваться для ответов на различные вопросы. Вся существенная информация об объектах запоминается одновременно и полностью, а не только та ее часть, которая необходима для одного приложения. .

В настоящее время существуют СУБД, реализующие эти возможности как на уровне локальных баз данных, расположенных на одном диске (Paradox, Dbase), так и промышленных баз данных (Acsess, Oracle, FoxPro).

Эволюция концепций баз данных

Понятие база данных появилось в конце 60-х годов. До этого в сфере обработки данных говорили о файлах данных и о наборах данных.

До появления компьютеров третьего поколения (первые из них были установлены в 1965 г.) программное обеспечение обработки данных осуществляло в основном операции ввода-вывода. 0б организации данных приходилось заботиться при напи­сании прикладных программ, и делалось это элементарным спо­собом, т. е. данные обычно организовывались в виде простых последовательных файлов на магнитной ленте. Независимость данных отсутствовала. Если организация данных или запоминаю­щие устройства изменялись, прикладной программист должен был соответствующим образом модифицировать программы, заново их компилировать и затем отлаживать. Для того чтобы обновить файл, нужно было записать новый. Старый файл сохранялся и назывался исходным. Предыдущий вариант также сохранялся, а нередко сохранялись и более ранние версии файла. Многие файлы использовались для одного приложения. Для других приложений часто использовали те же самые данные, но обычно в другой форме, с другими полями, и поэтому приходилось из одних и тех же данных создавать различные файлы. Вследствие этого уровень избыточности в системе был очень высок и существовали различные файлы, содержащие одни и те же элементы дан­ных.

Иногда использовались файлы с произвольным досту­пом к данным, которые позволяли пользователю получить непосредственный доступ к любой записи в файле вместо того, чтобы последовательно просматривать весь файл. Средства адресации записей обеспечивались прикладным программистом при написа­нии программы. Если изменялись запоминающие устройства, в прикладную программу необходимо было вносить большие изме­нения. На практике изменение запоминающих устройств неизбеж­но. Новая технология привела к значительному уменьшению за­трат на хранение одного бита информации, а размеры файлов сегодня часто превышают по объему использовавшиеся ранее за­поминающие устройства..

Этап 2 (конец 60-х годов) характеризуется изменением по сравнению с этапом 1 как природы файлов, так и устройств, на которых они запоминались. Предпринимается попытка оградить прикладного программиста от влияния изменений в аппаратуре. Программное обеспечение допускает возможность изменения физического расположения данных без изменения при этом их логического представления при условии, что содержимое записей или основная структура файлов не изменяется.

Файлы, соответствующие этому этапу развития средств обра­ботки данных, подобно файлам этапа 1, предназначаются для одного приложения или для тесно связанных между собой прило­жений.

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

Известно, что база данных представляет собой постоянно развивающийся объект, который используется возрастающим количеством приложений. К базе данных добавляются новые записи, а в существующие записи включаются новые элементы данных. Структура базы данных будет изменяться с целью повышения эффективности ее функциони­рования и при добавлении новых типов запросов. Пользователи будут изменять требования и модифицировать типы запросов на данные.

Структура базы данных является менее статичной, чем файло­вая структура. Элементы хранимых данных и способы их запоми­нания непрерывно изменяются. Если на организацию данных со стороны вычислительной системы накладывается ограничение в виде требования постоянства файловой структуры, то это приво­дит к тому, что в случае ее изменения программисты тратят много времени на модификацию существующих программ, вместо того чтобы заниматься разработкой новых приложений.

В одном случае может сообщаться только имя элемента данных или записи, которую он хочет по­лучить. В другом случае (при наличии другого программного обеспечения) он должен был сообщать идентификацию элемента данных и имя набора, в котором этот элемент данных содержится. Добавление новых элементов данных в записи без изменения прикладных программ возможно при том условии, что программ­ное обеспечение связано с данными на уровне элементов данных (полей), а не на уровне записей. Это часто приводит к созданию сложных структур дан­ных. Однако хорошее программное обеспечение баз данных из­бавляет прикладного программиста от трудностей, связанных со сложностью структуры. Независимо от того, каким образом дан­ные организованы на самом деле, прикладной программист дол­жен представлять себе файл в виде сравнительно простой струк­туры, которая спланирована в соответствии с его требованиями.

Программное обеспечение баз данных этапа 3 (начало 70-х годов) распо­лагало средствами отображения файловой структуры прикладного программиста в такую физическую структуру данных, которая запоминается на реальном носителе и наоборот.

В зависимости от уровня программного обеспече­ния прикладной программист эле­мента данных должен также знать организацию файла данных. В этом случае ему, возможно, придется задать машинный адрес данных. Если отсутствует независимость данных, прикладному программисту необходимо знать точный физический формат запи­си. Самый худший вариант - это случай, когда программист дол­жен быть “навигатором”..

Процесс преобразования обращения прикладного программи­ста к логической записи или к элементам логической записи в машинные обращения к физической записи и ее элементам называется привязкой . Привязка - это связь физического представле­ния данных с программой, которая эти данные использует. После выполнения процесса привязки программа уже не будет незави­симой от физических данных..

Итак, для 3-го этапа:

Различные логические файлы могли быть получены из одних и тех же физических данных.

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

Программное обеспечение содержало средства уменьшения избыточно­сти данных.

Элементы данных являлись общими для различных приложений.

Физическая структура данных независима от прикладных программ. Ее можно было изменять с целью повышения эффективности базы данных, не вызывая при этом модификации прикладных программ,

Данные адресуются на уровне полей или групп. .


По мере накопления опыта использования первых систем управления базами данных довольно скоро стало очевидно, что не­обходим дополнительный уровень независимости данных. Общая логическая структура данных, как правило, сложная, и по мере роста базы данных она неизбежно изменяется. Поэтому важно обеспечить возможность изменения общей логической структуры без изменения используемых при этом многочисленных приклад­ных программ. В некоторых системах изменение общей логиче­ской структуры данных составляет форму ее существования, т. е. эта структура находится в состоянии постоянного развития. По­этому требуются два уровня независимости данных. Их называют логической и физической независимостью данных.

Логическая независимость данных означает, что общая логи­ческая структура данных может быть изменена без изменения при­кладных программ (изменение, конечно, не должно заключаться в удалении из базы данных таких элементов, которые использу­ются прикладными программами).

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

Этап 4 характеризуется идей логической и физи­ческой независимости данных; логическая структура данных может сильно отличаться от физической структуры данных и от их пред­ставлений в конкретных прикладных программах. Программное обеспечение баз данных будет фактически преобразовывать пред­ставление данных прикладного программиста в общее логическое представление, а затем будет отображать логическое представле­ние в физическое представление данных.

Назначение такой структуры обеспечивает максимум свободы в изменении структур данных без переделки при этом выполненной ранее работы по формированию и использованию базы данных.

База данных может развиваться без больших затрат на ведение.

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

Обеспечиваются эффективные процедуры управления защитой секрет­ности, целостности и безопасности данных.

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

Базы данных конструируются для выдачи ответов на не планируемые заранее информационные запросы.

Обеспечиваются средства перемещения данных..

Требования, которым должна удовлетворять организация базы данных.

Изучением этого вопроса долгое время занимались различные группы людей в учреждениях, использующих компьютеры, в правитель­ственных комиссиях, на вычислительных центрах коллективного пользования. Комитет CODASYL опубликовал отчеты на эту тему (CODASYL-организация, разработавшая язык КОБОЛ). Организации пользователей IBM SHARE и GUIDE в своем отчете сформулировали требования к системе управления базами дан­ных. Организация ACiM (Association for Computing Machi­nery) также занималась изучением этого вопроса.

Ниже перечислены основные требования к организации базы данных.

Установление многосторонних связей

Различным программистам требуются различные логические файлы. Эти файлы получаются из одной и той же совокупности данных. Между элементами запоминаемых данных могут суще­ствовать различные связи. Некоторые базы данных будут содер­жать сложные переплетения взаимосвязей. Метод организации данных должен быть таким, чтобы обеспечивалась возможность удобного представления этих взаимосвязей и быстрого согласова­ния вносимых в них изменений. Система управления базами дан­ных должна обеспечивать возможность получения требуемых логи­ческих файлов из имеющихся данных и существующих между ними связей. Необходимо, чтобы существовало хотя бы небольшое сходство между представлением логического файла в прикладной программе и способом физического хранения данных..

Производительность

Базы данных, специально разработанные для использования их оператором терминала, обеспечивают время ответа, удовлет­ворительное для диалога человека - терминал. Кроме того, система баз данных должна обеспечивать соответствующую пропуск­ную способность. В системах, рассчитанных на небольшой поток запросов, пропускная способность накладывает незначительные ограничения на структуру базы данных. В системах с большим потоком запросов, например в системах резервирования авиа­билетов, пропускная способность оказывает решающее влияние на выбор организации физического хранения данных.

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

Минимальные затраты

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

Минимальная избыточность

В системах обработки, существовавших до использования си­стем управления базами данных, информационные фонды облада­ли очень высоким уровнем избыточности. Большинство ленточных библиотек содержало большое количество избыточных данных. Даже при использовании баз данных по мере возрастания инфор­мации, объединяемой в интегрированные базы данных, потен­циальная возможность появления избыточных данных постепенно увеличивается. Избыточные данные дороги в том смысле, что они занимают больше памяти, чем это необходи­мо, и требуют более одной операции обновления. Целью организации базы данных должно быть уничтожение избыточных данных там, где это выгодно, и контроль за теми про­тиворечиями, которые вызываются наличием избыточных данных..

Возможности поиска

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

Целостность

Если база данных содержит данные, используемые многими пользователями, очень важно, чтобы элементы данных и связи между ними не разрушались. Необходимо учитывать возможность возникновения ошибок и различного рода случайных сбоев. Хра­нение данных, их обновление, процедуры включения данных должны быть такими, чтобы система в случае возникновения сбоев могла восстанавливать данные без потерь. Необходимо, чтобы вы­числительная система гарантировала целостность хранимых в ней данных..

Безопасность и секретность

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

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

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

Связь с прошлым

Организации, которые в течение какого-то времени эксплуати­руют системы обработки данных, затрачивают значительные сред­ства на написание программ, процедур и организацию хранения данных. В том случае, когда фирма начинает использовать на вычислительной установке новое программное обеспечение управ­ления базами данных, очень важно, чтобы при этом она могла работать с уже существующими на этой установке программами, обрабатываемые данные можно было бы соответствующим образом преобразовывать. Такое условие требует наличия програм­мной и информационной совместимости, и ее отсутствие может стать основным сдерживающим фактором при переходе к новым системам управления базами данных. Важно, однако, чтобы про­блема связи с прошлым не сдерживала развитие средств управ­ления базами данных. .

Связь с будущим

Особенно важной представляется связь с будущим. В будущем данные и среда их хранения изменятся по многим направлениям. Любая коммерческая организация со временем претерпевает из­менения. Особенно дорогими эти изменения оказываются для пользователей системами обработки данных. Огромные затраты, которые требуются для реализации самых простых изменений, сильно тормозят развитие этих систем. Эти затраты расходуются на преобразование данных, перезапись и отладку прикладных программ, явившихся результатом внесения изменений. Со време­нем число прикладных программ в организации растет, и поэтому перспектива перезаписи всех этих программ кажется нереальной. Одна из самых важных задач при разработке баз данных-запла­нировать базу данных таким образом, чтобы изменения ее можно было выполнять без модификации прикладных программ..

Простота использования

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

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


Модели представления данных

С ростом популярности СУБД в 70-80-х годах появилось множество различных моделей данных. У каждой из них имелись свои достоинства и недостатки, которые сыграли ключевую роль в развитии реляционной модели данных, появившейся во многом благодаря стремлению упростить и упорядочить первые модели данных.

Современные БД основываются на использовании моделей данных (МД), позволяющих описывать объекты предметных областей и взаимосвязи между ними существуют три основные МД и их комбинации, на которых основываются БД: реляционная модель данных (РМД), сетевая модель данных (СМД), иерархическая модель данных (ИМД).

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

Используют взаимосвязи "один к одному", "один ко многим" и "многие ко многим". "Один к одному"

Появление системы управления базами данных. Этапы проектирования базы данных "Строительная фирма". Инфологическая и даталогическая модель данных. Требования к информационной и программной совместимости для работы с базой данных "Строительная фирма".

Построение концептуальной модели. Проектирование реляционной модели данных на основе принципов нормализации: процесс нормализации и глоссарий. Проектирование базы данных в Microsoft Access: построение таблиц, создание запросов в том числе SQL – запросов.

Проектирование базы данных Access. Система управления базами данных. Создание и обслуживание базы данных, обеспечение доступа к данным и их обработка. Постановка задач и целей, основных функций, выполняемых базой данных. Основные виды баз данных.

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

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

База данных компьютерной фирмы

Информационная система компьютерной фирмы, описание предметной области, модель системы. Создание базы данных: постановка задачи, перечень объектов базы данных, инфологическая и датологическая модели, физическое моделирование. Формы, запросы и отчёты.

Основные понятия и определение базы данных, этапы создания и проектирования, используемые модели. Создание базы данных "Страхование населения" для обработки данных о видах страховок, их стоимости, совершенных сделках, клиентах, сроках действия страховки.

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

Понятие и порядок разработки базы данных, ее основные составные части и назначение. Построение базы данных консалтингового агентства на основе инфологической модели, отражаемые сущности и связи между ними. Особенности реализации базы данных в MS ACCESS.

Создание базы данных "Сбыт готовой продукции лесоперерабатывающего предприятия" при помощи Microsoft Access для ввода данных о готовой продукции и ее реализации, клиентах и хранения информации о них и для автоматического получения отчета об объеме продаж.