Разделы презентаций


Банки данных. Базы данных. Модели данных. СУБД

Содержание

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

Слайды и текст этой презентации

Слайд 1Банки и базы данных. Модели данных. Системы управления базами данных
к.т.н.

доцент Зубарев И.В. Кафедра электропривода, автоматики и управления в технических

системах (ЭАУТС)
Банки и базы данных. Модели данных. Системы управления базами данныхк.т.н. доцент Зубарев И.В. Кафедра электропривода, автоматики и

Слайд 2Исторически сложившееся развитие вычислительных систем обусловило необходимость хранения в электронном

(машиночитаемом) виде все большего количества информации.
По мере развития систем

баз данных, менялись принципы организации данных в них: первоначально данные представлялись на основе иерархической, а в последствии сетевой модели.
В конце 1970-х – начале 1980-х годов начали появляться первые реляционные продукты.

Введение

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

Слайд 3Система баз данных

Система баз данных

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

С точки зрения прикладной программы файл - это именованная область

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

Файловые системы

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

Слайд 5При разметке магнитного диска каждая дорожка размечается на одно и

то же количество блоков таким образом, что в каждый блок

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

Структуры файлов

При разметке магнитного диска каждая дорожка размечается на одно и то же количество блоков таким образом, что

Слайд 6Все современные файловые системы поддерживают многоуровневое именование файлов за счет

поддержания во внешней памяти дополнительных файлов со специальной структурой -

каталогов.
Полное имя файла состоит из списка имен каталогов плюс имя файла в каталоге, непосредственно содержащем данный файл.

Именование файлов

Все современные файловые системы поддерживают многоуровневое именование файлов за счет поддержания во внешней памяти дополнительных файлов со

Слайд 7Система баз данных – это компьютеризированная система основная задача которой

– хранение информации и предоставление доступа к ней по требованию.


Понятие БД и СУБД

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

Слайд 8Система баз данных включает в себя:
данные, непосредственно сохраняемые в базе

данных;
аппаратное обеспечение;
программное обеспечение;
пользователей:
прикладные программисты;
конечные пользователи;
администраторы баз данных.
Система баз данных

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

Слайд 9СУБД – это специализированное программное обеспечение, предоставляющее пользователю базы данных

возможность работать с ней, не вникая в детали хранения информации

на уровне программного обеспечения.

Понятие СУБД

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

Слайд 10Существует 3 уровня архитектуры СУБД :
Внутренний уровень - наиболее близкий

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

- является промежуточным между двумя первыми.

Уровни абстракции в СУБД. Функции абстрактных данных

Существует 3 уровня архитектуры СУБД :Внутренний уровень - наиболее близкий к физическому хранению.Внешний уровень - наиболее близкий

Слайд 11Определение данных.
Обработка данных.
Безопасность и целостность данных.
Восстановление данных и дублирование.
Словарь

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


Определение данных. Обработка данных.Безопасность и целостность данных.Восстановление данных и дублирование.Словарь данных.Производительность. СУБД должна выполнять свои функции с

Слайд 12Экспертная система – система искусственного интеллекта, включающая знания об определенной

слабо структурированной и трудно формализуемой узкой предметной области и способная

предлагать и объяснять пользователю разумные решения.

Экспертные системы и базы знаний

Экспертная система – система искусственного интеллекта, включающая знания об определенной слабо структурированной и трудно формализуемой узкой предметной

Слайд 13База знаний – семантическая модель, описывающая предметную область и позволяющая

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

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

Экспертные системы и базы знаний

База знаний – семантическая модель, описывающая предметную область и позволяющая отвечать на такие вопросы из этой предметной

Слайд 14Классификация баз данных

Классификация баз данных

Слайд 15иерархическая БД – база данных, в которой связь между элементами

осуществляется по типу подчинения и схематично изображается в виде дерева.

Иерархия начинается с корневого узла. Каждый узел имеет только одного «предка» и N «потомков».
(+) простота и однозначность представления, легкость адресации
(–) существенная зависимость от программно-аппаратных средств
Пример: дерево папок Windows, каталог товаров Интернет

1) Классификация БД по модели представления данных:

Прайс-лист:

Продавец (уровень 1)

Товар (уровень 2)

Модель (уровень 4)

Цена (уровень 5)

Изготовитель (уровень 3)

$306

$312

S93

X93B

Sony

Phillips

Samsung

Мониторы

Принтеры

Кей

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

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

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

линиями со стрелками.
(+) теоретически возможны сколь угодно сложные связи между объектами;
(–) сложность реализации, существенная зависимость от программно-аппаратных средств
Пример: служба WWW – документы, произвольно связанные ссылками.

1) Классификация БД по модели представления данных:

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

Слайд 17реляционная БД, представление данных в виде системы взаимосвязанных таблиц. Каждый

объект системы описывается в виде таблицы с набором свойств (атрибутов),

а взаимосвязь между объектами – связями между таблицами.
(+) простота; относительная независимость от программных и аппаратных средств;
(–) существенная зависимость скорости обработки от объема БД
Использование: все существующие СУБД

1) Классификация БД по модели представления данных:






реляционная БД, представление данных в виде системы взаимосвязанных таблиц. Каждый объект системы описывается в виде таблицы с

Слайд 18объектно-ориентированная БД - БД в которой, данные представлены в виде

абстрактных объектов, наделённых свойствами, в виде неструктурированных данных, и использующие

методы взаимодействия с другими объектами окружающего мира.

1) Классификация БД по модели представления данных:

объектно-ориентированная БД - БД в которой, данные представлены в виде абстрактных объектов, наделённых свойствами, в виде неструктурированных

Слайд 19локальные (персональные) - БД и СУБД находятся на одном компьютере

и не может работать по сети;
сетевые (интегрированные) - БД и

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

2) Классификация БД по организации хранения данных и обращения к ним :

локальные (персональные) - БД и СУБД находятся на одном компьютере и не может работать по сети;сетевые (интегрированные)

Слайд 20документальные,
фактографические,
лексикографические.
Среди документальных БД различают библиографические, реферативные и

полнотекстовые.
К лексикографическим БД относятся различные словари (классификаторы, многоязычные словари,

словари основ слов и т. п.).

3) Классификация БД по типу хранимой информации:

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

Слайд 21Избыточность информации - превышение количества информации, используемой для передачи или

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

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

Свойства БД

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

Слайд 22Система управления базами данных (СУБД) – это комплекс языковых и

программных средств, предназначенный для создания, ведения и совместного использования БД

многими пользователями.
Место хранения данных и метаданные
Менеджер памяти
Менеджер транзакций

Компоненты СУБД

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

Слайд 23Американским комитетом по стандартизации ANSI (American National Standards Institute) предложена

трехуровневая система организации БД.
Уровень внешних моделей.
Концептуальный уровень.
Физический уровень.
Логическое и физическое

описание данных
Американским комитетом по стандартизации ANSI (American National Standards Institute) предложена трехуровневая система организации БД.Уровень внешних моделей.Концептуальный уровень.Физический

Слайд 24Компоненты банка данных

Компоненты банка данных

Слайд 25Основным требованием к инфологической модели, вытекающим из ее назначения, является

требование адекватного отображения предметной области. ИЛМ должна быть непротиворечивой.

Требования,

предъявляемые к инфологической модели
Основным требованием к инфологической модели, вытекающим из ее назначения, является требование адекватного отображения предметной области. ИЛМ должна

Слайд 26Компоненты инфологической модели

Компоненты инфологической модели

Слайд 27Классом объектов называют совокупность объектов, обладающих одинаковым набором свойств.
При отражении

в информационной системе каждый объект представляется своим идентификатором, который отличает

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

