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




Общие понятия реляционного подхода к организации БД

Основные концепции и принципы

 

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

 

 

  целое строка целое Тип данных
номер имя должность деньги Домен
Отношение Табельный номер Имя Должность Оклад Премия Атрибут
  Игорев Инженер     Кортеж
  Петров Ведущий инженер    
  Иванов Программист    
  Ключ  

 

Отношение является важнейшим понятием и представляет собой двумерную таблицу, содержащую некоторые данные.

Сущность – есть объект любой природы, данные о котором хранятся в БД. Данные о сущности хранятся в отношениях.

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

Домен – это множество всех возможных значений определенного атрибута отношения.

Схема отношений – список имен атрибута.

Множество кортежей отношения называют содержимым отношения.

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

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

Ключи обычно используются для:

v Исключения дублирования значений ключевых атрибутов;

v Упорядочения кортежей;

v Ускорение работы с кортежами отношений;

v Для организации связывания таблиц.

Пусть в отношении R1 имеется не ключевой атрибут A, значение которого является значением ключевого атрибута B другого отношения R2, т.е. атрибут А отношения R1 есть внешний ключ. С помощью внешних ключей устанавливаются связи между отношениями.

Индексирование

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

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

Таблицу, для которой используется индекс, называют индексированной.

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

Отношения между таблицами

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

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

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

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

 

 

Управление реляционной базой данной. Реляционная алгебра. Реляционное исчисление.

В 1970 году Эдгар Кодд разработал реляционные языки обработки данных: реляционная алгебра и реляционное исчисление.

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

РИ – это непроцедурный язык, в котором запрос создается путем определения таблицы запроса за один шаг.

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

1. Базовые теоретико-множественные (объединение, разность, пересечение и произведение).

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

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

1. Объединение двух совместимых отношений R1 и R2 одинаковой размерности является отношение R содержащее все элементы исходных отношений с исключением повторений.

 

R1

N Имя Статус Город
S1 S4 Сергей Николай   Москва Москва

R2

N Имя Статус Город
S1 S2 Сергей Иван   Москва Киев

 

2. Разность двух совместимых отношений R1 и R2 одинаковой размерности есть отношение, тело которого состоит из множества кортежей, принадлежащей R1 но не принадлежащих R2.

3. Пересечение двух совместимых отношений R1 и R2 одинаковой размерности порождает отношение R, включающее в себя кортежи, одновременно принадлежащие обоим исходным отношениям.

4. Произведение – результатом его будет являться реляционная таблица, сформированная двумя этапами действий:

1) Связывание атрибутов двух исходных таблиц

2) Присвоение каждой исходной строке первой таблицы каждой строки второй таблицы

R1

А B
   
   

R2

C D E
     
     
     

 

A B C D E
         
         
         
         
         
         

 

5. Выборка (R where f) – отношение R по формуле f представляет собой новое отношение с таким же заголовком и телом, состоящим из таких кортежей отношения R, которые удовлетворяют истинности логического выражения, заданного формулой f.

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

R where Город = ‘Киев’ and статус > 15

6. Проекция – отношение A на атрибуты X,Y,…,Z, где множество XYZ является подмножеством полного списка атрибутов заголовка отношения А, представляет собой отношение с заголовком XYZ и телом содержащим кортежи отношения А за исключением повторяющихся кортежей.

R1[Имя, Город]

7. Деление – результатом деления отношения R1 с атрибутами A и B на отношение R2 с атрибутом B, где A и B простые или составные атрибуты, причем атрибут B общий атрибут, определенный на одном и том же домене, является отношение R с заголовком A и телом, состоящим из кортежей r, таких что в отношении R1 имеются кортежи (r, S) причем множество значений S включает множество значений атрибута B отношения R2.

 

A B
S1 P1
S1 P2
S1 P3
S1 P4
S2 P2
S3 P3
S4 P2
S4 P4

R1


R2

B
P2
P4

 

R

A
S1
S4

 

Реляционное исчисление

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

Квантор существования – означает существование хотя бы одной строки удовлетворяющей условиям.

Квантор всеобщности – это выражение, которое означает, что некоторое условие применяется ко всем строкам некоторого типа.

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

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

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

2) Исключить ненужное повторение

3) Обеспечить целостность данных

Процесс уменьшения избыточной информации называется нормализацией. Теория нормализации оперирует 5 нормальными формами таблиц. Эти формы предназначены для уменьшения избыточной информации от 1 до 5 нормальной формы. Поэтому каждая последующая нормальная форма должна удовлетворять требования предыдущих и некоторым дополнительным условиям. При практическом проектировании БД 4 и 5 нормальные формы не используются. В качестве примера рассмотрим таблицу продажи которая содержит следующую информацию:

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

2) Дату заказа и количество проданного товара

3) Дату выполнения заказа

4) Характеристику проданного товара

Номер Наименование
  Код покупателя
  Предприятие
  Фамилия покупателя
  Имя покупателя
  Отчество покупателя
  Телефон
  Индекс
  Страна
  Область
  Город
  Адрес
  Кредит
  Дополнительные сведения
  Номер заказа
  Дата заказа
  Заказанное количество
  Дата продажи
  Проданное количество
  Код менеджера
  Имя менеджера
  Код товара
  Наименование товара
  Группа товара
  Цена
  Примечание к заказу

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: