Будь умным!


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

СОЗДАНИЕ ЗАПРОСОВ Запрос в Visul Fox Pro это тот же вопрос

Работа добавлена на сайт samzan.net:


31. СОЗДАНИЕ ЗАПРОСОВ

Запрос в Visual Fox Pro - это тот же вопрос. Если вы обращаетесь с запросами к базе данных, то вы задаете ей вопросы о данных, содержащихся в ней. Запросы хранятся как программные файлы с расширением .QPR, которые содержат команду SELECT языка SQL. 
Для создания запросов в Visual FoxPro можно использовать 
Query Wizard (Мастер по созданию запросов), или Query Designer(Конструктор запросов), или же и то, и другое. Применение Query Wizard целесообразно для быстрого создания несложных, стандартных запросов. В свою очередь Query Designer позволяет вам творчески подойти к задаче и конструировать более изящные, эффективные и сложные запросы.

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

SELECT mytable.* FROM mytable

    Впрочем, можно еще короче:

SELECT * FROM mytable

    Таким образом, выбраны все записи из таблицы Mytable. 
    В зависимости от того, какое приложение вы выбрали для изучения SQL, вас ожидают совершенно разные пути ввода данной команды в память вашего компьютера
.         Начнем с Visual FoxPro. Здесь у нас есть целых три варианта выполнения команд SQL:         Набрать команду в окне Command.

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

Способ, наиболее привлекательный для начинающих программистов, - использовать Relation Query By Example (RQBE) - Реляционный запрос по образцу.

    Для того чтобы использовать RQBE, вам достаточно выполнить команду New из меню File, а затем выбрать тип создаваемого файла - Query. RQBE - это интерактивная среда, в которой вы формируете запрос в основном с помощью мыши, перетаскивая нужные вам поля в определенные области диалогового окна. 

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

Создание баз данных

CREATE DBF <DBF-файл> (<имя поля>< тип> [(<размер>[,<дробных разрядов>]) [,<имя поля>  . . .]])

Команда создает новую базу данных: DBF-файл с указанным именем. Для каждого поля задаются его имя, тип (одной из букв C, N, D, M, F, L), длина и число десятичных разрядов. Длина и точность не задаются для типов дата (D), логический (L) и примечаний (M).

Пример. Создание базы KADR.DBF

CREATE DBF kadr (FAM C(15), TAB N(3), DTR D, POL C(1), SEM C(1), DET N(1), ;
          PODR C(15), SZAR N(9), PER M)

Дополнение базы данных