ПОСТРОЕНИЕ МОДЕЛИ “ОБЪЕКТ — СВОЙСТВО — ОТНОШЕНИЕ”

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

Слайд 28Связи «объект - свойство»

Связи «объект - свойство»

Слайд 29Сущность - это реальный или представляемый объект, информация о котором

должна сохраняться и быть доступна. В диаграммах ER-модели сущность представляется

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

Модель сущность-связь

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

Слайд 30Связь - это графически изображаемая ассоциация, устанавливаемая между двумя сущностями.

Эта ассоциация всегда является бинарной и может существовать между двумя

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

Модель сущность-связь

Связь - это графически изображаемая ассоциация, устанавливаемая между двумя сущностями. Эта ассоциация всегда является бинарной и может

Слайд 31Три типа бинарных связей

Три типа бинарных связей

Слайд 32Подтипы и супертипы сущностей. Как в языках программирования с развитыми

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

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

Более сложные элементы модели сущность-связь

Подтипы и супертипы сущностей. Как в языках программирования с развитыми типовыми системами (например, в языках объектно-ориентированного программирования),

Слайд 33Каскадные удаления экземпляров сущностей. Некоторые связи бывают настолько сильными (конечно,

в случае связи "один-ко-многим"), что при удалении опорного экземпляра сущности

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

Более сложные элементы модели сущность-связь

Каскадные удаления экземпляров сущностей. Некоторые связи бывают настолько сильными (конечно, в случае связи

Слайд 34Диаграммы сущность-связь

Диаграммы сущность-связь

Слайд 355. После появления реляционных систем большинство ранних систем было оснащено

"реляционными" интерфейсами. Однако в большинстве случаев это не сделало их

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

Общие характеристики ранних систем

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

2. Все ранние системы не основывались на каких-либо абстрактных моделях. Понятие модели данных фактически вошло в обиход специалистов в области БД только вместе с реляционным подходом. Абстрактные представления ранних систем появились позже на основе анализа и выявления общих признаков у различных конкретных систем.

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

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

5. После появления реляционных систем большинство ранних систем было оснащено

Слайд 36К числу наиболее известных и типичных представителей таких систем относятся

Datacom/DB компании Applied Data Research, Inc. (ADR), ориентированная на использование на машинах основного класса

фирмы IBM, и Adabas компании Software AG.
Организация доступа к данным на основе инвертированных списков используется практически во всех современных реляционных СУБД, но в этих системах пользователи не имеют непосредственного доступа к инвертированным спискам (индексам).

Системы, основанные на инвертированных списках

К числу наиболее известных и типичных представителей таких систем относятся Datacom/DB компании Applied Data Research, Inc. (ADR), ориентированная на использование на

Слайд 37В базе данных, организованной с помощью инвертированных списков хранимые таблицы

и пути доступа к ним видны пользователям. При этом:
Строки

таблиц упорядочены системой в некоторой физической последовательности.
Физическая упорядоченность строк всех таблиц может определяться и для всей БД (так делается, например, в Datacom/DB).
Для каждой таблицы можно определить произвольное число ключей поиска, для которых строятся индексы. Эти индексы автоматически поддерживаются системой, но явно видны пользователям.

Структуры данных на инвертированных списках

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

Слайд 38Поддерживаются два класса операторов:
Операторы, устанавливающие адрес записи, среди которых:


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

пути доступа);
операторы, находящие запись в терминах относительной позиции от предыдущей записи по некоторому пути доступа.
Операторы над адресуемыми записями

Манипулирование данными на инвертированных списках

