Будь умным!


У вас вопросы?
У нас ответы:) SamZan.ru

Тема- Концепция и типология информационных систем

Работа добавлена на сайт samzan.ru: 2015-07-05


04.09.2013

Тема: «Концепция и типология информационных систем».

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

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

Классификация ИС.

Выделяют 3 класса ИС по степени автоматизации:

  1.  Ручные;
  2.  Автоматизированные;
  3.  Автоматические.

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

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

Автоматические ИС выполняют все операции по переработке информации без участия человека.

По сфере применения ИС делятся на:

  1.  ИС организационного управления;
  2.  ИС управление технологическими процессами;
  3.  ИС автоматизированного проектирования (САПР);
  4.  Интегрированные (корпоративные) ИС.

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

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

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

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

По целевым функциям ИС бывают:

  1.  Управляющая;
  2.  Информационно-справочная;
  3.  Поддержки и принятия решений.

Основные понятия БД и СУБД.

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

  1.  Базы данных (БД);
  2.  Системы управления базами данных (СУБД);
  3.  Словарь БД;
  4.  Администратор БД;
  5.  Вычислительная система (ВС);
  6.  Обслуживающий персонал;
  7.  Приложения для работы БД.

БД – совокупность специальным образом организованных данных хранимых в памяти вычислительной системы и отображающих состояния объектов и их взаимосвязей в рассматриваемой предметной области. Логическую структуру хранимых данных в БД называют моделью представления данных. К основным моделям представления данных относят:реляционную, иерархическую, сетевую, многомерную, объектно-ориентированную.

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

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

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

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

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

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

06.09.2013

Архитектуры ИС. СУБД и их классификация.

Эффективность работоспособности ИС во многом зависит от ее архитектуры. Существуют 2 архитектуры ИС:

  1.  Файл-серверные;
  2.  Клиент-серверные.

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

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

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

К СУБД относятся следующие виды программ:

  1.  Полнофункциональные СУБД;
  2.  Серверы БД;
  3.  Клиенты БД;
  4.  Средства разработки программ для работы с БД.

Полнофункциональные БД – традиционные СУБД с развитым интерфейсом, позволяющим с помощью команд меню выполнять основные действиянад БД(Access, FoxPro, dBase, Paradox). Некоторые полнофункциональные СУБД имеют вспомогательные средства проектирования БД или case системы.

Серверы БД – предназначены для создания центров обработки данных в сетях ЭВМ. Серверы БД реализуют функции управления БД запрашиваемые другими клиентскими программами с помощью запросов SQL (Interbase, MySQL, ORACLE, MSSQLServer).

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

Средство разработки предложений используются для создания следующих видов программ: клиентских программ, серверов БД или их компонентов, а также приложений для пользователей (Builder, Delphi, VisualStudio, ERWinи т.д.).

По архитектуре хранения данных СУБД бывают:

  1.  Локальные (все части локальной СУБД размещены на одном компьютере);
  2.  Распределенные (части СУБД располагаются на 2 и более ПК).

По характеру использования выделяют:

  1.  Персональные СУБД
  2.  Многопользовательские СУБД

Персональные СУБД обеспечивают возможность создания персональных БД и недорогих приложений для работы с ними. Персональные СУБД могут выступать в роли клиентской части многопользовательской СУБД. (access, FOXPRO,dBase,PARADOX)

Многопользовательские СУБД - включает в себя сервер БД и клиентскую часть  и, как правило, могут работать в неоднородной вычислительной среде, т.е. с разными типами ЭВМ и операционными системами. (Oracle, InterBase, MYSQL)

11.09.2013

Модели представления данных

Модель представления данных – структура хранимых  в БД данных. К классическим моделям представления данных относят:

- иерархическую;

- сетевую;

- реляционную.

Кроме того в последнее время стали активно использоваться следующие модели:

- пост реляционные;

- многомерные;

- объектно-ориентированные;

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

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

- поиск указанного экземпляра;

- переход от одного дерева к другому;

- переход по записям внутри дерева;

- вставка новой записи в указанную позицию;

- удаление текущей записи.

К достоинствам относят:

- эффективное использование памяти;

-высокие скорости обработки данных.

