Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы(ГИС).doc
Скачиваний:
18
Добавлен:
08.05.2019
Размер:
2.81 Mб
Скачать

Код Код_фирмы

Модель Фирма

Цена Реквизиты

Код заказа

Код

Код_фирмы

Количество

Дата

Ниже приводится соответствующее предложение запроса SQL:

SELECT Заказы.Номер, Заказы.Дата, Заказы.Количество, Фирмы.Фирма, Компьютеры.Цена, Компьютеры.Модель, [Компьютеры.Цена] * [ЗаказыКоличество] AS Сумма FROM Фирмы INNER JOIN ( Компьютеры INNER JOIN Заказы ) ON Компьютеры.Код=Заказы.Код ) ON Фирмы.[Код_фирмы]=Заказы.[Код_фирмы] WHERE ((Заказы.Дата) BETWEEN [T1] AND [T2]);

Поскольку запрос основан на трех таблицах, в нем последовательно используются две вложенных инструкции INNER JOIN и соответственно два указания ключей связи.. В запросе располагается вычисляемое поле Сумма как произведение двух полей. Условие состоит в принадлежности поля Дата интервалу: T1 < Дата < T2, где T1,T2 вводятся в диалоге как параметры.

Приведем теперь пример запроса, использующего аггрегатную функцию SUM для вывода итогового значения:

SELECT SUM ( [Количество]*[Цена] ) AS Totalsum FROM Заказы

Инструкция ORDER BY в запросах на выборку определяет порядок сортировки записей при просмотре. При этом задается поле как ключ упорядочения, а также порядок – по возрастанию или убыванию ( для числовых полей) , либо в алфавитном порядке или наоборот ( для текстовых полей).

Пример:

SELECT * FROM Computers ORDER BY Price ASC –сортировка по возрастанию

SELECT * FROM Computers ORDER BY Price DESC – сортировка по убыванию

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

SELECT Фамилия, Доход FROM Список ORDER BY Доход DESC , Фамилия ASC

В результате выполнения этого запроса отбираются указанные поля таблицы «Список» и сортируются по полю «Доход» в порядке убывания, а все фамилии лиц с одинаковым доходом выводятся в алфавитном порядке.

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

Общий вид запроса на добавление записей в таблицу:

INSERT INTO <таблица> <список полей > VALUE <список значений >

В те поля, значения которых не перечислены, заносится по умолчанию специальное значение – NULL. Записи добавляются в конец таблицы.

Запрос на изменение значений полей записи:

UPDATE <таблица> SET <поле1>= значение1 ,<поле2>= значение2 , …. WHERE <условие>

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

Запрос на удаление:

DELETE FROM < таблица> WHERE <условие>

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

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

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

CREATE TABLE <таблица > <поле1> <тип>, <поле2> <тип>,….

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

DROP TABLE <таблица>

Добавление поля:

ALTER TABLE <таблица> ADD COLUMN <поле> <тип>

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

      1. Объектная модель ДАО.

Объектная модель ACCESS представляет собой иерархическую схему семейств объектов, доступ к которым осуществляется с помощью присвоенных им имен либо индексов в семействах. Приведем схему модели:

Application

Form(s) Report(s) Module(s) Screen DoCmd

Control(s) Control(s)

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

Семейство Controls содержит все элементы управления форм и отчетов.

Для перечисления компонентов семейства может быть использован оператор цикла For…Each…Next.

Объект Form представляет конкретную форму Access как представитель класса (семейства).

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

Forms!name

Forms![name]

Forms!(“name”)

Forms(index)

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

При ссылках на конкретные элементы управления в формах допускаются явные и неявные ссылки на семейство Controls:

Forms!Заказы!Продано

Forms!Заказы.Controls!Продано

В следующем примере демонстрируются два способа ссылки на элемент управления Количество в подчиненной форме SubForm, содержащейся в форме «Заказы» :

Forms!Заказы.SubForm.Form!Количество

Forms!Заказы.SubForm!Количество

Возможна организация быстрых ссылок на элементы управления с помощью ключевого слова Me:

Me!Количество

Me![Количество]

Me!(“Количество“)

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

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

Forms![Заказы]

Forms![Заказы]![Количество]

Оператор . указывает, что следующий за ним элемент определен в MS ACCESS .

Возможно использование статистических функций в вычисляемых элементах форм и отчетов. Основные функции: avg( ) - среднее значение, count() – подсчет числа записей ,sum() – подсчет суммы . Примеры выражений:

=count([kod])

=sum([Количество])

=sum([Количество]*[Цена])

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

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

=Dsum(поле, имя_таблицы, условие)

=Dlookup(поле, имя_таблицы, условие)

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

Функция Dlookup предназначена для поиска и отображения значения указанного поля той записи таблицы, которая удовлетворяет условию. Функция Dsum предназначена для подсчета и отображения суммы значений указанного поля тех записей таблицы, которые удовлетворяют заданному условию. Условие представляет собой символьное выражение, обычно содержащее два операнда, объединенных операцией отношения ( =, >, < ).

Примеры:

=Dsum(“[Количество компьютеров ]”;”Заказы “; “[Код_модели_компьютера]=Forms![Компьютеры]![Код модели]”)

-отображается сумма количеств проданных компьютеров из таблицы «Заказы», в которой значение поля «Код_модели_компьютера» совпадает с полем ( элементом управления) «Код модели» формы «Компьютеры».

=Dsum(“[Количество мониторов]”; “Заказы“ ;

[Код_модели_монитора ]=[Kod]”)

-отображается сумма количеств проданных мониторов из таблицы «Заказы», в которой значение поля «Код модели монитора» равен занчению параметра «Kod».

=Dsum(“[Количество компьютеров ]”;”Заказы “; “[Код_модели_компьютера]=Forms![Компьютеры]![Код модели] AND

[Дата]>=Forms![Компьютеры]!Dat1 AND [Дата]<=Forms![Компьютеры]!Dat2”)

-отображается сумма количеств проданных компьютеров из таблицы «Заказы», в которой значение поля «Код_модели_компьютера» совпадает с полем (элементом управления) «Код модели» формы «Компьютеры», а значения поля «Дата» находятся в интервале Dat1<= Дата <=Dat2, причем Dat1, Dat2 рассматриваются как параметры формы, запрашиваемые в диалоге.

Рассмотрим теперь примеры вычисления итоговых значений для сложных форм, основанных на таблицах, связанных отношениями типа один-ко-многим. В главной форме выводятся поля записей главной таблицы, в подчиненной форме выводятся поля записей подчиненной таблицы. Одной записи главной формы соответствуют одна или несколько записей подчиненной. Как правило, главная форма выводится в один столбец, а подчиненная -в ленточном или табличном. Приведем пример сложной формы «Компьютеры-Заказы», содержащей главную форму «Computers”, основанную на таблице «Компьютеры» и имеющей поля: «Код», «Модель», «Цена», а также подчиненную форму «Subformcomp», основанную на таблице «Заказы» и имеющую поля «Дата», «Кол-во компьютеров».

Для расчета суммарного количества проданных компьютеров каждой модели в поле примечаний подчиненной формы следует добавить свободное поле, в свойство «Данные» которого необходимо ввести выражение:

=sum([Кол-во компьютеров]).

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

=[Subformcomp].Form!ПолеN , где ПолеN -имя вычисляемого поля подчиненной формы.

Таким образом с помощью объектной модели ACCESS возможно конструирование форм и отчетов различной степени сложности в соответствии с поставленной задачей.

      1. Распределенные базы данных типа клиент-сервер.

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

В системе клиент/сервер процессор БД размещается на центральном сервере вместе с хранилищем данных. Процессор может обслуживать одновременно много приложений-клиентов, управляя хранилищем данных и возвращая запрашиваемую информацию каждому локальному приложению. В системе с удаленными данными процессор БД находится на том же ПК, где и приложение пользователя, а на сервере располагается только хранилище данных. Процессор MS JET не является процессором клиент/сервер. Это локальный процессор БД- набор файлов DLL, которые в период выполнения динамически связываются с программой ACCESS. Если на разных рабочих станциях имеется несколько копий программы, каждая должна иметь собственную локальную копию процессора JET, даже если все они обращаются к одной удаленной БД.