Поддерживаются два класса операторов: Операторы, устанавливающие адрес записи, среди которых: прямые поисковые операторы (например, найти первую запись

Слайд 39Типичным представителем (наиболее известным и распространенным) является Information Management System

(IMS) фирмы IBM. Первая версия появилась в 1968 г. До

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

Иерархическая модель

Типичным представителем (наиболее известным и распространенным) является Information Management System (IMS) фирмы IBM. Первая версия появилась в

Слайд 40Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из

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

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

Слайд 41Автоматически поддерживается целостность ссылок между предками и потомками. Основное правило:

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

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

Ограничения целостности в иерархической модели

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

Слайд 42Типичным представителем является Integrated Database Management System (IDMS) компании Cullinet Software, Inc., предназначенная для

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

операционных систем. Архитектура системы основана на предложениях Data Base Task Group (DBTG) Комитета по языкам программирования Conference on Data Systems Languages (CODASYL), организации, ответственной за определение языка программирования Кобол. Отчет DBTG был опубликован в 1971г., а в 70-х годах появилось несколько систем, среди которых IDMS.

Сетевая модель

Типичным представителем является Integrated Database Management System (IDMS) компании Cullinet Software, Inc., предназначенная для использования на машинах основного класса фирмы IBM

Слайд 43Сетевой подход к организации данных является расширением иерархического. В иерархических

структурах запись-потомок должна иметь в точности одного предка; в сетевой

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

Сетевые структуры данных

Каждый экземпляр типа P является предком только в одном экземпляре L;
Каждый экземпляр C является потомком не более, чем в одном экземпляре L.

Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. Для данного типа связи L с типом записи предка P и типом записи потомка C должны выполняться следующие два условия:

Сетевая БД состоит из набора экземпляров каждого типа записи и набора экземпляров каждого типа связи.

Сетевой подход к организации данных является расширением иерархического. В иерархических структурах запись-потомок должна иметь в точности одного

Слайд 44Сильные места ранних СУБД:
Развитые средства управления данными во внешней

памяти на низком уровне;
Возможность построения вручную эффективных прикладных систем;


Возможность экономии памяти за счет разделения подобъектов (в сетевых системах).
Недостатки:
Слишком сложно пользоваться;
Фактически необходимы знания о физической организации;
Прикладные системы зависят от этой организации;
Их логика перегружена деталями организации доступа к БД.

Основные достоинства и недостатки ранних СУБД

Сильные места ранних СУБД: Развитые средства управления данными во внешней памяти на низком уровне; Возможность построения вручную

Слайд 45Теоретической основой этой модели стала теория отношений, основу которой заложили

два логика — американец Чарльз Содерс Пирс (1839-1914) и немец

Эрнст Шредер (1841-1902).
Эдгар Кодд предложил использовать для обработки данных аппарат теории множеств (объединение, пересечение, разность, декартово произведение). Он показал, что любое представление данных сводится к совокупности двумерных таблиц особого вида, известного в математике как отношение – relation.

История реляционной модели

Теоретической основой этой модели стала теория отношений, основу которой заложили два логика — американец Чарльз Содерс Пирс

Слайд 46присущая этим системам некоторая ограниченность (прямое следствие простоты) при использовании

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

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

Недостатки реляционной модели

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

Слайд 47Доменом называется множество атомарных значений одного и того же типа.
Вхождение

домена в отношение принято называть атрибутом.
Схема отношения - это именованное

множество пар {имя атрибута, имя домена (или типа, если понятие домена не поддерживается)}
Кортеж, соответствующий данной схеме отношения, - это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения.

Основные определения

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

Слайд 48Отношение - это множество кортежей, соответствующих одной схеме отношения. Иногда,

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

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

Основные определения

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

Слайд 49Отношение – Таблица (иногда Файл),
Кортеж – Строка (иногда Запись),
Атрибут –

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

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

Эквиваленты использующиеся в теории реляционных БД

Отношение – Таблица (иногда Файл),Кортеж – Строка (иногда Запись),Атрибут – Столбец, Поле. Реляционная база данных – это

Слайд 50Во-первых, значения в ячейках таблицы должны быть одиночными — ни

повторяющиеся группы, ни массивы не допускаются
Строки имеют фиксированное число полей

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

Ограничения

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

Слайд 51Все записи в столбце должны быть одного типа Например, если

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

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

Ограничения

Все записи в столбце должны быть одного типа Например, если третий столбец первой строки таблицы содержит номер

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

и практически любые их сочетания. Среди них наиболее распространены SQL

(Structured Query Language – структуризованный язык запросов) и QBE (Quere-By-Example – запросы по образцу) [3, 5]. Оба относятся к языкам очень высокого уровня, с помощью которых пользователь указывает, какие данные необходимо получить, не уточняя процедуру их получения.
С помощью единственного запроса на любом из этих языков можно соединить несколько таблиц во временную таблицу и вырезать из нее требуемые строки и столбцы (селекция и проекция).

Языки манипулирования данными

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

Слайд 53Шаг 1. Каждая простая сущность превращается в таблицу. Простая сущность

- сущность, не являющаяся подтипом и не имеющая подтипов. Имя

сущности становится именем таблицы.
Шаг 2. Каждый атрибут становится возможным столбцом с тем же именем; может выбираться более точный формат. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, - не могут.
Шаг 3. Компоненты уникального идентификатора сущности превращаются в первичный ключ таблицы. Если имеется несколько возможных уникальных идентификатора, выбирается наиболее используемый. Если в состав уникального идентификатора входят связи, к числу столбцов первичного ключа добавляется копия уникального идентификатора сущности, находящейся на дальнем конце связи (этот процесс может продолжаться рекурсивно). Для именования этих столбцов используются имена концов связей и/или имена сущностей.

Получение реляционной схемы из ER-схемы

Шаг 1. Каждая простая сущность превращается в таблицу. Простая сущность - сущность, не являющаяся подтипом и не

Слайд 54Шаг 4. Связи многие-к-одному (и один-к-одному) становятся внешними ключами. Т.е.

делается копия уникального идентификатора с конца связи "один", и соответствующие

столбцы составляют внешний ключ. Необязательные связи соответствуют столбцам, допускающим неопределенные значения; обязательные связи - столбцам, не допускающим неопределенные значения.
Шаг 5. Индексы создаются для первичного ключа (уникальный индекс), внешних ключей и тех атрибутов, на которых предполагается в основном базировать запросы.
Шаг 6. Если в концептуальной схеме присутствовали подтипы, то возможны два способа:
все подтипы в одной таблице (а)
для каждого подтипа - отдельная таблица (б)
Шаг 7. Имеется два способа работы при наличии исключающих связей:
общий домен (а)
явные внешние ключи (б)

Получение реляционной схемы из ER-схемы

Шаг 4. Связи многие-к-одному (и один-к-одному) становятся внешними ключами. Т.е. делается копия уникального идентификатора с конца связи

Слайд 55Реляционная алгебра в том виде, в котором она была определена

Эдгаром Коддом, состоит из восьми операторов, составляющих две группы по

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

Реляционная алгебра

Реляционная алгебра в том виде, в котором она была определена Эдгаром Коддом, состоит из восьми операторов, составляющих

Слайд 56Объединение (union)- возвращает отношение, содержащее все кортежи, которые принадлежат либо

одному из двух заданных отношений, либо им обоим
Пересечение (intersect) -

возвращает отношение, содержащее все кортежи, которые принадлежат одновременно двум заданным отношениям
Разность (minus) - возвращает отношение, содержащее все кортежи, которые принадлежат первому из двух заданных отношений и не принадлежат второму
Произведение (times)- возвращает отношение, содержащее все возможные кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум заданным отношениям

Традиционные операции

Объединение (union)- возвращает отношение, содержащее все кортежи, которые принадлежат либо одному из двух заданных отношений, либо им

Слайд 57Выборка - возвращает отношение, содержащее все кортежи из заданного отношения,

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

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

Специальные операции

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

Слайд 58Соединение - возвращает отношение, содержащее все возможные кортежи, которые представляют

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

условии, что в этих двух комбинируемых кортежах присутствуют одинаковые значения в одном или нескольких общих для исходных отношений атрибутах (причем эти общие значения в результирующем кортеже появляются один раз, а не дважды)
Произведение - Возвращает отношение, содержащее все возможные кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум заданным отношениям

Специальные операции

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

Слайд 59Пусть А, В и С – произвольные реляционные выражения (дающие

совместимые по типу отношения). Тогда для операции объединения:
(A UNION В)

UNION С ≡ А UNION (В UNION С) (свойство ассоциативности)
А UNION B ≡ В UNION A (свойство коммутативности).
Аналогично свойства ассоциативности и коммутативности определяются для операций пересечения и соединения.

Свойства операций реляционной алгебры

Пусть А, В и С – произвольные реляционные выражения (дающие совместимые по типу отношения). Тогда для операции

Слайд 60Реляционное исчисление является прикладной ветвью формального механизма исчисления предикатов первого

порядка. Базисными понятиями исчисления являются понятие переменной с определенной для

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

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

Реляционное исчисление является прикладной ветвью формального механизма исчисления предикатов первого порядка. Базисными понятиями исчисления являются понятие переменной

Слайд 61Реляционная алгебра в явном виде предоставляет набор операций (соединение, объединение,

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

в базе данных из опреде­ленных отношений построить некоторое требуемое отношение, а реляционное исчисление просто представляет систему обозначений для определения требуемого отношения в терминах данных отношений. Например, рассмотрим запрос "Выбрать номера поставщиков и названия городов, в которых находятся поставщики детали с номером 'Р2".

Разница между реляционной алгеброй и реляционным исчислением

Реляционная алгебра в явном виде предоставляет набор операций (соединение, объединение, проекция и т.д.), которые можно использовать, чтобы

Слайд 62Сначала выполнить соединение отношения поставщиков S и отношения поставок SP

по атрибуту S#.
Далее выбрать из результата этого соединения кортежи с

номером детали 'Р2'.
И наконец выполнить для результата этой выборки операцию проекции по атрибутам S# и CITY.

Алгебраическая версия этого запроса

Сначала выполнить соединение отношения поставщиков S и отношения поставок SP по атрибуту S#.Далее выбрать из результата этого

Слайд 63Получить атрибуты Si и CITY для таких поставщиков, для которых

в отношении SP существует запись о поставке с тем же

значением атрибута S# и со значением атрибута Р#, равным 'Р2'.

Этот же запрос в терминах реляционного исчисления

Получить атрибуты Si и CITY для таких поставщиков, для которых в отношении SP существует запись о поставке

Слайд 64На самом деле реляционная алгебра и реляционное исчисление логически эквивалентны.

Каждому выражению в алгебре соответствует эквивалентное выражение в исчислении, и

точно так каждому выражению в исчислении соответствует эквивалентное выражение в алгебре. Это означает, что между ними существует взаимнооднозначное соответствие, а различия связаны лишь с разными стилями выражения: исчисление ближе к естественному языку, а алгебра — к языку программирования.

Вывод

На самом деле реляционная алгебра и реляционное исчисление логически эквивалентны. Каждому выражению в алгебре соответствует эквивалентное выражение

Слайд 65Обратимся к схеме отношения
ПОСТАВЩИКИ (НАЗВ_ПОСТ, АДРЕС_ПОСТ, ТОВАР, ЦЕНА)
В связи с

этой схемой возникает несколько проблем:
Зачем нужна нормализация
1. Избыточность. Адрес поставщика

повторяется для каждого поставляемого товара.

2. Потенциальная противоречивость (аномалии обновления). Вследствие избыточности мы можем обновлять адрес поставщика в одном кортеже, оставляя его неизменным в другом.

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

4. Аномалии удаления. Обратная проблема возникает при необходимости удаления всех товаров, поставляемых данным поставщиком, вследствие чего мы непреднамеренно утрачиваем его адрес.

Обратимся к схеме отношенияПОСТАВЩИКИ (НАЗВ_ПОСТ, АДРЕС_ПОСТ, ТОВАР, ЦЕНА)В связи с этой схемой возникает несколько проблем:Зачем нужна нормализация1.

Слайд 66Отношения можно классифицировать по типам аномалий модификации, которым они подвержены.

Кто-то находил аномалию, классифицировал ее и думал, как предотвратить ее

возникновение. Каждый раз, когда это происходило, критерии построения отношений совершенствовались.
В своей работе, последовавшей за эпохальной статьей 1970 г., Кодд и другие определили первую, вторую и третью нормальные формы (1НФ, 2НФ и ЗНФ). Позднее была введена нормальная форма Бойса-Кодда (НФБК), а затем были определены четвертая и пятая нормальные формы.

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

Отношения можно классифицировать по типам аномалий модификации, которым они подвержены. Кто-то находил аномалию, классифицировал ее и думал,

Слайд 67Основные свойства нормальных форм:
каждая следующая нормальная форма в некотором

смысле лучше предыдущей;
при переходе к следующей нормальной форме свойства

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

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

Основные свойства нормальных форм: каждая следующая нормальная форма в некотором смысле лучше предыдущей; при переходе к следующей

Слайд 68Нормализация — это процесс преобразования отношения, имеющего некоторые недостатки, в

отношение, которое этих недостатков не имеет. Что еще более важно,

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

Определение нормализации

Нормализация — это процесс преобразования отношения, имеющего некоторые недостатки, в отношение, которое этих недостатков не имеет. Что

Слайд 69Функциональная зависимость (functional dependency) — это связь между атрибутами. Говоря

более общим языком, атрибут Y функционально зависит от атрибута X,

если значение X определяет значение Y.
Стоимость = Цена х Количество
Функциональные зависимости обозначаются следующим образом:
НомерСтудента > Специальность
СерийныйНомерКомпьютера > ОбъемПамяти
Атрибуты по правую сторону от стрелки называются детерминантами (determinants)

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

Функциональная зависимость (functional dependency) — это связь между атрибутами. Говоря более общим языком, атрибут Y функционально зависит

Слайд 70О любой таблице данных, удовлетворяющей определению отношения, говорят, что она

находится в первой нормальной форме (first normal form, 1NF):
Ячейки таблицы

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

1-я нормальная форма

О любой таблице данных, удовлетворяющей определению отношения, говорят, что она находится в первой нормальной форме (first normal

Слайд 71Отношение находится во второй нормальной форме, если все его неключевые

атрибуты зависят от всего ключа. В соответствии с этим определением,

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

2-я нормальная форма

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

Слайд 72Отношение находится в третьей нормальной форме, если оно находится во

второй нормальной форме и не имеет транзитивных зависимостей.

3-я нормальная

форма
Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и не имеет транзитивных

Слайд 73Отношение находится в НФБК, если каждый детерминант является ключом-кандидатом
Нормальная форма

Бойса-Кодда

Отношение находится в НФБК, если каждый детерминант является ключом-кандидатомНормальная форма Бойса-Кодда

Слайд 74Отношение находится в четвертой нормальной форме, если оно находится в

НФБК и не имеет много.тачных зависимостей.
4-я нормальная форма

Отношение находится в четвертой нормальной форме, если оно находится в НФБК и не имеет много.тачных зависимостей. 4-я

Слайд 75Пятая нормальная форма (fifth normal form, 5NF) связана с зависимостями,

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

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

5-я нормальная форма

Пятая нормальная форма (fifth normal form, 5NF) связана с зависимостями, которые имеют несколько неопределенный характер. Речь здесь

Слайд 76В 1981 г. Фагин опубликовал важную статью, в которой он

определил доменно-ключевую нормальную форму (domain/key normal form, DKNFI. Он показал,

что отношение в ДКНФ не имеет аномалий модификации и, более того, любое отношение, не имеющее аномалий модификации, должно находиться в ДКНФ.
Это открытие положило конец введению нормальных форм, и теперь в нормальных формах более высокого порядка нет необходимости* — по крайней мере, для устранения аномалий модификации.

Доменно-ключевая нормальная форма

В 1981 г. Фагин опубликовал важную статью, в которой он определил доменно-ключевую нормальную форму (domain/key normal form,

Слайд 77Разработка, в основном, шла в отделениях фирмы IBM (языки ISBL,

SQL, QBE) и университетах США (PIQUE, QUEL). Последний создавался для

СУБД INGRES (Interactive Graphics and Retrieval System), которая была разработана в начале 70-х годов в Университете шт. Калифорния и сегодня входит в пятерку лучших профессиональных СУБД. Сегодня из всех этих языков полностью сохранились и развиваются QBE (Query-By-Example - запрос по образцу) и SQL, а из остальных взяты в расширение внутренних языков СУБД только наиболее интересные конструкции

История SQL

Разработка, в основном, шла в отделениях фирмы IBM (языки ISBL, SQL, QBE) и университетах США (PIQUE, QUEL).

Слайд 78В начале 70-х годов плодотворный труд исследователя из IBM доктора

Кодда (Е. F. Codd) привел к созданию продукта, связанного с

реляционной моделью данных под названием SEQUEL (Structured English Query Language, структурированный английский язык для за­просов), который в 1980 г. был переименован в SQL (Structured Query Language, струк­турированный язык запросов).

История SQL

В начале 70-х годов плодотворный труд исследователя из IBM доктора Кодда (Е. F. Codd) привел к созданию

Слайд 79PL/SQL. Используется в Oracle. PL/SQL – это сокращение от Procedural

Language/SQL. Он во многом похож на язык Ada.
Transact-SQL. Используется в

Microsoft SQL Server и Sybase Adaptive Server. По мере того как Microsoft и Sybase все больше отходят от общей платформы, которую они исполь­зовали в начале 90-х годов, их реализации Transact-SQL также подвергаются дивергенции.

Некоторые популярные диалекты SQL:

PL/pgSQL. Название диалекта и расширений SQL, реализованных в PostgreSQL. Является сокра­щением от Procedural Language/postgreSQL.
SQLPL. Самый новый диалект от DB2 (SQLProcedural Language). Основан на стандартных операторах управления SQL. Большинство других диалектов предшествовало стандарту, и это означает, что вы найдете в них массу отличий от стандарта SQL.

PL/SQL. Используется в Oracle. PL/SQL – это сокращение от Procedural Language/SQL. Он во многом похож на язык

Слайд 80независимость от конкретных СУБД. Если при создании БД не использовались

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

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

Достоинства языка SQL:

SQL обладает высокоуровневой структурой, напоминающей английский язык.
SQL позволяет создавать различные представления данных для различных пользователей;
SQL является полноценным языком для работы с БД;
стандарты языка SQL. Официальный стандарт языка SQL опубликован ANSI и ISO в 1989 году и значительно расширен в 1992 году.

независимость от конкретных СУБД. Если при создании БД не использовались нестандартные возможности языка SQL предоставляемые некоторой СУБД,

Слайд 81Идентификаторы. Представляют собой пользовательские или системные имена объектов баз дан­ных,

таких, как база данных, таблица, ограничение в таблице, столбцы таблицы,

представления и т. п.
Константы. Представляют собой созданные пользователем или системой строки или значе­ния, не являющиеся идентификаторами или ключевыми словами. Константы могут представлять собой строки, например «hello», числа, например «1234», даты, например «1 января 2002», или булевы значения, например TRUE.

Синтаксические конструкции SQL делятся на 4 основные категории

Операторы. Символы, показывающие, какое действие выполняется над одним или несколькими выражениями, чаще всего в инструкциях DELETE, INSERT, SELECT или UPDATE. Операторы также часто применяются для создания объектов базы данных.
Зарезервированные и ключевые слова. Имеют специальный смысл для обработчика кода SQL. Например, SELECT, GRANT, DELETE или CREATE. Зарезервированные слова (Reserved words), обычно команды и инструкции SQL, нельзя использовать в качестве идентификаторов на данной платформе. Ключевые слова (keywords) - это слова, которые могут стать зарезервированными в будущем.

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

Слайд 82Выбирайте имя так, чтобы оно было осмысленным, наглядным и соответствовало

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

по всей базе.
Будьте последовательны в использовании сокращений.
Для удобства восприятия используйте полные, наглядные и осмысленные имена с символами подчеркивания.
Не помещайте название компании и продуктов в имена объектов баз данных.

Соглашения об именах

Не используйте слишком очевидные префиксы и суффикс.
Не заполняйте все пространство, отведенное для имени объекта.
Не используйте идентификаторы с разделителями.

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

Слайд 83Идентификаторы должны быть уникальны в пределах своей области действия. Таким

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

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

Правила создания идентификаторов

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

Слайд 84В SQL константами считаются любые числовые значения, строки символов, значения,

связанные с представлением времени (дата и время), и булевы значения,

которые не являются идентификаторами или ключевыми словами. Базы данных на основе SQL разрешают использовать в коде SQL различные константы. Допустимы большинство числовых, символьных и булевых типов данных, а также даты. Например, к числовым типам данных SQL Server можно (среди прочих) отнести типы INTEGER, REAL и MONEY.

Константы

Таким образом, числовые константы могут выглядеть так.
30
-17
-853 3888
-6.66
$70000
2Е5
7Е-3

Булевы значения, строковые константы и даты выглядят примерно так.:
TRUE
'Hello world!'
10СT-28-1966 22:14:30:00'

В SQL константами считаются любые числовые значения, строки символов, значения, связанные с представлением времени (дата и время),

Слайд 85Оператор - это символ, обозначающий действие, выполняемое над одним или

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

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

Операторы

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

Слайд 86Арифметические операторы. Поддерживаются всеми базами данных.
Операторы присваивания. Поддерживаются всеми базами

данных.
Побитовые операторы. Поддерживаются Microsoft SQL Server.
Операторы сравнения. Поддерживаются всеми

базами данных.
Логические операторы. Поддерживаются в DB2, Oracle, SQL Server и PostgreSQL. Унарные операторы. Поддерживаются в DB2, Oracle и SQL Server.

Категории операторов:

Арифметические операторы. Поддерживаются всеми базами данных.Операторы присваивания. Поддерживаются всеми базами данных.Побитовые операторы. Поддерживаются Microsoft SQL Server. Операторы

Слайд 87Арифметические операторы выполняют математические действия над двумя значениями любого типа,

относящегося к числовой категории.
Арифметические операторы

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

Слайд 88За исключением Oracle, где для этой цели применяется оператор :=

, оператор присваивания (=) присваивает значение переменной или псевдониму (alias)

заголовка столбца. В SQL Server в качестве оператора для присваивания псевдонимов таблицам или заголовкам столбцов может служить ключевое слово AS.

Оператор присваивания

За исключением Oracle, где для этой цели применяется оператор := , оператор присваивания (=) присваивает значение переменной

Слайд 89В Microsoft SQL Server существуют побитовые операторы, являющиеся удобным средством

манипулирования битами в двух выражениях целого типа (см. табл. 2).

Для побитовых операторов доступны следующие типы данных: binary, hit, int, smallint, tinyint и varbinary.

Побитовые операторы

В Microsoft SQL Server существуют побитовые операторы, являющиеся удобным средством манипулирования битами в двух выражениях целого типа

Слайд 90Операторы сравнения проверяют равенство или неравенство двух выражений. Результатом операции

сравнения является булево значение: TRUE, FALSE или UNKNOWN. Также заметьте,

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

Операторы сравнения

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

Слайд 91Логические операторы обычно применяются в предложении WHERE для проверки истинности

какого-либо условия. Логические операторы возвращают булево значение TRUE или FALSE.

Логические

операторы
Логические операторы обычно применяются в предложении WHERE для проверки истинности какого-либо условия. Логические операторы возвращают булево значение

Слайд 92Унарные операторы выполняют операцию над одним выражением любого типа, отно­сящимся

к числовой категории. Унарные операторы можно применять к целым типам,

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

Унарные операторы

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

Слайд 93+, -, ~ (унарные операторы)
*, /, % (математические операторы)
+, -

(арифметические операторы)
=, >, =, , !

(операторы сравнения)
^ (побитовое исключающее ИЛИ), & (побитовое И), | (побитовое ИЛИ)
NOT, AND, ALL, ANY, BETWEEN IN LIKE, OR, SOME = (присваивание значение переменной)

Приоритет операторов

+, -, ~ (унарные операторы)*, /, % (математические операторы)+, - (арифметические операторы)=, >, =, , !< (операторы

Слайд 94CREATE – создает объектов базы данных
ALTER – изменяет объект
DROP

–удаляет объект
Стандарт SQL-92 определяет команды для следующих объектов:
ASSERTION – утверждения

для проверки
CHARACTER SET – набор символов
COLLATION – правила сортировки для набора символов
DOMAIN – домен (пользовательского типа данных столбца).
SCHEMA – схема (именованной группы объектов)
TABLE – таблица базы данных
TRANSLATION – правила преобразования (трансляции) из одного набора символов в другой (используется в операторе TRANSLATE)
VIEW – представления данных

Язык определения данных

CREATE – создает объектов базы данных ALTER – изменяет объект DROP –удаляет объектСтандарт SQL-92 определяет команды для следующих

Слайд 95Символьные строки:
CHARACTER(n)или CHAR(n) — строка фиксированной длины в n символов,

разделенная пробелами;
CHARACTER VARYING(n)или VARCHAR(n) — строка переменной длины с максимальным

количеством символов n;
NATIONAL CHARACTER(n)или NCHAR(n) — строка фиксированной длины с поддержкой международных кодировок
NATIONAL CHARACTER VARYING(n)или NVARCHAR(n) — строка переменной длины NCHAR.

Типы данных

Символьные строки:CHARACTER(n)или CHAR(n) — строка фиксированной длины в n символов, разделенная пробелами;CHARACTER VARYING(n)или VARCHAR(n) — строка переменной

Слайд 96Битовые данные:
BIT(n) — массив из n битов
BIT VARYING(n) — массив

длинной до n битов
Числа:
INTEGER и SMALLINT — целые числа;
FLOAT, REAL

и DOUBLE PRECISION — вещественные числа;
NUMERIC(precision, scale)или DECIMAL(precision, scale)— ­вещественное число с указанием в скобках количество знаков до запятой и после запятой..

Типы данных

Битовые данные:BIT(n) — массив из n битовBIT VARYING(n) — массив длинной до n битовЧисла:INTEGER и SMALLINT —

Слайд 97Дата и время:
DATE — дата (2010-05-30);
TIME — время (14:55:37);
TIME WITH

TIME ZONE или TIMESTAMP — тоже самое, что и TIME, только

исключаются данные о часовом поясе;
TIMESTAMP — это DATE и TIME соединенные вместе в одной переменной (2010-05-30 14:55:37).
TIMESTAMP WITH TIME ZONE or TIMESTAMPTZ — тоже самое, что и TIMESTAMP, только исключаются данные о часовом поясе.

Типы данных

Дата и время:DATE — дата (2010-05-30);TIME — время (14:55:37);TIME WITH TIME ZONE или TIMESTAMP — тоже самое, что

Слайд 98CREATE DOMAIN [AS]
[DEFAULT {LITERAL | NULL | USER}]

[NOT NULL] [CHECK ()]
[COLLATE ];
где
DEFAULT ­– Определяет значение по

умолчанию, которое вставляется, когда ни какой другой ввод не сделан. Значения:
LITERAL – Вводится определенная строка, числовое значение или дата.
NULL – Вводится значение NULL.
USER – Вводится имя текущего пользователя. Столбец должен быть совместимый символьный тип, что бы использовать значение по умолчанию.
NOT NULL – Определяет, что значения введенные в столбец не могут быть NULL.
CHECK – (<условие>) создает одиночное CHECK ограничение для домена.
VALUE – Заменитель для имени столбца, в конечном счете, основанном на домене.
COLLATE <имя_сортировки> – Устанавливает способ сортировки для домена.

Создание домена

CREATE DOMAIN [AS] [DEFAULT {LITERAL | NULL | USER}] [NOT NULL] [CHECK ()] [COLLATE ];гдеDEFAULT ­– Определяет

Слайд 99ALTER DOMAIN {
[SET DEFAULT {LITERAL | NULL | USER}]

| [DROP DEFAULT]
| [ADD [CONSTRAINT] CHECK ()]
| [DROP

CONSTRAINT]
};
где
SET DEFAULT – Определяет значение столбца по умолчанию, которое будет введено, когда ни какой другой ввод не сделан. Значения:
LITERAL – Вводится определенная строка, числовое значение или дата.
NULL – Вводится значение NULL.
USER – Вводится имя текущего пользователя. Столбец должен быть совместимого текстового типа для использования значения по умолчанию.
Удаление домена:
DROP DOMAIN <имя_домена>;

Изменение домена

ALTER DOMAIN {[SET DEFAULT {LITERAL | NULL | USER}] | [DROP DEFAULT] | [ADD [CONSTRAINT] CHECK ()]

Слайд 100Создание базы данных:
CREATE {DATABASE | SCHEMA} имя_базы_данных>
Удаление базы данных:
DROP

{DATABASE | SCHEMA}
Схема

Создание базы данных: CREATE {DATABASE | SCHEMA} имя_базы_данных>Удаление базы данных:DROP {DATABASE | SCHEMA} Схема

Слайд 101CREATE TABLE [ IF NOT EXISTS ]
(

данных> [ DEFAULT expression ] [ {NULL | NOT NULL}

] [ {INDEX_BLIST | INDEX_NONE} ],
<имя столбца_2> <тип данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ],
...
<имя столбца_N> <тип данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ],
[ CONSTRAINT <имя ограничения> ]
PRIMARY KEY ( <имя столбца_1>, <имя столбца_2>, ... ) |
FOREIGN KEY (<имя столбца_1>, <имя столбца_2>, ... ) REFERENCES <имя_таблицы_2> [ (<имя столбца_1>, <имя столбца_2>, ... ) ] [ ON UPDATE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] [ ON DELETE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] |
UNIQUE (<имя столбца_1>, <имя столбца_2>, ... ) |
CHECK ( <условие> ) [ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ] [ {NOT DEFERRABLE | DEFERRABLE} ]
);

Создание таблицы

CREATE TABLE [ IF NOT EXISTS ] ( [ DEFAULT expression ] [ {NULL | NOT NULL}

Слайд 102DEFAULT expression – значение по умолчанию;
NULL | NOT NULL –

разрешается ли пустое поле;
INDEX_BLIST | INDEX_NONE – есть или нет

индекса;
CONSTRAINT – ограничение
PRIMARY KEY – первичный ключ
FOREIGN KEY – вторичный ключ
ON DELETE – при удалении в родительской таблице
ON UPDATE – при обновлении в родительской таблице
NO ACTION ­– нет действий
SET NULL – устанавливается значение NULL
SET DEFAULT – устанавливается значение по умолчанию
CASCADE – каскадно
UNIQUE – уникальный
CHECK – проверка

Параметры

DEFAULT expression – значение по умолчанию;NULL | NOT NULL – разрешается ли пустое поле;INDEX_BLIST | INDEX_NONE –

Слайд 103Переименование таблицы
ALTER TABLE RENAME TO
Переименование столбца
ALTER TABLE

RENAME [ COLUMN ] TO
Добавление столбца
ALTER TABLE

ADD [COLUMN] <имя_столбца> <тип_данных> [ DEFAULT expression ] [ {NULL | NOT NULL} ] [ {INDEX_BLIST | INDEX_NONE} ]
Добавление первичного ключа ограничения к таблице
ALTER TABLE <имя_таблицы> ADD [ CONSTRAINT <имя ограничения> ]
PRIMARY KEY ( <имя столбца_1>, <имя столбца_2>, ... )

Изменение таблицы

Переименование таблицыALTER TABLE RENAME TO Переименование столбцаALTER TABLE RENAME [ COLUMN ] TO Добавление столбцаALTER TABLE ADD

Слайд 104Добавление вторичного ключа ограничения к таблице
ALTER TABLE ADD [

CONSTRAINT ]
FOREIGN KEY (, , ...

) REFERENCES <имя_таблицы_2> [ (<имя столбца_1>, <имя столбца_2>, ... ) ] [ ON UPDATE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ] [ ON DELETE {NO ACTION | SET NULL | SET DEFAULT | CASCADE} ]
Добавление уникального поля к таблице
ALTER TABLE <имя_таблицы> ADD [ CONSTRAINT <имя ограничения> ]
UNIQUE (<имя столбца_1>, <имя столбца_2>, ... )
Изменение типа данных столбца
ALTER TABLE <имя_таблицы> MODIFY "column 1" "New Data Type"

Изменение таблицы

Добавление вторичного ключа ограничения к таблицеALTER TABLE ADD [ CONSTRAINT ]FOREIGN KEY (, , ... ) REFERENCES

Слайд 105Изменение столбца ограничений столбца
ALTER TABLE ALTER [COLUMN] column_name SET

default_expr
ALTER TABLE ALTER [COLUMN] column_name DROP DEFAULT
Удаление столбца
ALTER

TABLE <имя_таблицы> DROP [COLUMN] column_name
Удаление ограничения таблицы
ALTER TABLE <имя_таблицы> DROP CONSTRAINT constraint_name
Удаление первичного ключа
ALTER TABLE <имя_таблицы> DROP PRIMARY KEY
Удаление таблицы
DROP TABLE [ IF EXISTS ] <имя_таблицы>

Изменение таблицы

Изменение столбца ограничений столбцаALTER TABLE ALTER [COLUMN] column_name SET default_expr ALTER TABLE ALTER [COLUMN] column_name DROP DEFAULTУдаление

Слайд 106В основу языка манипулирования данными входят 4 основных оператора:
SELECT –

используется для выборки записей из таблиц;
INSERT –используется для добавления записей

в таблицу;
UPDATE – используется для обновления записей таблицы;
DELETE – используется для удаления записей из таблицы.

Язык манипулирования данными

В основу языка манипулирования данными входят 4 основных оператора:SELECT – используется для выборки записей из таблиц;INSERT –используется

Слайд 107INSERT INTO [( [, ...])] {VALUES

( [, ...]) | };

Так, например, чтобы ввести

строку в таблицу Продавцов, вы можете использовать следующее условие:
INSERT INTO Salespeople VALUES (1001, 'Peel', 'London', .12);
INSERT INTO Customers (city, cnamе, cnum) VALUES ('London', 'Honman', 2001);

Оператор INSERT

INSERT INTO [( [, ...])] {VALUES ( [, ...]) | };Так, например, чтобы ввести строку в таблицу

Слайд 108Теперь, вы должны узнать как изменять некоторые или все значения

в существующей строке. Это выполняется командой UPDATE.
UPDATE TABLE
SET

столбца_1> = <значение_1> [, <имя столбца_2> = <значение_2> ...]
[WHERE <условие>];
Например
UPDATE Customers SET rating = 200;
UPDATE Customers SET rating = 200 WHERE snum = 1001;
UPDATE Salespeople SET sname = 'Gibson',city = 'Boston',comm = .10 WHERE snum = 1004;


Оператор UPDATE

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

Слайд 109Вы можете удалять строки из таблицы командой модификации - DELETE.

Она может удалять только введенные строки, а не индивидуальные значения

полей.
DELETE FROM <имя_таблицы> [WHERE <условие>];
Например
DELETE FROM Salespeople WHERE snum = 1003;
DELETE FROM Salespeople WHERE city = 'London';

Оператор DELETE

Вы можете удалять строки из таблицы командой модификации - DELETE. Она может удалять только введенные строки, а

Слайд 110Все запросы в SQL состоят из одиночной команды. Структура этой

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

чтобы выполнить высоко сложные оценки и обработки данных.
SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}
FROM {имя_таблицы_1 | представление} [псевдоним]
[,{имя_таблицы_2 | представление} [псевдоним], ...]
[WHERE <условие>]
[GROUP BY <имя_столбца_1> [,<имя_столбца_2>, ...] | [HAVING <имя_столбца_1> [,<имя_столбца_2>, ...]];
[ORDER BY <имя_столбца_1> [,<имя_столбца_2>, ...]]

Оператор SELECT

Все запросы в SQL состоят из одиночной команды. Структура этой команды обманчиво проста, потому что вы должны

Слайд 111Если вы хотите видеть каждый столбец таблицы, имеется необязательное сокращение

которое вы можете использовать. Звездочка (*) может применяться для вывода

полного списка столбцов следующим образом:
SELECT * FROM Salespeople;

Оператор SELECT

Если вы хотите видеть каждый столбец таблицы, имеется необязательное сокращение которое вы можете использовать. Звездочка (*) может

Слайд 112Агрегатные функции предназначены для того, чтобы вычислять некоторое значение для

заданного множества строк. Таким множеством строк может быть группа строк,

если агрегатная функция применяется к сгруппированной таблице, или вся таблица.

Агрегатные функции в SQL

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

Слайд 113COUNT - производит номера строк или не-NULL значения полей которые

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

данного пол.
AVG - производит усреднение всех выбранных значений данного пол.
MAX - производит наибольшее из всех выбранных значений данного пол.
MIN - производит наименьшее из всех выбранных значений данного пол.

Виды агрегатный функций

COUNT - производит номера строк или не-NULL значения полей которые выбрал запрос. SUM - производит арифметическую сумму

Слайд 114SELECT {COUNT | MAX | MIN | SUM | AVG}


(* [ALL|DISTINCT] , …)
FROM
WHERE
GROUP BY

столбца>, … | HAVING <условие>;

Использование агрегатных функций

SELECT {COUNT | MAX | MIN | SUM | AVG} 	(* [ALL|DISTINCT] , …)FROM WHERE GROUP BY

Слайд 115SELECT SUM ((amt)) FROM Orders; - 26658.4
SELECT AVG ((amt)) FROM Orders;

- 2665.84
SELECT MAX ((amt)) FROM Orders; - 9891.88
SELECT MIN ((amt)) FROM Orders;

- 18.69
SELECT COUNT (*) FROM Orders; - 11



Выполнение агрегатных функций

Заказы

-----------------------------------------------
ONUM | AMT | ODATE | CNUM | SNUM
-------|-----------|-------------|------|------
3001 | 18.69 | 10/03/1990 | 2008 | 1007
3003 | 767.19 | 10/03/1990 | 2001 | 1001
3002 | 1900.10 | 10/03/1990 | 2007 | 1004
3005 | 5160.45 | 10/03/1990 | 2003 | 1002
3006 | 1098.16 | 10/03/1990 | 2008 | 1007
3009 | 1713.23 | 10/04/1990 | 2002 | 1003
3007 | 75.75 | 10/04/1990 | 2004 | 1002
3008 | 4723.00 | 10/05/1990 | 2006 | 1001
3010 | 1309.95 | 10/06/1990 | 2004 | 1002
3011 | 9891.88 | 10/06/1990 | 2006 | 1001
-----------------------------------------------

SELECT SUM ((amt)) FROM Orders;	-	26658.4 SELECT AVG ((amt)) FROM Orders; 	-	2665.84SELECT MAX ((amt)) FROM Orders; 	-	9891.88SELECT MIN

Слайд 116Выбрать рейтинг по городам:
SELECT city, SUM(RATING) FROM Clients
GROUP BY city;
Группировка

для агрегатных функций
Заказчики

----------------------------------------------

CNUM | CNAME | CITY | RATING | SNUM
-------|------------|---------|--------|------
2001 | Hoffman | London | 100 | 1001
2002 | Giovanni | Rome | 200 | 1003
2003 | Liu | SanJose | 200 | 1002
2004 | Grass | Berlin | 300 | 1002
2006 | Clemens | London | 100 | 1001
2008 | Cisneros | SanJose | 300 | 1007
2007 | Pereira | Rome | 100 | 1004

-------------------------
CITY | RATING | SNUM
---------|--------|------
London | 200 | 1001
Rome | 300 | 1003
SanJose | 500 | 1002
Berlin | 300 | 1002

Выбрать рейтинг по городам:SELECT city, SUM(RATING) FROM ClientsGROUP BY city;Группировка для агрегатных функцийЗаказчики    ----------------------------------------------

Слайд 117Предположим, что в предыдущем примере, вы хотели бы увидеть только

максимальную сумму приобретений значение которой выше $3000.00
SELECT snum, odate, MAX

(amt)
FROM Oreders
WHERE MAX ((amt)) > 3000.00
GROUP BY snum, odate;

Использование HAVING

Предположим, что в предыдущем примере, вы хотели бы увидеть только максимальную сумму приобретений значение которой выше $3000.00SELECT

Слайд 118SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}
FROM {имя_таблицы_1 |

представление} [псевдоним]
[,{имя_таблицы_2 | представление} [псевдоним], ...]
[WHERE ]
[GROUP BY [,,

...] | [HAVING <имя_столбца_1> [,<имя_столбца_2>, ...]]
[ORDER BY <имя_столбца_1> [,<имя_столбца_2>, ...]];
Проекция – это выбор столбцов в любом порядке.
Выборка любой запрос SELECT.

Проекция и выборка

SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}FROM	{имя_таблицы_1 | представление} [псевдоним]	[,{имя_таблицы_2 | представление} [псевдоним], ...][WHERE ][GROUP

Слайд 119SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}
FROM {имя_таблицы_1 |

представление} [псевдоним]
,{имя_таблицы_2 | представление} [псевдоним], ...;

Декартовое произведение

SELECT [ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] ...}FROM	{имя_таблицы_1 | представление} [псевдоним]	,{имя_таблицы_2 | представление} [псевдоним], ...;Декартовое произведение

Слайд 120Системы дистрибутивных баз данных состоят из набора узлов, связанных вместе

коммуникационной сетью, в которой:
каждый узел обладает своими собственными системами баз

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

Предварительные замечания

Системы дистрибутивных баз данных состоят из набора узлов, связанных вместе коммуникационной сетью, в которой:каждый узел обладает своими

Слайд 121В распределенной системе узлы следует делать автономными.
Локальная автономия означает,

что операции на данном узле управляются этим узлом, т.е. функционирование

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

Локальная автономия

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

Слайд 122Под локальной автономией подразумевается, что все узлы должны рассматриваться как

равные.
Зависимость от центрального узла нежелательна по крайней мере по

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

Независимость от центрального узла

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

Слайд 123Одним из основных преимуществ распределенных систем является то, что они

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

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

Непрерывное функционирование

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

Слайд 124Основная идея независимости от расположения (которая также называется прозрачностью расположения)

достаточно проста: пользователям не следует знать, в каком физическом месте

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

Независимость от расположения

Основная идея независимости от расположения (которая также называется прозрачностью расположения) достаточно проста: пользователям не следует знать, в

Слайд 125Существует два основных типа фрагментации – горизонтальная и вертикальная, которые

связаны с реляционными операциями выборки и проекции соответственно.
Фрагментом может

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

Независимость от фрагментации

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

Слайд 126В системе поддерживается независимость от репликации, если заданное хранимое отношение

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

репликами, хранимыми на нескольких различных узлах.

Независимость от репликации

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

Слайд 127Для выполнения охватывающего несколько узлов запроса существует довольно много способов

перемещения данных по сети. В таком случае чрезвычайно важно найти

наиболее эффективную стратегию.

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

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

Слайд 128Существует два основных аспекта управления обработкой транзакций, а именно: управление

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

должно уделяться повышенное внимание.

Управление распределенными транзакциями

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

Слайд 129Основной проблемой репликации данных является то, что обновление любого логического

объекта должно распространяться на все хранимые копии этого объекта.
Одна

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

Распространение обновления

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

Слайд 130Распределенные базы данных и Интернет. Создание баз данных для Web

приложений.

Распределенные базы данных и Интернет. Создание баз данных для Web приложений.

Слайд 131Термин "клиент/сервер" относится преимущественно к архитектуре или логике распределения ответственности,

поэтому клиент – это приложение, т.е. внешний интерфейс, а сервер

– СУБД, т.е. внутренний интерфейс для непосредственной работы с базами данных.

Системы типа клиент/сервер

Термин

Слайд 132Обычно для обозначения всей СУБД, основанной на архитектуре "клиент-сервер", включая

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

Такие системы предназначены для хранения и обеспечения доступа к базам данных.

Серверы баз данных

Обычно для обозначения всей СУБД, основанной на архитектуре

Слайд 133Протокол TCP/IP позволяет передавать информацию, а его используют разнообразные сетевые

сервисы, по-разному обращающиеся с этой информацией. Internet не решила проблемы

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

БАЗЫ ДАННЫХ В INTERNET

Протокол TCP/IP позволяет передавать информацию, а его используют разнообразные сетевые сервисы, по-разному обращающиеся с этой информацией. Internet

Слайд 134Основные функции ПТК данного вида таковы:
обеспечить отображение интерфейса пользователя

в формате HTML для отображения программой просмотра клиента;
обеспечить формирование запросов

к БД наиболее простыми для неподготовленного пользователя средствами;
обеспечить аутентификацию пользователя;
обеспечить обработку запроса и возврат результата в HTML формате для отображения программой просмотра пользователя.

Обзор ПТК данного вида

Основные функции ПТК данного вида таковы: обеспечить отображение интерфейса пользователя в формате HTML для отображения программой просмотра

Слайд 135Наименование и область применения ПТК
Основания для разработки ПТК
Назначение разработки ПТК
Техническое

задание на разработку структур ПТК

Наименование и область применения ПТКОснования для разработки ПТКНазначение разработки ПТКТехническое задание на разработку структур ПТК

Слайд 136Требования к функциональным характеристикам:
отображение интерфейса пользователя в виде HTML- документа;
обработку

запроса пользователя с исключением неправильно заданных форматов, неверно заполненных полей

запроса и т.д.;
в соответствии с запросом поиск в БД, модификация или удаление данных в БД;
отображение результатов работы.

Требования к ПТК

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

Слайд 137Требования к программному обеспечению:
ПТК разрабатывается на языке PERL (Practical Extraction

and Report Language);
ПТК должен работать под управлением ОС BSD UNIX;
Для

работы ПТК в системе должна быть установлена СУБД Postgres95.

Требования к ПТК

Требования к программному обеспечению:ПТК разрабатывается на языке PERL (Practical Extraction and Report Language);ПТК должен работать под управлением

Слайд 138Требования к информационному обеспечению
отображать всю информацию на браузере пользователя в

формате HTML;
проводить аутентификацию пользователя с целью выяснения его привилегий;
для пользователей

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

Требования к ПТК

Требования к информационному обеспечениюотображать всю информацию на браузере пользователя в формате HTML;проводить аутентификацию пользователя с целью выяснения

Слайд 139Используемые для написания программы библиотеки:
CGI.pm- библиотека для манипуляции информационными элементами

(поля ввода, кнопки, радио кнопки, скрытые поля и т.д. в

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

Эскизный проект структуры ПО ПТК

Используемые для написания программы библиотеки:CGI.pm- библиотека для манипуляции информационными элементами (поля ввода, кнопки, радио кнопки, скрытые поля

Слайд 140Эксплуатация баз данных. Защита баз данных. Управление транзакциями. Управление параллельным

доступом. Заключение.

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

Слайд 141Восстановление в системе управления базами данных, означает в первую очередь

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

состояние, если какой-либо сбой сделал текущее состояние неправильным или подозрительным.

Понятие восстановления системы

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

Слайд 142Транзакция – это логическая единица работы.
Транзакция– не просто одиночная

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


Понятие транзакции

Транзакция – это логическая единица работы. Транзакция– не просто одиночная операция системы баз данных, а скорее согласование

Слайд 143Транзакция начинается с успешного выполнения оператора BEGIN TRANSACTION и заканчивается успешным

выполнением либо оператора COMMIT, либо ROLLBACK.
Оператор COMMIT устанавливает так

называемую точку фиксации.

Восстановление транзакции

Транзакция начинается с успешного выполнения оператора BEGIN TRANSACTION и заканчивается успешным выполнением либо оператора COMMIT, либо ROLLBACK. Оператор

Слайд 144Транзакции обладают четырьмя важными свойствами(АСИД):
Атомарность;
Согласованность;
Изоляция;
Долговечность.
Свойства АСИД

Транзакции обладают четырьмя важными свойствами(АСИД): Атомарность;Согласованность;Изоляция;Долговечность.Свойства АСИД

Слайд 145Критической точкой в отказе системы является потеря содержимого оперативной памяти

(в частности, рабочих буферов базы данных).

Восстановление после отказов системы


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

Слайд 146Термин параллелизм означает возможность одновременной обработки в СУБД многих транзакций

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

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

Параллелизм. Проблемы параллелизма

Термин параллелизм означает возможность одновременной обработки в СУБД многих транзакций с доступом к одним и тем же

Слайд 147Проблема потери результатов обновления

Проблема потери результатов обновления

Слайд 148Проблема незафиксированной зависимости

Проблема незафиксированной зависимости

Слайд 149Проблема несовместимого анализа

Проблема несовместимого анализа

Слайд 150В случае, когда для выполнения некоторой транзакции необходимо, чтобы некоторый

объект (кортеж) не изменялся непредсказуемо и без ведома этой транзакции,

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

Понятие блокировки

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

Слайд 151Решение проблем параллелизма

Решение проблем параллелизма

Слайд 152Проблема потери результатов обновления

Проблема потери результатов обновления

Слайд 153Проблема незафиксированной зависимости

Проблема незафиксированной зависимости

Слайд 154Проблема незафиксированной зависимости

Проблема незафиксированной зависимости

Слайд 155Тупиковые ситуации

Тупиковые ситуации

Слайд 156СПАСИБО ЗА ВНИМАНИЕ !

СПАСИБО ЗА ВНИМАНИЕ !

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика