74244

Базы данных и их классификация

Лекция

Информатика, кибернетика и программирование

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

Русский

2014-12-30

158 KB

6 чел.

Базы данных

Базы данных и их классификация

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

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

Термин «база данных» (database) был введен в обиход в области вычислительной техники примерно в 1962 году.

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

      «База данных – это совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ».

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

СУБД является частью информационной системы.

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

Основные понятия:

Целостность данных. В общем случае целостность данных означает корректность данных и их непротиворечивость. Для обеспечения целостности накладывают ограничения целостности. В частности, эти ограничения могут иметь вид логических выражений, значения которых всегда должны быть «истина». Если значение хотя бы одного логического выражения ограничения целостности данных принимает значение «ложь», то имеет место быть нарушение целостности данных. Ограничения такого вида иногда называют бизнес-правилами. Примеры ограничений: вес детали должен быть положительным; цвет детали должен быть «Красный», «Синий» или «Зеленый»; возраст родителей не может быть меньше возраста их биологического ребенка.

Целостность транзакций. 

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

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

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

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

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


К основным функциям СУБД относятся:

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


Обычно современная СУБД содержит следующие компоненты:

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

По технологии обработки данных БД подразделяют на два вида:

централизованная БД хранится целиком на ВЗУ одной вычислительной системы; если система входит в состав сети, то возможен доступ к этой БД других систем;

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

СУБД предоставляет доступ к данным БД двумя способами:

локальный доступ предполагает, что СУБД обрабатывает БД, которая хранится на ВЗУ той же ЭВМ;

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

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

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

Данные хранятся в БД в соответствии с моделью данных.

Классификация СУБД по типу модели данных:

  •  Дореляционные
    •  Инвертированные списки (файлы)
    •  Иерархичекие
    •  Сетевые
  •  Реляционные
  •  Постреляционные
    •  Объектно-реляционные
    •  Объектно-ориентированные

 

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

Основоположником теории реляционных баз данных является британский учёный Эдгар Кодд, который в 1970 году опубликовал первую работу по реляционной модели данных. Наиболее распространенная трактовка реляционной модели данных принадлежит Кристоферу Дейту.

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

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

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

Рис.1 Структура данных реляционной модели данных

Таблицы обладают следующими свойствами:

- каждая ячейка таблицы является одним элементом данных;

- каждый столбец содержит данные одного типа (числа, текст и т. п.);

- каждый столбец имеет уникальное имя;

- таблицы организуются так, чтобы одинаковые строки отсутствовали;

- порядок следования строк и столбцов произвольный.

Каждая таблица представляет собой отношение, описываемое атрибутами:

СТУДЕНТ = (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ).

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

- первичный: однозначно определяет запись;

- вторичный: выполняет роль поисковых и группировочных признаков и позволяет найти несколько записей.

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

Если в отношении СТУДЕНТ нет однофамильцев, то первичным будет простой ключ – поле ФАМИЛИЯ. Иначе первичным будет составной ключ ФАМИЛИЯ + ИМЯ + ОТЧЕСТВО.

Первичный ключ должен обладать следующими свойствами:

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

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

Нормализация отношений

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

Выделяют три нормальные формы отношений.

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

Например, отношение

КНИГА = (АВТОР, НАЗВАНИЕ, ВЫХОДНЫЕ ДАННЫЕ)

не находится в первой нормальной форме, так как атрибут ВЫХОДНЫЕ ДАННЫЕ можно разделить на атрибуты ИЗДАТЕЛЬСТВО, ГОД, КОЛИЧЕСТВО СТРАНИЦ.

Отношение

СТУДЕНТ = (НОМЕР, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ГРУППА)

находится в первой нормальной форме, где поле НОМЕР является простым первичным ключом.

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

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

Например, отношение СТУДЕНТ находится в первой и второй нормальных формах.

Отношение

УСПЕВАЕМОСТЬ = (НОМЕР, ФАМИЛИЯ, ДИСЦИПЛИНА, ОЦЕНКА)

находится в первой нормальной форме и имеет составной ключ НОМЕР + ДИСЦИПЛИНА. Это отношение не находится во второй нормальной форме, так как атрибут ФАМИЛИЯ функционально зависим от поля НОМЕР составного ключа. Чтобы привести это отношение ко второй нормальной форме необходимо разбить его на два связанных отношения:

