Для сдачи тестов, рубежного контроля, а также закрепления материала используйте браузеры MS Internet Explorer, Mozilla Firefox, Chromium
    Главная страница электронного учебника План урока
    Содержание дисциплины

    Содержание дисциплины


    Учебная тема
    Основные понятия баз данных

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

    Все данные, находящиеся в базе данных, можно представить в виде записей или объектов.

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

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

    Все СУБД делятся на две группы:

    1.      локальные;

    2.      сетевые.

    Локальные — это СУБД, работающие на одном компьютере. К ним относятся dBase, FoxPro, Microsoft Access и т. д.

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

    Примерами сетевых СУБД являются InterBase, Oracle, Microsoft SQL Server и т. д. О локальных и сетевых СУБД подробнее будет рассказано ниже.

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

    Взаимосвязи данных

    Взаимосвязи данных могут быть одного из четырех типов: 

    1.      один к одному;

    2.      один ко многим;

    3.       много к одному;

    4.       много ко многим 

    Давайте рассмотрим принципы построения таких взаимосвязей.

    1.      Вид взаимосвязи один к одному подразумевает, что каждая запись одного объекта базы данных будет указывать на единственную запись другого объекта. Например, с одним клиентом может быть связан только один заказ.

    2.      Взаимосвязь один ко многим означает, что одной записи объекта базы данных будет соответствовать несколько записей других объектов. Например, один клиент может иметь несколько квартир. Тогда с записью клиента будут связаны записи о его квартирах.

    3.      Вид взаимосвязи много к одному равносилен рассмотренному выше виду «один ко многим» и отличается от него только направлением.

    4.      Последний вид взаимосвязи много ко многим устанавливается между двумя типами объектов базы данных. Например, когда у одного банкира может быть несколько клиентов и, одновременно, один клиент может пользоваться услугами нескольких банков.

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

    •         иерархические;  

    •         сетевые;

    •         реляционные.

    Иерархические базы данных 

    Иерархические базы данных  применялись в начале 60-х годов. Они построены в виде обычного дерева. Данные здесь делятся на две категории: главные и подчиненные. Таким образом, один тип объекта является главным  а остальные, находящиеся на более низких ступенях иерархии, 

    Сетевые базы данных

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

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

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

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

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

    ^ В узком смыслебаза данных — это некоторый набор данных, необходимых для работы. 

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

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

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

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

    База данных (БД) обычно состоит из:

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

    Свойства базы данных

    1. Многопользовательская работа.
    2. Простота обновления – возможность внесения изменений в базу с минимальными затратами. Данные должны быть распределены по таблицам таким образом, чтобы можно было корректировать только некоторую часть базы.
    3. Быстрый поиск и получение необходимой информации по желаемому запросу.
    4. Уменьшение избыточности. Для решения новых задач данные получают не путем их повторного ввода, а из существующей базы данных. 
    5. Защита от несанкционированного доступа к данным.
    6. Максимальная независимость от прикладных программ: изменения в структуре базы данных не должны приводить к перезаписи пакета программ.
    7. Защита от уничтожения и искажения информации.

    Требования к базе данных

    1. Адекватность отражения предметной области, которая включает в себя:
    • полноту данных;
    • динамичность информационной модели;
    • актуальность информации.
    1. Возможность взаимодействия с пользователями различных категорий и в различных режимах
    2. Обеспечение секретности данных, надежности, целостности, защита от случайного или целенаправленного разрушения базы данных
    3. Обеспечение взаимной независимости программ и данных
    4. Технологичность обработки данных
    5. Совместимость компонентов базы данных
    6. Простота изменения логической и физической структуры БД в целях повышения эффективности обработки информации
    7. Обеспечение расширения и модификации БД.

    Типы моделей баз данных

    В зависимости от способа представления взаимосвязей между объектами логическая модель БД может быть:

    • иерархической;
    • сетевой;
    • реляционной.

    Иерархическая модель БД

    http://gendocs.ru/docs/28/27625/conv_8/file8_html_m180aff3e.png

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

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

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

     При удалении родительской записи автоматически удаляются все подчиненные (дочерние) записи.

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

    Достоинства иерархической БД – простота. 

    Пример иерархической БД – реестр ОС Windows.

    Недостатки иерархических БД: 

    • информация частично дублируется, например, в записях СОТРУДНИК и ИСПОЛНИТЕЛЬ (варианты а и в). Такие записи называют парными;
    • не предусмотрена поддержка соответствия между парными записями; 
    • модель реализует отношение между родительской и дочерней записью по схеме 1:М (одна-ко-многим), т. е., одной родительской записи может соответствовать любое число дочерних. Однако исполнитель может принимать участие более чем в одном контракте (т. е. возникает связь типа M:М (многие-ко-многим)). В этом случае в базу данных необходимо ввести еще одно групповое отношение, в котором ИСПОЛНИТЕЛЬ будет являться исходной записью, а КОНТРАКТ – дочерней (вариант с). В результате вновь возникает необходимость вынужденного дублирования информации

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

    http://gendocs.ru/docs/28/27625/conv_8/file8_html_199a3d91.png

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

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

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

    Но при этом имеется ограничение: какая-либо запись не может быть членом двух групповых отношений одного типа,например, СОТРУДНИК (см. рис.), не может работать в двух отделах. 

    Для отображения связи типа M:М (многие-ко-многим) вводится запись СОТРУДНИК_КОНТРАКТ, которая не имеет полей и служит только для связи записей КОНТРАКТ и СОТРУДНИК. В результате образования таких явных ссылок создаётся сеть.

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

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

    Теория реляционной БД разработана в начале 70-х годов на основе математической теории отношений Е. Коддом – американским специалистов в области баз данных.

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

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

    К основным достоинствам модели данных следует отнести:

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

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

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

    Основными понятиями в этой теории являются: таблица, отношение, запись (строка), поле (столбец), ключи.

    БД содержит множество таблиц, каждая из которых содержит информацию о каких-либо объектах одного типа.

    Связь между таблицами устанавливается с помощью совпадающих полей.

    Между таблицами в БД устанавливаются отношения. Существует четыре типа отношений: 

    • один-к-одному;
    • один-ко-многим;
    • много-к-одному;
    • много ко многим.

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

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

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

    Таблица БД - это список, организованный в записи и поля. 

    Пользуясь определениями Visual Basic, таблица - это объект, в котором данные сохраняются в формате записей (строк) и полей (столбцов). Это основной структурный элемент системы управления базой данных.

    Каждая запись таблицы имеет уникальный индекс. Таким образом, таблица должна содержать поле, содержащее уникальное значение для каждой записи, например, номер по порядку.

    При объявлении типов полей таблицы следует напомнить, что они должны соответствовать сохраняемым данным. 

    ^ Основные типы данных:

    • Text - для строк символов, таких, как имена, адреса, фамилии и телефонные номера. Строка может быть длиной до 255 символов;
    • Integer - для коротких целых чисел. Сохраняет значения до 32767;
    • Long - для длинных целых чисел. Long присваивается счетчикам записей в таблицах. Счетчики имеют дополнительное свойство - Autoincrement (Автоматическое приращение значения). Когда флажок включен, каждой записиавтоматически присваивается следующий доступный (уникальный) номер;
    • Single и Double - для чисел с плавающей точкой. Тип Double может сохранять с большей, чем Single, точностью (до 15 знаков после запятой); 
    • Currency - для значений денежных сумм;
    • Date/Time - для значений даты и времени;
    • Boolean - для значений True и False;
    • Memo - для строк длиной до 65535 символов. Используется для записи комментариев. Можно назначать определенную длину строки;

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

    Хорошо организованная структура БД позволит:

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

    Эффективная структура данных БД должна:

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

    Процесс уменьшения избыточности информации в БД называется нормализацией. 

    Цель нормализации:

    • устранение избыточной информации;
    • расширение взаимодействия данных;
    • повышение эффективности системы.

    Создание нормализованной БД

    Как пример, рассмотрим таблицу заказов, содержащую поля:

     Поля таблицы

    Сведения о покупателе, номера его телефонов

    Дата заказа, количество заказанного товара и данные о менеджере

    Наименование и стоимость товара 

    Количество проданного товара

    Если оставить таблицу без изменений, то получим однотабличную БД, не являющуюся оптимальной. 

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

    • при изменении адреса или фамилии покупателя нужно корректировать все записи, содержащие сведения о заказах этого покупателя, что приведет к неоправданному увеличению БД, при этом снизится скорость выполнения запросов;
    • в случае многократного ввода повторяющихся данных значительно возрастет вероятность ошибки

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

    К каждой таблице многотабличной БД предъявляются требования:

    1. В таблице не должно быть повторяющихся записей.

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

    1. В таблице не должно быть повторяющихся групп полей.

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

    Номер таблицы

    Данные

    1

    Сведения о покупателе

    2

    Список телефонов покупателя

    3

    Номер и дата заказа покупателя, данные о менеджере

    4

    Наименование, стоимость, количество заказанного и проданного товара

    Теперь первая и вторая таблицы нормализованы. Отношение между связываемыми таблицами – один-ко-многим. 

    В третьей таблице имеется повторяющаяся информация о менеджере, оформляющем заказы и дате заказа. Следовательно, ее можно разделить на три таблицы: в одной – номер заказа, во второй – дата заказа, в третьей – данные о менеджере.

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

      • в таблице наименований и стоимости товаров, продаваемых фирмой;
      • в таблице количества заказанного и проданного по заказу товара.

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

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

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

    Номер таблицы

    Данные

    1

    Сведения о покупателе

    2

    Список телефонов покупателя

    3

    Номер заказа 

    4

    Дата заказа

    5

    Данные о менеджере

    6

    Наименование и стоимость товара

    7

    Количество заказанного и проданного товара 

    Индексация

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

    Поиск нужной информации при этом сильно затруднен.

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

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

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

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

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

    - Содержание дисциплины


    Закрепление материала
    Тестирование материала
    Содержание дисциплины