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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

Система SQL Server может быть реализована либо как:

- клиент-серверная,

- автономная "настольная" система.

Клиент-серверная система SQL Server может иметь:

- двухзвенную установку (two-tiersetup),

- трехзвенную установку (three-tiersetup).

Независимо от варианта установки, ПО и БД SQL Server размещаются на центральном компьютере, который называется сервер базы данных (database server).

Пользователи работают на отдельных компьютерах, которые называются клиенты (clients).

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

· двухзвенных системах при помощи приложений с их компьютеров-клиентов;

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

Двухзвенная архитектура:

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

При помощи двухзвенных приложений каждый пользователь может иметь одно или несколько соединений с БД SQL Server.

Трехзвенная архитектура:

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

В типичных трехзвенных приложениях используется промежуточный уровень для обслуживания многочисленных соединений от уровня служб представления, благодаря чему уменьшается количество соединений с SQL Server. Кроме того, этот промежуточный уровень может выполнять значительный объем работы, связанной с реализацией специфики целевых задач (логики предметной области), освобождая БД для решения тех задач, которые она выполняет лучше всего, – для доставки требуемых данных.

Однозвенная архитектура

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

Примером однозвенной архитектуры может служить БД Microsoft Аccess с локальными службами представления.

Пример однозвенной архитектуры с SQL Server найти гораздо труднее.


20. Общие понятия и определения целостности. Принципы поддержки целостности в СУБД. Преимущества и недостатки средств обеспечения целостности данных. Примеры использования объекта «ограничения целостности» в базе данных.

Одним из основополагающих понятий в технологии БД является понятие целостности.

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

Поддержка целостности в реляционной модели данных в ее классическом понимании включает в себя 3 аспекта:

· поддержка структурной целостности

· поддержка языковой целостности

· поддержка ссылочной целостности (Declarative Referential Integrity, DRI)

Поддержка структурной целостности:

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

Поддержка языковой целостности:

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

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

Поддержка ссылочной целостности:

Означает обеспечение одного из заданных принципов взаимосвязи между экземплярами кортежей взаимосвязанных отношений:

· кортежи подчиненного отношения уничтожаются при удалении кортежа основного отношения, связанного с ними.

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

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

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

Преимущества и недостатки:

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

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

Примеры правил:

вес детали должен быть положительным; количество знаков в телефонном номере не должно превышать 25; возраст родителей не может быть меньше возраста их биологического ребёнка и т.д.

Главное средство обеспечение доменной целостности в SQL Server - это ограничение CHECK. Оно может быть определено при создании таблицы или добавлено позднее при помощи команды ALTER TABLE, например:

ALTER TABLE dbo.Employees

ADDCONSTRAINT CK_birthdate CHECK (BirthDate> '01-01-1900' AND BirthDate<getdate())

Понятие подзапроса. Примеры формирования связанных и вложенных подзапросов.

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

Запросы, отделенные круглыми скобками и входящие в состав конструкций HAVING, WHERE, FROM, SELECT и WITH внешнего запроса SELECT или каких-либо других перечисленных запросов, заключающих в себе эти конструкции, называются вложенными запросами (подзапросами).

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

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

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

SELECT *

FROM EXAM_MARKS

WHERE STUDENT_ID =

(SELECT STUDENT_ID

FROM STUDENTSURNAME='Петров' );

Как работает запрос SQL со связанным подзапросом?

1) Выбирается строка из таблицы, имя которой указано во внешнем запросе.

2) Выполняется подзапрос и полученное значение применяется для анализа этой строки в условии предложения WHERE внешнего запроса.

3) По результату оценки этого условия принимается решение о включении или не включении строки в состав выходных данных.

4) Процедура повторяется для следующей строки таблицы внешнего запроса.

В некоторых случаях для гарантии получения единственного значения в результате выполнения подзапроса используется DISTINCT.

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

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

SELECT COUNT (DISTINCT SUBJ_ID ), MARK

FROM EXAM_MARKS

GROUP BY MARK

HAVING MARK >

(SELECT AVG( MARK )

FROM EXAM_MARKS

WHERE STUDENT_ID = 301 );

Связанныеподзапросы:

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

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

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

SELECT *

FROM SUBJECT SU

WHERE '20/01/2006' IN

(SELECT EXAM_DATE

FROM EXAM_MARKS EX

WHERE SU.SUBJ_ID=EX.SUBJ_ID );



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 598; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.104.248 (0.013 с.)