- •Вопросы для подготовки к экзамену
- •1) Бд и файловые системы
- •2) Субд определение, функции
- •3) Субд определение, классификация
- •4) Бд основные определения, классификация
- •5) Объекты базы данных
- •Пользователи – лица, обладающие доступом к бд Роли позволяют объединять пользователей в группы
- •6) Физическая структура базы данных
- •7) Структурная часть реляционной модели
- •8) Фундаментальные свойства отношений
- •9) Реляционная алгебра Кодда
- •1. Оператор соединения
- •11) Этапы разработки бд
- •12) Нормальные формы отношений
- •13) Модель сущность-связь
- •14) Технология "клиент-сервер"
- •15) Обзор ms sql Server, клиентские приложения, системные таблицы
- •3. Утилиты командной строки
- •16) Основы языка sql, типы команд
- •17) Основной синтаксис оператора select
- •18) Построение нетривиальных запросов с использованием оператора select
- •19) Операторы dml
- •20) Операторы ddl
- •21) Операторы ddl (определение структуры таблицы)
- •22) Индексы в среде ms sql Server
- •23) Представления
- •24) Сценарии
- •25) Хранимые процедуры
- •26) Понятие функции
- •27) Триггеры
- •28) Курсоры
13) Модель сущность-связь
Сущность – множество экземпляров реальных или абстрактных объектов, обладающих общими атрибутами или характеристиками.
Сущность – класс однотипных объектов.
Атрибут сущности – именованная характеристика, являющаяся некоторым свойством сущности.
Ключ сущности – неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности.
Связь – некоторая ассоциация между двумя сущностями:
- один-к-одному
- один-ко-многим
-много-ко-многим
Модальности связи:
- может
- должен
Модель Сущность-Связь (ER-модель) (англ. entity-relationship model или entity-relationship diagram) — это модель данных, позволяющая описывать концептуальные схемы. Она предоставляет графическую нотацию, основанную на блоках и соединяющих их линиях, с помощью которых можно описывать объекты и отношения между ними какой-либо другой модели данных. В этом смысле ER-модель является средством описания моделей данных.
ER-модель удобна при прототипировании (проектировании) информационных систем, баз данных, архитектур компьютерных приложений, и других систем (далее, моделей). С её помощью можно выделить ключевые сущности, присутствующие в модели, и обозначить отношения, которые могут устанавливаться между этими сущностями. Важно отметить, что сами отношения также являются сущностями (выделяются в отдельные графические блоки), что позволяет устанавливать отношения на множестве самих отношений.
ER-модель является одной из самых простых визуальных моделей данных (графических нотаций). Она позволяет обозначить структуру «крупными мазками», в общих чертах. Это общее описание структуры называется ER-диаграммой или онтологией выбранной предметной области (area of interest).
На этапе перехода к реализации данной ER-диаграммы в виде реальной информационной системы или программы, происходит отображение ER-модели в более детальную модель данных реляционной (объектной, сетевой, логической, или др.) базы данных, которая называется физической моделью данных по отношению к исходной ER-диаграмме.
Существует несколько графических нотаций описания ER-диаграм (несколько похожих ER-моделей данных). Есть несколько типичных примеров использования ER-модели данных: IDEF1x (ICAM DEFinition Language) и dimensional modelling.-0
14) Технология "клиент-сервер"
В сфере обработки данных сегодня существует множество противоречий в вопросах реализации архитектуры приложения, взаимодействующего с базой данных. У каждого может существовать собственное мнение идея о наилучшей архитектуре для всех существующих систем.
Какая-либо определенная архитектура может быть идеальной только для конкретной задачи.
Не возможно найти единственное правильное решение для всех возможных систем.
Существует три группы сервисов:
User Services (Сервисы пользователя). Как правило, эти сервисы отвечают за пользовательский интерфейс, базисное форматирование и правила полей. Сервисы пользователя могут поддерживать, например, корректное форматирование даты: определять соответствующее поле как поле даты и проверять то, что каждое заносимое в это поле значение является датой. В принципе, основное назначение пользовательских сервисов - это управление способом представления каждого поля и проверка, по крайней мере, его типа данных.
Business Services (Бизнес-сервисы). Это группа отвечает за различные бизнес-правила. Примером бизнес-сервисов, может быть сервис, который связывается с компанией кредитной карты клиента, чтобы подтвердить покупку по кредитной карте.
Data services (Сервисы данных). Все сервисы данного типа отвечают за хранение и поиск данных. Сервисы данных следят за выполнением правил целостности данных (например, объем товарно-материальных запасов не может быть меньше нуля), но в то же время не обращают внимания на то, откуда пришло подтверждение кредитной карты. (Здесь и находится SQL Server.)
Одноуровневые (хост) системы
Это старая архитектура на основе универсальной машины (мэйнфрейма). В данной архитектуре все три группы сервисов выполняются в одном месте. В таких системах на рабочем столе находился только терминал, то есть фактически не было локальных вычислительных средств. На терминал пересылалась только выходная информация, которая включала данные для изображения на экране.
Преимущества:
- не требует высокой пропускной способности сети для хорошей скорости ответа, что является положительным фактором для международных или глобальных сетей, в которых высокая пропускная способность обходится очень дорого
- такие системы обладают исключительной надежностью. Можно найти универсальные машины, которые не имели ни одного сбоя в течение нескольких лет
- очень легко устанавливать новое программное обеспечение. Его необходимо установить только на хост-системе и каждый пользователь будет иметь новую версию без переустановки на каждой локальной машине.
Недостатки:
- очень дорогое аппаратное обеспечение.
- передача информации от одной системы к другой часто является трудной задачей, так как форматы данных таких систем, как правило, запатентованы.
- очень ограничено количество уже готовых к использованию пакетов программного обеспечения. Стоимость таких пакетов очень высокая в связи с ограниченным количеством потенциальных покупателей.
Двухуровневая архитектура (клиент-сервер)
Клиент-сервер (англ. Client-server) — сетевая архитектура, в которой устройства являются либо клиентами, либо серверами.
Клиентом (front end) является запрашивающая машина (обычно ПК), сервером (back end) — машина, которая отвечает на запрос. Оба термина (клиент и сервер) могут применяться как к физическим устройствам, так и к программному обеспечению.
Двухуровневые или клиент-серверные системы начали завоевывать популярность в начале 90-х.
Технология клиент-сервер означает такой способ взаимодействия программных компонентов, при котором они образуют единую систему.
Как видно из самого названия, существует некий клиентский процесс, требующий определенных ресурсов, а также серверный процесс, эти ресурсы предоставляющий. Совсем необязательно, чтобы они находились на одном компьютере. Обычно принято размещать сервер на одном узле локальной сети, а клиентов – на других узлах. Существовали две разновидности такой архитектуры:
- клиентоцентрическая (Client-centric - разумный клиент)
- сервероцентрическая (server-centric — разумный сервер).
Клиентоцентрическая версия клиент-серверной архитектуры была основана на двух основных посылках:
- персональные компьютеры достаточно дешевы (это явилось основной движущей силой развития клиент-серверной технологии);
- максимальная мощность достигается путем максимального распределения необходимых вычислений.
В такой системе на сервере по возможности исполнялись только сервисы данных. А бизнес-сервисы и пользовательский интерфейс исполнялись на клиенте. Таким образом, объем работы распределялся между клиентом и сервером. Каждый компьютер делал свою долю.
Преимущества:
- распределяет объем работы между большим количеством сравнительно дешевых клиентов.
- если одному из пользователей нужна большая скорость, есть возможность приобрести для него более мощную систему. Это значительно легче, чем покупать большую дорогую хост-систему, мощность которой разделится между всеми клиентами.
- при вложении средств в увеличение вычислительной мощности клиента увеличивается мощность и других его программных средств, таких как текстовый процессор и редактор таблиц.
Недостатки:
- наибольшей проблемой клиентоцентрической архитектуры является ее пропускная способность. Если вся бизнес-логика находится на клиенте, то, скорей всего, трафик между клиентом и сервером будет достаточно большим. Клиенту посылается много необработанной информации, что очень быстро засоряет сеть и снижает скорость работы всех остальных клиентов.
- инсталляция занимает много времени и очень сложна. Новое программное обеспечение или его новая версия должны быть установлены на все машины. Обновление версий может быть достаточно проблематичным из-за того, что старые клиенты не всегда совместимы с новыми компонентами сервера и наоборот. Достаточно серьезные проблемы могут быть связаны с тем, что все клиенты должны обновляться одновременно.
- каждый клиент, в зависимости от его поставщика, может нуждаться в отдельной лицензии для каждого местонахождения или подключения. Это может увеличить стоимость.
Сервероцентрическая архитектура основана на той посылке, что вычислительная мощность персональных компьютеров дешевле хост-системы, однако в то же время сделана попытка получить некоторые преимущества от централизации.
На клиенте работают только пользовательские сервисы. По существу, клиенту передается только та информация, которая будет выводиться на экран.
Бизнес-сервисы и сервисы данных выполняются на сервере. Загруженность сети у такой архитектуры почти такая же, как у обычных хост-систем.
Преимущества:
- некоторые обновления можно делать непосредственно на сервере.
- доступно большое количество уже готовых программных продуктов, причем готовое программное обеспечение стоит дешево.
- так как по сети пересылается только та информация, которую нужно отображать на экране, трафик в такой системе меньше по сравнению с клиентоцентрической архитектурой.
Недостатки:
- многие обновления все еще требуют непосредственной работы с каждым клиентом, очень утомительно и трудно (с точки зрения учета и контроля) обновлять и устанавливать новое программное обеспечение.
- продолжительные и трудоемкие задания одного из клиентов влияют на возможность использования ресурсов сервера всеми остальными клиентами.
- цена больших серверов растет экспоненциально. Некоторые из них сравнимы по цене с хост-системами.
Трехуровневая архитектура
Трехуровневая модель и близкая ей N-уровневая являются наиболее перспективными на сегодняшний день.
В этой модели все три уровня сервисов рассматриваются как разделенные и логически независимые.
Клиенты отвечают только за пользовательский интерфейс, так же как это имеет место в сервероцентрической клиент-серверной модели.
Отличие состоит в том, что бизнес-сервисы и сервисы данных тоже логически разделены.
Такое представление делает независимыми друг от друга логическую и физическую модели.
Преимущества:
- некоторые обновления могут быть сделаны непосредственно на сервере.
- доступно большое количество уже готовых программных продуктов, а готовое программное обеспечение стоит значительно дешевле.
- так как по сети пересылается только та информация, которую необходимо отображаться на экране, то трафик сети в таких системах намного меньше по сравнению с клиентоцентрической моделью. Хотя, если системы бизнес-логики и сервисов данных находятся на разных серверах, загруженность сети между ними может быть достаточно большой.
- предусматривается (фактически поощряется) разработка систем на основе компонентов, что может увеличить степень повторного использования.
- два средних сервера, как правило, дешевле, чем один большой. Разделение бизнес-сервисов и сервисов данных делает возможным выбор между одним или двумя серверами.
Недостатки:
- многие обновления все еще предполагают непосредственную работу с каждым клиентом, поэтому обновление и установка нового программного обеспечения трудоемки и требуют тщательного учета.
- возникает острая необходимость в системе безопасности и инфраструктуре.
- неработоспособность сервера может сделать неработоспособной сеть.
- администрирование данной системы требует квалифицированного профессионала.
- высокая стоимость оборудования.