5 Система управления базами данных.ppt
- Количество слайдов: 64
Система управления базами данных (СУБД) Microsoft Office Access
Основные понятия ¡ База Данных (БД) — структурированный организованный набор данных, описывающих характеристики какой-либо физической или виртуальной системы. ¡ База данных — это организованная структура, предназначенная для хранения информации. «Базой данных» часто упрощённо или ошибочно называют Системы Управления Базами Данных (СУБД). Нужно различать набор данных (собственно БД) и программное обеспечение, предназначенное для организации и ведения баз данных (СУБД).
Основные понятия Система управления базой данных - это комплекс программных средств, предназначенных для создания структуры новой базы, ввода данных в БД, их хранения и восстановления в случае сбоев, редактирования содержимого и визуализации информации. Визуализация информации – отбор отображаемых данных в соответствии с заданными критериями, их упорядочение, оформление и последующая выдача на устройство вывода или передача по каналам связи.
СУБД состоит из двух основных компонентов: ¡ ¡ Язык описания данных (ЯОД) – позволяет создать схему описания данных в базе Язык манипулирования данными (ЯМД) – выполняет операции с базой данных (наполнение, удаление, обновление, выборку информации)
Табличная структура данных Название Изготовитель Аскорутин ООО Розфарм Спазмалгон Балканфарма АД Кларитин Дозировка Форма выпуска Цена 100 мг таблетки 9, 50 500 мг таблетки 43, 50 Шеринг-Плау 10 мг таблетки 157, 20 Триовит КРКА 150 мг капсулы 95, 00 Ревит-уви ОАО «Фармстандарт Уфа. ВИТА» 40 мг драже 10, 80 Компливит ОАО «Фармстандарт Уфа. ВИТА» 16 мг таблетки 25, 40 Дупница
Иерархическая структура данных Группа Ace of Base Альбом Happy Nation Wheel of Fortune Альбом The Bridge Beautiful life Que sera I never I’m sorry
Виды структур данных Сетевая структура Джени Сесилия Берген Рост 170, Брюнетка Род. 29. 05. 72 Мерлин Берген Рост 168, Блондинка, Род. 31. 10. 70 Вокал Соло-гитара YAMAHA Джонас Петер Берген Рост 190, Шатен, Род. 21. 03. 67 Бас-гитара KORD Ульф Экберг Рост 188, Блондин, Род. 06. 12. 70 Ударные CASIO
Виды баз данных Картотеки ¡ Иерархические ¡ Сетевые ¡ Реляционные ¡ Объектно-ориентированные ¡ Многомерные ¡ Дедуктивные ¡
Картотеки ¡ Упорядоченное собрание данных, как правило на карточках малого формата. Каждая карта является информационной единицей и предоставляет сведения о какомлибо объекте базы данных. Позволяет облегчить поиск объекта по определенным признакам. упорядочение осуществляется по логическим критериям: по алфавиту, дате, и т. д.
Иерархические базы данных поддерживают древовидную организацию информации. Связи между записями выражаются в виде отношений предок/потомок, а у каждой записи есть ровно одна родительская запись. Это помогает поддерживать ссылочную целостность. Когда запись удаляется из дерева, все ее потомки также должны быть удалены.
Иерархические базы данных имеют централизованную структуру, т. е. безопасность данных легко контролировать. К сожалению, определенные знания о физическом порядке хранения записей все же необходимы, так как отношения предок/потомок реализуются в виде физических указателей из одной записи на другую. Это означает, что поиск записи осуществляется методом прямого обхода дерева. Записи, расположенные в одной половине дерева, ищутся быстрее, чем в другой. Отсюда следует необходимость правильно упорядочивать записи, чтобы время их поиска было минимальным. Это трудно, так как не все отношения, существующие в реальном мире, можно выразить в иерархической базе данных. Отношения "один ко многим" являются естественными, но практически невозможно описать отношения "многие ко многим" или ситуации, когда запись имеет несколько предков. До тех пор пока в приложениях будут кодироваться сведения о физической структуре данных, любые изменения этой структуры будут грозить перекомпиляцией.
Сетевые ¡ Сетевая модель расширяет иерархическую модель, позволяя группировать связи между записями в множества. С логической точки зрения связь — это не сама запись. Связи лишь выражают отношения между записями. Как и в иерархической модели, связи ведут от родительской записи к дочерней, но на этот раз поддерживается множественное наследование. ¡ В сетевой модели каждый элемент может быть связан с любым другим элементом.
¡ В сетевой модели допускаются отношения "многие ко многим", а записи не зависят друг от друга. При удалении записи удаляются и все ее связи, но не сами связанные записи. ¡ В сетевой модели требуется, чтобы связи устанавливались между существующими записями во избежание дублирования и искажения целостности. Данные можно изолировать в соответствующих таблицах и связать с записями в других таблицах.
¡ Программисту не нужно заботиться о том, как организуется физическое хранение данных на диске. Это ослабляет зависимость приложений и данных. Но в сетевой модели требуется, чтобы программист помнил структуру данных при формировании запросов. ¡ Оптимальную структуру базы данных сложно сформировать, а готовую структуру трудно менять. Если вид таблицы претерпевает изменения, все отношения с другими таблицами должны быть установлены заново, чтобы не нарушилась целостность данных. Сложность подобной задачи приводит к тому, что программисты зачастую отменяют некоторые ограничения целостности ради упрощения приложений.
Реляционные ¡ База данных основанная на реляционной модели данных. Слово реляционный происходит от английского «relation» (отношение). ¡ В реляционной модели база данных представляет собой централизованное хранилище таблиц, обеспечивающее безопасный одновременный доступ к информации со стороны многих пользователей. В строках таблиц часть полей содержит данные, относящиеся непосредственно к записи, а часть — ссылки на записи других таблиц. Таким образом, связи между записями являются неотъемлемым свойством реляционной модели.
¡ Каждая запись таблицы имеет одинаковую структуру. Например, в таблице, содержащей описания автомобилей, у всех записей будет один и тот же набор полей: производитель, модель, год выпуска, пробег и т. д. Такие таблицы легко изображать в графическом виде. ¡ В реляционной модели достигается информационная и структурная независимость. Записи не связаны между собой настолько, чтобы изменение одной из них затронуло остальные, а изменение структуры базы данных не обязательно приводит к перекомпиляции работающих с ней приложений.
Объектно-ориентированная ¡ База данных, в которой данные оформлены в виде моделей объектов, включающих прикладные программы, которые управляются внешними событиями.
Многомерные OLAP – On-line Analytical Processing Аналитическая обработка в реальном времени Программное обеспечение OLAP используется при обработке данных из различных источников. Для быстрой обработки сложных запросов к базе данных. ¡
Характеристики баз данных ¡ полнота - чем полнее база данных, тем вероятнее, что она содержит нужную информацию (однако не должно быть избыточной информации); ¡ правильная организация - чем лучше структурирована база данных, тем легче в ней найти необходимые сведения; ¡ актуальность - любая база данных может быть точной и полной, если постоянно обновляется, т. е. необходимо, чтобы база данных в каждый момент времени полностью соответствовала состоянию отображаемого ею объекта; ¡ удобство для использования - база данных должна быть проста и удобна в использовании и иметь развитые методы доступа к любой части информации.
Основные функции СУБД ¡ Определение данных - определить, какая именно информация будет храниться в базе данных, задать свойства данных, их тип (например, число цифр или символов), а также указать, как эти данные связаны между собой. В некоторых случаях есть возможность задавать форматы и критерии проверки данных. ¡ Обработка данных - данные могут обрабатываться самыми различными способами. Можно выбирать любые поля, фильтровать и сортировать данные. Можно объединять данные с другой, связанной с ними, информацией и вычислять итоговые значения. ¡ Управление данными - можно указать, кому разрешено знакомиться с данными, корректировать их или добавлять новую информацию. Можно также определять правила коллективного доступа.
Основные функции СУБД ¡ ¡ ¡ управление транзакциями; журнализация и восстановление БД после сбоев; управление данными во внешней памяти; управление буферами оперативной памяти; поддержание языков БД.
Транзакция ¡ Неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации), приводящая к одному из двух возможных результатов: либо последовательность выполняется, если все операторы правильные, либо вся транзакция откатывается, если хотя бы один оператор не может быть успешно выполнен. Обработка транзакций гарантирует целостность информации в базе данных. Таким образом, транзакция переводит базу данных из одного целостного состояния в другое.
¡ Поддержание механизма транзакций – показатель уровня развитости СУБД. Корректное поддержание транзакций одновременно является основой обеспечения целостности БД. Транзакции также составляют основу изолированности в многопользовательских системах, где с одной БД параллельно могут работать несколько пользователей или прикладных программ. Одна из основных задач СУБД – обеспечение изолированности, т. е. создание такого режима функционирования, при котором каждому пользователю казалось бы, что БД доступна только ему. Такую задачу СУБД принято называть параллелизмом транзакций.
ACID-свойства транзакций При выполнении транзакции система управления базами данных должна придерживаться определенных правил обработки набора команд, входящих в транзакцию. В частности, разработано четыре правила, известные как требования ACID, они гарантируют правильность и надежность работы системы. Характеристики транзакций описываются в терминах ACID (Atomicity, Consistency, Isolation, Durability – неделимость, согласованность, изолированность, устойчивость).
ACID-свойства транзакций ¡ Транзакция неделима в том смысле, что представляет собой единое целое. Все ее компоненты либо имеют место, либо нет. Не бывает частичной транзакции. Если может быть выполнена лишь часть транзакции, она отклоняется. ¡ Транзакция является согласованной, потому что не нарушает бизнес-логику и отношения между элементами данных. Это свойство очень важно при разработке клиент-серверных систем, поскольку в хранилище данных поступает большое количество транзакций от разных систем и объектов. Если хотя бы одна из них нарушит целостность данных, то все остальные могут выдать неверные результаты.
ACID-свойства транзакций ¡ Транзакция всегда изолирована, поскольку ее результаты самодостаточны. Они не зависят от предыдущих или последующих транзакций – это свойство называется сериализуемостью и означает, что транзакции в последовательности независимы. ¡ Транзакция устойчива. После своего завершения она сохраняется в системе, которую ничто не может вернуть в исходное (до начала транзакции) состояние, т. е. происходит фиксация транзакции, означающая, что ее действие постоянно даже при сбое системы. При этом подразумевается некая форма хранения информации в постоянной памяти как часть транзакции.
Журнализация ¡ Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратных сбоев: так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), и жесткие сбои, характеризуемые потерей информации на носителях внешней памяти.
¡ Примерами программных сбоев могут быть: аварийное завершение работы СУБД (по причине ошибки в программе или в результате некоторого аппаратного сбоя) или аварийное завершение пользовательской программы, в результате чего некоторая транзакция остается незавершенной. Первую ситуацию можно рассматривать как особый вид мягкого аппаратного сбоя; при возникновении последней требуется ликвидировать последствия только одной транзакции.
¡ В любом случае для восстановления БД нужно располагать некоторой дополнительной информацией. Другими словами, поддержание надежности хранения данных в БД требует избыточности хранения данных, причем та часть данных, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенным методом поддержания такой избыточной информации является ведение журнала изменений БД.
¡ Журнал - это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД. В разных СУБД изменения БД журнализуются на разных уровнях: иногда запись в журнале соответствует некоторой логической операции изменения БД (например, операции удаления строки из таблицы реляционной БД), иногда - минимальной внутренней операции модификации страницы внешней памяти; в некоторых системах одновременно используются оба подхода.
¡ Во всех случаях придерживаются стратегии "упреждающей" записи в журнал (так называемого протокола Write Ahead Log - WAL). Эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.
Управление данными во внешней памяти ¡ Эта функция включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например, для убыстрения доступа к данным в некоторых случаях (обычно для этого используются индексы). В некоторых реализациях СУБД активно используются возможности существующих файловых систем, в других работа производится вплоть до уровня устройств внешней памяти. В любом случае, в развитых СУБД пользователи не обязаны знать, использует ли СУБД файловую систему, и если использует, то как организованы файлы. В частности, СУБД поддерживает собственную систему именования объектов БД.
Управление буферами оперативной памяти ¡ СУБД обычно работают с БД значительного размера; по крайней мере этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. При этом, даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX), этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов.
Поддержка языков БД ¡ Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т. е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т. е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные.
¡ В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).
Архитектура БД По принципам обработки данных БД делятся на централизованные и распределенные. ¡ Централизованная БД подразумевает, что работа с БД возможна только локально. Если компьютер работает в сети, то доступ к информации может осуществляться удаленно с других компьютеров сети. Централизованные БД наиболее распространены в настоящее время.
Архитектура БД ¡ Распределенная БД располагается на нескольких компьютерах. Информация на этих компьютерах может пересекаться и даже дублироваться. Для управления такими БД предназначена система управления распределенными БД. Система скрывает от пользователей обращения к данным, расположенным на других компьютерах. Для пользователя все выглядит так, как будто вся информация находится на одном сервере.
Варианты обработки данных для централизованных БД : ¡ Файл-серверная архитектура ¡ Клиент-серверная архитектура
Файл-серверная архитектура ¡ предполагает наличие в сети сервера, на котором хранятся файлы централизованной БД. В соответствии с запросами пользователей файлы с файл-сервера передаются на рабочие станции пользователей, где и осуществляется основная часть обработки данных. Центральный сервер выполняет в основном только роль хранилища файлов, не участвуя в обработке самих данных. После завершения работы пользователи копируют файлы с обработанными данными обратно на сервер, откуда их могут взять и обработать другие пользователи. пользователей.
Недостатки такой организации данных очевидны. При одновременном обращении множества пользователей к одним и тем же данным производительность работы резко падает, т. к. необходимо дождаться пока пользователь, работающий с данными завершит работу. В противном случае возможно затирание исправлений сделанных одним пользователем, изменениями других
Клиент-серверная архитектура ¡ реализует идею о том, что помимо хранения файлов БД, центральный сервер должен выполнять основную часть обработки данных. Пользователи обращаются к серверу с помощью специального языка структурированных запросов (SQL, Structed Query Language), на которм описывается список задач, выполняемых сервером. Запросы принимаются сервером и порождают процессы обработки данных.
¡ В ответ пользователь получает уже отработанный набор данных. Технология клиент-сервер позволяет избежать передачи по сети огромных объемов информации, переложив всю обработку на центральный сервер. Такой подход также позволяет избежать конфликтов при редактировании одних и тех же данных множеством пользователей.
Трехуровневая архитектура «Тонкий клиент» сервер приложений сервер базы данных функционирует в Интранет- и Интернет-сетях. .
¡ Клиентская часть ("тонкий клиент"), взаимодействующая с пользователем, представляет собой HTML-страницу в Webбраузере либо Windows-приложение, взаимодействующее с Web-сервисами. Вся программная логика вынесена на сервер приложений, который обеспечивает формирование запросов к базе данных, передаваемых на выполнение серверу баз данных. Сервер приложений может быть Webсервером или специализированной программой.
Реляционные базы данных
Некоторые термины реляционных баз данных ¡ Таблица - В реляционных базах данных информация об объектах одного типа, например о клиентах, заказах или сотрудниках, обычно хранится в виде таблицы. ¡ Атрибут — определенная часть информации о некотором объекте, например адрес клиента или стоимость заказа. Атрибут обычно хранится в виде поля (столбца) таблицы.
Некоторые термины реляционных баз данных ¡ Связь — способ, которым информация в одной таблице связывается с данными в другой таблице. Например, клиенты и заказы связаны отношением «один-ко-многим» , так как один клиент может разместить много заказов, но любой заказ относится только к одному клиенту. Учащиеся связаны с вузами отношением «многие-ко-многим» , поскольку любой учащийся средней школы может интересоваться несколькими колледжами или университетами, а каждый вуз получает заявления от многих учащихся.
Некоторые термины реляционных баз данных ¡ Объединение — объединение информации из нескольких таблиц или запросов на основе совпадающих значений определенных атрибутов. Например, информация о клиентах может быть объединена с данными о заказах по коду клиента.
Microsoft Access
Архитектура Microsoft Access Основные объекты базы данных Таблицы ¡ Запросы ¡ Формы ¡ Отчеты ¡ Страницы ¡ Макросы ¡ Модули ¡
Архитектура Microsoft Access Основные объекты базы данных ¡ Таблица -предназначена для хранения данных. Каждая таблица содержит данные об однотипных субъектах (предметах). Таблица состоит из множества строк и столбцов. Каждая строка таблицы содержит данные об одном субъекте и называется записью (record). Все записи имеют одинаковую структуру — они состоят из полей (field), в которых хранятся атрибуты (свойства) субъекта. Для каждой таблицы можно определить первичный ключ (одно или несколько полей, имеющих уникальные для каждой записи значения) и один или несколько индексов, ускоряющих доступ к данным.
Архитектура Microsoft Access Основные объекты базы данных ¡ Запрос - позволяет пользователю получить нужные данные из одной или нескольких таблиц. Для определения запроса можно использовать бланк QBE (Query By Example, запрос по образцу) или написать инструкцию SQL. Можно создать запросы на выборку, обновление, удаление или добавление данных. С помощью запросов можно также создавать новые таблицы, используя данные из одной или нескольких существующих таблиц.
Архитектура Microsoft Access Основные объекты базы данных ¡ Форма – предназначена, в основном, для удобного ввода, редактирования, просмотра табличных данных на экране в удобном виде или управления работой приложения. Можно использовать формы для того, чтобы реализовать требования пользователя к представлению данных таблиц или наборов записей запросов. Формы можно также распечатать. С помощью формы можно в ответ на некоторое событие (например, изменение значения поля) запустить макрос или процедуру VBA.
Архитектура Microsoft Access Основные объекты базы данных ¡ Отчет - предназначен для форматирования, вычисления итогов и печати выбранных данных. Прежде чем выводить отчет на принтер, можно предварительно просмотреть его на экране.
Архитектура Microsoft Access Основные объекты базы данных ¡ Страницы доступа к данным - это WEBстраницы, обеспечивающие функциональность стандартных форм и отчетов Access: ввод, редактирование и представление данных. Страницы доступа к данным можно открывать в программах просмотра WEB-страниц (например, Internet Explorer) и использовать для ввода, просмотра и отбора информации в базе данных.
Архитектура Microsoft Access Основные объекты базы данных ¡ Макросы - программные объекты, при обработке «развёртывающиеся» в последовательность действий и/или команд. Используются для автоматизации различных процедур обработки данных, являются программами, состоящими из макрокоманд высокого уровня. Макропрограммирование в Access не требует знания языка Visual. Basic. Имеющийся в Access набор из около 60 макрокоманд обеспечивает практически любые действия, необходимые для решения задач.
Архитектура Microsoft Access Основные объекты базы данных ¡ Модуль - содержит программы на языке Visual Basic для приложений, служит для реализации нестандартных процедур обработки данных. Позволяет разбить некоторый процесс на несколько небольших процедур и обнаружить ошибки, которые могли бы не найтись, если бы использовали макросы. Модули могут быть независимыми объектами, содержащими функции, вызываемые из любого места приложения, или непосредственно «привязанными» к формам или отчетам для реакции на те или иные события.
Концептуальные взаимосвязи объектов Access
Работа с таблицами
Работа с таблицами
Работа с таблицами
Типы полей ¡ Текстовый ¡ Счетчик ¡ Поле Мемо ¡ Логический ¡ Числовой ¡ Поле объекта OLE ¡ Дата/время ¡ Гиперссылка ¡ Денежный ¡ Мастер подстановок
Схема данных
5 Система управления базами данных.ppt