Недостатком иерархической модели является громоздкость, сложность логических связей, сложность понимания для обычного пользователя. Иерархическая модель данных удобна в использовании для работы с иерархически-упорядоченной информацией. К СУБД основанным на иерархической модели относят IMC, Team-up, PC/Focus, а также отечественные ОКА, МИРИС, ИНЭС.

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

- запись;

- связь.

Тип связь определяется для двух типов:

- предок;

- потомок.

Сетевая БД состоит из набора записей и набора соответствующих связей, на которые не накладывается никаких ограничений. Операции манипулирования в сетевой БД поиск записи,  переход от одной вершины к другой, создание новой записи, удаление/обновление текущей записи, включение записи в связь, изменение записи. Достоинством сетевой модели является эффективность затрат памяти и оперативности. Также достоинством  в сравнении с иерархической моделью  является возможность образования различных связей. Недостатком сетевой БД является высокая сложность схемы БД, а также сложность понимания и выполнения обработки информации обычным пользователям. Из-за допустимости установления произвольных связей в сетевой модели ослаблен контроль целостности связей.СУБД основанные на сетевой модели представления данных широко распространения не получили. Из них наиболее известными являются: IDMS, dbVistaIII, CETOP, KOMPAC.

Реляционная модель данных была предложена сотрудником фирмы IBMЭдгаром Коддом и основывается на понятии отношение (таблица). Отношения состоят из множества элементов, которые называются кортежами. Если невозможно описать сложные логические структуры из некоторой предметной области при помощи одной таблицы, то используется их связывание. Основным из достоинств реляционной БД является простота, удобство, понятность, а так же легкость физической реализации на ЭВМ. Именно простота и понятность послужили столь широкому распространению реляционной модели. Недостатком реляционной модели представления данных является отсутствие стандартных средств, идентификации отдельных записей. Также недостатком является сложность описания  иерархических и сетевых связей между данными.

13.09.2013

Реляционный подход к БД

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

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

Форма представления

Отношение

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

Схема отношения

Строка заголовков, столбцов таблицы

Кортеж

Строка таблицы

Сущность

Описание свойств объекта

Атрибут

Заголовок столбца таблицы

Домен

Множество допустимых значений атрибута

Тип данных

Тип значений элементов таблицы

Первичный ключ

Один или несколько атрибутов

Основные понятия реляционной модели

Сущность – некоторый объект любой природы данные, о котором хранятся в БД. Данные о сущности хранятся в отношениях. Атрибут – свойство,которое характеризует сущность. В структуре таблицы  каждый атрибут именуется и ему соответствует некоторый заголовок столбца таблицы. Домен – множество всех возможных значений определенного атрибута отношения. Табличный ключ (первичный атрибут) – называется атрибут отношения, однозначно идентифицирующий каждый из его кортежей. Ключ может быть составным (сложным) т.е. состоять из нескольких атрибутов. Каждое отношение обязательно имеет комбинацию атрибутов, которая может служить ключом. Ее существование гарантируется тем, что отношение не может иметь одинаковых кортежей. Если выбранный первичный ключ состоит из минимально необходимого набора атрибутов, то он является неисбыточным. Ключи обычно используются для достижения следующих целей – исключения дублирования значений в ключевых атрибутах, упорядочивания кортежей, ускорение работы с кортежами,  организация связывания таблиц. Пусть отношения R1 имеет не ключевой атрибут A значение которого являются значениями ключевого атрибута В другого отношения R2, тогда говорят что атрибут А отношения R1 является внешним ключом.

R1

R2

ᵷB

A

С помощью внешних ключей устанавливаются связи между отношениями.

Товары

Производители

Id

Id_pr

Наименование

Название производителя

Количество

Адрес

Стоимость

Контакты

Срок годности

Лицензия

Код_pr

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

19.09.2013

Реляционный подход к организации БД.

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

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

Виды связей между таблицами.

При связывании таблиц автоматически выполняются операции контроля ссылочной целостности. В реляционных СУБД выделяют 4 вида связей:

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

Контроль целостности связей

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

- каждой записи основной таблицы соответствует 0 или более записей дополнительной таблицы;

- дополнительной таблице нет записей, которые не имеют родительских записей в основной таблице;

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

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

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

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

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

