Главная страница

Архитектура современных приложений. Архитектура современных приложений Вопрос 1 Консольные приложения Консольные приложения


Скачать 24.02 Kb.
НазваниеАрхитектура современных приложений Вопрос 1 Консольные приложения Консольные приложения
Дата11.02.2022
Размер24.02 Kb.
Формат файлаdocx
Имя файлаАрхитектура современных приложений.docx
ТипДокументы
#358236

Архитектура современных приложений

Вопрос 1 Консольные приложения

Консольные приложения

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

Преимущества

  • Возможность выстраивать приложения в цепочки посредством конвейера

Недостатки

Консоль - интерфейс, который использует стандартные потоки ввода - вывода

Стандартные потоки данных

  • Stdin - поток ввода данных

  • Stdout - поток вывода данных

  • Stderr - поток вывода ошибок

Конвейеры— это возможность нескольких приложения работать последовательно, когда выхода одного приложения идет на вход другого приложения

Desktop приложения

Приложения, инсталлируемые в среду ос

Преимущества

  • Наличие графического интерфейса

Недостатки

  • Отсутствие возможности перенаправление потоков вывода-ввода данных (т.е. Нельзя автоматизировать клики мыши)

Установка

  • создание конфигурационных файлов

  • добавление необходимых библиотек

  • получение данных от ос о аппаратном обеспечении

  • добавление параметров в реестр

Portable приложения

  • Приложение не инсталлируемые в среду ос

  • Не хранят настройки и параметры в реестре

  • Не привязанные к определенному устройству

Вопрос 2 Архитектура клиент-сервер

модель взаимодействия клиент-сервер, состоит в разделении приложения на несколько компонентов на клиента и на сервер

Преимущества

  • данные хранятся на сервере, который защищён лучше клиентов

  • на сервере проще организовать контроль полномочий,

Недостатки

  • Отсутствие соединения может сделать неработоспособной всю вычислительную сеть

клиент

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

Сервер приложений

программное обеспечение, которое обрабатывает и выполняет запросы клиента

Сервер баз данных

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

Принцип работа клиент-серверной архитектуры

Клиент отправляет запрос на сервер, сервер обрабатывает запрос, обращается к серверу баз данных, сервер баз данных записывает или отдает данные и сервер возвращает ответ клиенту.

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

Преимущества

  • Частичная возможность работы без связи с сервером;

Недостатки:

  • Низкая защищенность данных

  • Дублирование кода

Тонкий клиент — вид клиента, который переносит выполнение задач по обработке информации на сервер

Преимущества

  • Повышенная защищенность данных

  • Отсутствие дублирование кода (основная бизнес логика находится на сервере)

Недостатки:

  • Полная неработоспособность без связи с сервером


Базы данных

Билет 1 основные понятия


Реляционная база данных – это набор данных с предопределенными связями между ними, основана на реляционной модели данных.

Реляционная модель данных – модель данных которая включает в себя:

  • Структурный аспект – информация храниться в виде набора таблиц

  • Обработки аспект - Реляционная модель данных поддерживает операторы манипулирования отношениями.

  • Целостности аспект – отношения отвечают определенным условиям целостности:

Структурная целостность:

      • Наличие первичного ключа

      • Отсутствие дубликатов строк

      • работу с однородными структурами

Ссылочная целостность:

    • Удаляем в родители удаляется в дочернем

    • Удаляем в родители в дочернем NULL

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

    • по типу данных

    • по диапазону

    • по уникальность

Нерялиционные база данных – это база данных в которой в отличии от большинства систем баз данных не используется табличная схема строк и столбцов, в этих баз данных применяется модель хранение, оптимизированная под конкретные требования типа хранимых данных

Вопрос 1 типы данных


Строковые типы данных

VARCHAR – хранит символьные строки переменной длины до (255)

CHAR (5) – текст с фиксированной длинной, всегда использует одинаковый объем памяти для каждой записи, значения дополняются пробелами, необходимыми для сравнения

NCHAR/NVARCHAR –хранит строку в кодировке Unicode

BLOB – текст более (255) символов

Числовые типы данных

INT – числовые значение

BIT/ TINYINT/ SMALLINT/ BIGINT

DEC (2.1) – число с фиксированной точностью, обладавший двумя параметрами первый сколько чисел, второй сколько чисел после запятой

SMALLMONEY/ MONEY – хранит дробные значения, предназначены для хранение денежных величин

FLOAT/REAL –хранит дробные числа

Типы данных, представляющие дату и время

DATE – дата

TIME - время

DATETIME - задает дату и время

DATETIME2/ SMALLDATETIME/ DATETIMEOFFSET – различные диапазоны

Бинарные типы данных

BINARY/VARBINARY – хранит бинарные данные в виде последовательности байтов

Вопрос 2 Нормализация и денормализация


нормализация - процесс преобразований для перехода к нормальной форме

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

Первая нормализованная форма

вторая нормализованная форма

  • Находится в первой нормальной форме

  • Отсутствует частично функциональная зависимость (каждый не ключевой атрибут  зависит от  ключа)

Третья нормализованная форма

  • Находится во второй нормальной форме

  • Отсутствует транзитивные зависимости (не-ключевой столбец не зависит от не-ключевого столбца)


Вопрос 3 Ключи


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

  • Естественный – атрибут или подмножество атрибутов, которые при этом содержат в себе какую-то информацию.

  • Суррогатный – мы делаем его сами, например, типичный ID.

Ограничение для ключа CONSTRAINT- уникальный и NOT NULL

Индекс – объект базы данных который отвечает за быстрый поиск элементов, создаётся таблица, которая содержит индексы и ссылки на элементы.

Индекс бывает в виде

  • хэш данных (для операции сравнивания)

  • красно черное дерево автобалансировка (для поиска)


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

Пример

CREATE TABLE group (

Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

id_user INT NOT NULL

CONSTRAINT user_id_fk //ограничение

FOREIGN KEY(id_user)

REFERENCES user (id)

);

Создаем новую таблицу group, создаем столбец id_user который будет являться внешним ключом, с помощью команды RAFERENCES указывает из какой таблицы был взят внешний ключ и как он там назывался

Ограничению присваивается имя, по которому можно определить, из какой таблицы взят ключ (user), как он называется (id) и что ключ является внешним (fk)

Вопрос 4 транзакции


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

ACID описывает требования к транзакционной системе


  • Атомарность - транзакция должна быть либо вся выполнена, либо не выполнена.

  • Согласованность – данные до транзакции должны быть согласованны с данными после транзакции. Т.е. каждая успешная транзакция по определению фиксирует только допустимые результаты

  • Изолированность – на результат транзакции не должны влиять другие транзакции.

  • Долговечность – результат транзакции должен быть сохранены.

Уровни изолированности транзакций

Read uncommitted (чтение незафиксированных данных)

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

Read committed (чтение фиксированных данных)

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

Repeatable read (повторяющееся чтение)

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

Serializable (упорядочиваемость)

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

Вопрос 5 блокировки


Блокировка — отметка о захвате объекта транзакцией 

Виды блокировок

блокировка со взаимным доступом- S-блокировкой (блокировкой по чтению)

монопольная блокировка- X-блокировкой (блокировкой по записи)

Если транзакция налагает на объект X-блокировку

то любой запрос другой транзакции с блокировкой этого объекта будет отвергнут.

Если транзакция налагает на объект S-блокировку

То запрос со стороны другой транзакции с X-блокировкой на этот объект будет отвергнут, а с S-блокировкой принят

https://www.sql-ex.ru/learn_exercises.php#answer_ref


написать администратору сайта