Лекции по Информатике_1курс_посл.версия. Курс лекций по дисциплине информатика москва, 2012 Оглавление
![]()
|
Глава 8.Лекция 88.1.Базы данных и СУБДОдной из задач информационных систем является хранение данных из определенной предметной области. Предметная область – это часть реального мира, объединяющая схожие или связанные понятия. Чтобы необходимые данные можно было легко найти и выдать пользователю в любой момент времени, данные о предметной области должны храниться структурировано. База данных – совокупность связанных данных, организованным по определенному правилам, предусматривающим общие принципы описания, хранения и манипулирования независимо от прикладных программ. Система управления базами данных (СУБД) – приложение, обеспечивающее создание, хранения, обновление и поиск информации в базах данных. СУБД осуществляют взаимодействие между базой данных и пользователями системы, а также между базой данных и прикладными программами, реализующими определенные функции обработки данных. Система баз данных – совокупность одной или нескольких баз данных и комплекса информационных, программных и технических средств, обеспечивающих накопление, обновление, корректировку и многоаспектное использование данных в интересах пользователей. 8.2.Свойства базы данныхСамодокументированность. БД должна иметь словарь данных в специально отведенном месте, которое используется для хранения информации о самой базе данных. Словарь содержит информацию: об архитектуре базы, о хранимых процедурах, о пользовательских привилегиях и т.д. Независимость данных от программ. Структура данных должна быть независима от программ, использующих эти данные, так чтобы данные можно было добавлять или перестраивать без изменения этих программ. Целостность данных. В общем случае целостность данных означает корректность данных и их непротиворечивость. Для обеспечения целостности накладывают ограничение целостности. Эти ограничения могут иметь вид логических выражений, значения которых всегда должны быть «истина». Если хотя бы одно из выражений принимает значение «ложь» - то целостность нарушена. (Например, вес детали должен быть положителен, а возраст родителей не может быть меньше возраста ребенка). Целостность транзакций. Транзакцией можно назвать банковскую операцию (перевод денег). В БД под транзакцией понимают неделимую с точки зрения воздействия на базу данных последовательность операторов манипулирования данными (чтение, вставка, модификация), приводящая к одному из двух возможных результатов: либо последовательность выполняется, все операторы правильные, либо транзакция откатывается, в случае если хотя бы один оператор не выполнен успешно. Обработка транзакций гарантирует целостность БД. Изолированность, т.е. создание такого режима функционирования, когда каждому пользователю кажется, что база доступна только ему. Безопасность данных. Защита данных от несанкционированной модификации, разрушения. Масштабируемость. Производительность. 8.3.СУБДК основным функциям СУБД относятся: - непосредственность управления данными во внешней и оперативной памяти; - поддержание целостности данных и управление транзакциями; - обеспечение безопасности данных; - обеспечение параллельного доступа к данным нескольких пользователей. Состав СУБД: - ядро, которое отвечает за управление данными во внешней и оперативной памяти; - процессор языка базы данных, обеспечивающий оптимизацию запросов и создания машинно-независимого внутреннего кода; - подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс; - сервисные программы (внешние утилиты), обеспечивающие дополнительные возможности по обслуживанию информационной системы. По технологии решения задач, решаемых СУБД, БД подразделяют на два вида: - централизованная БД хранится целиком на ВЗУ одной вычислительной системы; если система входит в состав сети, то возможен доступ к этой БД других систем; - распределенная БД состоит из нескольких, иногда пересекающихся или дублирующих друг друга БД, хранящихся на ВЗУ разных узлов сети. СУБД предоставляет доступ к данным БД двумя способами: - локальный доступ предполагает, что СУБД обрабатывает БД, которая хранится на ВЗУ той же ЭВМ; - удаленный доступ – это обращение к БД, которая хранится на одном из узлов сети; удаленный доступ может быть выполнен по технологии файл-сервер или клиент-сервер. Технология файл-сервер предполагает выделение одной из вычислительных систем, называемой сервером, для хранения БД. Все остальные компьютеры сети (клиенты) исполняют роль рабочих станций, которые копируют требуемую часть централизованной БД в свою память, где и происходит обработка. Технология клиент-сервер предполагает, что сервер, выделенный для хранения централизованной БД, дополнительно производит обработку запросов клиентских рабочих станций. Клиент посылает запрос серверу. Сервер пересылает клиенту данные, являющиеся результатом поиска в БД по ее запросу. 8.4.Реляционная модель данныхКлассификация СУБД по типу модели данных: Дореляционные Инвертированные списки (файлы) Иерархические Сетевые Реляционные Постреляционные Объектно-реляционные Объектно-ориентированные Многомерные Прочие (NoSQL) Рассмотрим реляционную модель данных, в которой данные хранятся в виде двумерных таблиц. ![]() Структура данных реляционной модели данных Таблицы обладают следующими свойствами: - каждая ячейка таблицы является одним элементом данных; - каждый столбец содержит данные одного типа (числа, текст и т. п.); - каждый столбец имеет уникальное имя; - таблицы организуются так, чтобы одинаковые строки отсутствовали; - порядок следования строк и столбцов произвольный. Каждая таблица представляет собой отношение, описываемое атрибутами: СТУДЕНТ = (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ). Для идентификации записей выделяют следующие виды ключей – полей, определяющих запись: - первичный: однозначно определяет запись; - вторичный: выполняет роль поисковых и группировочных признаков и позволяет найти несколько записей. Ключ может быть простым, если он включает одно поле, или составным, если включает два и более полей. Если в отношении СТУДЕНТ нет однофамильцев, то первичным будет простой ключ – поле ФАМИЛИЯ. Иначе первичным будет составной ключ ФАМИЛИЯ + ИМЯ + ОТЧЕСТВО. Первичный ключ должен обладать следующими свойствами: - уникальность: не должно существовать двух или более записей, имеющих одинаковые значения полей, входящих в первичный ключ; - не избыточность: первичный ключ не должен содержать поля, удаление которых из ключа не нарушит его уникальность. 8.5.Нормализация отношенийНормализация отношений – это приведение отношений к виду, позволяющему устранить дублирование, обеспечить непротиворечивость данных, хранимых в БД, и уменьшить трудозатраты на ведение БД. Выделяют несколько нормальных форм отношений. Рассмотрим первые три из них (чаще всего при разработке базы данных этого бывает достаточно). Первая нормальная форма. Отношение называется нормализованным или приведенным к первой нормальной форме, если все его атрибуты являются простыми, то есть не могут быть далее разделены. Например, отношение КНИГА = (АВТОР, НАЗВАНИЕ, ВЫХОДНЫЕ ДАННЫЕ) не находится в первой нормальной форме, так как атрибут ВЫХОДНЫЕ ДАННЫЕ можно разделить на атрибуты ИЗДАТЕЛЬСТВО, ГОД, КОЛИЧЕСТВО СТРАНИЦ. Отношение СТУДЕНТ = (НОМЕР, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ГРУППА) находится в первой нормальной форме, где поле НОМЕР является простым первичным ключом. Вторая нормальная форма. Отношение приведено ко второй нормальной форме, если оно находится в первой нормальной форме, и каждый не ключевой атрибут функционально полно зависит от составного ключа. Функционально полной зависимостью не ключевых атрибутов называется зависимость, при которой в записи определенному значению ключа соответствует только одно значение не ключевого поля, при этом это поле не находится в функциональной зависимости ни от какой части составного ключа. Например, отношение СТУДЕНТ находится в первой и второй нормальных формах. Отношение УСПЕВАЕМОСТЬ = (НОМЕР, ФАМИЛИЯ, ДИСЦИПЛИНА, ОЦЕНКА) находится в первой нормальной форме и имеет составной ключ НОМЕР + ДИСЦИПЛИНА. Это отношение не находится во второй нормальной форме, так как атрибут ФАМИЛИЯ функционально зависим от поля НОМЕР составного ключа. Чтобы привести это отношение ко второй нормальной форме необходимо разбить его на два связанных отношения: УСПЕВАЕМОСТЬ = (НОМЕР, ДИСЦИПЛИНА, ОЦЕНКА), СПИСОК = (НОМЕР, ФАМИЛИЯ). Связь между отношениями осуществляется по полю НОМЕР. Третья нормальная форма. Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме, и каждый неключевой атрибут не зависит от ключа транзитивно. Транзитивная зависимость присутствует в отношении, если существует два неключевых поля, первое из которых зависит от ключа, а второе от первого. Например, отношение СТУДЕНТ находится в третьей нормальной форме. Отношение ДИСЦИПЛИНА = (НАЗВАНИЕ, ЛЕКТОР, УЧ_СТЕПЕНЬ, ГРУППА) не находится в третьей нормальной форме, так как поле УЧ_СТЕПЕНЬ зависит от поля ЛЕКТОР, но не от составного ключа, поэтому отношение необходимо разбить на два связанных отношения ДИСЦИПЛИНА = (НАЗВАНИЕ, ЛЕКТОР, ГРУППА), ПРЕПОДАВАТЕЛЬ = (ЛЕКТОР, УЧ_СТЕПЕНЬ). Связь между отношениями осуществляется по полю ЛЕКТОР. 8.6.Типы связейОтношения могут быть связаны следующими типами связей: - один-к-одному (1:1); - один-ко-многим (1:M); - многие-ко-многим (M:M). Рассмотрим сущность этих связей на примере следующих отношений. Пусть книга в библиотеке описывается отношением КНИГА = (КНИГА_N, АВТОР_N, НАЗВАНИЕ, ИЗДАТЕЛЬСТВО_N). Каждая книга имеет место на полке МЕСТО = (МЕСТО_N, КНИГА_N). Каждая книга выпускается издательством ИЗДАТЕЛЬСТВО = (ИЗДАТЕЛЬСТВО_N, АДРЕС). У каждой книги есть автор АВТОР = (АВТОР_N, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО). Связь один-к-одному означает, что в каждый момент времени одной записи отношения A соответствует только одна запись отношения B и наоборот. Например, каждая книга имеет одно место на полке и на каждом месте стоит только одна книга ![]() Связь между отношениями осуществляется по полю КНИГА_N. Связь один-ко-многим предполагает, что одной записи отношения A соответствуют несколько записей отношения B, но одной записи отношения B соответствуют только одна запись отношения A. Например, одно издательство может издать несколько книг, но книга издается только одним издательством. ![]() Связь между отношениями осуществляется по полю ИЗДАТЕЛЬСТВО_N. При связи многие-ко-многим одной записи отношения A соответствуют несколько записей отношения B и наоборот. Например, один автор может написать несколько книг, и у книги может быть несколько авторов ![]() Связь между отношениями осуществляется по полю АВТОР_N. 8.7.Операции над отношениямиОсновным компонентом реляционной модели является реляционная алгебра, которая состоит из восьми операторов, составляющих две группы по четыре оператора:
Результат выполнения любой операции реляционной алгебры над отношениями также является отношением. Эта особенность называется свойством реляционной замкнутости. Список дополнительной литературы
|