УСПЕВАЕМОСТЬ = (НОМЕР, ДИСЦИПЛИНА, ОЦЕНКА),

СПИСОК = (НОМЕР, ФАМИЛИЯ).

Связь между отношениями осуществляется по полю НОМЕР.

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

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

Например, отношение СТУДЕНТ находится в третьей нормальной форме.

Отношение

ДИСЦИПЛИНА = (НАЗВАНИЕ, ЛЕКТОР, УЧ_СТЕПЕНЬ, ГРУППА)

не находится в третьей нормальной форме, так как поле УЧ_СТЕПЕНЬ зависит от поля ЛЕКТОР, но не от составного ключа, поэтому отношение необходимо разбить на два связанных отношения

ДИСЦИПЛИНА = (НАЗВАНИЕ, ЛЕКТОР, ГРУППА),

ПРЕПОДАВАТЕЛЬ = (ЛЕКТОР, УЧ_СТЕПЕНЬ).

Связь между отношениями осуществляется по полю ЛЕКТОР.

Типы связей

Отношения могут быть связаны следующими типами связей:

- один-к-одному (1:1);

- один-ко-многим (1:M);

- многие-ко-многим (M:M).

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

КНИГА = (КНИГА_N, АВТОР_N, НАЗВАНИЕ, ИЗДАТЕЛЬСТВО_N).

Каждая книга имеет место на полке

МЕСТО = (МЕСТО_N, КНИГА_N).

Каждая книга выпускается издательством

ИЗДАТЕЛЬСТВО = (ИЗДАТЕЛЬСТВО_N, АДРЕС).

У каждой книги есть автор

АВТОР = (АВТОР_N, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО).

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

.

Связь между отношениями осуществляется по полю КНИГА_N.

Связь один-ко-многим предполагает, что одной записи отношения A соответствуют несколько записей отношения B, но одной записи отношения B соответствуют только одна запись отношения A. Например, одно издательство может издать несколько книг, но книга издается только одним издательством.

.

Связь между отношениями осуществляется по полю ИЗДАТЕЛЬСТВО_N.

При связи многие-ко-многим одной записи отношения A соответствуют несколько записей отношения B и наоборот. Например, один автор может написать несколько книг, и у книги может быть несколько авторов

.

Связь между отношениями осуществляется по полю

АВТОР_N,

Проектирование реляционных баз данных

При проектировании базы данных решаются две основные проблемы:

  •  Каким образом отобразить объекты предметной области в абстрактные объекты модели данных, чтобы это отображение не противоречило семантике  предметной области, и было, по возможности, лучшим (эффективным, удобным и т. д.)? Часто эту проблему называют проблемой логического проектирования баз данных.
  •  Как обеспечить эффективность выполнения запросов к базе данных? Эту проблему обычно называют проблемой физического проектирования баз данных.

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

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

Основные свойства нормальных форм такие:

  •  каждая следующая нормальная форма в некотором смысле лучше предыдущей;
  •  при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.

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

  •  избежать избыточности хранения данных;
  •  устранить аномалии обновления отношений.

Язык реляционных баз данных SQL

Из рассмотрения реляционной модели известно, что двумя фундаментальными  языками запросов к реляционным базам данных являются языки реляционной алгебры и реляционного исчисления. При всей своей строгости и теоретической обоснованности, эти языки не стали стандартными языками реляционных СУБД. Юридическим и фактическим стандартом стал язык SQL (Structured Query Language – «язык структурированных запросов»).

SQL представляет собой некоторую комбинацию реляционного исчисления кортежей и реляционной алгебры, и был разработан в середине 70-х годов в компании IBM в рамках проекта экспериментальной реляционной СУБД System R. Деятельность по стандартизации SQL началась практически одновременно с появлением его первых коммерческих реализаций. В 1986 г. был принят стандарт ANSI, а в 1987 г. Этот стандарт был одобрен международной организацией по стандартизации (ISO). Время от времени выпускается пересмотренная версия этого стандарта; наиболее свежее обновление было выпущено в 2008 г.

Формальное название стандарта SQL –  ISO/IEC 9075 «Database Language SQL».

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

