БАЗЫ ДАННЫХ Как устроена база данных? Представим, что вы – начинающие свой трудовой путь фармацевты, и устроились на работу в аптеку, входящую в большую сеть аптек, в которой сложилась следующая система работы. Управление сети организовало три базовых отдела: отдел продаж (отслеживает все продажи лекарственных средств и сопутствующих товаров), отдел развития работает со всеми деловыми партнерами сети), отдел закупок (ведает закупкой всех товаров). Каждый из отделов ведет самостоятельный документооборот, т.е. отделы по отдельности создают документы для работы с данными. Данные дублируются: Данные дублируются Унифицировать работу с даными позволяют БД! БД служат для упорядоченного хранения и обработки, связанных между собой данных. Базы данных – ОПРЕДЕЛЕНИЕ: База данных (БД) представляет собой совокупность самостоятельных материалов (статей, расчетов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ) (Гражданский кодекс РФ, ст. 1260). Примеры баз данных (БД): база данных книжного фонда медицинской библиотеки; база данных кадрового состава поликлиники; база данных лекарственных средств; база данных по законодательству в медицине и здравоохранении и т.п Фрагмент базы огромной БД «Wikipedia», включающей БД по различным областям знаний История развития БД История возникновения и развития технологий баз данных может рассматриваться как в широком, так и в узком аспекте. В широком аспекте понятие истории баз данных обобщается до истории любых средств, с помощью которых человечество хранило и обрабатывало данные. В таком контексте упоминаются, например, средства учёта царской казны и налогов в древнем Шумере (4000 г. до н. э.). Чиновники древнего Шумера создали надёжную систему учета и контроля налоговых поступлений. Все деловые документы в Шумере хранились в архивах, часть которых сохранилась до наших дней. Шумеры - древний народ, некогда населявший территорию долины рек Тигра и Евфрата на юге современного государства Ирак (Южная Месопотамия или Южное Двуречье). История развития БД Табличка старовавилонского времени. Дворцы Месопотамии История развития БД В 1880-х годах изобретатель разработал оборудование для работы с перфокартами (Патенты США 395781, 395782 и 395783), которое имело значительный успех при переписях населения США в 1890-м и 1900-м г.(БД результатов переписи) Герман Холлерит (англ. Herman Hollerith, иногда по-русски применяется написание Голлерит; 29 февраля 1860 — 17 ноября 1929) — американский инженер и изобретатель немецкого происхождения. Известен как создатель электрической табулирующей системы. База данных на перфокартах. История развития БД История баз данных в узком аспекте рассматривает базы данных в традиционном (современном) понимании. Эта история начинается с 1955 г., когда появилось программируемое оборудование обработки записей. Программное обеспечение этого времени поддерживало модель обработки записей на основе файлов. Для хранения данных использовались перфокарты. База данных на перфокартах. История развития БД Оперативные сетевые базы данных появились в середине 1960-х. Операции над оперативными базами данных обрабатывались в интерактивном режиме с помощью терминалов. За руководство работой DBTG (Data Base Task Group), разработавшей стандартный язык определения данных и манипулирования данными, Чарльз Бахман получил Тьюринговскую премию. Чарльз Уильям Бахман (англ. Charles William Bachman, 11 декабря 1924 года, Манхэттен (Канзас), США) — американский учёный в области компьютерных наук, в частности разработки баз данных. История развития БД Следующий важный этап связан с появлением в начале 1970-х реляционной модели данных, благодаря работам Эдгара Ф. Кодда. Работы Кодда открыли путь к тесной связи прикладной технологии баз данных с математикой и логикой. За свой вклад в теорию и практику Эдгар Ф. Кодд также получил премию Тьюринга. Сам термин database (база данных) появился в начале 1960-х гг., и был введён в употребление на симпозиумах, организованных фирмой SDC (System Development Corporation) в 1964 и 1965 гг. Эдгар Франк «Тед» Кодд (англ. Edgar Frank Codd; 23 августа 1923 — 18 апреля 2003) — британский учёный, работы которого заложили основы теории реляционных баз данных. Классификации БД Прежде всего, БД бывают по типу содержимого фактографическими и документальными. В фактографических БД содержатся краткие сведения об описываемых объектах, представленные в строго определенном формате. Документальная БД будет включать в себя тексты законов и нормативных актов. Современные информационные технологии постепенно стирают границу между фактографическими и документальными БД. Существуют средства, позволяющие легко подключать любой документ (текстовый, графический, звуковой) к фактографической базе данных. Классификации БД – содержимому: Примеры БД такого типа: географические; исторические; научные; мультимедийные. по их Классификации БД – по способу размещения: Централизованные БД (данные хранятся в памяти одной из вычислительных систем, чаще бывают в локальных сетях) ; Распределенные БД (такие базы данных состоят из нескольких частей, хранящихся на разных компьютерах вычислительных сетей. Работа с такими базами данных осуществляется при помощи системы управления БД.) В централизованных БД имеются две технологии доступа и обработки данных: файл-сервер и клиент-сервер. При технологии файл-сервер обработка данных производится на рабочих станциях, куда по запросу пользователей поступают отдельные файлы базы данных, хранящейся на центральной машине (файл-сервере). При технологии клиент-сервер обработка данных про-изводится по запросам пользователей на центральной машине (сервере). Ре-зультат обработки сервер передает на рабочие станции (клиенты). Принцип классификации БД – по модели данных: иерархические (древовидные), сетевые (графовый), реляционные (табличные). Иерархическая модель Иерархические базы данных представляют собой совокупность элементов, расположенных в порядке их подчинения от общего к частному и могут быть представлены как перевернутое дерево (граф), состоящее из объектов различных уровней. Свойства иерархической модели данных: 1. Верхний уровень занимает один объект, т.е. иерархическое дерево имеет одну вершину (корень). 2. Несколько узлов низшего уровня связано только с одним узлом высшего уровня. 3. Каждый узел имеет своё имя (идентификатор). 4. Существует только один путь от корневой записи к более частной записи данных. Файловая система, Примером иерархической базой данных является файловая система, состоящая из корневой директории, в которой имеется иерархия поддиректорий и файлов Сетевые базы данных. Сетевая база данных является обобщением иерархической, но в ней принята свободная связь между элементами разных уровней. Сетевой базой данных фактически является Всемирная паутина глобальной компьютерной сети Интернет. Гиперссылки связывают между собой сотни миллионов документов в единую распределенную сетевую базу данных. Реляционные базы данных Такая модель хранения данных построена на взаимоотношениях составляющих её частей. В простейшем случае она представляет собой таблицу (двухмерный массив), в более сложных информационных моделях – совокупность взаимосвязанных таблиц. Таблицы, в свою очередь, состоят из столбцов и строк, на пересечении которых расположены ячейки. Данные в одних таблицах, как правило, связаны с данными других таблиц, откуда и произошло название "реляционные". Примерами реляционных (табличных) баз данных могут служить расписания занятий, представленные в виде таблицы, ведомости с оценками, расписания движения какого-либо вида транспорта. Слово «реляционный» происходит от англ. relation (отношение). Фрагмент таблицы расписания движения поездов из Москвы в Санкт –Петербург как пример части реляционной базы данных. рейсы Отправление Прибытие в пути 038Щ Москва — Санкт-Петербург 00:12 08:48 8 ч 36 мин вт, ср, чт, пт по 22 поезд, РЖД Московский Курский вокзал дни курсирования апреля вокзал 270Щ Москва — Санкт-Петербург 00:36 11:13 10 поезд, РЖД Московский мин апреля по 22 апреля 8 ч 4 мин 9, 10, 11, 16, 17, 18, Курский вокзал ч 37 вт, ср, чт, пт с 12 вокзал 038А Москва — Санкт-Петербург 00:44 08:48 поезд, РЖД, Афанасий Никитин Ленинградский Московский вокзал вокзал 23, 24, 25, 26, 27, 28, 29, 30 апр, 1, 2, 3, 4, 5, 6 мая, 030А Москва — Санкт-Петербург 00:44 09:42 Ленинградский Московский вокзал вокзал 8 ч 58 мин вт, ср, чт, пт по 22 апреля, кроме 07.04, 08.04 При создании реляционных баз данных используется специальная терминология: Таблицы называются отношениями, а столбцы таблицы называются полями (атрибутами), строки – записями (кортежами). Для того чтобы данные, представленные в таблице, можно было считать отношениями, необходимо выполнение следующих условий: • столбцы таблицы должны иметь различные имена; • данные в столбцах должны быть однородными; • все строки таблицы должны иметь одну и ту же структуру; • в таблице не должно быть повторяющихся строк; Столбец (атрибут), с помощью которого можно определить данные, называется первичным ключом. Описание типов полей Тип поля Счетчик Описание целые числа, которые задаются автоматически при вводе записей и не могут быть изменены пользователем такой Символьный (текстовый) тип имеют поля, в которых хранятся символьные последовательности (слова, тексты, коды и пр.), содержащие до 255 символов Числовой этот тип имеют поля, значения которых могут быть только числами (можно выполнять математические операции). Дата/время дата и время Логический значения Истина или Ложь (или «Да»/«Нет») OLE. хранятся видео и звукозаписи MEMO Служит для вставки длинного текста, в нём можно хранить до 65 535 символов. Обработка и извлечение данных в БД выполняются на основе строго определенных математических операций. Существуют восемь основных операций, и они подразделяются на две категории – теоретикомножественные и специальные реляционные. Теоретико-множественные операции: Теоретико-множественными операциями называют объединение (union), вычитание (difference), пересечение (intersection), декартово произведение (Cartesian product). Теоретико-множественные операции определяют, какие строки из входных данных, появятся в выходных данных. Рассмотрим две таблицы: Таблица А Таблица В Название товара Аспирин Анальгин Валокордин Цена упаковку в руб. 20 50 100 Валидол 10 за Название товара Цена упаковку в руб. Аспирин Анальгин Баралгин Бисептол 20 50 150 300 за Операция объединения (union): Операция объединения (union), обозначаемая АᴜВ, позволяет выбрать все товары, входят и в Таблицу1 и в Таблицу2. Операция извлекает все строки из обеих таблиц и комбинирует их. Название товара Цена за упаковку в руб. Аспирин 20 Анальгин 50 Валидол 10 Валокордин 100 Баралгин 150 Бисептол 300 Пересечение (intersection) С помощью операции пересечения А∩В извлекаются товары, которые содержатся в обеих таблицах. Название товара Цена за упаковку в руб. Аспирин 20 Анальгин 50 Вычитание (difference) Эта операция, обозначаемая А\В извлекает строки только из одной таб-лицы. Например, можно извлечь все товары из первой таблицы, которые не входят во вторую таблицу. Название товара Цена за упаковку в руб. Валокордин 100 Валидол 10 Декартово произведение (Cartesian product) Эта операция, обозначаемая А×В, комбинирует все строки из двух таблиц. В нашем примере получим 3*3=9 строк. Код покупателя Название Торговой точки 11 12 13 Доктор Доктор Плюс Доктор Надежда Декартово произведение в в в в в в в в и и и и и и и и к к к к к к к к Произведение множества {в, и, к} на множество цветов радуги Специальные реляционные операции Для извлечения данных служат специальные реляционные операции – Проекция (Projection), Выборка (Selection), Соединение (Join), Деление (Division). Исходная таблица Название товара Аспирин Анальгин Аспартам Цена упаковку в руб. 20 50 100 за Операция Проекция (Projection) – извлечение (выборка) по вертикали С помощью этой операции извлекаются столбцы из таблицы. В приведенном примере эта операция используется для извлечения только названий товаров: Название Товара Аспирин Анальгин Аспартам Операция Выборка (Selection) – извлечение по горизонтали. Эта операция извлекает строки из таблицы. Название Товара Цена за Упаковку В руб. Аспирин 10 Анальгин 20 Аспартам 100 Операция Соединение (Join) Эта операция обладает широкими возможностями, относится к операции соединения таблиц. Принципы работы этой операции рассмотрим на примере: Код товара Название товара Цена за упаковку в руб. 10 20 100 101 102 103 Аспирин Анальгин Аспартам Дата Код товара Количество упаковок 11/01 12/01 13/01 101 102 103 1000 300 2000 Логика объединения - по одинаковому столбцу, который имелся в обеих таблицах: Рассмотрим эти две таблицы внимательно. В этих двух таблицах столбцы Код товара дают информацию, о каком товаре идет речь. Таблица Прода-жи не содержит наименований товаров, но благодаря наличию столбца Код товара, мы с помощью ссылки на первую таблицу можем понять, о каком то-варе идет речь. Т.е. столбец Код товара является ключевым в понимании, о каком товаре идет речь. Столбец Код товара в первой таблице является первичным ключом, а во второй таблице – внешним ключом. В результате, объединяя две таблицы, чтобы внешний ключ ссылался на первичный, получаем следующую таблицу: Дата Код товара Название товара Цена за упаковку в руб. Количество упаковок 11/01 101 Аспирин 10 1000 12/01 102 Анальгин 20 300 13/01 103 Аспартам 100 2000 Операция Деление (Division) Эта операция извлекает строки, где значения в столбцах совпадают со значениями в столбцах во второй таблице, но при этом возвращает столбцы, которых нет во второй таблице. Код Покупатель покупателя 11 Доктор 12 Доктор Плюс 13 11 12 Доктор Надежда Доктор Доктор Плюс Дата 5/03 10/03 5/03 21/3 25/03 Дата 5/03 Код покупателя Покупатель 11 Доктор 12 Доктор Плюс 13 Доктор Надежда Разработка баз данных: Основной принцип, лежащий в основе разработки баз данных. Модель Сущность-Связь (E-R – модель) Сущность – это реально существующий в природе объект: покупатель, товар. Модель сущностьсвязь показывает связь между сущностями, например, связью между покупателем и товаром может быть продажа. Число связей называется кардинальностью. Возможными типами связей между таблицами являются: 1. Отношение «Один - к - одному», между одинаковыми ключевыми полями разных таблиц (1-1). 2. Отношения «один – ко – многим» устанавливаются между одним полем ключевым полем главной таблицы и полями подчиненной таблицы (1- ∞) (одного господина обслуживает много слуг). 3. Связь «многие – ко – многим» фактически представляет две связи «один – ко – многим» между двумя таблицами через третью таблицу ( ∞ - ∞). Типы связей Пример схемы базы данных «Библиотека» ( связи один - к-одному, один-ко-многим). Пример фрагмента схемы базы данных документооборота между компаниями, со связью многие-ко-многим. Стадии разработки базы данных В общем случае можно разделить весь процесс разработки БД на три части: концептуальная схема, внутренняя схема и внешняя схема. Системы управления базами данных (СУБД) Для внедрения базы данных и управления базой данных необходимо понять её уникальные задачи: • БД будут пользоваться много людей; нужно определить метод упрощающий ввод и извлечение данных; • Всегда есть опасность случайного или сознательного искажения ин-формации (должны быть оговорены права доступа и организация безопасности); • Необходимо уберечься от потери данных и разработать механизм восстановления данных («зависнет» система, откажет жесткий диск); • БД должна быть достаточно мощной, хранить большой объём ин-формации; • Ввод и вывод данных должен происходить достаточно быстро Система управления базами данных (СУБД) – комплекс программ и языковых средств, предназначенных для создания, ведения и совместного использования БД многими пользователями, т.е. базы данных упорядоченные наборы данных, а системы управления базами данных – программы, управляющие хранением и обработкой данных. Любая СУБД включает в качестве базового объекта двумерные таблицы. Требования, которым должна отвечать СУБД: Производительность и готовность. Минимальные затраты. Простота и легкость использования. Простота внесения изменений. Возможность поиска. Целостность. Безопасность и секретность. Язык, с помощью которого проектируются БД и СУБД – SQL (Structured Query Language) В SQL применяются команды, операторы сравнения, логические операторы, шаблоны, индексы и т.д. Примеры команд SQL: ИСКАТЬ (SELECT), ВСТАВЛЯТЬ(INSRET), ОБНОВЛЯТЬ (UPDATE), УДАЛЯТЬ(DELETE). Набор операций, успешно проведенных пользователем, называется транзакцией (transaction). Методы индексирования включают в себя В-деревья (B-trees) и хэши (hash). Индекс В-деревьев состоит из родительских узлов и потомков, которые, в свою очередь, могут иметь своих потомков. Узлы организованы в определен-ном порядке. Каждый родитель содержит информацию о минимальных и максимальных значениях, содержащихся во всех его потомках. Метод хэш-индекса позволяет найти искомые данные, применяя к ключево-му значению данных хэш-функции. Хэш работает как уникальный отпечаток какого-либо значения. С помощью хэш-индекса можно выполнять особый поиск на полное совпадение, например, поиск товара с кодом 101. 101 Составляющие современных СУБД: запросы, формы, отчеты, макросы. Запросы. В СУБД запросы являются важнейшим инструментом. Главное назначение запросов – это отбор данных, удовлетворяющих определенным условиям. Формы. Формы позволяют отображать данные, содержащиеся в таблицах или запросах, в более удобном для восприятия виде. Отчеты. Они предназначены для печати данных, содержащихся в таблицах и запросах, в красиво оформленном виде. Макросы. Макросы служат для автоматизации повторяющихся операций. Наиболее популярные СУБД FoxPro Visual FoxPro Access. (Microsoft) Paradox (фирма Borland) MySQL (фирма Oracle) 1С Все перечисленные СУБД весьма похожи по системе команд и структуре файлов. Это означает, что, освоив систему команд одной из перечисленных СУБД, вы сможете без особых трудностей освоить другие системы. Информационные системы Информационная система (согласно Федеральному закону РФ от 27 июля 2006 г. N 149-ФЗ «Об информации, информационных технологиях и о защите информации»: «информационная система) — совокупность содержащейся в базах данных информации и обеспечивающих ее обработку информационных технологий и технических средств», т.е. ИС = БД+СУБД+технические средства. Примерами информационных систем являются системы продажи билетов на пассажирские поезда и самолеты. Что такое Data mining? Создание множества самых полных и замечательных БД привело к появлению побочного продукта – «гор» накопленной информации. Для того чтобы находить в этих «горах» «золото» полезной информации, было создано новое мультидисциплинарное направление развития информационных технологий – Data mining. Термин Data mining переводится как добыча данных, извлечение информации, раскопка данных, интеллектуальный анализ данных, средства поиска закономерностей, извлечение знаний, раскопка знаний в базах данных. Теоретическим фундаментом для нового научного направления стали: прикладная статистика, распознавание образов, теория баз данных, искусственный интеллект и т.д. Одна из научных областей применения технологии Data Mining – биоинформатика, направление, целью которого является разработка алгоритмов для анализа и систематизации генетической информации. Полученные алгоритмы используются для определения структур макромолекул, а также их функций, с целью объяснения различных биологических явлений. Технология Data Mining в последние годы активно проникает и в медицину. Традиционно для постановки медицинских диагнозов используются экспертные системы, которые построены на основе символьных правил, сочетающих, например, симптомы пациента и его заболевание. С использованием Data Mining при помощи шаблонов можно разработать базу знаний для экспертной системы. IBM Watson — суперкомпьютер фирмы IBM, оснащённый вопросно-ответной системой искусственного интеллекта, созданный группой исследователей под руководством Дэвида Феруччи. Его создание — часть проекта DeepQA. Основная задача Уотсона — понимать вопросы, сформулированные на естественном языке, и находить на них ответы в базе данных. Назван в честь основателя IBM Томаса Уотсона. Watson состоит из 90 серверов IBM p750, каждый из которых оснащён четырьмя восьмиядерными процессорами архитектуры POWER7. Суммарная оперативная память — более 15 терабайт. Система имела доступ к 200 млн страниц структурированной и неструктурированной информации объёмом в 4 терабайта, включая полный текст Википедии. Во время игры Watson не имел доступа к интернету. В области фармацевтики методы Data Mining также имеют достаточно широкое применение. Это задачи исследования эффективности клинического применения определенных препаратов, определение групп препаратов, которые будут эффективны для конкретных групп пациентов. Молекулярный докинг (или молекулярная стыковка) — это метод молекулярного моделирования, который позволяет предсказать наиболее выгодную для образования устойчивого комплекса ориентацию и положение одной молекулы по отношению к другой. Схематическая диаграмма, иллюстрирующая докинг малой молекулы лиганд (синяя) с белковым рецептором (красная). Дорогу осилит идущий… Microsoft Access 2003 MS Access – это настольная система управления реляционными базами данных, предназначенная для работы на автономном ПК или в локальной сети (Access в переводе с английского означает «доступ»). Средствами Access проводят следующие операции: Проектирование базовых объектов – двумерных таблиц с различными типами данных. Например, прежде чем заполнять данными таблицу, надо создать её макет. Установление связей между таблицами, с поддержкой целостности данных. Ввод, хранение, просмотр, сортировка, модификация и выборка данных из таблиц с использованием различных средств контроля информации, индексирования таблиц и аппарата алгебры логики (для фильтрации данных). Создание, модификация и использование производных объектов (форм, запросов и отчетов). Таким образом, создание базы данных включает следующие три этапа: Проектирование БД. На этом этапе определяется, какие поля будут входить в состав БД и, какова их структура. Создание структуры. На этом этапе с помощью конкретной СУБД описывается структура таблиц, входящих в состав БД. Ввод записей. Заполнение таблиц БД конкретной информацией. Положительные черты СУБД Microsoft Access доступность в изучении и понятность позволяют Access являться одной из лучших систем быстрого создания приложений управления базами данных; СУБД полностью русифицирована; возможность использования OLE технологии; интегрированность с пакетами Microsoft Office; визуальная технология позволяет постоянно видеть результаты своих действий и корректировать их; кроме того, работа с конструктором форм может существенно облегчить дальнейшее изучение таких систем программирования, как Visual Basic или Delphi; широко и наглядно представлена справочная система; наличие большого набора «мастеров» по разработке объектов. Начало работы с MS Access 2003. Графический интерфейс программы Работа с объектами БД. Таблицы Поле Тип ID (ключевое) счетчик Автор Текстовый Название книги Текстовый Год выпуска Числовой Жанр Текстовый Переплет Текстовый Количество страниц Числовой Режимы: Таблицы Конструктора Панель инструментов Внесите в эту таблицу следующие сведения: № Автор 1 Пушкин А. С. Название Год Жанр Переплёт Кол-во книги выпуска Капитанская 1867 повесть Твердая 100 1996 роман в стихах Мягкая 304 страниц дочка 2 Пушкин А. С. Евгений Онегин 3 Грибоедов А. С. Горе от ума 1999 пьеса Мягкая 50 4 ПомяловскийН.Г. Мещанское 2004 повесть Твердая 154 2001 повести и Твердая 321 исследование Твердая 507 счастье 5 ПаустовскийК.Г. Избранное рассказы 7 ПереломовЛ.С.. Конфуций 8 Есенин Сергей Я московский 2000 озорной гуляка стихи Твердая 352 9 Достоевский Ф. М. Бесы 1995 роман Мягкая 704 10 Достоевский Ф. М. Идиот 2010 роман Твердая 672 11 Платонов А. П. Котлован 1997 повесть Пластиковая 184 2000 Конструктор запросов Результат выполнения Запроса Запрос с параметром Результат выполнения Запроса: 1999 Запрос с условием отбора Запрос на обновление Связи ключевых полей показаны схеме данных Схема базы данных Создание форм Создание форм (продолжение) Конструктор форм