- удалять можно запись, которая не имеет подчинённых записей;

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

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

Этапы проектирования БД. Проектирование БД осуществляется в 3 этапа:

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

- логическое проектирование. Цель данного этапа преобразование концептуальной модели на основе выбранной модели данных  в логическую модель независимую от особенностей используемой СУБД при физической  реализации БД.

- физическое проектирование. Цель описания конкретной реализации БД размещаемой во внешней памяти ПК. Это описание структуры хранения данных и эффективных методов доступа к данным.

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

Первая нормальная форма.

- запрещает повторяющиеся поля, содержащие одинаковую по смыслу информации;

- запрещает множественные поля, которые содержат данные типа список, перечисления и т.д.;

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

Вторая нормальная форма.

- должна удовлетворять требованиям первой нормальной формы;

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

Третья нормальная форма.

- должна соответствовать требованиям второй нормальной формы;

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

Нормальная форма Бойса-Кодда требует, чтобы в таблице был только один потенциальный первичный ключ. Если обнаружился второй столбец, который также может быть первичным ключом, то для приведения к форме Бойса-Кодда такие данные необходимо вынести в отдельную таблицу. Должна еще соответствовать третьей нормальной формы.

Четвертая нормальная форма.

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

Пятая нормальная форма.

- отношения должны находится в четвертой нормальной форме;

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

16.10.2013

Транзакции и сериализация транзакций.

Транзакция – неделимая с точки зрения воздействия на СУБД последовательность действий манипулирования данными выполняющееся по принципу «все или ничего» и переводящая БД из одного целостного состояния в другое. При завершении транзакции оператором COMMITрезультаты гарантированно фиксируются во внешней памяти. При завершении транзакции оператором ROLLBAСK результаты гарантированно отсутствуют во внешней памяти. Транзакции обладают 4 важными свойствами (АСИД):

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

- согласованность – транзакция переводит БД из одного согласованного состояния (целостного) в другое;

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

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

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

- write-write(запись-запись) – первая транзакция изменила объект и не завершилась, а вторая транзакция пытается изменить этот же объект, в результате происходит потеря обновлений.

- read-write (чтение-запись) – первая транзакция прочитала объект и не завершилась, а вторая транзакция пытается изменить этот же объект, в результате происходит несовместимый анализ данных.

-write-read(запись-чтение) – первая транзакция изменяла объект и не завершилась, вторая транзакция пытается прочитать этот объект, в результате происходит чтение «грязных» данных.

Уровни изолированности информации.

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

  1.  Отсутствие потерянных изменений – транзакция1 изменяет объект БД А. До завершения транзакции1 транзакция2 также изменяет объект А. Транзакция2 завершается оператором ROLLBACK, тогда при повторном чтении объекта А транзакция1 не видит изменений этого объекта произведенных ранее. Такая ситуация называется ситуацией потерянных изменений. Для избежания требуются чтобы до завершения транзакции1 никакая другая транзакция не смогла изменять объект А.
  2.  Отсутствие чтения «грязных» данных -  транзакция1 изменяет объект БД А. Параллельно с этим транзакция2 читает объект А, т.к. транзакция1 еще не завершена, то транзакция2 видит несогласованные «грязные» данные. Чтобы избежать ситуацию чтения грязных данных до завершения транзакции1 изменяющей объект А никакая другая транзакция не должна читать объект А.
  3.  Отсутствие неповторяющихся чтений – транзакция1 читает объект А. До завершения транзакции1 транзакция2 изменяет объект А и успешно завершается командой COMMIT. Транзакция1 повторно читает объект А и видит его измененное состояние для того чтобы избежать неповторяющихся чтений до завершения транзакции1 никакая транзакция не должна изменять объект А.

Сериализация транзакций.

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

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

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

Синхронизационные захваты. Тупики

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

Режимы синхронизационных захватов:

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

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

Одним из наиболее минусов это тупики. Можно представить два подхода к обнаружению тупиковых ситуаций:

- СУБД не следит за обнаружение тупиков, транзакции сами принимают решение, кто из них будет жертва;

- за возникновением тупиков следит сама СУБД, она же и принимает решение какой транзакцией пожертвовать.

Метод временных меток

