Методы проектирования реляционных БД. Метод нормальных форм. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Методы проектирования реляционных БД. Метод нормальных форм.



1. Функциональные

2. Транзитивные

3. Многозначные

Атрибут B функционально зависит от атрибута А, если каждому значению А соответствуют в точности одно значение B.

АàB

Это означает что все кортежи со знаком В атрибут А будет иметь тоже значение.

AßàB

AàB BàC = AàBàC – транзитивные

ФИО<=>Предмет

Пусть задано отношение со схемой R(A1, A2, A3)

А1 А2 А3
12 21 34
17 21 34
11 24 33
13 25 31
15 23 35
14 22 32

 

Априори известно, что в R существуют функциональные зависимости A1àA2 и A2àA3. Анализируя отношения можно увидеть, что в нём ещё существуют зависимости A1àA3, A1A2àA3, A1A2A3àA1A2…

Взаимно независимые атрибуты – не один из этих атрибутов не является функционально зависимым от других атрибутов.

Отсутствие зависимости А1 от А2 объясняется тем что одному и тому же атрибуту А2(21) соответствует разные значения атрибута А1(12, 17)

Процесс нормализации

Различают 1 нормальную форму, 2 нормальную форму, 3 нормальную форму, НФБК, 4 нормальную форму, 5 нормальную форму.

1,2,3 нф ограничивают зависимость не первичных атрибутов от ключей

НФБК ограничивает зависимость первичных атрибутов

4 нф формулирует ограничения на виды многозначных зависимостей

5 нф вводит другие типы зависимостей: зависимости соединений

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

Номер зачетной книжки к/г ФИО студента Код группы ФИО старосты Куратор
20-201 Иванов С.И. 20-11 Рябов В.С. Доцент Фок И.И.
20-205 Петров Я.Р. 20-12 Сизов М.Н. Доцент Докин С.С.
20-217 Рябов В.С. 20-11 Рябов В.С. Доцент Фок И.И.
20-211 Сенова А.С. 20-11 Рябов В.С. Доцент Фок И.И.

Отношение СТУДЕНТ                                                               Отношение ГРУППА

Номер зачетной книжки к/г ФИО студента Код группы
20-201 Иванов С.И. 20-11
20-205 Петров Я.Р. 20-12
20-217 Рябов В.С. 20-11
20-211 Сенова А.С. 20-11
Код группы ФИО старосты Куратор
20-11 Рябов В.С. Доцент Фок И.И.
20-12 Сизов М.Н. Доцент Докин С.С.
20-11 Рябов В.С. Доцент Фок И.И.
20-11 Рябов В.С. Доцент Фок И.И.


Аномалия удаление – при удаление элемента в кортеже (строке) удаляется весь кортеж.

Аномалия модификации –

Требования к БД:

1. Множества отношений должны обеспечивать минимизацию

2. Назначенные для отношения ключи должны быть минимальными

3. При выполнения операции удаления, включения, модификации не должно быт аномалий

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

5. Разброс времени выполнения запросов в БД должен быть не большим

Отношение рождение

Имя Дата рождения
Аня 5.03.1976
Саша 25.01.1977
Ольга 1.11.1977
Фёдор 14.09.1976

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

Имя День рождения Месяц рождения Год рождения
Аня 5 03 1976
Саша 25 01 1977
Ольга 1 11 1977
Фёдор 14 09 1976

 

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

Имя Пол
(Саша, Федор) Мужской
Ольга Женский

Данная таблица не нормализована

Чтобы представить в 1 нф нужно:

Имя Пол
Саша Мужской
Федор Мужской
Ольга Женский

 

Если окажется что имя Саша, то нужно менять столбец имени и перемещать имя Саша. А в нормализованной нужно просто поменять пол.

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

Отношение Преподавание дисциплин

Индекс дисциплины Название предмета Количество часов Код лектора ФИО лектора Должность
ЕНФ 02 Инф-ка 54 001 Иванов И.И Доцент
ЕНФ 02 Инф-ка 54 002 Петров Т.Т Стар. преподаватель
ОПДФ 08 ОС 102 003 Сур М.И Доцент
ОПДФ 08 ОС 102 001 Иванов И.И Доцент
ОПДФ 08 ОС 102 002 Петров Т.Т Стар. преподаватель
СД 03 ООП 54 001 Иванов И.И Доцент
СД 03 ООП 54 002 Петров Т.Т Стар. преподаватель

Поскольку инф-ка ведут 2 лектора, поэтому пришлось создать 2 кортежа продублировав некоторую информацию. Так же поступили с ОС.

Нужно привести ко 2 нф.

Процесс приведения отношения ко 2 нф:

1. Атрибут называется посторонним для функциональной зависимости ХàY если он может быть удалён из правой или левой части функциональной зависимости без изменения транзитивного замыкания F+ множества F.

2. Функциональная зависимость ХàY называется редуцированная слева (или справа) если X (Y) не содержит атрибута Z постороннего для функциональной зависимости ХàY. Зависимость редуцированная слева и справа называется просто редуцированной. Если функциональная зависимость ХàY редуцированная слева то Y является полностью зависящим от Х, в противном случае Y частично зависит от Х. Удаление посторонних атрибутов начинается слева а потом справа. Если после этого исключить зависимость вида Х от зачёркнутого О, то посторонних атрибутов больше не останется.

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

Книги ISBN Название Автор Издательство Место издания Год издания Количество страниц
Инфологическая модель заданной предметной области

Читатели № читального билета ФИО Дата рождения Пол Телефон домашний Телефон рабочий

 


Экземпляры Инвентарный номер Наличие в библиотеке Дата взятия Дата возврата
                                                                                                                         Держит на руках

 


Имеет сведения из            Относится к

Связана                 Имеется в                                                              Находится у    Держит

Сведенья содержатся в

Систематический каталог Код области знаний Наименование области знания

 

 


Поставки (Номер поставщика, товар, цена)

(Номер поставщика, товар à цена)

ТоварàЦена

Поставки (номер поставщика, товар)

Цена товара (товар, цена)

3 нормальная форма:

Если АàB, Bà(перечёркнуто)A (В не является ключом) BàC, то AàC

(Номер врача, номер пациента, дата, ФИО пациента, адрес пациента, ФИО врача, лечение, лекарство, побочный эффект)

(Номер врача, номер пациента, дата)

Разделить на 3 группы во 2 нф:

Врач (номер врача, ФИО врача)
Пациент (номер пациента, ФИО пациента, адрес пациента)
Лечение (номер врача, номер пациента, дата, лечение, лекарство, побочный эффект)

ЛекарствоàПобочный эффект

Трудности которые могут возникнуть при таком делении:

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

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

Преобразование отношения в 3 нф устраняет эти 2 аномалии.

Схема отношения находится в 3нф относительно множества функциональных зависимостей F, если она находится в 1 нф и не один из не первичных атрибутов B не является транзитивно зависимым от ключа для R. Схема всей БД находится в 3 нф относительно F, если каждая схема отношения находится в 3 нф относительно F.

Нормализованная БД в 3 нф:

Врач (номер врача, ФИО врача)
Пациент (номер пациента, ФИО пациента, адрес пациента)
Лечение (номер врача, номер пациента, дата, лечение, лекарство)
Лекарство (лекарство, побочный эффект)

Нормализация посредством синтеза:

R={Ri,…, Rp} над R

Свойства:

1. Множества F полностью характеризуются с помощью R

2. Каждое схема отношения Ri из R находится в 3 нф

3. Не существует схема БД с меньшим числом атрибутов, чем R удовлетворяющим 1 и 2 свойству

4. Любое отношения r(R) удовлетворяющего F

НФБК (нормальная форма бойса кода) – отношение находится в НФБК, если она находится в 3 нф и в нём отсутствуют зависимости ключей (атрибутов составного ключа) от не ключевых атрибутов  

Современные СУБД

Современные реляционные СУБД:

1. Microsoft Visual FoxPro

2. MS SQL Server

3. Access

MariaDB — ответвление СУБД MySQL, разрабатываемое сообществом. MariaDB является фактически альтернативой MySQL СУБД, которую разрабатывает автор MySQL Michael "Monty" Widenius. Основная цель проекта MariaDB - создание полностью бинарно совместимой с оригинальной MySQL версии СУБД, которая при этом будет иметь значительное количество улучшений в коде, влияющих на производительность. MariaDB разрабатывается как drop-in замена для MySQL, полностью имитируя поведение MySQL.