ФАЙЛ_СЕРВЕР КЛИЕНТ/СЕРВЕР

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

Процессор БД

Процессор БД

Хранилище данных Хранилище данных

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

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

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

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

Преимущества системы клиент/сервер:

Более высокая надежность и устойчивость операций, поскольку работает один процессор БД

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

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

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

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

Сервер БД Microsoft SQL SERVER 7.0 относится к системе типа клиент/сервер и является распространенным сетевым программным продуктом, наряду с Oracle, Sybase, Interbase и др.

Рассмотрим кратко его основные характеристики

SQL SERVER может устанавливаться на платформах Windows NT , Windows 95, Windows 98, Windows 2000

SQL SERVER выполняет функции создания объектов базы данных ( таблиц, индексов и тд), осуществляет проверку целостности БД и отвечает за безопасность данных в системе

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

Администрирование БД осуществляется на самом сервере

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

SQL SERVER сохраняет создаваемые объекты в соответствующих файлах на дисковом пространстве ПК-сервера. Файлы данных имеют расширение .mdf, системные файлы - .ldf. Основные количественные характеристики системы SQL SERVER:

Макс. Количество БД – 32767

Макс размер БД - 1048516 Тб

Макс число таблиц в одной БД – 2 млрд

Макс количество столбцов в одной БД – 1024

Основные операции, связанные с управлением работой SQL-SERVER, осуществляются с помощью ряда утилит, входящих в состав системы. Рассмотрим основные из них.

SQL SERVER SERVICE MANAGER - выполняет работу, связанную с запуском, остановкой и временной приостановкой работы сервера. Эта утилита запускается на ПК-сервере и реализует все функции сервера по предоставлению доступа к данным

SQL SERVER ENTERPRISE MANAGER – предоставляет пользователю возможности создания БД, заполнения таблиц, созданию связей между ними, просмотра таблиц и их обновления

SQL QUERY ANALYZER – предназначена для формирования запросов, вывода и просмотра результатов, а также для вызова представлений (VIEW )-сохраненных запросов

Создание структуры таблиц – имена таблиц, их типы и размеры осуществляется средствами SQL SERVER ENTERPRISE MANAGER в диалоговом режиме.

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

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

Целые типы:

Int - 4 bytes

Smallint – 2 bytes

Tinyint – 1 byte

Данные с плавающей точкой

Real – 4 bytes 3.4E-38 - 3.4E38

Float[n] - n bytes по умолчанию 8 байтов 1.7Е-308 - 1.7Е308

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

Char[n] – n байтов для хранения символов , позволяет хранить до 8К символов

Varchar[n] – размер области хранения меняется в соответствии с фактическим количеством символов не превышая n

Text – для хранения больших объемов текстовой информации от 1 до 8К

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

Datetime – позволяет хранить дату и время от 01/01/1753 до 12/31/9999. Объем – 8 байтов. Для отображения по умолчанию используется формат MMM YYYY hh:mmAM/PM например

Sep 12 1999 11:24PM

Тип money : позволяет хранить значения денежных единиц. Данные этого типа хранятся в виде целой и дробной частей

В системе SQL SERVER реализована двухуровневая настройка ограничения доступа к данным. На первом уровне создается учетная запись пользователя, позволяющая ему подключаться к самому серверу. На втором уровне для каждой базы данных на основании учетной записи создается запись пользователя – определяющая уровень доступа к каждой конкретной БД. При этом в системе существуют дополнительные объекты – роли ( ROLES), которые подразделяются на серверные ( для учетных записей сервера), и БД ( для пользователей). Краткое описание серверных ролей:

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

Security Administrators- управление доступом и создание БД

Server Administrators- настройка конфигурации и закрытие сервера

Disk Administrators- управление файлами на сервере

Database Administrators- управление процессами создания и удаления БД

Роли доступа к объектам БД:

Public

Db_owner

Db_accessadmin

Db_datawriter

      1. Организация данных в СУБД SQL-сервер.

      2. Защита данных в СУБД SQL-сервер.