Основная суть метода заключается в следующем – если транзакция Т1 началась раньше Т2, то система обеспечивает такой режим выполнения, как если бы Т1 была целиком выполнена до начала Т2. Для каждой транзакции предписывается временная метка, соответствующая началу транзакции. Для каждой транзакции Т предписывается временная метка «т» которой помечается объект Р, так же указывается тип операции. Перед  выполнением операции над объектом Р транзакция Т1 выполняет следующие действия :

- проверяет не закончилась ли транзакция Т так же пометившая этот объект, если Т закончилось, то Т1 помечает объект Р и выполняет свою операцию.

- Если транзакция Т не завершилась, то Т1 проверяет конфликтность операций. Если операции не конфликтны то при объекте Р остается или устанавливается временная метка «т1» и транзакция Т1 выполняется.

- Если транзакцияТи Т1 конфликтны, то проверяется если «т» больше «т1» , то транзакция Т является более молодой чем Т1 производится откат Т и Т1 продолжает свою работу

- если Т старше Т1, то Т1 получает новую временную метку и начинается заново.

18.10.2013

Журнализация изменений БД.

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

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

-результаты незафиксированных транзакций не должны быть сохранены в восстановленной БД.

Ситуации при которых необходимо восстанавливать состояние БД:

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

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

Существуют 2 основных варианта ведения журнальной информации:

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

- данный подход позволяет быстро устранять индивидуальные откаты и восстановления БД после «мягких» и «жестких» сбоях. Основан на поддержании только общего журнала изменений БД, который используется и при выполнении индивидуальных откатов.

23.10.2013

Функции и основные возможности языка SQL.

Язык SQLсчитают декларативным в отличие от языков на которых пишутся программы – это значит что язык SQL описывает что нужно сделать, а не каким образом. Существует две формы языка SQL:

  •  Интерактивный режим (используется для создания вопросов пользователя и получения результатов в интерактивном режиме).
  •  Встроенный режим (состоит из команд SQL встроенных внутрь программ написанных на другом языке программирования.)

Основу языка SQLсоставляют операторы, распределенные между 3 компонентами этого языка:

  1.  Язык манипулирования данными – предназначен для поддержки БД и включает операторы добавления, изменения, удаления и выборки данных.
  2.  Язык определения данных – предназначен для создания изменения, удаления таблиц и всей БД в целом.
  3.  Язык управления данных – предназначен для обеспечения защиты от различного рода повреждений (СУБД гарантирует некоторую защиту автоматически).

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

Ключевые слова в выражениях на SQL могут прописываться как строчными, так и прописным, и буквами в одну или несколько строк. Каждый запрос должен заканчиваться «;». Зарезервированные слова не могут использоваться в качестве названия объектов БД.

24.10.2013

Выборка данных с использование предложения Select.

Selectсписок_столбцовfromимя_таблицы.

Select * from товар where prise< 50000;

В конструкции whereмогут применятся следующие операторы:

  1.  ><= <>
  2.  IsNULL – выбираются все строки не имеющие значения в указанном поле. select * fromTovarwheresrok_godisnull.
  3.  Between – позволяет проверить вхождение какого-либо значения в диапазон определяемый граничными значениями. select * fromTovarwherepricebetween 100000 and 1000000.
  4.  In – проверяет вхождение какого-либо значения в список значений. Список значений указывается в круглых скобках, значения перечисляются через запятую.select * fromTovarwhereprice in(20000, 30000, 50000).
  5.  Like – соответствие – просматривает строковые значения с целью определения входит ли заданная в операторе likeстрока в символьную строку проверяемого поля. select * fromTovarwherenamelike‘ирис’; в операторе Likeмогут использоваться следующие символы для указания шаблона искомой строки:

А) ? – замещает любой ОДИН символ

Б) * - допускает в указанном месте наличие любой последовательности символов.

Сортировка данных в таблице

Selectspisokfromimya_tabl [whereусловие] orderbyимя_столбца [asc|desc]. Если сортировка производится по нескольким столбцам, то их указываем через запятую. Ask – повозрастанию, desc – поубыванию. Select * fromTovarorderbyprice

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

Selectсписок_столбцовfromимя_таблицыgroupbyстолбец_группировка.

