пятница, 25 сентября 2020 г.

 

Тема 6. Базы данных.

1. Базы данных и модели данных

2. Основы проектирования реляционных баз данных

 

1.     Базы данных и модели данных.

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

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

Информационный объект – это описание некоторого реального объекта, явления, процесса, события в виде совокупности логически связанных атрибутов. Например, информационный объект СТУДЕНТ может быть представлен в базе данных с помощью следующих атрибутов: Код студента, Фамилия, Имя, Отчество, Год рождения. Это можно записать так:

СТУДЕНТ (Код студента, Фамилия, Имя, Отчество, Год рождения)

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

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

Рассмотрим три основных типа моделей данных: иерархическую, сетевую и реляционную.

Иерархическая модель данных представляет собой совокупность элементов данных, расположенных в порядке их подчинения и образующих по структуре перевернутое дерево (рис. 1). К основным понятиям иерархической модели данных относятся: уровень, узел и связь. Узел – это совокупность атрибутов данных, описывающих информационный объект.


Рис. 1. Графическое изображение иерархической структуры данных

Иерархическая структура должна удовлетворять следующим требованиям:

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

·     существует       только     один     корневой      узел    на    самом верхнем            уровне,    не подчиненный никакому другому узлу;

·     к каждому узлу существует ровно один путь от корневого узла.


Иллюстрация использования иерархической модели для построения базы данных «Институт» представлена на рис. 2.

Рис. 2. Пример иерархической структуры данных

Информация базы данных структурирована в виде иерархических деревьев, количество которых равно количеству специальностей в институте. На первом уровне находится информационный объект Специальность (номер, название, декан).

Информационные объекты второго уровня – Группа (шифр,  


староста), информационные объекты третьего уровня – Студент ( зачетка, фамилия, имя, отчество). Подчеркиванием выделен атрибут, который однозначно определяет каждый экземпляр информационного объекта. Например, атрибут номер однозначно определяет конкретную специальность.


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

Рис. 3. Графическое изображение сетевой структуры данных

 


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

 

Рис. 4. Пример сетевой структуры данных


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

·     все столбцы в таблице однородные, т.е. все элементы в одном столбце имеют одинаковый тип и максимально допустимый размер;

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

·     одинаковые строки в таблице отсутствуют;

·     порядок следования строк и столбцов в таблице не имеет значения.

Основными структурными элементами реляционной таблицы являются поле и запись (рис. 5). Поле (столбец реляционной таблицы) – элементарная единица логической организации данных, которая соответствует конкретному атрибуту информационного объекта. Запись (строка реляционной таблицы) – совокупность логически связанных полей, соответствующая конкретному экземпляру информационного объекта.

Рис. 5. Основные структурные элементы реляционной таблицы

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


Рис. 6. Пример реляционной таблицы


2.     Основы проектирования реляционных баз данных

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

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

·     однозначная идентификация записи – запись должна однозначно определяться значением ключа;

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

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

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

Пример 4.1. Рассмотрим базу данных «Деканат», состоящую из трех таблиц: СТУДЕНТ, СЕССИЯ, СТИПЕНДИЯ (рис. 7).

В таблице СТУДЕНТ ключевым полем является поле Номер личного дела, оно однозначно определяет каждую запись таблицы, если предположить, что не существует двух или более личных дел с одинаковыми номерами.

В таблице СЕССИЯ ключевым полем также является поле Номер личного

дела. В столбце Результат содержатся числа 0, 1 или 2 в зависимости от того,


получает ли студент стипендию по результатам сессии (0 – студент не получает стипендию, 1 – обычная стипендия, 2 – увеличенная в 2 раза стипендия).

Таблица СТИПЕНДИЯ содержит информацию о проценте начисляемой студенту стипендии в зависимости от результата сдачи сессии. В этой таблице ключевым является поле Результат.


Таблицы СТУДЕНТ и СЕССИЯ имеют совпадающие первичные ключи, что дает возможность легко организовать связь между ними по полю Номер личного дела. Таблица СЕССИЯ имеет первичный ключ Номер личного дела и содержит внешний ключ Результат, который позволяет обеспечить ее связь с таблицей СТИПЕНДИЯ.

Рис. 7. Реляционные таблицы базы данных «Деканат»

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


 

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

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

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

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

Рассмотренные ранее таблицы СТУДЕНТ и СЕССИЯ связаны по типу

«один-к-одному» (рис. 9).


Рис. 9. Пример таблиц, связанных по типу «один-к-одному»

Между таблицами А и В установлена связь «один-ко-многим», если каждая запись в таблице А может быть связана с несколькими записями таблицы В, но каждая запись в таблице В не может быть связана более чем с одной записью таблицы  А. Таблица  А в  этом случае  называется  главной  таблицей, а

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


является первичным ключом таблицы, находящейся на стороне отношения

«один» (таблица А), и являющееся внешним ключом в таблице, находящейся на стороне отношения «многие» (таблица В).


Например, рассмотренные ранее таблицы СТИПЕНДИЯ и СЕССИЯ связаны по типу «один-ко-многим» (рис. 10). При этом на стороне «один» находится таблица СТИПЕНДИЯ, а на стороне «многие» – таблица СЕССИЯ. Связь устанавливается по полю Результат. Каждая запись таблицы СТИПЕНДИЯ может иметь много связанных с ней записей в таблице СЕССИЯ, иначе говоря, в таблице СЕССИЯ может быть много строк с заданным значением в поле Результат (например, со значением 1). В то же время, если взять любую строку в таблице СЕССИЯ, то для нее найдется не более одной строки в таблице СТИПЕНДИЯ с таким же значением в поле Результат.

Рис. 10. Пример таблиц, находящихся в отношении «один-ко-многим»

Между таблицами А и В установлена связь «многие-ко-многим», если каждой записи таблицы А может соответствовать несколько записей в таблице В, и наоборот, каждой записи таблицы В может соответствовать несколько записей в таблице А. Такая связь всегда реализуется с помощью третьей связующей таблицы (назовем ее – таблица C). Связь «многие-ко-многим» представляет собой комбинацию двух связей типа «один-ко-многим»: между таблицами А и С (А – главная, С – подчиненная) и между таблицами В и С (В – главная, С подчиненная).

Примером могут служить таблицы ЧИТАТЕЛИ и КНИГИ базы данных БИБЛИОТЕКА (рис. 11). Связь между ними организуется с помощью таблицы АБОНЕМЕНТ. Каждой записи в таблице ЧИТАТЕЛИ могут соответствовать


несколько записей в таблице КНИГИ, и наоборот, каждой записи таблицы КНИГИ соответствовать несколько записей в таблице ЧИТАТЕЛИ. Соответствие устанавливается с помощью таблицы АБОНЕМЕНТ. При этом между таблицами ЧИТАТЕЛИ и АБОНЕМЕНТ установлена связь «один-ко- многим», в которой таблица ЧИТАТЕЛИ является главной. Аналогично между таблицами КНИГИ и АБОНЕМЕНТ установлена связь «один-ко-многим», в которой таблица КНИГИ является главной.


Рис. 11. Пример таблиц, находящихся в отношении «многие-ко-многим»

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

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

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

Разработка схемы данных БД. На этом этапе рассматривается, из каких информационных объектов должна состоять база данных, какими атрибутами описывается каждый объект. Затем определяется структура реляционных таблиц с указанием свойств полей и связей между таблицами.

Синтез компьютерной модели объекта, предполагающий выполнение следующих типовых операций:

1)                   создание файла базы данных;

2)                   создание базовых таблиц;


3)   создание экранных форм для ввода, редактирования и просмотра данных в таблицах;

4)                   заполнение таблиц данными;

5)                   работа с созданной базой данных:

·   сортировка, фильтрация и поиск записей в таблицах;

·   отбор данных из таблиц в соответствии с заданными критериями отбора;

·   выполнение обработки данных (удаление, добавление, изменение данных, выполнение вычислений);

·   подготовка отчетов.

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

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

2)                   поля общего списка распределяются по базовым таблицам;

3)                   в соответствии со свойствами данных определяются свойства каждого поля;

4)                   в каждой таблице выделяется ключевое поле;

5)                   определяются связи между таблицами.

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


 

Рис. 12. Пример схемы данных


Критерии распределения полей по таблицам могут быть различными. Например, сведения о сотрудниках организации могут храниться в одной таблице, или могут быть созданы две таблицы, одна из которых (СОТРУДНИКИ) хранит информацию служебного назначения, а другая (ЛИЧНЫЕ ДАННЫЕ) – информацию личного плана (рис. 13).

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

данным


Часто критерием выделения новой таблицы является факт повторения данных в исходной таблице. Например, в таблице СОТРУДНИКИ многократно повторяются названия должностей и оклады. Можно создать таблицу ДОЛЖНОСТИ, в которой хранить названия и характеристики должностей (рис.14). Тогда данные таблицы СОТРУДНИКИ будут храниться в двух таблицах: СОТРУДНИКИ_2 и ДОЛЖНОСТИ, между которыми устанавливается связь.

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

 


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

данных

 

 

Вопросы и упражнения для самоконтроля

1.     Что такое база данных (БД), система управления базами данных (СУБД)?

2.     Что такое информационный объект?

3.     Что такое модель данных?


4.     Укажите основные понятия и характеристики иерархической и сетевой моделей данных.

5.     Укажите характеристики и объекты обработки реляционной модели данных.

6.     Что такое первичный ключ реляционной таблицы базы данных?

7.     Что такое внешний ключ реляционной таблицы базы данных?

8.     Какого типа связи (отношения) могут быть установлены между таблицами реляционной базы данных? Охарактеризуйте каждый тип связи.

9.     Что такое «схема данных» реляционной базы данных?

10.  Перечислите и охарактеризуйте основные этапы проектирования и разработки реляционной базы данных.

Комментариев нет:

Отправить комментарий

Темы для рефератов (2 аттестация).

  Темы для рефератов (2 аттестация). 1.     Актуальные проблемы интеллектуальной собственности в Интернет. 2.     Правовые информационные ...