Распределенные БД

Нормализация баз данных.

Понятие БД, СУБД.

ВВЕДЕНИЕ В БАЗЫ ДАННЫХ

Лекция № 5.

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

Системы управления базами данных (СУБД) - это программные средства, предна­значенные для создания, наполнения, обновления и удаления баз данных. Различают три основных вида СУБД: промышленные универсального назначения, промышлен­ные специального назначения и разрабатываемые для конкретного заказчика. Специа­лизированные СУБД создаются для управления базами данных конкретного назначе­ния - бухгалтерские, складские, банковские и т.д. Универсальные СУБД не имеют четко очерченных рамок применения, они рассчитаны «на все случаи жизни» и, как следствие, достаточно сложны и требуют от пользователя специальных знаний. Как специализированные, так и универсальные промышленные СУБД относительно деше­вы, достаточно надежны (отлажены) и готовы к немедленной работе, в то время как заказные СУБД требуют существенных затрат, а их подготовка к работе и отладка занимают значительный период времени (от нескольких месяцев до нескольких лет). Однако, в отличие от промышленных, заказные СУБД в максимальной степени учи­тывают специфику работы заказчика (того или иного предприятия), их интерфейс обычно интуитивно понятен пользователям и не требует от них специальных знаний.

В зависимости от расположения СУБД различают локальные и распределенные (удаленные) СУБД. Все части локальной СУБД размещаются на компьютере пользо­вателя базы данных. Если к одной БД обращаются несколько пользователей одновре­менно, каждый пользовательский компьютер должен иметь свою копию локальной СУБД. В отличие от этого, значительная часть программно-аппаратных средств рас­пределенной СУБД централизована и находится на одном достаточно мощном ком­пьютере (сервере), в то время как компьютеры пользователей несут относительно небольшую часть СУБД, которая называется клиентом. Локальные СУБД могут рабо­тать в сети, но могут и не использовать ее, в то время как распределенные (клиент-серверные) СУБД обязательно работают в компьютерной сети. Заметим, что местона­хождение собственно базы данных никак не влияет на специфику СУБД: в локальных СУБД сама БД может располагаться как на компьютере пользователя, так и на уда­ленном сетевом компьютере (файл-сервере). Безусловным достоинством клиент-серверных систем является возможность централизованного управления доступом к БД. В таких системах база данных в значительной мере защищена как от случайных, так и намеренных искажений, в них проще реализовать целостность и непротиворечи­вость данных.

Единицей хранящейся в БД информации является таблица. Каждая таблица пред­ставляет собой совокупность строк и столбцов, где строки соответствуют экземпляру объекта, конкретному событию или явлению, а столбцы - атрибутам (признакам, ха­рактеристикам, параметрам) объекта, события, явления. На рис. 1.1. приведен пример таблицы, в которой содержатся сведения об отпуске товаров со склада. Столбцы пред­ставляют собой такие параметры, как дата отпуска товара, наименование товара, на­именование покупателя, количество единиц отпущенного товара. Каждая строка со­держит сведения о конкретном событии - отпуске товара покупателю. В терминах БД столбцы таблицы называются полями, а ее строки - записями.

Дата Товар Покупатель Отпущено (ед.)
10.02.97 Сахар Геракл, ТОО  
10.02.97 Сахар Геракл, ТОО  
12.02.97 Сахар Пищеторг, ЗАО  
12.02.97 Макароны Пищеторг, ЗАО  
14.02.97 Сахар Геракл, ТОО  
15.02.97 Дрожжи База № 28  

Рис. 1.1. Пример таблицы «Отпуск товаров».

Между отдельными таблицами БД могут существовать связи. Например, информа­ция о покупателе в предыдущей таблице может дополняться в другой:

Покупатель Адрес Телефон
Геракл, ТОО 107005 Москва, 2-я Бауманская ул., 12 273-00-14
Пищеторг, ЗАО 105066 Москва, Измайловский б-р, 18/11 165-18-99
База № 28 274088 Хотьково МО, ул. Лесная, 1 17-54

Рис. 1.2. Пример таблицы «Покупатель».

Базы данных, между отдельными таблицами которых существуют связи, называ­ются реляционными (от relation - связь, отношение).

Связанные отношениями таблицы взаимодействуют по принципу главная (master) -подчиненная (detail). В нашем примере таблица «Отпуск товаров» - главная, а таблица «Покупатель» - подчиненная. Главную таблицу часто называют родительской, а под­чиненную - дочерней. Одна и та же таблица может быть главной по отношению к од­ной таблице БД и дочерней по отношению к другой.

Одной записи из родительской таблицы «Товары» может со­ответствовать несколько записей в дочерней таблице «Отпуск товаров».

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

Связь один-ко-многим является самой распространенной для реляционных баз дан­ных. Как можно заметить, она позволяет моделировать иерархические структуры дан­ных.

Отношение один-к-одному имеет место, когда одной записи в родительской табли­це соответствует одна запись в дочерней таблице. Данное отношение встречается много реже, чем отношение один-ко-многим. Его используют, если не хотят, чтобы таблица БД «распухала» от второстепенной инфор­мации. Связь один-к-одному приводит к тому, что для чтения связанной информации в нескольких таблицах приходится производить несколько операций чтения, что замед­ляет получение нужной информации. Кроме того, базы данных, в состав которых вхо­дят таблицы со связью один-к-одному, не могут считаться полностью нормализован­ными (о нормализации см. ниже).

Подобно связи один-ко-многим, связь один-к-одному может быть жесткой и неже­сткой.

Между записями одной таблицы также могут существовать связи, то есть одни за­писи могут ссылаться на другие.

Пусть в реляционной БД необходимо хранить древовидную структуру произволь­ного уровня, например, структуру организации (рис. 1.3).

Департамент автоматизации Техническое управление

Отдел сетевого оборудования Ремонтный отдел АТС

Управление программными системами Отдел эксплуатации

Информационная группа Административная группа

Диспетчерское бюро Отдел разработки

Рис. 1.3. Структура организации.

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

№ подраз­деления Название подразделения № подразделения предыдущего уровня  
  Департамент автоматизации    
  Техническое управление    
  Управление разработки и эксплуатации про­граммных систем  
  Отдел сетевого оборудования  
  Ремонтный отдел  
  АТС  
  Отдел эксплуатации  
  Отдел разработки  
  Информационная группа  
  Административная группа  
  Диспетчерское бюро  

Рис. 1.4. Табличное представление структуры организации.

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

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

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

• при удалении записи в родительской таблице следует удалить соответствующие записи в дочерней таблице.

2. При проектировании структуры новой БД определяют сущности (объекты, явле­ния) предметной области, которые должны найти свое отражение в базе данных. Ана­лиз предметной области обычно осуществляется на основании известных сведений о ней с учетом целей проектирования программной системы. В результате анализа соз­дается проект БД..

Процесс проектирования БД в немалой степени зависит от опыта и интуиции раз­работчика, т.е. является творческим, однако некоторые его моменты можно формали­зовать. Одной из таких формализации является требование, согласно которому реля­ционная база данных должна быть нормализована. Процесс нормализации имеет своей целью устранение избыточности данных и заключается в приведении к третьей нор­мальной форме (ЗНФ).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: