NewsChannel1 - Строительный портал

" основы проектирования баз данных". Основы проектирования баз данных Физическое проектирование БД

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

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

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

Существуют следующие основные модели данных:

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

Иерархические модели данных - БД, основанная на иерархической модели, состоит из упорядоченного набора деревьев. Каждое дерево из одного «корневого» и упорядоченного набора из нуля или более связанных между ними поддеревьев (потомки). Целостность связи между ними поддерживается автоматически.

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

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

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

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

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

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

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

  • 1. Выборка отношения;
  • 2. Проекция отношения;
  • 3. Объединение отношений;
  • 4. Пересечение отношений;
  • 5. Вычитание отношений;
  • 6. Произведение отношений;
  • 7. Соединение отношений;
  • 8. Деление отношений;

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

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

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

На логическом уровне можно установить связи:

  • 1. один-к-одному;
  • 2. один-ко-многим;
  • 3. многие-ко-многим;
  • 4. многие-к-одному;

Этапы физической реализации проектируемой базы данных

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

  • 1. Выбор и приобретение СУБД.
  • 2. Преобразование концептуальной модели в физическую модель.
  • 3. Построение словаря.
  • 4. Заполнение базы данных.
  • 5. Создание прикладных программ.
  • 6. Обучение пользователей.

Организация и ведение баз данных средствами СУБД MS ACCESS

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

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

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

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

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

3) конструирование таблиц, соответствующих информационным объектам построенной модели данных;

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

5) ввод данных, содержащихся в документах предметной области.

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

Построение инфологической модели данных. Инфологическая модель (ИЛМ) отображает данные предметной области в виде совокупности информационных объектов и связей между ними.

Информационный объект – это информационное описание некоторого реального объекта, процесса или события. Информационный объект образуется совокупностью логически взаимосвязанных реквизитов, представляющих качественные и количественные характеристики некоторой сущности предметной области. Например, объект ТОВАР характеризуется такими реквизитами как наименование, единица измерения, изготовитель, сорт, цена и др.

Каждому информационному объекту присваивают уникальное имя, Например, при описании предметной области поставка товаров будут выделены такие объекты как ТОВАР, ПОСТАВЩИК.

Информационный объект имеет множество реализаций – экземпляров (записей). Например каждый экземпляр объекта ТОВАР представляет конкретный вид продукции. Экземпляр образуется совокупностью конкретных значений реквизитов и должен однозначно идентифицироваться значением ключа информационного объекта. Ключ может состоять из одного (простой ) или нескольких ключевых реквизитов (составной ).



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

Обеспечить быстрый доступ к данным в таблицах.

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

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

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

Отношение – это связь между двумя таблицами, которая показывает, как относятся друг к другу данные в этих таблицах. При создании отношения указываются одинаковые поля в двух разных таблицах. Например, можно создать отношения между таблицами ТОВАР и ПОСТАВЩИК, используя в качестве связующего поля идентификатор товара.

ACCESS поддерживает следующие типы отношений между таблицами:

Одно – однозначные (1:1),

Одно – многозначные (1:М),

Много – многозначные (N:М).

Одно – однозначные связи (1:1) имеют место, когда каждому экземпляру одного объекта (А) соответствует только один экземпляр другого объекта (В) и, наоборот, каждому экземпляру объекта (В) соответствует только один экземпляр объекта (А).

Одно – многозначные связи (1:М) – это такие связи, когда каждому экземпляру одного объекта (А) может соответствовать несколько экземпляров объекта (В), а каждому экземпляру объекта (В) может соответствовать только один экземпляр объекта (А). В такой связи объект А является главным объектом, а объект В – подчиненным.

Много – многозначные (N:М) – имеют место в том случае, если каждому экземпляра объекта А может соответствовать несколько экземпляров объекта В и, наоборот, каждому экземпляру объекта В может соответствовать несколько экземпляров объекта А.Для реализации таких связей используется объект –«связка», который должен иметь идентификатор, образованный из идентификаторов объектов А и В.

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

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

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

  • Перевод

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


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

Какой функционал требуется от базы данных

