74244

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

Лекция

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

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

Русский

2014-12-30

158 KB

3 чел.

Базы данных

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

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

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

Термин «база данных» (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


 

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

82767. Царство Грибов. Плесневые грибы 40.08 KB
  Дидактическая цель: Создать условия для осознания и осмысления блока новой учебной информации средствами критического мышления. Тип урока: комбинированный( изучения нового материала и первичное закрепление); Методы обучения: частично – поисковый, репродуктивный...
82768. С любовью на все времена. Ко Дню 8 Марта 41 KB
  Без солнца не цветут цветы без любви нет счастья без женщин нет любви без матери нет ни поэта ни героя. Горький Ведущий что может быть на свете священнее имени матери Человек еще не сделавший ни одного шага по земле и только только начинающий лопотать неуверенно и старательно складывает...
82769. «Literary quiz». Внеклассное мероприятие для учащихся 9-ых классов 28.43 KB
  Выбор темы внеклассного мероприятия по английскому языку обусловлен ее актуальностью и местом в системе уроков английского языка. Время проведения мероприятия: 40 минут Место проведения: кабинет английского языка. Содержание и методика мероприятия: учащиеся делятся на две команды соответствующие...
82770. Русский лес. Иван Соколов-Микитов. Е. Баратынский. Где сладкий шепот… 299.5 KB
  Цель: учить выразительно читать, оценивать качество чтения и содержание прочитанного, находить нужные части содержания; развивать речь, чувство прекрасного, эстетический вкус и художественное восприятие; воспитывать бережное отношение к природе.
82771. Твоя домівка 196.5 KB
  Підручник з основ здоров’я ноутбук проектор екран слайд-шоу фрагменти з мультфільмів виставка Візитна карточка моєї домівки. Тож і ми часу не гаймо Урок основ здоров’я починаймо. Повторення вивченого Мозковий штурм Що ви зробили сьогодні зранку щоб бути здоровими Що зробите для цього ввечері...
82772. Овочі і фрукти, молочні продукти, їх значення для росту і розвитку 774 KB
  Вчити учнів розпізнавати корисні і шкідливі продукти харчування пояснити чому дітям потрібно вживати овочі фруктимолочні продукти щодня; пояснити значення харчування для здоров’’я; виховувати свідоме ставлення до свого здоров’’я. Сюжетні малюнки: овочі фрукти молочні і м’ясні продукти тістечка цукерки торти...
82773. Я і Україна. Довкілля 78 KB
  Мета уроку: розширити знання учнів про пори року; збагачувати уявлення молодших школярів про красу рідної природи; розвивати спостережливість, допитливість, творчу уяву, мислення, зв’язне мовлення; збагачувати словниковий запас; прищеплювати любов до природи та бережливе ставлення до довкілля.
82774. Досліджую свою оселю 107.5 KB
  Мета: вчити учнів досліджувати своє довкілля, робити висновки зі своїх досліджень, формувати у дітей уявлення про різноманітність архітектурних споруд, викликати інтерес до пізнання через дослідження, розвивати прагнення прикрасити, зробити комфортнішою свою оселю, виховувати активну позицію...
82775. В. Берестов Альбом для рисования. А. Лельевр Белые гуси 103 KB
  Какого цвета были гуси Почему люди говорили что они синие Как изменился цвет гусей ночью в Выборочное чтение. Рассказ учителя о цветах и их оттенках. Но люди заметили что цветовое разнообразие основано на трех цветах желтом красном синем.