INSERT INTO <файл БД> [(<  поле1> [,<  поле2>...]  VALUES  (<выр1>[,< выр2>...])

Пример. 
INSERT INTO kadr (fam, tab, szar) VALUES ('Иванов', 350, 800000)

Формирование запросов

SELECT < что выводится >

        FROM < откуда (источник)>INTO < куда (получатель)>
        WHERE < условие >
        GROUP BY < колонки, по которым выполняется группирование>
        HAVING < условие группирования записей в одну строку>
        ORDER BY < в каком порядке выводить данные>

 Каждый параметр команды SELECT имеет опции

SELECT [DISTINCT] [<псевдоним >. ]<выражение > [AS <колонка > ]
    FROM  <БД>[<псевдоним > ] [,<БД >  [<псевдоним >   ]...]

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

INTO получатель
   Получателем может быть
ARRAY <массив > - задается вновь создаваемый двумерный массив
   CURSOR <курсор > - задается имя Курсора
    DBF/TABLE <БД > - новая база данных с указанным именем
Курсор - это временный набор данных, который может быть областью памяти или временным файлом. Кроме того, данные можно переслать в файл или на принтер.
TO FILE <файл >   ADDITIVE / TO PRINTER - выборка посылается в текстовый файл или на принтер. Если используется слово ADDITIVE, то выборка будет добавлена будет добавлена в конец существующего файла без его перезаписи.
GROUP BY  < колонка> - производит группирование выходных данных.
HAVING <предикат > - опция задает критерий отбора данных.
ORDER BY <колонка > [ASC/DESC] - опция задает упорядочение по заданной колонке. По умолчанию сортировка выполняется по возрастанию (ASC) или по убыванию (DESC).

Стандартные функции.
COUNT( ) – число значений в столбце.
SUM( )  – сумма значений какого-либо столбца.
AVG( )  – среднее  значение.
MAX( ) – самое большое значение в столбце.
MIN( )   – самое малое значение в столбце.

34. Работа с данными в локальной сети

Visual FoxPro

    Как правило, данные необходимо использовать не на одном компьютере. Обычно с ними работает группа пользователей. Способ обмена данными посредством дискеты, безусловно, значительно облегчает работу программиста, однако такой способ организации выглядит в настоящее время скорее вызовом, чем правилом. Тем более, что сама работа в сети экономит массу средств и самое главное - время, которое, как вам уже известно, все больше становится эквивалентом денег. 
    Visual FoxPro обеспечивает работу с данными с помощью монопольного или раздельного доступа к данным, опций блокировки, буферизации таблиц и записей, а также поддержки транзакций. Помимо этого Visual FoxPro автоматизирует многоразовую установку среды окружения посредством сессий данных.
 
    В многопользовательских системах необходима уверенность, что только один пользователь может заносить данные в файл или запись в текущий момент. Один из способов добиться этого - открыть таблицу с монопольным доступом. Ни один пользователь или приложение не смогут после этого ни читать данные из этого файла, ни писать в него. Приложение выведет сообщение об ошибке, если какая-нибудь таблица, необходимая для монопольного доступа, уже открыта.
 
    После выполнения команды
 SET EXCLUSIVE ON все таблицы будут открываться в монопольном режиме. Если необходимо проверить текущую установку, то используйте функцию SET() с аргументом EXCLUSIVE следующим образом:

? SET("EXCLUSIVE")

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

USE myfile EXCLUSIVE

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

 Иногда бывает необходимо применить ручную блокировку. Visual FoxPro блокирует текущую таблицу с помощью функции FLOCK(). В отличие от команды SET EXCLUSIVE ON, которая предотвращает любой доступ к таблице со стороны других пользователей, FLOCK() блокирует таблицу, оставляя ее доступной для чтения. Остальные пользователи могут открывать таблицу и просматривать записи, даже не задумываясь о том, что она заблокирована. FLOCK() блокирует текущую таблицу и возвращает .T., если блокировка прошла успешно. 
    Если в качестве аргумента функции вы укажете псевдоним или номер рабочей области, то у вас появится возможность заблокировать таблицу в другой, не текущей рабочей области. Например: FLOCK('1') или FLOCK('Account'). Эта особенность очень полезна для блокировки связанных таблиц. RLOCK() и LOCK() блокируют текущую запись и возвращают .T., если блокировка завершилась успешно. 

32. При знакомстве со средствами Visual FoxPro для создания экранных форм вы могли убедиться в их гибкости и мощности. Аналогичные средства Visual FoxPro предоставляются в ваше распоряжение для создания отчетов. При создании отчета вы можете воспользовать ся стандартными средствами, ускоряющими процесс создания отчета, или разработать для отчета специальный формат с помощью конструктора отчетов. Конструктор отчетов позволяет создавать отчеты как в табличном виде, так и в свободной форме. Табличный отчет представляет собой напечатанную таблицу, в которой данные упорядочены по столбцам и строкам. Каждый из столбцов отчета содержит поле исходной таблицы или вычисляемое поле, а строка представляет собой запись. Табличный отчет позволяет напечатать данные из таблиц в наиболее простом и естественном виде. Однако табулированное представление данных в отчете имеет свои недостатки. На практике в ряде случаев (почтовые этикетки, чеки, письма и т.д.) поля исход ной таблицы должны располагаться в специально отведенных для них местах отчета. Очевидно, что табличный отчет не пригоден для этих целей.

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

В Visual FoxPro для создания отчетов используется:

Мастер отчетов (Report Wizard), позволяющий достаточно быстро создать отчет, выбрав параметры сортировки и группировки данных, стиль отображения данных и их расположение Стандартный отчет (Quick Report), позволяющий создавать стандартный отчет, в котором поля отчета располагаются автоматически по внутреннему алгоритму Visual FoxPro Конструктор отчета, в котором вы самостоятельно разрабатываете собственные отчеты

33. Объекты Visual FoxPro 

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

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

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

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

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

Отчеты используются для просмотра и вывода на печать содержащейся в базе данных информации. Примерами отчетов являются прайс-лист товаров, список покупателей, оборотная складская ведомость. Как правило, отчеты создаются в том случае, если информацию необходимо передавать кому-либо в печатном виде. Для создания отчетов в Visual FoxPro, как и для форм, используются мастер и конструктор отчетов. С помощью мастера отчетов вы можете быстро создать собственный отчет на основе имеющихся шаблонов. Применение конструктора отчетов позволяет создавать отчеты произвольной сложности, включая многоуровневую группировку данных и размещение вычисляемых полей. Запросы являются средством выборки данных из одной или нескольких таблиц. В Visual FoxPro для создания запроса вы можете использовать как конструктор запросов, так и специализированный язык Structured Query Language (SQL). Результаты выполнения запроса могут отображаться в форме, выводиться в виде отчетов и диаграмм или сохраняться в указанной вами таблице.

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

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

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

39.  Форму можно создать тремя различными способами.

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

Вручную в режиме конструктора. Сначала создается базовая форма, которая затем изменяется в соответствии с требованиями в режиме конструктора.

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

Более точно, к числу функций СУБД принято относить следующие:

3.1. Непосредственное управление данными во внешней памяти

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

3.2. Управление буферами оперативной памяти

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

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

3.3. Управление транзакциями

Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует (COMMIT) изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. Если вспомнить наш пример информационной системы с файлами СОТРУДНИКИ и ОТДЕЛЫ, то единственным способом не нарушить целостность БД при выполнении операции приема на работу нового сотрудника является объединение элементарных операций над файлами СОТРУДНИКИ и ОТДЕЛЫ в одну транзакцию. Таким образом, поддержание механизма транзакций является обязательным условием даже однопользовательских СУБД (если, конечно, такая система заслуживает названия СУБД). Но понятие транзакции гораздо более важно в многопользовательских СУБД.

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

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

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

37. Создание базы данных

В Microsoft Access поддерживаются три метода создания Базы данных Access.

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

Создание базы данных с помощью мастера

При использовании Microsoft Access 2003, можно выполнить поиск шаблонов Access на веб-узле <Office Online>. Загрузка шаблона — это самый быстрый способ создания базы данных. Если удалось найти шаблон, полностью удовлетворяющий требованиям, используйте метод, описанный выше. Шаблон представлен файлом Access (*.mdb) и содержит таблицы, запросы, формы и отчеты. Таблицы не содержат данных. После открытия базы данных можно настроить ее и ее объекты.

Создание базы данных с помощью шаблона

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

Создание пустой базы данных без помощи мастера

Последующие действия

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

Добавить данные в базу данных.

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

27. Структура программы_ 
Программный файл обычно содержит следующие элементы. 
1
. Заголовок программного файла — позволяет легко ориентироваться в большом количестве программ. Поскольку это комментарий, строка заголовка начинается символом * и не компилируется. 
Заголовок может выглядеть так. 
* Наименование программы: search.prg 
* Назначение:' поиск по введенному параметру 
* Вызывается из программы main.prg 
Глава 7. Программирование в Visual FoxPro 7.0 
115 
* Программа начата 25.09.1998 
* Дата последней модификации 03/02/9 
2.
Установочная часть программы - содержит команды SET, определяющие окружение: озвучивание, цветовую гамму, форматы, подавление вывода ненужных сообщений. После компиляции выполненные в программе настройки изменить нельзя. Например, если файл, который вы хотите создать, уже существует, на экране появляется вопрос, перезаписать ли этот файл? При положительном ответе файл будет обновлен. Для того чтобы при выполнении программы такое сообщение не выводилось, в ней должна быть команда SET SAFETY OFF. 
Кроме того, в установочной части записываются команды очистки экрана, макросов, окон и других результатов, полученных ранее. Ниже
 показан пример установочной части программы
CLEAR 

CLEAR MEMORY CLEAR ALL CLOSE ALL CLEAR MACROS 
************************************************ SET TALK OFF 
SET COLOR OF SCHEME 1 TO. 5 
SET CONFIRM ON 
SET BELL OFF 
SET DATE GERMAN 
SET ESCAPE OFF 
SET COMPATIBLE OFF 
SET SCOREBOARD OFF 
SET HOURS TO 24 
SET CLOCK ON 
SET EXACT ON 
SET SAFETY OFF 
SET SYSMENU ON 
SET PROCEDURE TO rOZ_pro 
SET AUTOSAVE ON 
3.
Операционная часть программы - содержит команды открытия файлов, выбора рабочих областей, обработки и отображения информации. 
4.
Заключительная часть программы - приводит рабочее пространство в исходное состояние, удаляет временные переменные и закрывает открытые файлы. Например
POP KEY CLEAR ALL CLEAR ON KEY CLOSE ALL 
RELEASE WINDOWS ALL

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

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

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

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

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

Обычно современная СУБД содержит следующие компоненты:

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

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

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

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

Функции СУБД. Типовая организация СУБД. Примеры

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

Типовая организация СУБД

Естественно, организация типичной СУБД и состав ее компонентов соответствует рассмотренному нами набору функций. Напомним, что мы выделили следующие основные функции СУБД:

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

управление буферами оперативной памяти;

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

журнализация и восстановление БД после сбоев;

поддержание языков БД.

Логически в современной реляционной СУБД можно выделить наиболее внутреннюю часть - ядро СУБД (часто его называют Data Base Engine), компилятор языка БД (обычно SQL), подсистему поддержки времени выполнения, набор утилит. В некоторых системах эти части выделяются явно, в других - нет, но логически такое разделение можно провести во всех СУБД.

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

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

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




1. Труднорешаемые задач
2. Контрольная работа- Организационная структура гостиничного предприяти
3. Тема 9. РЕЛЬЕФ И ЭНДОГЕННЫЕ ПРОЦЕССЫ 9
4. Реферат- Справочник.html
5. Правовое регулирование земельных отношений
6. Статья- Особенности ионного переноса в твердом электролите с двумя сортами подвижных катионов
7. Крепостное право в России
8. Здравствуйте дорогие друзья Ведущий- Всем хорошего настроения и лучезарных улыбок Ведь сегодня пон
9. Тема заняття- Державна політика у сфері зайнятості
10.  Задача ~ Чем похожи тексты задач Чем отличаются Какую задачу вы можете решить Какую ~ нет ~ Почему
11. тематичних функцій
12. Статья- Тотальная газификация или жажда подскажет
13. тематичний аналіз А В Т О Р Е Ф Е Р А Т дисертації на здобуття наукового ступеня кандидата ф
14. По дорогам сказок
15. Stigmt 2 Storm Inside 3 АнДем 4 SLOT 5 Тонкая Красная Нить 6 Чужие Сны 7 1 bit of Sense 8 5 Стихий 9 Zодиаки 10 FORSIG
16. Реферат на тему- Феноменологическая социология и этнометодология Выполнила- студентка 1 ку
17. Сутність маркетингу
18. Преподаватель-
19. Оптимизация базовой оплаты труда (окладов)
20. і. 2012 ж~не 2013 жылдарда орта~ конкурсты~ к~рсеткіші бойынша бір орын~а 24тен 20 адам с~йкес келеді