Все операторы, составляющие основу SQL с момента его появления,  можно разделить на следующие группы:

  •  операторы определения данных (Data Definition Language – DDL)
    •  CREATE создает объект базы данных
    •  ALTER изменяет объект
    •  DROP удаляет объект
  •  операторы манипуляции данными (Data Manipulation Language – DML)
    •  SELECT считывает данные, удовлетворяющие заданным условиям
    •  INSERT добавляет новые данные
    •  UPDATE изменяет существующие данные
    •  DELETE удаляет данные
  •  операторы определения доступа к данным (Data Control Language – DCL)
    •  GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом
    •  REVOKE отзывает ранее выданные разрешения
    •  DENY задает запрет, имеющий приоритет над разрешением
  •  операторы управления транзакциями (Transaction Control Language – TCL)
    •  COMMIT применяет транзакцию.
    •  ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции.
    •  SAVEPOINT делит транзакцию на более мелкие участки.

История СУБД (примеры)

1968г – 1 СУБД система IMS IBM 

Эпоха персональных ЭВМ

Clipper и FoxPro  Microsoft Access

Эпоха сетей (Объектно-ориентированные БД) (распределенные БД)

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

(язык манипуляции данными SQL)

(клиент-серверная архитектура)

Microsoft Access 2000, Oracle 8.4, MS SQL 7.0, SQL Server,

Перспектива переход на ИНТРАНЕТ – способ доступа к данным без клиентского приложения

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

Для разработки Интернет-приложений, которые связаны с базами данных, широко используются новые средства программирования: это язык PERL, язык РНР (Personal Home Page Tools), язык Javascript и ряд других. 

PAGE  11


 

А также другие работы, которые могут Вас заинтересовать

164. Мораль как предмет этики. Теория этики 379.15 KB
  Мораль как предмет этики. Эллинистические школы и зарождение индивидуальной этики. Основные догмы христианского мировоззрения. Антихристианская этика Э. Роттердамского. Гегель и метафизические основания этики.
165. Теория эндокринологии 370.79 KB
  Болезни щитовидной железы. Диффузный токсический зоб. Гипогликемия и гипогликемическая кома. Диабетическая ретинопатия. Синдром Иценко—Кушинга. Вторичный и третичный гиперпаратиреоз. Гипоталамогипофизарные заболевания и краниофарингиома.
166. Эмотивность и перевод: особенности языковой передачи эмоций при художественном переводе с английского языка на русский 241.63 KB
  Выражение эмоционального состояния. Произведения англоязычных писателей второй половины XX – начала XXI века. Среди типичных синтаксических средств эмотивности. Феномен эмотивности представляется малоизученным с точки зрения контрастивной (или сравнительной) лингвистики.
167. Компенсация при передаче стилистически сниженных высказываний на разных уровнях текста 303.34 KB
  Передача особенностей стилистически сниженных высказываний средствами западных языков. Проблематика перевода языковых единиц диалектного происхождения. Территориальные диалекты английского языка и негритянский диалект как пример этносоциального диалекта.
168. Языковые конструирование гендера в журналах об образе жизни (на материале английского языка) 289.15 KB
  Изучение языка как антропоориентированного феномена. Гендерные исследования в системе лексики, фразеологии и ономастики. Опыт конструирования гендера в средствах СМИ. Эгалитарная гендерная идеология и общая либерализация патриархальных стереотипов.
169. Проектирование железобетонного каркаса многоэтажного гражданского здания 487.5 KB
  Расчёт сечения ригеля по сечениям, нормальным к продольной оси. Расчёт и конструирование колонны первого этажа. Разработка конструктивной схемы здания. Расчёт и конструирование плиты монолитного перекрытия.
170. Проектирование механического привода 408.4 KB
  Определение частоты вращении тихоходного вала. Предварительное определение частоты вращения вала электродвигателя. Расчет червячной цилиндрический передачи. Выбор кинематической схемы редуктора. Выбор материалов и допускаемых напряжений.
171. Психологическое консультирование родителей, имеющих детей с нарушениями в эмоциональной сфере 302.5 KB
  Разработка путей оптимизации деятельности психолога-консультанта при работе с родителями, чьи дети имеют нарушения в эмоциональной сфере. Теоретический анализ исследований эмоциональной сферы в психолого-педагогической литературе.
172. Решение дифференциальных уравнений численными методами в пакете MathCad 356 KB
  решение дифференциального уравнения вручную, операторным методом, приближенное решение с помощью рядов. Расчет погрешностей приближенных методов по сравнению с точным. Численное решение ДУ методом Рунге-Кутта.