Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3.29.doc
Скачиваний:
0
Добавлен:
30.01.2020
Размер:
83.97 Кб
Скачать

3.29 Типы баз данных. Реляционные бд. Нормальные формы рбд. Язык sql

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

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

Структура БД

Организация структуры БД формируется исходя из следующих соображений:

Адекватность описываемому объекту/системе — на уровне концептуальной и логической модели.

  • Удобство использования для ведения учёта и анализа данных — на уровне так называемой физической модели.

На уровне физической модели электронная БД представляет собой файл или их набор в формате TXT, CSV, Excel, DBF, XML либо в специализированном формате конкретной СУБД. Также в СУБД в понятие физической модели включают специализированные виртуальные понятия, существующие в её рамках — таблица, табличное пространство, сегмент, куб, кластер и т.д. В настоящее время наибольшее распространение получили реляционные базы данных.

Реляционная база данных — база данных, основанная на реляционной модели. Слово «реляционный» происходит от английского «relation» («отношение», только не связей таблиц, а заимствованное из теории множеств). Для работы с реляционными БД применяют Реляционные СУБД.

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

  • Данные хранятся в таблицах, состоящих из столбцов ("атрибутов") и строк ("записей", "кортежей");

  • На пересечении каждого столбца и строчки стоит в точности одно значение;

  • У каждого столбца есть своё имя, которое служит его названием, и все значения в одном столбце имеют один тип;

  • Запросы к базе данных возвращают результат в виде таблиц, которые тоже могут выступать как объект запросов;

Строки в реляционной базе данных неупорядочены - упорядочивание производится в момент формирования ответа на запрос.

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

Нормализация

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

Теоретики реляционных баз данных в процессе развития теории выявили и описали типичные примеры избыточности и способы их устранения. Нормальная форма -- формальное свойство отношения, которое характеризует степень избыточности хранимых данных и возможные проблемы. Наиболее известные и важные нормальные формы:

Первая нормальная форма (1НФ, 1NF) - Таблица находится в первой нормальной форме, если каждый её атрибут атомарен и все строки различны. Под выражением «атрибут атомарен» понимается, что атрибут может содержать только одно значение. Таким образом, не соответствуют 1NF таблицы, в полях которых могут храниться списки значений. Для приведения таблицы к 1NF обычно требуется разбить таблицу на несколько отдельных таблиц.

Вторая нормальная форма (2НФ, 2NF) - Таблица находится во второй нормальной форме, если она находится в первой нормальной форме, и при этом любой её атрибут, не входящий в состав первичного ключа, функционально полно зависит от первичного ключа. Функционально полная зависимость означает, что атрибут функционально зависит от всего первичного ключа, но при этом не находится в функциональной зависимости от какой-либо его части.

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

При решении практических задач в большинстве случаев третья нормальная форма является достаточной. Процесс проектирования реляционной базы данных, как правило, заканчивается приведением к 3NF.

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

SQL (Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования.SQL основывается на реляционной алгебре.Язык SQL делится на три части:

  • операторы определения данных (Data Definition Language, DDL)

  • операторы манипуляции данными (Data Manipulation Language, DML)

  • операторы определения доступа к данным (Data Control Language, DCL)

Преимущества

Независимость от конкретной СУБД

Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально закладывались на применение по меньшей мере нескольких СУБД (например: система электронного документооборота Documentum может работать как с Oracle Database, так и с Microsoft SQL Server и IBM DB2)

Наличие стандартов

Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка.

Недостатки

Несоответствие реляционной модели данных

SQL не является истинно реляционным языком.

  • Повторяющиеся строки

  • Неопределённые значения (nulls)

  • Явное указание порядка колонок слева направо

  • Колонки без имени и дублирующиеся имена колонок

  • Отсутствие поддержки свойства «=»

  • Использование указателей

  • Высокая избыточность

.QBE

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

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

Теоретической основой языка QBE является реляционное исчисление с переменными-доменами (однако в языке присутствуют и элементы исчисления кортежей). Язык QBE позволяет задавать сложные запросы к БД путем заполнения предлагаемой СУБД запросной формы (иногда также используют термин QBF – запрос по форме). Такой способ задания запросов обеспечивает высокую наглядность и не требует указания алгоритма выполнения операции — достаточно описать образец ожидаемого результата. В каждой из современных реляционных СУБД имеется свой вариант языка QBE.

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

С помощью запросов на языке QBE можно выполнять следующие основные oперации: - выборку данных; - вычисление над данными; - вставку новых записей; - удаление записей; - модификацию (изменение) данных.

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

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

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

СУБД

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

Функции:

управления данными во внешней и оперативной памяти компьютера

управления транзакциями

журнализации изменений БД

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

Компоненты

Ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию,

Процессор языка базы данных, обеспечивает оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода,

Подсистема поддержки времени исполнения, интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД

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

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

Основные функции СУБД:

1 управление данными во внешней памяти (на дисках);

2 управление данными в оперативной памяти с использованием дискового кэша;

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

4 поддержка языков БД (язык определения данных, язык манипулирования данными).

Компоненты:

ядро, которое отвечает за управление данными во внешней и оперативной памяти, и журнализацию,

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

подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]