Первый метод, используемый при планировании, это обычный мозговой штурм, делая записи на бумаге или как-то еще, в зависимости от того, что требуется хранить в базе данных, и что будет требоваться сайту. Старайтесь не думать об конкретных полях, таблицах, которые будут использоваться в конкретном случае - все специфичные моменты будут рассмотрены вами позже. Ваша цель на данном этапе состоит в том, чтобы получить общую и полную картину структуры базы данных, которую потом будете уточнять и делать более подробной. Зачастую в дальнейшем может быть более трудным добавить какие-то элементы в ваш план, нежели на первоначальном этапе.
Фото: binaryape
Отстранитесь от базы данных. Попытайтесь подумать, что будет требоваться от сайта? Например, если требуется сделать сайт, объединяющий людей, вы, возможно, сразу начнете думать о данных, которые будут хранить пользователи. Забудьте, отложите это на потом. Лучше запишите, что пользователи и информация о них должна храниться в базе данных. А что еще? Что пользователи будут делать на вашем сайте? Будут ли они публиковать записи, загружать файлы, фотографии, писать друг другу сообщения? Следовательно, база данных должна хранить всю эту информацию: записи, файлы, фотографии, сообщения и т. д.
Как будут взаимодействовать пользователи с вашим сайтом? Будет ли у них необходимость в поиске, например, их любимых рецептов, иметь доступ к записям, доступным конкретному сообществу, искать продукты или смотреть список недавно просмотренных и купленных продуктов? В базе данных должна быть предусмотрена возможность хранить рецепты, «закрытые» записи, доступные определенному кругу пользователей, информацию о продуктах, а также возможность связи определенного продукта и пользователя.

Определение необходимых таблиц и полей

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

Используйте инструмент моделирования данных

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

Есть также более известный, качественный, на мой взгляд, инструмент - Microsoft Visio (только под Windows, цена $249.99). Но не пугайтесь, есть более дешевые альтернативы, многие из которых являются open-source проектами, в том числе два, упомянутых выше.
Ознакомьтесь с общими графическими обозначениями и стандартными визуальными элементами, необходимым для создания модели базы данных, и начните предварительное планирование с помощью блок-схем и диаграмм. Это позволит избежать логических ошибок, прежде чем будет создана уже какая-нибудь конкретная база данных.

Группировка и разделение данных

Что касается полей, также важно знать, когда группировать определенную часть данных, а когда нет. Хороший способ определить, какая информация должна быть в одном поле или наоборот, подумать, будет ли необходимость изменять какую-либо её часть? Например, нужно ли хранить адрес, разбив его на составляющие: 1) улица, 2) город, 3) штат, 4) почтовый код, 5) страна?
Это неотъемлемая часть функционала сайта (возможно, пользователи или администраторы захотят искать других пользователей по адресу или штату), или просто увеличение места, занимаемого базой данных на диске? Если это не столь важно, зачем тогда нагружать базу данных на изменение 5 полей, когда можно обновить всего лишь одно строковое поле. Более удобным может быть вариант получения этих данных из HTML-формы, где поля разделены, а уже перед добавлением адреса в базу данных объединять значения из соответствующих полей в одну строку.
Это только один пример, но всегда имейте представление о наиболее эффективные способы организации полей таблицы, когда объединять их, когда содержать отдельно, ради поддержания функциональности сайта.

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

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

В.В. Кириллов. Основы проектирования реляционных баз данных.
Учебное пособие
Санкт-Петербургский Гос.институт точной механики и оптики (техн.ун-т) , Кафедра вычислительной техники

/database/dbguide/index.shtml

Глава 1. Что такое базы данных и СУБД 3

1.1. Данные и ЭВМ 3

1.2. Концепция баз данных 5

1.3. Архитектура СУБД 6

1.4. Модели данных 8

Глава 2. Инфологическая модель данных "Сущность-связь" 9

2.1. Основные понятия 9

2.2. Характеристика связей и язык моделирования 10

2.3. Классификация сущностей 14

Три класса сущностей 14

Стержневая сущность (стержень) 14

Ассоциативная сущность (ассоциация) 14

Характеристическая сущность (характеристика) 15

Обозначающая сущность или обозначение 15

Пример 15

2.4. О первичных и внешних ключах 18

2.5. Ограничения целостности 20

Понятие целостности данных 20

Виды целостности 20

2.6. О построении инфологической модели 21

Введение 21

Требования к БД со стороны администратора и прикладного программиста 21

Глава 3. Реляционный подход 22

3.1. Реляционная структура данных 22

Введение 22

Основные понятия 22

Понятие ключа 24

3.2. Реляционная база данных 24

Свойства Таблицы данных 25

3.3. Манипулирование реляционными данными 26

Глава 4. Введение в проектирование реляционных баз данных 27

4.1. Цели проектирования 27

Введение 27

Прикладные и предметные БД 27

Порядок проектирования БД 27

Цель проектирования БД 28

4.2. Универсальное отношение 29

Проект БД «Питание» 29

4.3. Почему проект БД может быть плохим? 30

4.4. О нормализации, функциональных и многозначных зависимостях 33

Понятие нормализации 33

Нормальные формы 33

Функциональная и многозначная зависимости 34

4.5. Нормальные формы 34

Первая нормальная форма (1НФ) 34

Вторая нормальная форма 2НФ 35

Третья нормальная форма 3НФ 36

Нормальная форма Бойса-Кодда НФБК 36

Понятие полной декомпозиции 4НФ и 5НФ 36

Четвертая нормальная форма 4НФ 37

4.6. Процедура нормализации 37

О понятии нормализации 37

Пример 4.1. Нормализация универсального отношения "Питание" 38

Шаг 1. Определение первичного ключа таблицы. 38

Шаг 2. Выявление полей, функционально зависящих от части состваного ключа. 38

Шаг 3. Формирование новых таблиц. 39

Шаг 4. Корректировка исходной таблицы. 39

Пример 4.2. Улучшение проекта 39

4.7. Процедура проектирования 39

Введение 39

Шаги процедуры проектирования даталогической модели 39

Векторы 42

Неопределенные значения. 42

Глава 5. Пример проектирования базы данных "Библиотека" 42

5.1. Назначение и предметная область 42

5.2. Построение инфологической модели 45

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

ЛИТЕРАТУРА 50

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 51

Глава 1. Что такое базы данных и СУБД

1.1. Данные и ЭВМ

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

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

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

Интерпретация

Номер рейса

Дни недели

Пункт отправления

Время вылета

Пункт назначения

Время прибытия

Тип самолета

Стоимость билета

Данные

Рис. 1.1. К разделению данных и их интерпретации

Применение ЭВМ для ведения * и обработки данных обычно приводит к еще большему разделению данных и интерпретации. ЭВМ имеет дело главным образом с данными как таковыми. Большая часть интерпретирующей информации вообще не фиксируется в явной форме (ЭВМ не "знает", является ли "21.50" стоимостью авиабилета или временем вылета). Почему же это произошло?

Существует по крайней мере две исторические причины, по которым применение ЭВМ привело к отделению данных от интерпретации. Во-первых, ЭВМ не обладали достаточными возможностями для обработки текстов на естественном языке – основном языке интерпретации данных. Во-вторых, стоимость памяти ЭВМ была первоначально весьма велика. Память использовалась для хранения самих данных, а интерпретация традиционно возлагалась на пользователя. Пользователь закладывал интерпретацию данных в свою программу, которая "знала", например, что шестое вводимое значение связано с временем прибытия самолета, а четвертое – с временем его вылета. Это существенно повышало роль программы, так как вне интерпретации данные представляют собой не более чем совокупность битов на запоминающем устройстве.

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

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

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

Для иллюстрации обратимся к примеру, приведенному в книге: У.Девис, Операционные системы, М., Мир, 1980:

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

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

* Ведение (сопровождение, поддержка) данных – термин объединяющий действия по добавлению, удалению или изменению храни-мых данных.

1.2. Концепция баз данных

Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых "Системы управления базами данных " (СУБД).

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

Пусть, например, требуется хранить расписание движения самолетов (рис. 1.1 ) и ряд других данных, связанных с организацией работы аэропорта (БД "Аэропорт"). Используя для этого одну из современных "русифицированных" СУБД, можно подготовить следующее описание расписания:

СОЗДАТЬ ТАБЛИЦУ Расписание

(Номер_рейса Целое

Дни_недели Текст (8)

Пункт_отправления Текст (24)

Время_вылета Время

Пункт_назначения Текст (24)

Время_прибытия Время

Тип_самолета Текст (8)

Стоимость_билета Валюта);

и ввести его вместе с данными в БД "Аэропорт".

Язык запросов СУБД позволяет обращаться за данными как из программ, так и с терминалов (рис. 1.2). Сформировав запрос

ВЫБРАТЬ Номер_рейса, Дни_недели, Время_вылета

ИЗ ТАБЛИЦЫ Расписание

И Пункт_назначения = "Киев"

И Время_вылета > 17;

получим расписание "Москва-Киев" на вечернее время, а по запросу

ВЫБРАТЬ КОЛИЧЕСТВО(Номер_рейса)

ИЗ ТАБЛИЦЫ Расписание

ГДЕ Пункт_отправления = "Москва"

И Пункт_назначения = "Минск";

получим количество рейсов "Москва-Минск".

Рис. 1.2. Связь программ и данных при использовании СУБД

Эти запросы не потеряют актуальности и при расширении таблицы:

ДОБАВИТЬ В ТАБЛИЦУ Расписание

Длительность_полета Целое;

как это было с программами обработки почтовых адресов при введении почтового индекса (см. п. 1.1 ).

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

[Назад ] [Содержание ] [Вперед ]

1.3. Архитектура СУБД

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

    физическом размещении в памяти данных и их описаний;

    механизмах поиска запрашиваемых данных;

    проблемах, возникающих при одновременном запросе одних и тех же данных многими пользователями (прикладными программами);

    способах обеспечения защиты данных от некорректных обновлений и (или) несанкционированного доступа;

    поддержании баз данных в актуальном состоянии

и множестве других функций СУБД.

При выполнении основных из этих функций СУБД должна использовать различные описания данных. А как создавать эти описания?

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

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

Рис. 1.3. Уровни моделей данных

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

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

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

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

1.4. Модели данных

Как отмечалось в п. 1.3 , инфологическая модель отображает реальный мир в некоторые понятные человеку концепции, полностью независимые от параметров среды хранения данных. Существует множество подходов к построению таких моделей: графовые модели, семантические сети, модель "сущность-связь" и т.д. [11 ]. Наиболее популярной из них оказалась модель "сущность-связь", которая будет рассмотрена в главе 2.

Инфологическая модель должна быть отображена в компьютеро-ориентированную даталогическую модель, "понятную" СУБД. В процессе развития теории и практического использования баз данных, а также средств вычислительной техники создавались СУБД, поддерживающие различные даталогические модели [1 , 2 , 8 , 11 ].

Сначала стали использовать иерархические даталогические модели. Простота организации, наличие заранее заданных связей между сущностями, сходство с физическими моделями данных позволяли добиваться приемлемой производительности иерархических СУБД на медленных ЭВМ с весьма ограниченными объемами памяти. Но, если данные не имели древовидной структуры, то возникала масса сложностей при построении иерархической модели и желании добиться нужной производительности.

Сетевые модели также создавались для мало ресурсных ЭВМ. Это достаточно сложные структуры, состоящие из "наборов" – поименованных двухуровневых деревьев. "Наборы" соединяются с помощью "записей-связок", образуя цепочки и т.д. При разработке сетевых моделей было выдумано множество "маленьких хитростей", позволяющих увеличить производительность СУБД, но существенно усложнивших последние. Прикладной программист должен знать массу терминов, изучить несколько внутренних языков СУБД, детально представлять логическую структуру базы данных для осуществления навигации среди различных экземпляров, наборов, записей и т.п. Один из разработчиков операционной системы UNIX сказал "Сетевая база – это самый верный способ потерять данные".

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

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

  • Базы данных (7)

    Учебно-методический комплекс

    ... Основы проектирования приложений баз данных : учеб. пособие / И.Ю. Баженова. - М.: ИНТУИТ. ру; БИНОМ. ЛЗ, 2006. - 324 с Базы данных : проектирование ... темами: Проектирование реляционных баз данных , Создание новой базы данных , Создание таблиц...

  • Создание БД начинается с проектирования.

    Этапы проектирования БД:

      Исследование предметной области;

      Анализ данных (сущностей и их атрибутов);

      Определение отношений между сущностями и определение первичных и вторичных (внешних) ключей.

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

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

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

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

    Связь – взаимосвязь между сущностями в предметной области. Связи представляют собой соединения между частями БД (в реляционной БД – это соединение между записями таблиц).

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

    Рассмотрим предметную область: Деканат (Успеваемость студентов)

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

    Основными предметно-значимыми сущностями БД «Деканат» являются: Студенты, Группы студентов, Дисциплины, Успеваемость.

    Основные предметно-значимые атрибуты сущностей:

      студенты – фамилия, имя, отчество, пол, дата и место рождения, группа студентов;

      группы студентов – название, курс, семестр;

      дисциплины – название, количество часов

      успеваемость – оценка, вид контроля.

    Основные требования к функциям БД:

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

      выбрать успеваемость студентов по группам и дисциплинам;

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

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

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

     стрелка является условным обозначением связи: один – ко – многим.

    Загрузка...