Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЛЕЩ.docx
Скачиваний:
47
Добавлен:
13.05.2015
Размер:
3.97 Mб
Скачать

1.6.2. Резервирование информации

Рассмотрим основные способы резервирования информации.

Резервное копирование всей БДсостоит в создании резервной копии (точной копии или сжатой) на МД (зеркалирование дисков) или МЛ для полного восстановления всей БД. Резервная копия создается в режиме OnLine или в перерывах работы с БД.

Копирование изменений БДв журнал регистрации изменений (тран­закций) в базе данных.

1.6.3. Варианты разработки приложений

Имеются три варианта разработки приложений:

  1. Использование исключительно средств (если они имеются) СУБД (Oracle,VisualFoxpro).Достоинство:вы­со­­кая эффективность обра­бот­ки данных.Недоста­тки:трудно сменить в при­­ло­­жении тип СУБД, сложность и тру­до­ем­кость освоения разно­об­раз­ных средств СУБД.

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

  1. Использование средств уни­вер­саль­ных языков программирования Delphi,C++Builder,VisualC++ илиVisaulBasic*.Достоинства:уни­вер­саль­но­сть, можно легко сменить в приложении тип СУБД, использование уже ос­во­ен­ных пользователем языков программирования, упрощение процесса ос­во­е­ния СУБД.Недостатки:более низкая эффективность обработки дан­ных.

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

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

1.7. Стандартизация баз данных

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

SQL 2008‑ расширение SQL‑92 возможностей управления хранимыми про­це­ду­рами, объектно‑ориентированными таблицами, средствами опреде­ле­ния ти­пов и методов доступа к ним.

ODMG‑93- обеспечивает независимость прикладных программ от систем управления объектными базами (СУОБД).

CORBA‑ управление взаимодействием клиентов и серверов в распре­де­лен­ной сетевой среде с различными типами ОС и компь­ю­теров.

SSA(IBM) ‑ обеспечивает переносимость операционных систем.

ODBC, ADO(Microsoft),BDE(Borland) ‑ доступ к базам данных с различ­ны­ми СУБД из прик­­ладных программ (для BDE ‑ разработанных в Delphi).

1.8. ЯзыкSql

1.8.1. Введение вSql

SQL (Structured Query Language) – Структурированный Язык Запросов – стандартный язык запросов по работе с реляционными БД. Язык SQL появился после реляционной алгебры, в конце 70-х годов в компании IBM Research. В дальнейшем этот язык применялся во многих коммерческих СУБД и стал стандартом «де-факто» для языков манипулирования данными в реляционных СУБД.

Первый международный стандарт языка SQL был принят в 1989 г. (SQL/89 или SQL1 или ANSI/ISO).

В настоящее время действует стандарт, принятый в 2008 году (SQL:2008)

Операторы SQL встраиваются в базовый язык программирования, которым может быть любой стандартный язык типа C++, C#, Delphi, PHP и др. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме.

SQL подразделятся на два подмножества команд: DDL (Data Definition Language - язык определения данных) и DML (Data Manipulation Language - язык обработки данных). Команды DDL используются для создания новых баз данных, таблиц и столбцов, а команды DML - для чтения, записи, сортировки, фильтрования, удаления данных.

Существуют два типа языков опи­сания запросов: язык запросов по образцу QBE (Query By Example) и структурированный язык запросов SQL (Structured Query Language).

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

Язык SQLпредполагает использование коман­д­ных средств. Хотя синтаксис команд языка SQL и достаточно унифици­ро­ван для различных СУБД, но есть некоторые отличия в деталях. Суще­ствуют статический SQL (команды SQL включаются в выполняемый модуль после компиляции) и динамический SQL (команды SQL форми­руют­ся в процессе выполнения программы и выпол­няют­ся в интер­пре­ти­рую­щем режиме). В результате выполнения запро­са на выборку фор­ми­рует­ся но­вая таблица, называемая представлением (View), к которой уста­нав­­ли­вает­ся со­ответствующий указатель, называемый курсо­ром (Cursor). Курсор слу­жит для ссылки на нужное представление в командах открытия, пере­ме­щения по записями и закрытия нужного представления (п. 4.3.6).

Приведем классификацию основных команд SQL

Операторы определения данных DDL

CREATE TABLE - создает новую таблицу в БД.

DROP TABLE - удаляет таблицу из БД.

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

CREATE VIEW - создает виртуальную таблицу, соответствующую. некоторому SQL-запросу.

ALTER VIEW - изменяет ранее созданное представление.

DROP VIEW - удаляет ранее созданное представление.

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

DROP INDEX - удаляет ранее созданный индекс.

Операторы манипулирования данными (DML)

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

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

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

