Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все ответы.doc
Скачиваний:
75
Добавлен:
17.03.2016
Размер:
1.29 Mб
Скачать

3.Базы данных

  1. Определение БД и СУБД. Функции СУБД. Технология файл-сервер и клиент-сервер доступа к БД. Распределение функций между клиентом и сервером.

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

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

База данных – поименованная, целостная, единая система данных, организованная по определенным правилам, которые предусматривают общие принципы описания, хранения и обработки данных [2].

База данныхесть совокупность данных, организованных в соответствии с некоторой концептуальной моделью данных, которая описывает характеристики этих данных и взаимоотношения между соответствующими им реалиями, и которая предназначена для информационного обеспечения одного или нескольких приложений [3].

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

Система управления базами данных (СУБД)– это программа (комплекс программ), которая обеспечивает хранение данных и доступ к базам данных. Основные функции СУБД:

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

  • управление буферами оперативной памяти (СУБД обычно работают с БД значительного размера; по крайней мере этот размер обычно существенно больше доступного объема оперативной памяти.)

  • управление транзакциями (Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое.)

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

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

СУБД реализует общие принципы описания данных в виде ЯОД – языка описания данных (DDL –DataDefinition Language) и принципы обработки данных в виде ЯМД – языка манипулирования данными (DML – Data Manipulation Language).

Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL(StructuredQueryLanguage).

"Клиент-сервер" - это модель взаимодействия комп-ров в сети. Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса, а компьютер, использующий ресурс - клиентом.

В технологии "клиент-сервер" часть функций прикладной программы реализована в программе-клиенте, другая - в программе-сервере. Для их взаимодействия определен некоторый протокол. Функции стандартного интерактивного приложения можно разделить на три группы: презентационная логика; бизнес - логика; логика доступа к ресурсам.

В модели «Файл-сервер» в приложении совмещены все виды логики. Протокол обмена представляет собой набор низкоуровневых вызовов, обеспечивающих приложению доступ к файловой системе на файл-сервере.

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

Запрос к БД инициируется клиентом, однако выполняется он на сервере. Клиенту по сети возвращается только результат. Этот процесс состоит из 6 этапов:

1 .Клиент запрашивает данные;

2. Запрос транслируется в SQL;

3.SQLзапрос передается по сети на сервер;

  1. Сервер БД осуществляет поиск на компьютере, где находятся данные;

  2. Требуемые данные возвращаются клиенту;

  3. Данные предъявляются пользователю.

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

  1. Реляционная модель данных: понятия отношения, атрибута, кортежа, домена, ключа и первичного ключа отношения. Ссылочная целостность реляционных БД.

Основы реляционной модели данных были сформулированы Э.Ф.Коддом в 1970 г. Структурой хранения данных в этой модели является отношение – таблица со следующими свойствами:

  1. Каждый столбец содержит информацию одного типа.

  2. Ячейки – поля – таблицы не содержат агрегатов (структур или массивов) данных.

  3. Таблицы не содержат одинаковых строк.

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

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

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

В реляционной модели данные представлены в виде набора отношений (relation). Отношениеr = {(d1,...,dn), d1 D1,...,dn Dn}есть множествокортежей(d1,...,dn), значения которых принадлежатдоменамD1,...,Dn. Таким образом, отношение есть подмножество декартова произведения доменов

r D1 ... Dn.

Число nназываютстепенью отношения. Количество кортежей в отношенииrназываютмощностью отношенияr.

Отношение является аналогом таблицы с приведенными в параграфе 3.3 свойствами. Колонки таблицы делят каждый кортеж (запись) на атрибуты– компоненты кортежа. Для указания атрибута используют уникальные в рамках одной таблицы имена. Термин «атрибут» используется в разных смыслах. Во-первых, атрибут определяет множество возможных значений соответствующей колонки таблицы, так как областью значений атрибута является соответствующий домен. Во-вторых, атрибут используется в программах для описания доступа к соответствующей компоненте кортежа – аналогичным понятием являетсяполезаписи. АтрибутAi– это функция, вычисляющая значениеi-ой компоненты кортежа отношенияr. Множеством значений атрибутаAiявляется доменDi. В алгоритмических языках атрибут обозначается чаще именем и реже номером атрибута в кортеже.

Схемой r( R )отношенияrназывают множество атрибутовR = {A1,...,An}. Реляционная модель данных или схема БД – это множество схем отношений, дополненное различными ограничениями и правилами (бизнес-правилами).

Важное значение в теории реляционных БД имеет ключ, позволяющий выделять ровно один кортеж из отношения. Ключом Kотношенияr(R )называют множество атрибутовK={B1,...,Bm} Rтакое, что в отношенииrне существует двух кортежей с одинаковымK-значением ключа и ни одно собственное подмножество ключаKне обладает этим свойством.

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

  1. Проектирование реляционных БД: требования к схеме БД, нормальные формы.

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

БД должна удовлетворять следующим требованиям:

  • БД должна быть целостной – набор отношений должен правильно описывать предметную область.

  • БД не должна быть избыточной – одни и те же сведения не должна описываться дважды.

  • Количество отношений должно быть минимальным.

  • Первичные ключи должны быть минимальными.

  • Изменения БД должны быть минимальными при изменении предметной области.

  • Схема БД должна обеспечивать минимальное время выполнения запросов.

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

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

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

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

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