Почему вообще Monty решил сделать клон своего же детища? Дело в том, что права на MySQL принадлежат компании MySQL AB, которую сначала купили Sun Microsystems, а затем уже Sun продались корпорации Oracle. В итоге Monty решил уйти из Oracle и сделать, в некотором смысле, MySQL "на стероидах".

MariaDB построена на кодовой базе проекта MySQL и распространяется под лицензией GPL v2.

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

Ведущим разработчиком MariaDB является Майкл «Монти» Видениус, который является одним из основателей MySQL AB.

Кодовая база MariaDB постоянно обновляется и соответствует наработкам MySQL для всех версий РСУБД, поэтому её скачали уже более миллиона пользователей по всему миру. Успех MariaDB как ведущей базы данных объясняется не только открытым исходным кодом, но и его надежностью, производительностью и функциями

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

Во-первых, это ряд новых движков (database engine) для хранения данных. А именно: Aria - альтернатива таблицам MyISAM, более быстрая и устойчивая к сбоям. Таблицы Aria используются в MariaDB для внутренних нужд, в частности все temporary tables работают именно на движке Aria, за счет чего в ряде случаев получилось добиться значительно большей производительности на сложных запросах.

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

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

Так же в MariaDB появился новый способ доступа к данным InnoDB - HandlerSocket. HandlerSocket в каком-то смысле является альтернативой memcached. Через интерфейс HandlerSocket с данными в таблицах InnoDB (XtraDB) можно работать как с набором данных "ключ-значение", где в качестве ключа выступает любой из индексов, созданных по любой из InnoDB-таблиц. По скорости работы HandlerSocket практически не уступает memcached и некоторые источники даже сообщают, что им удалось добиться большей, чем с memcached, производительности.

Преимущества по сравнению с MySQL:

· Больше механизмов хранения данных

· Улучшенная производительность

· Безопасность

· Расширения и новые возможности

· Улучшенное тестирование

· Меньше предупреждений и ошибок

· Настоящий Open Source

Улучшенное тестирование

· Больше тестов в тестовых сериях.

· BUG'и в исходном коде устраняются при тестировании.

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

· Убраны некоторые серии тестов (например, нет необходимости тестировать функционал X, если этот функционал нигде не используется в тестируемой версии).

Настоящий Open Source

· Весь исходный код MariaDB распространяется под лицензиями GPL, LPGL или BSD. MariaDB не содержит закрытых модулей или компонентов, на подобие тех, что содержатся в Mysql Enterprise Edition. Однако, это не влияет на доступный функционал MariaDB. Все технологии, существующие в закрытой версии MySQL 5.5 Enterprise Edition, в полном объеме представлены и в MariaDB.

· MariaDB включает тестовые пакеты для всех исправленных ошибок в исходном коде. Компания Oracle в свою очередь не представляет подобных тестовых пакетов для своих версий продуктов, например, MySQL 5.5.

· Все BUG'и и планы развития доступны всем желающим.

· MariaDB разрабатывается open source сообществом.

 

 

Классификация СУБД

1. По функциональности

a. Многофункциональные СУБД – Access

b. Серверы БД – MS SQL Server, ORACLE

c. Клиенты БД – Обычно обеспечивают создания БД и приложений работающих с ними. Access является персональным

d. Средство разработки программ работы с БД

2. По принципу

a. Персональные - Обычно обеспечивают создания БД и приложений работающих с ними. (Access)

b. Многопользовательские – Включает сервер БД и клиентскую часть (Oracle)

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

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

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

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

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

5. Модуль – объект содержащий программу на MS Access Basic которая позволяет разбить процесс на более мелкие действия и обнаружить ошибки, которые нельзя найти при использование макроса. Модули могут быть независимыми объектами содержащими функциями, которые можно вызвать из любого места приложения, но они могут быть непосредственно привязаны к отдельным формам или отчётам для реакции на те или иные происходящие в них изменения.

Стоит создавать новую БД в случаях:

1. Таблица содержит много данных

 

2. БД логически не связаны

 

3. БД сетевая

 



Поделиться:


Последнее изменение этой страницы: 2019-05-19; просмотров: 177; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.134.78.106 (0.046 с.)