Реферат Курсовая Конспект
Основные принципы организации баз данных - раздел Образование, Основные Принципы Организации Баз Данных ...
|
Основные принципы организации баз данных
Таким образом, если определены типы объектов (т.е. имена объектов и имена свойств объектов), типы связей между объектами и связи между атрибутами объектов, то определена логическая структура данных. На основании логической структуры данных определяется модель данных (сетевая, иерархическая, реляционная). Модель данных преобразуется в схему БД, а затем описывается на ЯОД.
Операции над данными
Операции над данными – это третья составляющая концептуальной схемы. Операции над данными выражаются средствами языка данных СУБД и могут изменять текущее состояние БД, но не могут изменить схему БД.
Операция обычно имеет две составляющих: действие, т.е. сам характер операции, и селекцию – принцип отбора данных, над которыми должно производиться действие.
Действие обычно означает выполнение одно из следующих манипуляций с данными или их комбинации:
- установку указателя текущей позиции в БД,
- выборку,
- включение,
- удаление,
- корректировку.
Действия могут выполняться над экземплярами записей, над свойствами объектов и над связями между объектами. Последнее действие применимо к графовым моделям.
Селекция может осуществляться посредством:
- указателя текущей позиции в БД,
- значений данных,
- связей между данными.
В первом случае доступным для выполнения действия оказывается текущий экземпляр записи. Это та запись, на которую установлен указательтекущей. После переустановки указателя текущей доступным может быть следующий, предыдущий, первый или последний экземпляры записей. Селекция по указателю текущей широко используется в .dbf–совместимых БД.
При селекции по значениям данных действие выполняется над теми экземплярами записей, поля которых имеют заданные значения.
Селекция посредством связи производится только в графовых моделях. При этом действие выполняется над экземплярами записей, находящимися в определенной логической связи с другими записями.
Если результатом выполнения операции является единственный экземпляр записи, то такая операция называется навигационной. Операция может выделять множество записей, объединенных в какую-либо подструктуру. Тогда операция называется спецификационной.
Каждая СУБД располагает средствами для выполнения навигационных и спецификационных операций над данными.
СУБД обычно располагают средствами для выполнения более сложных операций, называемых процедурами. Процедуры обычно выполняются автоматически при выполнении каких-либо определенных условий.
Процедуры могут использоваться для определения виртуальных данных, т.е. для вычисления значений таких свойств объектов, которые не хранятся непосредственно в БД. Так, например, виртуальным данным в БД, содержащей сведения о служащих, может являться возраст служащего. При необходимости возраст может быть рассчитан по дате рождения и текущей дате с помощью соответствующей процедуры. С помощью процедур могут рассчитываться суммы, определяться минимальные и максимальные значения и т.п.
Другой вид процедур – это процедуры, контролирующие целостность БД. Эти процедуры обычно сопровождаются уведомлением об их успешном или неуспешном выполнении.
Существуют процедуры, предназначенные для выполнения функций администрирования БД и обеспечивающие сбор статистики, контроль доступа к данным, безопасность и секретность и т.п.
Три модели данных
ПРЕДМЕТ ПРЕПОДАВАТЕЛЬ СТУДЕНТ
1 1 1
М
Теория реляционных БД
Пример
Определим отношение с именем МЕНЬШЕ на множестве целых чисел M= {1, 2, 3}. Декартово произведение M*M представляет собой множество кортежей <1,1>, <1, 2>, <1, 3>, <2, 1>, <2, 2>, <2, 3>, <3, 1>, <3, 2>, <3, 3>.
Отношению МЕНЬШЕ принадлежат те кортежи декартова произведения, у которых первый элемент меньше второго.
МЕНЬШЕ={ <1, 2>, <1, 3>, <2, 3>}.
Пример
Пусть множество M1 содержит имена детей одной семьи.
M1 = {Таня, Галя, Сережа}
Тогда отношение с именем БРАТ состоит из двух кортежей: <Сережа, Таня>, <Сережа, Галя>, а отношение СЕСТРА состоит из четырех кортежей: <Таня, Галя>, <Таня, Сережа>, <Галя, Таня>, <Галя, Сережа>.
Отношения, заданные на одном или двух множествах являются бинарными. Кортежи таких отношений содержат по два элемента.
Возможны n-местные или n-арные отношения, задаваемые более чем на двух множествах и содержащие кортежи длиной n.
Состояние реляционной БД можно описать как совокупность некоторых множеств М1, М2, ….., Мi, ….., Мn, на которых задан ряд отношений. Каждое отношение представляет собой подмножество кортежей из декартовых произведений определенных множеств. Множества, на которых задано конкретное отношение, называются несущими множествами для данного отношения.
Каждое множество образовано элементами одного типа. Это может быть, например, множество целых чисел (в нашем примере это множество М), множество имен (множество М1), множество названий городов, множество календарных дат и т.п. Следовательно, можно говорить о сортах или типах множеств. Каждый элемент каждого множества имеет имя. Это имя представляет собой константу. Поскольку множество не может содержать одинаковых элементов, то имя каждого элемента множества должно быть уникальным.
Основные понятия реляционной модели данных
При рассмотрении реляционной модели, основанной на понятии отношения (relation), оперирует терминами, пришедшими из математики.
Каждая таблица реляционной модели данных представляет собой отношение.Имя отношения - это имя таблицы. В отношении хранятся данные, описывающие экземпляры объекта определенного типа. На уровне хранения каждая таблица хранится в файледанных.
Совокупность имен отношений, используемых для описания модели данных, называется сигнатурой БД.
Столбцы таблицы являются атрибутами отношения. Атрибуты представляют собой свойства объекта данного типа. Каждый атрибут имеет имя соответствующего свойства. Количество атрибутов отношения (столбцов в таблице) определяет его местность или арность. На уровне хранения атрибут представляется полем записи соответствующего типа.
Кортеж отношения - это множество значений, содержащихся в строке таблицы. Каждый кортеж соответствует экземпляру объекта данного типа. На уровне хранения кортеж – это экземпляр записи определенного типа.
Таким образом, отношение - это совокупность кортежей, т.е. таблица со всеми своими строками.
Множество значений, которые может принимать атрибут в отношении, называется доменом. Другими словами, домен - это множество всех значений, которые могут присутствовать в данном столбце таблицы. Совокупность всех доменов определяет состояние БД.
Рассмотренная выше реляционная модель данных содержит три базовых отношения. Отношение СТУДЕНТ – имеет арность 4 и содержит 4 кортежа, отношение ПРЕПОДАВАТЕЛЬ – бинарное и содержит 3 кортежа, отношение ПРЕДМЕТ – тернарное и содержит 3 кортежа. Связующее отношение СТУДЕНТ_ПРЕПОДАВАТЕЛЬ – бинарное.
Каждый из атрибутов трех базовых отношений модели задан на определенном домене. Это множество номеров зачетных книжек, множество фамилий студентов, множество номеров групп, множество наименований предметов и т.д., следовательно, число доменов равно числу атрибутов базовых отношений.
В общем случае на одном и том же домене могут быть заданы несколько атрибутов отношений. Так, например, на домене названий городов могут быть заданы следующие атрибуты: место рождения студента, место проживания во время обучения, место работы.
Вторая нормальная форма
Отношение, имеющее составной первичный ключ, находится во 2НФ, если каждый из не ключевых атрибутов функционально полно зависит от всего первичного ключа.
Пусть в проектируемой БД помимо перечисленных выше сведений о поставках необходимо хранить также следующие сведения: имена поставщиков; названия городов, где расположены поставщики; стоимость перевозок единицы груза из тех городов, откуда производятся поставки (атрибут Тариф). Создадим отношение ПОСТАВКИ2
Третья нормальная форма
Операции над отношениями
Над отношениями реляционной БД можно выполнять операции реляционной алгебры и реляционного исчисления. Запрос к БД можно записать в виде формулы, результат вычисления которой представляет собой ответ на этот запрос. Поэтому все манипуляции с данными можно свести к вычислению соответствующих формул. Языки данных реляционных СУБД позволяют записывать эти формулы с помощью операторов языка данных конкретной СУБД. В различных СУБД реализована определенная часть операций над отношениями, определяющая возможности данной СУБД и сложность составления запросов к БД.
Операции реляционной алгебры можно разделить на две группы.
Первую группу составляют операции над множествами. Поскольку отношение представляет собой множество (множество кортежей), то над отношениями можно выполнять теоретико-множественные операции. К ним относятся операции объединения, пересечения, разности и декартова произведения.
Вторую группу составляют специальные операции над отношениями: сцепление, композиция и проекция. При составлении запросов наиболее часто используются операции сцепления (соединения) отношений и проекции отношения на его компоненты.
Теоретико-множественные операции
При выполнении этих операций над двумя отношениями последние должны быть совместимы по структуре. Совместимость структур означает совместимость по атрибутам отношений (атрибуты имеют одинаковый смысл) и совместимость типов соответствующих доменов. Частным случаем совместимости является идентичность. Такие отношения имеют одинаковую арность и одинаковые имена атрибутов.
Пусть имеются два идентичных бинарных отношения с именами R и S, состоящие из атрибутов А1 и А2.
Объединением отношений R и S (R È S) называется новое отношение, состоящее из кортежей <x, y>, принадлежащих либо отношению R, либо отношению S.
R | S | RÈS | RÇS | R S | |||||||||
A 1 | A 2 | A 1 | A 2 | A 1 | A 2 | A 1 | A 2 | A 1 | A 2 | ||||
a | b | p | q | a | b | a | b | l | k | ||||
c | d | c | d | c | d | c | d | m | p | ||||
l | k | a | b | l | k | ||||||||
m | p | l | n | m | p | ||||||||
p | q | ||||||||||||
l | n |
Пересечением отношений R и S (RÇS ) называется новое отношение, состоящее из кортежей <x, y>, принадлежащих одновременно отношениям R и S.
Разностью отношений R и S (R S) называется отношение, кортежи которого принадлежат R но не принадлежат S.
Операция декартова произведения рассматривалась нами выше.
Специальные операции над отношениями
Пусть имеются два бинарных отношения с именами R и S. Отношение R состоит из атрибутов А1 и А2, отношение S - из атрибутов А2 и А3.
Сцепление отношений
Можно выполнить операцию сцепления двух отношений по одинаковым значениям одноименных атрибутов Ai. Атрибуты, по которым выполняется сцепление, должны быть определены на одном и том же домене. Операцию сцепления обозначим символом *.
Сцеплением бинарных отношений R и S называется новое отношение R*S, состоящее из кортежей <x, y, z>, для которых кортеж <x, y> принадлежит R, а <y, z> принадлежит S.
Пример
Определим результат выполнения операции сцепления отношений R и S, атрибуты которого А2 определены на одном и том же домене. Это значит, что если в столбце с именем А2 таблицы Rсодержатся, например, названия городов, то и в столбце А2 таблицы S также содержатся названия городов.
Проекция отношения на его компоненты
Проекцией отношения R на его i-ю компоненту (атрибут Аi ) называется множество, состоящее из различных значений этого атрибута. Операция проекции обозначается R [Аi].
Пример
Найдем проекцию отношения R на его атрибут А2. В результате получим множество {b, d, q}. Иными словами, результатом проекции является множество различных значений, образующих столбец А2 таблицы R.
Можно выполнять операцию проекции на несколько компонент.
Использование реляционной алгебры для составления
Языки реляционных БД
Запрос 1
Сообщить название фирмы-поставщика П1
SELECT ПОСТАВЩИК WHERE П# = 'П1' GIVING TEMP1
PROJECT TEMP1 OVER Имя поставщика GIVING RESULT
Первое предложение формирует промежуточную таблицу TEMP1, второе предложение формирует результирующую таблицу RESULT. Результаты выполнения каждого предложения в точности соответствуют результатам выполнения операций, рассмотренным в предыдущем параграфе.
Запрос 2
В каком количестве поставляются изделия И2?
SELECT ПОСТАВКИ WHERE И# = 'И2' GIVING TEMP1
PROJECT TEMP1 OVER Кол GIVING RESULT
Запрос 3
Сколько изделий И2 поставляет фирма Заря?
SELECT ПОСТАВЩИК WHERE Имя поставщика = 'Заря' GIVING TEMP1
JOIN TEMP1 AND ПОСТАВКИ OVER П# GIVING TEMP2
SELECT TEMP2 WHERE И# = 'И2' GIVING TEMP3
PROJECT TEMP3 OVER Кол GIVING RESULT
Запрос 5
Добавить в отношение ПОСТАВЩИК кортеж {П4, Победа, Пенза}
ПОСТАВЩИК UNION {П4, Победа, Пенза} GIVING ПОСТАВЩИК
Язык SQL - общие сведения
Язык SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры таблиц), и над данными (выборка, изменение, добавление, удаление данных). Он позволяет выполнять и некоторые дополнительные операции. Язык не содержит операторов управления и ввода-вывода, операторов организации подпрограмм и т.п. Поэтому язык SQL автономно не используется, он может работать только в среде конкретной СУБД.
SQL был создан и впервые использован в 1981 г. С тех пор появились различные версии языка, однако основные принципы составления запросов, основные операторы и правила их выполнения практически одинаковы для всех СУБД. В настоящее время принят международный стандарт SQL - SQL-92. Этот стандарт представляет собой обобщение всех известных его реализаций. Это означает, что ядро стандарта содержит операции, применяемые практически во всех известных коммерческих версиях языка, а полный стандарт включает усовершенствования, которые некоторым производителям еще только предстоит реализовать.
Из реляционной алгебры в этот стандарт включены операторы для некоторых операций над множествами, а также операторы, выполняющие над отношениями основные реляционные операции: выборку SELECT, соединение JOIN и проекцию. В языке также используется аппарат реляционного исчисления.
– Конец работы –
Используемые теги: основные, нципы, организации, баз, данных0.082
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Основные принципы организации баз данных
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов