ЛЕКЦИЯ 3. Введение в базы данных
Одной из важнейших областей применения компьютеров является переработка и хранение больших объемов информации в различных сферах деятельности человека: в экономике, банковском деле, торговле, транспорте, медицине, науке и т.д.
Существующие современные информационные системы характеризуются огромными объемами хранимых и обрабатываемых данных, сложной организацией, необходимостью удовлетворять разнообразные требования многочисленных пользователей.
В настоящей лекции будут раскрыты основные понятия баз данных, показаны существующие модели данных, а также рассмотрены этапы проектирования реляционных баз данных.
Ключевые слова: информационная система, база данных, СУБД, банк данных, модели данных, реляционная таблица, поле, запись, типы связей, ключ, проектирование баз данных, нормализация отношений, первая нормальная форма 1NF, вторая нормальная форма 2NF, третья нормальная форма 3NF, файл-сервер, клиент-сервер, домен отношения, кортеж отношения.
Основные понятия баз данных
Информационная система - это система, которая реализует автоматизированный сбор, обработку и манипулирование данными и включает технические средства обработки данных, программное обеспечение и обслуживающий персонал.
Цель любой информационной системы - обработка данных об объектах реального мира.
К современным информационным системам предъявляются повышенные требования, основными из которых являются следующие.
· Адекватность информации состоянию предметной области. База данных является информационной моделью предметной области, и хранимая в ней информация должна полно и точно отражать ее объекты, их свойства и отношения между объектами. Отступление от принципа адекватности делает систему бесполезной. В свою очередь, требование адекватности порождает ряд новых требований к системе, таких, как необходимость постоянного внесения изменений в данные и периодического изменения способа организации данных.
· Надежность функционирования - одно из важнейших требований, предъявляемых к любой системе.
· Быстродействие и производительность. Эти два близких друг к другу требования отражают временные потребности пользователей. Первое из них определяется временем реакции системы на запрос, исчисляемым с момента ввода запроса до момента начала выдачи найденных данных. Это время зависит не только от быстродействия ПК, но и от способов физической организации данных, методов доступа, способов поиска, сложности запроса и др. факторов. Второе требование определяется количеством запросов, выполняемых в единицу времени.
· Простота и удобство. Это требование предъявляется к базам данных со стороны всех категорий пользователей, особенно конечных, в работе которых необходим простой, но в то же время обладающий достаточными возможностями язык запросов. Сложность запросов, отсутствие сервиса формируют у пользователя нежелание работать с информационной системой.
· Массовость использования. Современная информационная система должна обеспечивать коллективный доступ пользователей, при котором они могут одновременно и независимо обращаться к базам данных для получения необходимых сведений.
· Защита информации. Система должна обеспечивать защиту хранимых в ней данных и программ как от случайных искажений и уничтожения, так и от преднамеренных, несанкционированных действий пользователей.
· Возможность расширения. Архитектура системы должна допускать расширение ее возможностей путем модификации или замены существующих программных модулей либо добавления новых компонентов, а также путем реорганизации информационных массивов.
Основой информационной системы является база данных. В широком смысле слова база данных - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области. Под предметной областью принято понимать ограниченную часть реального мира, в которой реализуется определенная совокупность взаимосвязанных функций (например, правоохранительная деятельность, радиотехника).
Объект предметной области -любой процесс, явление или понятие, относящиеся к предметной области. Например, в предметной области, содержащей описание преступных группировок, можно выделить следующие объекты:
· лица, входящие в состав преступных группировок,
· сферы деятельности преступных группировок,
· районы деятельности преступных группировок,
· преступления, совершенные преступными группировками.
Каждый тип объектов предметной области характеризуется набором некоторых характеристик (аспектов описания), которые называются элементами данных. Пример: студент характеризуется фамилией, именем, отчеством, номером учебной группы, годом рождения и т. п. Если задаются конкретные значения элементов данных, то определяется конкретный объект предметной области. Пример: Перминов Олег Игоревич, 11-Б учебная группа, 1989 год рождения.
Описание данных должно включать как описание отдельных элементов данных, так и описание типов связей между значениями этих элементов.
Рассмотрим два элемента данных – A и B. Будем считать, что
A - элемент данных, от которого направлена связь;
B - элемент данных, к которому направлена связь.
Графически это может быть изображено следующим образом:
A |
B |
Между этими элементами данных могут существовать отношения следующих типов.
Отношение «один - к – одному»(1:1) представляет собой тип связи, когда одно значение элемента данных A (от которого направлена связь) определяет одно и только одно значение элемента данных B (к которому направлена связь).
Примеры: 1) номера субъектов РФ и их названия;
2) фамилия, имя, отчество гражданина РФ и номер его паспорта.
Отношение «один - ко – многим»(1:М) представляет собой тип связи, когда одно значение элемента данных A (от которого направлена связь) определяет несколько значений элемента данных B (к которому направлена связь), и каждое значение элемента данных B (к которому направлена связь) определяется одним значением элемента данных A (от которого направлена связь).
Пример: номер дома и список жильцов дома.
Отношение «многие - к – одному»(М:1)- это отношение, обратное отношению 1:М.
Отношение «многие - ко – многим»(M:М) представляет собой тип связи, когда одно значение элемента данных A (от которого направлена связь) определяет несколько значений элемента данных B (к которому направлена связь), и каждое значение элемента данных B (к которому направлена связь) может определяться несколькими значениями элемента данных A (от которого направлена связь). Пример: отношения знакомства между людьми.
Уточним понятие база данных. База данных (БД) - это специальным образом организованное хранилище информационных ресурсов в виде интегрированной совокупности файлов, обеспечивающее удобное взаимодействие между ними и быстрый доступ к данным.
Информация в базах данных хранится в упорядоченном виде. Так, в записной книжке все записи упорядочены по алфавиту, а в библиотечном каталоге либо по алфавиту (алфавитный каталог), либо в соответствии с областью знания (предметный каталог).
Система программ, позволяющая создавать БД, обновлять хранимую в ней информацию, обеспечивающая удобный до ступ к ней с целью просмотра и поиска, называется системой управления базами данных (СУБД).
Банк данных (БнД) - это специальным образом организованное хранилище информационных ресурсов в виде интегрированной совокупности информационных, программных, технических средств и персонала, обеспечивающее хранение, накопление, поиск и выдачу данных.
Основными функциями банков данных являются:
· хранение информации и организация ее защиты;
· периодическое изменение хранимых данных (обновление, добавление, удаление);
· поиск и отбор данных по запросам пользователей и прикладных программ;
· обработка найденных данных и вывод результатов в заданной форме.
Структура данных, содержащихся в файле базы данных, состоит из полей и записей. Организация базы данных отличается от организации обычного файла тем, что:
· описание полей записи хранится вместе с данными;
· для повышения эффективности работы с БД используются специальные поисковые структуры.
Модели данных
Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро производить выборку с произвольным сочетанием признаков. При этом очень важно выбрать правильную модель данных. Модель данных - это формализованное представление основных категорий восприятия реального мира, представленных его объектами, связями, свойствами, а также их взаимодействиями.
Существует три основные модели данных: сетевая, иерархическая и реляционная.
В иерархической БД существует упорядоченность элементов в записи, один элемент считается главным, остальные - подчиненными. Данные в записи упорядочены в определенную последовательность, как ступеньки лестницы, и поиск данных может осуществляться лишь последовательным «спуском» со ступеньки на ступеньку. Иерархическую БД образует каталог файлов, хранимых на диске; дерево каталогов, доступное для просмотра в Norton Commander, - наглядная демонстрация структуры такой БД и поиска в ней нужного элемента. Такой же базой данных является родовое генеалогическое дерево (рис. 3.1).
|
Рис. 3.1. Иерархическая модель базы данных
Элементы данных в иерархической модели могут быть связаны отношениями 1:1 и 1:М. В этой модели данных каждый элемент данных может иметь несколько «подчиненных» и только одного «старшего». Достоинство иерархических моделей - большая скорость поиска информации при четком указании свойств элемента данных, а недостаток - большие затраты памяти.
Сетевая БД - эта база данных отличается большей гибкостью, так как в ней существует возможность устанавливать дополнительно к вертикальным иерархическим связям горизонтальные связи (рис. 3.2).
Рис. 3.2. Сетевая модель базы данных
Элементы данных в этой модели могут быть связаны всеми типами отношений - 1:1, 1:М, М:1, М:M. В ней каждый элемент данных может иметь несколько «подчиненных» и несколько «старших». Достоинство сетевых моделей - минимальные затраты памяти, а недостаток - большое время поиска информации.
Реляционная БД. Наиболее распространенным способом организации данных является третий – реляционный тип (англ. relation - отношение, связь), к которому можно свести как иерархический, так и сетевой типы.
Важнейшим понятием реляционных моделей данных является сущность. Сущность - это объект любой природы, данные о котором хранятся в БД. Данные о сущности хранятся в двумерных таблицах, которые называют реляционными.
Реляционная таблица - это таблица, у которой:
1) в каждом столбце хранятся значения одного элемента данных;
2) в каждой строке хранятся значения всех элементов данных, относящихся к одному объекту предметной области;
3) порядок строк и столбцов несущественен;
4) отсутствуют одинаковые строки.
Первые два свойства - это соглашения о порядке описания данных. Следующие два накладывают ограничения на способ заполнения таблицы. Для выполнения третьегосвойства необходимо заполнять все клетки таблицы. Действительно, рассмотрим таблицу
Специальное звание | Фамилия |
Майор | Иванов |
Петров | |
Капитан | Сидоров |
Лейтенант | Романов |
При таком заполнении таблицы ясно, что Петров - майор. Но если изменить порядок строк, то он может оказаться и капитаном и лейтенантом. Поэтому, для того, чтобы обеспечить независимость описания данных от порядка строк и столбцов, необходимо заполнять все клетки таблицы.
Выполнение четвертогосвойства означает, что в реляционной таблице всегда есть ключ.
Ключ (уникальный индекс) - это элемент данных или группа элементов данных, значение которых в каждой строке, т. е. для каждого объекта предметной области, уникально.
Простой ключ - ключ, состоящий из одного элемента данных.
Составной ключ - ключ, содержащий более одного элемента данных.
Формальное построение таблиц связано с фундаментальным понятием отношение.
Для заданных произвольных конечных множеств М1, М2, ..., MN множество всевозможных наборов вида (μ1, μ2,..., μ), где μ1 M1, μ2 M2, …, μN MN называют их декартовым произведением М1×М2×...×MN. Отношением R, определенным на множествах М1, М2, ... , MN, называется подмножество декартова произведения М1×М2×...×MN. При этом множества М1, М2, ..., MN называются доменами отношения, а элементы декартова произведения - кортежами отношения. Число N определяет степень отношения, количество кортежей - его мощность.
В реляционной таблице каждый столбец есть домен (его альтернативное название поле), а совокупность элементов каждой строки - кортеж (или запись).
Строка заголовков называется схемой отношения. Например, схема отношения СТУДЕНТ может быть следующей:
СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА), здесь СТУДЕНТ - отношение, а ФАМИЛИЯ, ИМЯ и т.д. - атрибуты.
В отношении каждый конкретный экземпляр сущности представляется строкой, которая называется кортежем (или записью).
Следующая таблица представляет отношение СТУДЕНТ (рис. 3.3).
Отношение СТУДЕНТ (вся таблица) | Схема отношения (строка заголовков) | Атрибуты (поля) (отдельные заголовки) | |||||
ФАМИЛИЯ | ИМЯ | ОТЧЕСТВО | ФАКУЛЬТЕТ | КУРС | |||
Строка (запись, кортеж) | Андреев | Иван | Иванович | Конструкторский | |||
Борисов | Петр | Иванович | Конструкторский | ||||
Яковлев | Иван | Петрович | Технологический |
Рис. 3. 3. Отношение СТУДЕНТ
Первичным ключом отношения называется поле или группа полей, однозначно определяющие запись. В отношении СТУДЕНТ первичным ключом может быть поле ФАМИЛИЯ, если во всем списке нет однофамильцев - это будет простой ключ. Если есть однофамильцы, то совокупность полей - фамилия, имя, отчество - образует составной первичный ключ. На практике обычно в качестве ключевого выбирают поле, в котором совпадения заведомо исключены.
Свойства первичного ключа:
• уникальность - в таблице может быть назначен только один первичный ключ, у составного ключа поля могут повторяться, но не все;
• неизбыточность - не должно быть полей, которые, будучи удаленными из первичного ключа, не нарушат его уникальность;
• в состав первичного ключа не должны входить поля типа, комментарий и графическое.
Классификация баз данных.
1. По технологии обработки данных базы данных делятся на централизованные и распределенные. Централизованная база данных хранится в памяти одной вычислительной системы. Если эта вычислительная система является компонентом сети ЭВМ, возможен распределенный доступ к такой базе. Этот способ использования баз данных часто применяют в локальных сетях ПК. Распределенная база данных состоит из нескольких, возможно, пересекающихся или даже дублирующих друг друга частей, хранимых в различных ЭВМ вычислительной сети. Работа с такой базой осуществляется с помощью системы управления распределенной базой данных (СУРБД).
2. По способу доступа к данным базы данных делятся на базы данных с локальным доступом и базы данных с удаленным (сетевым доступом). Системы централизованных баз данных с сетевым доступом предполагают различные архитектуры таких систем: файл-сервер; клиент-сервер.
Файл-сервер. Архитектура систем БД с сетевым доступом предполагает выделение одной из машин сети в качестве центральной (сервер файлов). На такой машине хранится совместно используемая централизованная БД. Все другие машины сети выполняют функции рабочих станций, с помощью которых поддерживается доступ пользовательской системы к централизованной базе данных. Файлы базы данных в соответствии с пользовательскими запросами передаются на рабочие станции, где в основном и производится обработка. При большой интенсивности доступа к одним и тем же данным производительность такой информационной системы падает. Пользователи могут создавать также на рабочих станциях локальные БД, которые используются ими монопольно.
Клиент-сервер. В отличие от предыдущей системы, центральная машина (сервер базы данных), помимо хранения централизованной базы данных, должна обеспечивать выполнение основного объема обработки данных. Запрос на использование данных, выдаваемый клиентом (рабочей станцией), приводит к поиску и извлечению данных на сервере. Извлеченные данные транспортируются по сети от сервера к клиенту. Спецификой архитектуры клиент-сервер является использование языка запросов SQL.