Select avg (price) from Tovar group by kod_proiz;

Selectсписок_столбцовfromимя_таблицыgroupbyстолбец_группировкаhavingусловие; (группировка по условию).

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

Select avg (price) from Tovar group by kod_proizv having kod_proizv=1 or kod_proizv=2;

Sportsman

Id

Fio

Pol

vozrASt

Club

sport

Select fio, sport, club from sportsman;

Select * from sportsman where vozrast<18;

Select * from sportsman where pol like ‘ж*’;

Select * from sportsman where club like ‘спартак’;

Select * from sportsman where vozrast between 18 and 25;

Select avg(vozrast) from sportsman where sport like ‘волейбол’;

Select count(fio) from sportsman group by club;

Select * from sportsman where vozrast>25;

Select count(fio) from sportsman group by club having vozrast>25;

Вложенныезапросы

Select * from Tovar where kod_proiz in (select id from proizv where name like’А%’);

Select avg(price) from Tovar where kod_proiz in (select id from proizv where country like ‘Франция’);

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

Select name, price, kol from Tovar where price > 50000

Union

select name, price,kol from Tovar where kod_proizv in (select id from proizv where country like ‘Франция’);

Манипулирование данными

К операторам манипулирования данными относятся вставка(insert), обновление (update) и удаление (delete).

Вставка записи.

Insertintoимя_таблицы[(поле1, … , полеn)] values (значение1, … , значение n);

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

Insert into Tovar values (1,’шоколад’,  100, 10500, ‘1 год’, 2);

Insertinto Tovar (id,name, price,kod_proizv values (2,”bhbc”,500,1));

Updateимя_таблицыsetзначения_столбца=значение [whereусловие] ;

updateприменется ко всем записяи если нету where, если whereприсутствует то updasteприменяется к записям удовлетворяющим условиям.

Update Tovar set kol=kol+100;

Update Tovar set price=price*2 where kod_proizin(select id from  proizvwhere country like ‘Франция’);

Delete from имя_таблицы[where условие];

Если условие отсутствует, то из таблицы удаляются все записи.

Delete from Tovar where srok_god is NULL;

Delete from proiz where license like ‘%2012’;

Организация данных в InterBase. Работа с доменами и таблицами.

Типы данных SQL:

- символьные типы данных:

1. char– один символ

2. char(n) –символьная строка фиксированной длины, где n – длина строки. Для хранения таких данных всегда отводится n байт вне зависимости от реальной длины.

3. varchar(n) – символьная строка переменной длины, для хранения данных этого типа отводится число байт соответствующее реальной длине строки.

- целочисленные данные :

1.integer/int – (-2147483647 - +2147483648) для хранения целочисленных данных отводится, как правило, 4 байта с указанным диапазоном значений.

2. smallint – (-32767 - +32768) короткое целое для хранения которого отводится 2 байта.

- вещественные типы данны:

1. float- вещественный тип данных для хранения которого отводится 8 байт.

2. smallfloat – для хранения данных отводится 4 байта.

3. decimal(p)–аналогичен типу данных floatс числом значащих цифр равных р.

4. decimal(p,n)–аналогичен floatр – количество значащих цифр, n – количество цифр после запятой.

- денежные типы данных:

1.money(p,n) – аналогичен типу данных decimal(p,n).Вводится только потому в некоторых СУБД, что для него используют специальные методы форматирования.

- дата и время:

1. date – для хранения даты.

2. time – для хранения времени.

3. interval – для хранения временного интервала.

4. datetime – для хранения моментов времени (год, месяц, число, часы, минуты, секунды, доли секунд).

- двоичные типы данных – позволяет хранить данные любого объема в двоичном коде:

1. binery

2. byte

3. blob.

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

Создание БД при помощи SQL запросов.

Create database имя_БД;

Пример: create database shop;

Drop database имя_БД;

Пример: Drop database shop;

Работастаблицами

Createtableимя_таблицы (имя_полятип_поля [notnull] [primarykey|unique] [referencesимя_связанной_таблицы (имя_поля)], …);

Create table proizvod ( id int primary key, name varchar (20) not null, address varchar (30) not null, telvarchar (15) not null, country varchar (20) not null, license datetime);