Язык запросов Data Query Language (DQL)

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

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

COMMIT - завершить комплексную взаимосвязанную обработку информации, объединенную в транзакцию.

ROLLBACK - отменить изменения, проведенные в ходе выполнения транзакции.

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

Средства администрирования данных

ALTER DATABASE - изменить набор основных объектов в базе данных, ограничений, касающихся всем базы данных.

ALTER DBAREA - изменить ранее созданную область храпения.

ALTER PASSWORD - изменить пароль Изменить пароль для всей базы данных.

CREATE DATABASE - создать новую базу данных, определив основные параметры для нее.

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

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

DROP DBAREA - удалить существующую область хранения (если в ней на настоящий момент не располагаются активные данные).

GRANT - предоставить нрава доступа на ряд действий над некоторым объектом БД.

REVOKE - лишить прав доступа к некоторому объекту или некоторым действиям над объектом.

Программный SQL

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

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

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

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

PREPARE - сгенерировать план выполнения запроса, соответствующего заданному оператору SQL.

EXECUTE - выполнить оператор SQL, ранее подготовленный к динамическому выполнению. .

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

Рассмотрим еще несколько команд.

CREATETABLE <имя таблицы> (<поле> <тип поля> [Not Null], ...) соз­да­ние таблицы (Create Table Kadr (Tab Integer, Fam Char (30) Not Null Primary Key (Tab))). Обязательное присутствие значения в поле задается пара­мет­ром Not Null. Основные типы полей в SQL в Delphi: SmallInt (Short), Integer (Long Integer), Numeric(x,y), Float (x,y), Char (n), Data, Boolean, Time, Money, Autoinc. Для других СУБД типы полей могут быть другими.

CREATE VIEW <имя представления> [(<имя столбца>,...)] AS<оператор SELECT> соз­да­ние представления с новыми именами столбцов (Create View NameStroek As Select Stroiki.Ns FROM Stroiki).

ALTERTABLE <имя таблицы> {ADD|MODIFY|DROP} <поле> [<тип поля>] [NOTNULL, ... ‑ из­ме­не­ние структуры таблицы: включение (Add), изменение (Modify) и удаление (Drop, тип поля не указывается) полей таблицы (Alter Table Stroiki Add Gorod Integer Drop Kp).

UPDATE <таблица> Set <имя поля>={<новое значение>|NULL}, ...

[WHERE <условие>]изменение значений полей (Update Kadr Set Oklad=1.5*Oklad Where Cex=”Цех N2”).

CREATE TABLE <имя таблицы> (<поле> <тип поля> [NOT NULL], ...) соз­да­ние таблицы (Create Table Kadr (Tab Integer, Fam Char (30) Not Null Primary Key (Tab))). Обязательное присутствие значения в поле задается пара­мет­ром Not Null. Основные типы полей в SQL в Delphi: SmallInt (Short), Integer (Long Integer), Numeric(x,y), Float (x,y), Char (n), Data, Boolean, Time, Money, Autoinc. Для других СУБД типы полей могут быть другими.

ALTER TABLE <имя таблицы> {ADD | MODIFY | DROP} <поле> [<тип поля>] [NOT NULL, ... из­ме­не­ние структуры таблицы: включение (Add), изменение (Modify) и удаление (Drop, тип поля не указывается) полей таблицы (Alter Table Stroiki Add Gorod Integer Drop Kp).

UPDATE <таблица> SET <имя поля>={<новое значение>|NULL}, ...

[WHERE <условие>]изменение значений полей (Update Kadr Set Oklad=1.5*Oklad Where Cex=”Цех N2”).

INSERT INTO<имя таблицы>(<список полей>) {VALUES (<список значе­ний>)| SELECT...}‑ включение новой записи или группы записей из другой таблицы.

Примеры

Insert Into Zakazhiki (Kz,Nz) Values (3,’ЗИЛ’); // включение одной записи

Insert Into Podrjdhiki (Kp,Np) Select KPodr, NPodr From SpravPodr

Where DSozd >01.01.80; //включение группы записей из таблицы SpravPodr

CREATE [UNIQUE] INDEX <имя индекса> ON <таблица> (<поле> [{ASC|ESC}],...) ‑ создание индекса (Create index indproba on stroiki (kz, kp)).

DROP TABLE/VIEW <имя> ‑ удаление таблицы/представления (Drop Table Stroiki).

DROP INDEX [“<имя таблицы>”.]<имя индекса> ‑ удаление индекса.

DROP INDEX [“<имя таблицы>”.]PRIMARY ‑ удаление главного индекса.

DELETE FROM <имя таблицы> [WHERE<условие>]‑ удаление записей.