ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.09.2025
Просмотров: 265
Скачиваний: 0
Архитектура приложений баз данных
при проектировании приложений баз данных традиционно используется многоуровневая архитектура, в которой, кроме непосредственно СУБД, обычно выделяется ещё три уровня:
уровень представления данных (PresentationLogic);
уровень обработки данных (BusinessLogic);
уровень управления данных (DatabaseLogic)
Уровень представления данных.
Данный уровень определяет, что пользователь видит на своём экране, когда работает приложение:
интерфейсные экранные формы, которые пользователь видит или заполняет в ходе работы приложения;
промежуточные результаты;
справочная информация
Основная задача уровня представления данных – это обеспечить:
формирование экранных приложений;
чтение и запись в экранные формы информации;
управление экраном;
обработку движений мыши и нажатие клавиш клавиатуры.
Уровень обработки данных.
Данный уровень реализует основные алгоритмы функционирования приложения:
обработка указаний пользователя;
анализ данных и принятие решений;
передача данных между соседними уровнями;
выполнение вычислений.
Основная задача уровня обработки данных – осуществить решение конкретных прикладных задач из предметной области приложения.
Уровень управления данными.
Данный уровень обеспечивает формирование запросов для:
чтения необходимой информации из базы данных;
пополнение базы данных информацией;
обновление информации в базе данных;
удаление информации из базы данных.
Основная задача уровня управления данными – организовать взаимодействие уровня обработки данных приложения с СУБД.
Архитектура приложений баз данных, в зависимости от размещения составляющих её компонентов, может быть централизованной и распределённой.
При использовании централизованной архитектуры все компоненты информационной системы располагаются на одном компьютере.
При использовании распределённой архитектуры функции отдельных уровней информационной системы или их частей могут располагаться на различных компьютерах.
Наиболее распространёнными являются клиент-серверные системы, в которых обязанности распределены между двумя компьютерами (программами) – клиентом и сервером.
Распределённая презентация:
клиент – уровень представления данных (часть)
сервер - уровень представления данных (часть), уровень обработки данных, уровень управления данными, СУБД.
Клиент реализует некоторую часть функций уровня представления данных.
Достоинства: низкие требования к производительности клиента – могут использоваться даже простейшие устройства терминалы, мобильные устройства и т.п.
Недостатки: повышенные требования к производительности сервера и пропускной способности сети.
Пример.WEB-ориентированные приложения: на основании имеющихся данных сервер генерируетHTML-страницы, за отображение которых отвечает клиент (браузер).
Удалённая презентация.
клиент – уровень представления данных (вся).
сервер – уровень обработки данных, уровень управления данными, СУБД.
Клиент полностью реализует все функции уровня представления данных.
Достоинства:
повышение степени интерактивности приложения; сокращение времени реакции на действия пользователя.
Пример: WEB-приложения на основе технологииAJAX.
Распределённые клиент-серверные системы, в которых за реализацию бизнес-логики отвечает сервер, получили широкое распространение благодаря хорошим возможностям централизованного администрирования приложений, а также эффективному использованию вычислительных и коммуникационных ресурсов.
Другие варианты организации клиент-серверных приложений:
распределённая бизнес-логика;
удалённая бизнес-логика;
распределённое управление данными;
удалённое управление данными.
из-за своих недостатков и низкой эффективности широкого распространения не получили.
При разработке сложных информационных систем часто прибегают к использованию трёхуровневой архитектуры, когда для реализации бизнес-логики используется отдельный сервер приложений.
Трёхуровневая архитектура:
клиент – уровень представления данных.
сервер приложений – уровень обработки данных, уровень управления данными.
сервер баз данных – СУБД.
Ведение в язык sql
Большинство выпускаемых в настоящие время СУБД позволяют использовать для управления данными структурированный язык запросов SQL (Structured Query Language)
Язык SQL – первый и пока единственный стандартный язык для работы с БД, который получил достаточное распространение.
Язык SQL был разработан в середине 1970-х годов в компании IBM и предназначен для создания удобных и понятных пользователями запросов к реляционным базам данных.
Вскоре SQL и его аналоги были реализованы во многих реляционных СУБД.
Начиная с 1980-х годов ведётся деятельность по стандартизации языка SQL.
К настоящему времени разработано и утверждено несколько стандартов языка: SQL/89 SQL/92 SQL/99 SQL/2003
Все имеющиеся сейчас реализации языка SQL соответствуют международным стандартам, по отличающимся друг от друга различными дополнительными усовершенствованиями.
Особенности языка SQL.
SQL – декларативный язык. С помощью языка SQL программист описывает только то, какие данные нужно извлечь из базы данных или как их модифицировать. То, каким образом сделать, решает непосредственно СУБД при обработке SQL-запроса.
Переносимость. Благодаря наличию международного стандарта, тексты SQL – запросов могут быть достаточно легко перенесены из одной СУБД в другую. (Единственно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться очень трудно).
Интерактивность. SQL обеспечивает пользователям немедленный доступ к данным, при этом в интерактивном режиме можно за очень короткое время получить результат запроса без написания сложных программ.
Возможность программного доступа к БД. Язык SQL легко использовать в приложениях, которым необходимо обращаться к БД. Одним и те же операторы SQL употребляются как для интерактивного, так и для программного доступа, поэтому части программ, содержащие обращения к БД, можно вначале проверить в интерактивном режиме, а затем вставить в программу.
Классы инструкций языка sql(по sql/92)
Язык определения данных (DDL).
содержит команды, которые обеспечивают создание объектов базы данных и манипулирование ими.
CREATE… - создать
ALTER… - изменить
DROP… - удалить
Язык манипулирования данными (DML)
содержит специальные команды для манипулирования данными.
INSERT… - добавить данные
UPDATE… - изменить данные
DELETE… - удалить данные
Язык управления данными (DCL)
содержит команды для разрешения/ограничения доступа к данным.
GRANT… - добавить разрешение
REVOKE… – отменить разрешение
Создание и удаление базы данных
CREATE DATABASE Имя БД
создание новой базы данных
ALTER DATABASE Имя БД
изменить общие характеристики БД (кодировочную таблицу и т.д.)
DKOP DATABASE Имя БД
удалить базу данных и все её таблицы
Создание таблицы
CREATE TABLE Имя Таблицы(
описания поля[параметры поля],
описание поля[параметры поля],
…
[Общие параметры]
);
Описание поля
ИмяПоля ТипПоля[(размер)]
[PRIMARY KEY[AUTOINCREMENT] I UNIQNE ]
[NOTNULL | NULL]
[CHECK(выражение)]
[DEFAULT ЗначениеПоУмолчанию]
Часто используемые типы полей(по ANSI SQL)
|
Логический |
BOOLEAN |
|
Символьные |
CHARACTER(N) VARCHAR(N) |
|
Целочисленные |
SMALLINT INTEGER BIGINT |
|
Дробные |
FLOAT DECIMAL(M,D) |
|
Дата и время |
DATE TIME TIMESTAMP |
Большинство существующий СУБД по-разному осуществляют поддержку типов данных:
обычно отсутствует полная реализация всех стандартных типов данных;
реализация отдельных типов данных может отличаться от описания в стандарте;
типы данных могут иметь другие имена;
имеется поддержка дополнительных типов данных, не упомянутых в стандарте.
Общие параметры таблицы
Составной первичный ключ
PRIMARY KEY (список полей)
Внешний ключ
FOREIGN KEY (список полей)
REFERENCES таблица (список полей)
[ON DELETE {CASCADE | SET NULL | NO ACTION}]
[ON UPDATE {CASCADE | SET NULL | NQACTION}]
Пример. База данных “Предприятие”
brigade id_brigade
INT(10) NOT NULL(PK) name
CHAR(30) NOT NULL leader
INT(10) NULL(FK) employee icl_employee
INT(10) NOT NULL (pk) name
CNAR (30) NOT NULL profession-icl
INT(10) NULL(FK) brigade
INT(10) NULL(FK)
employeeinfo id_employee_info
INT(10) NOT NULL (PK)(FK) address
CNAR(100) NULL
Пример. Создание таблицы «Профессии»
CREATE TABLE Profession(
Id_profession INTEGER PRIMARI KEY AUTOINCREMENT,
jjbtitle CHAR(40) NOT NULL
);
или
CREATE TABLE Profession(
id_profession INTEGER PRIMARY KEY AUTOINCREMENT,
jobtitle CHAR(40) NOT NULL,
PRIMARY KEY (id_profession)
);
Пример. Создания таблицы «Бригада»
CREATE TABLE Brigade(
id_brigade INTEGER PRIMARY KEY AUTO_INCREMENT,
name CHAR(30) NOT NULL
);
Пример. Создания таблицы «Сотрудники»
CREATE TABLE Employee(
id_employee INTEGER PRIMARY KEY AUTO_INCREMENT,
name CHAR(30) NOT NULL,
profession_id INTEGER,
brigade_id INTEGER,
FOREIGN KEY (profession_id) REFERENCES Profession (id_profession),
FOREIGN KEY (brigade_id) REFERENCES Brigade (id_brigade)
);
Пример: Создания таблицы «Информация о сотруднике»
CREATE TABLE EmployeeInfo(
id_employee_info INTEGER PRIMARY KEY NOT NULL,
address CHAR(100),
FOREIGN KEY (id_employee_info) REFERENCES Employee (id_employee)
);
ДОБАВЛЕНИЕ ЗАПИСИ В ТАБЛИЦУ
INSERT INTO ИмяТаблицы (Список полей) VALUES (Список значений);
При добавлении записи можно не указывать значения для полей, имеющих параметры AUTOINCREMENT, DEFAULT или NULL.
Для полей, связанных с помощью FOREIGN KEY с другими таблицами, обязательно нужно указывать существующее значение.
Пример.
INSERT INTO Profession (id_profession, jobtitle) VALUES (1001, “слесарь”);
INSERT INTO Brigade (id_brigade, name) VALUES (2001, “слесарная”);
INSERT INTO Employee (id_employee, name, profession_id, brigade_id) VALUES (1, «Иванов И.И.», 1001, 2001);
INSERT INTO EmployeeInfo (id_employee_info, address) VALUES (1, «ул.Ленина, д.1 кв.1»);
Изменение существующей записи
UPDATE ИмяТаблицы SET ИмяПоля=Выражение[, ...] WHERE Условие;
При изменении записи с помощью условия требуется указывать записи, к которым нужно применить команду.
В противном случае будут изменены все записи таблицы.
Пример. Назначения сотрудника с id=1 ,бригадиром бригады с id=2001
UPDATE Brigade SET leader=1 WHERE id_brigade=2001;
Удаление строк из таблицы
DELETE FROM ИмяТаблицы WHERE Условие;
При удалении записи с помощью условия требуется указать записи, к которым нужно применит команду.
В противном случае будут удалены все записи таблицы.
Пример. Удаление сотрудника с id=17
DELETE FROM Employee WHERE id_employee=17;
Выборка данных
SELECT что
FROM откуда
WHERE Условие для записи
GROUP BY разбиение на группы
HAVING условие для групп
ORDER BY порядок сортировки
Формат предложения SELECT:
SELECT [DISTINCT | ALL] список выражений | *
Предложение SELECT определяет состав результирующего набора данных. Каждому выражению соответствует один столбец. Выражение * соответствует полному перечню полей таблицы.
С точки зрения реляционной алгебры предложение SELECT можно рассматривать как описание операции проекции отношений.