Create table Tovar (id int primary key, name varchar (20) not null, kolsmallint not null, price int  not null, srok_godvarchar(40) not null, kod_proizvint references proizvod (id));

Notnull – если указана эта конструкция, то элементы столбца всегда должны иметь определенное значение (не null)

Unique – значение каждого элемента столбца должно быть уникальным

Primarykey – столбец является первичным ключом

Параметры Unique и Primarykey являются взаимоисключаемыми.

Referencesимя_таблицы (имя_столбца) – данный столбец является внешним ключом, указывается имя таблицы и столбец на который он ссылается.

Удаление таблицы

Droptable<имя_таблицы>;

Пример: droptableTovar – удаление таблицы «товар»

Модификация таблицы

Добавление столбцов в таблицу:

Altertable<имя_таблицы>

ADD (<имя_столбца>тип_данных [NOTNULL] [unique|primarukey] [referencesимя_связанной_таблицы (имя_столбца)], …);

Пример:

Alter table Tovar

Add (sostavvarchar (100) not null, opt_priceint not null);

Удаление столбцов из таблицы:

Altertable<имя_таблицы>

Drop (имя_строки1б имя_строки2, …);

Пример:

Alter table Tovar

Drop (sostav, opt_price);

Изменение столбцов в таблице

Altertable<имя_таблицы>

Modify (имя_столбцатип_данных[NOTNULL] [unique|primarukey] [referencesимя_связанной_таблицы (имя_столбца)], …);

Пример:

AltertableTovar

Modify (srok_goddatetime not null);

13.11.2013

Работа с доменами на основе SQL

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

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

Createdomainимя_доменаasбазовый_тип_данных [defaultliteral| null | user][notnull] checkусловие_домена];

Notnull – запрещает ввод пустых значений.

Checkусловие_домена – задает ограничения для значений поля.

Пример:

Create domain Key1 as int not null check value>0;

Create table Tovar (id key1 primary key, …,kod_proizv key1 references proizvod (id));

Create domain text as varchar(60) default null

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

ТЕМА: Работа с индексами

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

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

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

Должны индексироваться:

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

Применение индексов не целесообразно:

  1.  Столбцы редко используются в запросах.
  2.  Если столбцы имеют небольшое количество значений (например с описанием пола).
  3.  Если работа производится над небольшой таблицей с несколькими строками.

Создание, изменение и удаление индексов

Индексы могут быть созданы двумя способами:

  1.  Пользователем, при использовании команды creatindex.
  2.  Автоматически при создании таблицы creattable.

interBaseавтоматически генерирует индексы системного уровня по столбцу или группе столбцов когда таблицы определяются с конструкцыямиprimarykey, foreignkey, unique.

Create [unique] [asc | desc] indexимя_индексаonимя_таблицы (столбец или группы столбцов);

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

Unique – задает режим уникального индекса, т.е. блокируется запись с одними и теме же значениями столбца образующие индекс.

Create unique asc index ident on Tovar (id);

Create asc index tov1 on Tovar (name);

Create desc index tov2 on Tovar (name);

Alter index имя_индексаactive | inactive;

Команда Alterindex не применима к индексам используемым  в качестве ограничений логической целостности БД, определенных как primarykey,foreignkeyилиunique.

Alter index tov1 inactive;

Alter index tov1 active;

Удаление:

DropindexИмя_индекса;

ТЕМА: Генераторы и триггеры

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

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

Для создания авто инкрементного поля в БД, для него создается свой генератор.

Create generatorимя_генератора;

Пимер:

Create generator gen_tovar;

Creategeneratorgen_proizv;

После создания генератора необходимо установить его начальное значение.

Setgeneratorимя_генератораtoначальное_значение;

Пример:

Set generator gen_tovar to 0;

Set generator gen_proizv to 0;

После того как генератор создан и имеет некоторое значение к данному значению можно обращаться при помощи функции gen_id.

Gen_id (имя_генератора, инкрементное_значение);

Select gen_id (gen_tovar,0) from Tovar;

Удаление: dropgeneratorимя_генератора;

Триггеры

Триггеры позволяют:

  1.   Контролировать входные данные
  2.  Повысить
  3.  Обеспечить автоматическую регистрацию эл. В таблицах
  4.  Выполнять синхронное изменение в нескольких таблицах, обеспечивая как логическую целостность данных, так и автоматическое поддержание соответствия первичных и агрегированных данных.
  5.  Автоматически уведомлять об изменении БД, используя события, создаваемые триггерами.

Createtriggerимя_триггераfor (имя_таблицыилиобзор)

[active | inactive]

before | after

insert | update | delete

[positionномер_триггера]

As

[описание переменных]

Begin

Тело триггера;

End;

  1.  active | inactive – определяет активность триггера;
  2.  before | after – определяет когда включается триггер before перед действием таблицы, after после операции над таблицей;
  3.  insert | update | delete – указывает при выполнении какой операции будет включаться триггер;
  4.  position– задает порядок в котором будут выполняться триггеры, включение триггеров происходит в порядке возрастания номеров. Если триггеры имеют одинаковый номер, то они будут включаться в алфавитном порядке их имен.

Пример:

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

Create trigger tr_tovar for Tovar before insert as

Begin

New.id=gen_id(gen_tovar,1);

End;

Create trigger tr_proizv for proizvod before insert as

Begin

New.id=gen_id(gen_proizv,1);

End;

Триггер на каскадное удаление данных:

Create trigger kask_pr

For proizv

Before delete

As

Begin

Delete from Tovar where Tovar.kod_proizv=proizv.id;

End;

Создание обзоров в interBase

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

Создание обзора

Createviewимя_обзора (название_столбца1, …..) asзапрос на выборку [withcheckoption];

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

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

Withcheckoptionпредотвращаетоперацииinsertиupdate в обзоре, если они нарушают условия запроса.

Create view t_p as select Tovar.name, Tovar.kol, Tovar.price, Tovar.srok_god, proizvod.name, proizvod.country from Tovar, proizvod where Tovar.kod_proizv=proizvod.id;

Create view dorog as select * from Tovar where price=(select max (prise) from Tovar);

Обзоры бывают двух видов:

  1.  обновляемые ( updatable);
  2.  не обновляемые (read_only).

Для обновляемого обзора необходимо, чтобы:

  1.  он представлял собой подмножество одной таблицы или обновляемого обзора;
  2.  все столбцы таблицы, не вошедшие в обзор допускали значения NULL;
  3.  команда selectна которой основан обзор не содержала конструкции distinct, herbing, присоединенных таблиц, пользовательских функций или хранимых процедур.

Изменение и удаление обзоров

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


ТЕМА: Исключения и хранимые процедуры в InterBase

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

Createexceptionимя_исключения‘сообщение об ошибке’;

ТЕМА:




1. The Frog-Tzrevn.html
2. Тема Дослідження фізичних факторів навколишнього середовища які впливають на психофізіологічний стан люд
3. Проект создания плановых инженерно-геодезических сетей
4. Развитие предпринимательства в современной России
5. тематического мышления логики наблюдательности.
6. Владельцу ресторана необходимо отслеживать работу обслуживающего персонала следить за соблюдением норм и
7. Контрольная работа- Элементы финансовой отчетности
8. Лекция 1 Характеристика психологии как науки- объект и предмет психологии План 1
9. МЕДИЦИНСКИЙ КОЛЛЕДЖ 7 Департамента здравоохранения города Москвы Курсовая работа По
10. Приводится информация об обороте розничной торговли его товарной структуре и распределении по формам собс
11.  ФРЕЙД И ЕГО УЧЕНИЕ 1
12. Тема 4 ГРОШОВІ ПОТОКИ ПІДПРИЄМСТВА Питання 3
13.  Понятие и сущность логистики ее функции и глобальные задачи Логистика ~ искусство рассуждать вычислять
14. Шизофрения, простая форма
15. Статья затрат Вариант 2
16.  При любом виде начисления средней заработной платы необходимо сосчитать общую сумму заработка за 12 или 24 ме
17. Психология массовых коммуникаций курс 2 семестр 4 1
18. О НЯ Данилевско
19. На тему- Возникновение и сущность сознания
20. і Яшчэ часцей аддзяленне пласцін выраблялася новым тэхнічным прыёмам з дапамогай моцнага націску на край ву