Базы данных и информационные технологии

Реферат
Содержание скрыть

Лекция 1. Введение в базы данных и СУБД

информацией

База данных

моделью данных.

метаданными

свойствами

1. Восстанавливаемость –

2.Безопасность

3. Целостность, Эффективность, Система управление базами данных (СУБД), Основные функции СУБД

1. Администрирование базы данных.

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

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

2. Непосредственное управление данными во внешней памяти.

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

3. Управление буферами оперативной памяти.

буферизация

4. Управление транзакциями

Транзакция

5. Журнализация

надежностью хранения

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

С помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

6. Поддержка языков БД

язык определения данных

Стандартным языком наиболее распространенных в настоящее время СУБД является язык SQL (Structured Query Language).

Он имеет сразу два компонента: язык определения данных и язык управления данными. Кроме того, одним из языков управления данными является язык QBE – язык запросов по образцу. Подробно о реализаций функций СУБД с помощью языка SQL будет рассказано на отдельных лекциях, посвященных языку SQL.

37 стр., 18434 слов

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

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

Классификация СУБД, СУБД общего назначения, Полнофункциональные СУБД

3. По характеру использования СУБД делят на персональные и многопользовательские.

Персональные СУБД, Компоненты среды СУБД

компонентов

Данные являются наиболее важным компонентом.

Для хранения данных и функционирования базы необходимо аппаратное обеспечение – набор физических сеть), на которых существует база и СУБД.

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

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

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

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

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

Пользователи – это конечные пользователи, ради которых база проектировалась, создавалась и будет работать. Их часто называют клиентами.

программных компонентов

  • ядро СУБД, которое отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, транзакциями, журнализацию. Это главная часть СУБД. Ядро обладает собственным интерфейсом, недоступным пользователю напрямую.
  • компилятор языка БД (обычно SQL), предназначенный для работы с данными.
  • набор утилит.

Лекция 2. Модели данных

Первые СУБД использовали иерархическую модель данных. Типичным представителем СУБД, поддерживаемых данный вид моделей (наиболее известным и распространенным), является Information Management System (IMS) фирмы IBM. Первая версия появилась в 1968 г. и была создана для поддержки лунного проекта «Аполлон» (управление огромного количества деталей, иерархически связанных между собой).

часть

Поле данных

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

Между типами записи поддерживаются связи.

База данных с такой схемой могла бы выглядеть образом:

9 стр., 4493 слов

Базы данных, основные модели их организации

... Рис. 1.3. Уровни СУБД 2.2. Типы баз данных На протяжении ряда лет было предложено несколько моделей реализации систем с базами данных: иерархический, сетевой, реляционный и объектно-ориентированный. Иерархические и сетевые базы данных на данный момент редко ...

Управляющая часть

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

  • Найти указанное дерево БД (например, отдел 310);

  • Перейти от одного дерева к другому;

  • Перейти от одной записи к другой внутри дерева (например, от отдела — к первому сотруднику);

  • Перейти от одной записи к другой в порядке обхода иерархии;

  • Вставить новую запись в указанную позицию;

  • Удалить текущую запись.

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

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

Кроме того, иерархическая модель обладает свойствами:

  1. каждый потомок имеет только одного предка;

  2. предок может не иметь потомков.

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

Примеры иерархических СУБД : Ока, ИНЭС, МИРИС, Data Edge

Сетевая модель

Сети – естественный способ представления реальных отношений между объектами. Сетевая модель также опирается на теорию графов.

Появились в 70-х годах XX века. Типичными представителями являются СУБД Integrated Database Management System (IDMS) компании Cullinet Software, Inc. и Integrated Data Store (IDS) фирмы General Electric.

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

часть

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

Элемент данных

Запись – поименованная содержащая элементы данных (запись в реляционной таблице).

Тип записей

Набор – это поименованная двухуровневая иерархическая которая выражает связи между двумя типами записей (один к одному, один ко многим).

На формирование типов связи не накладываются особые ограничения; возможны, например, ситуации:

  • Данный тип записи может быть предком для любого числа связей.
  • Данный тип записи может быть потомком в любом числе связей.
  • Может существовать любое число связей с одним и тем же типом записи предка и одним и тем же типом записи потомка.
  • Типы записи X и Y могут быть предком и потомком в одной связи и потомком и предком — в другой.
  • Предок и потомок могут быть одного типа записи.
  • Между двумя типами записей может быть любое количество наборов (преподаватель может не только преподавать, и быть куратором этой группы).
    4 стр., 1839 слов

    Технология баз данных

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

Простой пример сетевой схемы БД:

сетевая база данных

Управляющая часть

Примерный набор операций может быть

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

Ограничения целостности

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

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

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

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

Работа с таблицами понятна и привычна каждому пользователю. Создателем реляционной модели является математик, сотрудник фирмы IBM Э.Ф. Кодд (1970 г.).

Он же ввел два языка манипулирования данными SQL и QBE.

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

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

Структурная часть

Реляционная база данных представляет собой набор таблиц (которые Кодд назвал отношениями), каждая из которых имеет уникальное имя и состоит (кортежей) и столбцов – полей (атрибутов).

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

Тип данных

тип данных

атомарное

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

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

Если же значения двух атрибутов берутся из различных доменов, то их сравнение, вероятно, лишено смысла: стоит ли сравнивать номер рейса со стоимостью билета?

Кортеж, отношение, Отношением, Реляционная база данных

альтернативными ключами

Отношения, схема базы данных

Схема отношения — это именованное множество пар {имя атрибута, имя домена (или типа)}.

Схемой реляционной базы, Ограничение целостности

требованием целостности сущностей

требованием целостности по ссылкам

внешним ключом

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

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

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

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

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

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

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

Управляющая часть

Для управления реляционной базой данных Э.Ф.Кодд ввел реляционные языки обработки данных – реляционную алгебру и реляционное исчисление.

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

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

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

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

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

Основные – это объединение, разность, декартово произведение, проекция, выбор. К дополнительным относят пересечение, естественное соединение, соединение и деление.

Объединение

Объединением

Синтаксис операции объединения:

Замечание . если некоторый кортеж входит и в отношение , и отношение , то в объединение он входит один раз.

Пример . Пусть даны два отношения и с информацией о сотрудниках:

Таблица 1 — Отношение A

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

Фамилия

Зарплата

1

Иванов 1000

2

Пушников 2500

4

Сидоров 3000

Таблица 2 — Отношение B

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

Фамилия

Зарплата

1 Иванов 1000
2 Петров 2000
3 Сидоров 3000
2 Пушников 2500

не наследуются

Пересечение

Пересечением

Пример 3 . Для тех же отношений и , что и в предыдущем примере пересечение имеет вид:

Таблица 4 — Отношение A INTERSECT B

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

Фамилия

Зарплата

1 Иванов 1000

Замечание . Казалось бы, что в отличие от операции объединения, потенциальные ключи могли бы наследоваться пересечением отношений. Однако это не так. Вообще, никакие реляционные операторы не передают результатирующему отношению никаких данных о потенциальных ключах . В качестве причины этого можно было бы привести тривиальное соображение, что так получается более просто и симметрично — все операторы На самом деле причина более глубока, и заключается в том, что потенциальный ключ — семантическое понятие, отражающее различимость объектов предметной области. Наличие потенциальных ключей не выводится из отношения, а явно задается для каждого отношения, исходя из его смысла. Реляционные же операторы являются формальными операциями над отношениями и выполняются одинаково, независимо от смысла данных, содержащихся в отношениях. Поэтому, реляционные операторы ничего не могут «знать» о смысле данных. Трактовка результата реляционных операций — дело пользователя.

Примеры использования реляционных операторов

Пример 12 . Получить имена поставщиков, поставляющих деталь номер 2.

Решение:

Пример 13 . Получить имена поставщиков, поставляющих по крайней мере одну гайку.

Решение:

Ответ на этот запрос можно получить и иначе:

Пример 14 . Получить имена поставщиков, поставляющих все детали.

Решение:

Пример 15 . Получить имена поставщиков, не поставляющих деталь номер 2.

Решение:

Ответ на этот запрос можно получить и пошагово:

  • получить список номеров всех поставщиков
  • соединить данные о поставщиках и поставках
  • в данных о поставщиках и поставках оставить только данные о поставках детали номер 2.
  • получить список номеров поставщиков, поставляющих деталь номер 2.
  • получить список номеров поставщиков, не поставляющих деталь номер 2.
  • соединить список номеров поставщиков, не поставляющих деталь номер 2 с данными о поставщиках (получатся полные данные о поставщиках, не поставляющих деталь номер 2).

  • искомый ответ (имена поставщиков, не поставляющих деталь номер 2).

Специальные реляционные операции

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

Операция ограничения

Операция ограничения требует наличия двух операндов: ограничиваемого отношения и простого условия ограничения. Простое условие ограничения может иметь либо вид (a comp-op b), где а и b — имена атрибутов ограничиваемого отношения, для которых осмысленна операция сравнения comp-op, либо вид (a comp-op const), где a — имя атрибута ограничиваемого отношения, а const — литерально заданная константа.

В результате выполнения операции ограничения производится отношение, заголовок которого совпадает с заголовком отношения-операнда, а в тело входят те кортежи отношения-операнда, для которых значением условия ограничения является true.

Пусть UNION обозначает операцию объединения, INTERSECT — операцию пересечения, а MINUS — операцию взятия разности. Для обозначения операции ограничения будем использовать A WHERE comp, где A — ограничиваемое отношение, а comp — простое условие сравнения. Пусть comp1 и comp2 — два простых условия ограничения. Тогда по определению:

  • A WHERE comp1 AND comp2 обозначает то же самое, что и (A WHERE comp1) INTERSECT (A WHERE comp2)

  • A WHERE comp1 OR comp2 обозначает то же самое, что и (A WHERE comp1) UNION (A WHERE comp2)

  • A WHERE NOT comp1 обозначает то же самое, что и A MINUS (A WHERE comp1)

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

На интуитивном уровне операцию ограничения лучше всего представлять как взятие некоторой «горизонтальной» вырезки из отношения-операнда.

Операция взятия проекции

Операция взятия проекции также требует наличия двух операндов — проецируемого отношения A и списка имен атрибутов, входящих в заголовок отношения A.

Результатом проекции отношения A по списку атрибутов a 1 , a2 , …, an является отношение, с заголовком, определяемым множеством атрибутов a1 , a2 , …, an , и с телом, состоящим из кортежей вида <a1 :v1 , a2 :v2 , …, an :vn > таких, что в отношении A имеется кортеж, атрибут a1 которого имеет значение v1 , атрибут a2 имеет значение v2 , …,