Какими свойствами обладают базы данных
Самодокументированность. БД должна иметь словарь данных в специально отведенном месте, которое используется для хранения информации о самой базе данных. Словарь содержит информацию: об архитектуре базы, о хранимых процедурах, о пользовательских привилегиях и т.д.
Независимость данных от программ. Структура данных должна быть независима от программ, использующих эти данные, так чтобы данные можно было добавлять или перестраивать без изменения этих программ.
Целостность данных. В общем случае целостность данных означает корректность данных и их непротиворечивость. Для обеспечения целостности накладывают ограничение целостности. Эти ограничения могут иметь вид логических выражений, значения которых всегда должны быть «истина». Если хотя бы одно из выражений принимает значение «ложь» – то целостность нарушена. (Например, вес детали должен быть положителен, а возраст родителей не может быть меньше возраста ребенка).
Целостность транзакций. Транзакцией можно назвать банковскую операцию (перевод денег). В БД под транзакцией понимают неделимую с точки зрения воздействия на базу данных последовательность операторов манипулирования данными (чтение, вставка, модификация), приводящая к одному из двух возможных результатов: либо последовательность выполняется, все операторы правильные, либо транзакция откатывается, в случае если хотя бы один оператор не выполнен успешно. Обработка транзакций гарантирует целостность БД.
Изолированность, т.е. создание такого режима функционирования, когда каждому пользователю кажется, что база доступна только ему.
Безопасность данных. Защита данных от несанкционированной модификации, разрушения.
Масштабируемость.
Производительность.
СУБД
К основным функциям СУБД относятся:
– непосредственность управления данными во внешней и оперативной памяти;
– поддержание целостности данных и управление транзакциями;
– обеспечение безопасности данных;
– обеспечение параллельного доступа к данным нескольких пользователей.
Состав СУБД:
– ядро, которое отвечает за управление данными во внешней и оперативной
памяти;
– процессор языка базы данных, обеспечивающий оптимизацию запросов и
создания машинно-независимого внутреннего кода;
– подсистему поддержки времени исполнения, которая интерпретирует
программы манипуляции данными, создающие пользовательский интерфейс;
– сервисные программы (внешние утилиты), обеспечивающие дополнительные
возможности по обслуживанию информационной системы.
По технологии решения задач, решаемых СУБД, БД подразделяют на два вида:
– централизованная БД хранится целиком на ВЗУ одной вычислительной системы; если система входит в состав сети, то возможен доступ к этой БД других систем;
– распределенная БД состоит из нескольких, иногда пересекающихся или дублирующих друг друга БД, хранящихся на ВЗУ разных узлов сети.
СУБД предоставляет доступ к данным БД двумя способами:
– локальный доступ предполагает, что СУБД обрабатывает БД, которая хранится на ВЗУ той же ЭВМ;
– удаленный доступ – это обращение к БД, которая хранится на одном из узлов сети; удаленный доступ может быть выполнен по технологии файл-сервер или клиент-сервер.
Технология файл-сервер предполагает выделение одной из вычислительных систем, называемой сервером, для хранения БД. Все остальные компьютеры сети (клиенты) исполняют роль рабочих станций, которые копируют требуемую часть централизованной БД в свою память, где и происходит обработка.
Технология клиент-сервер предполагает, что сервер, выделенный для хранения централизованной БД, дополнительно производит обработку запросов клиентских рабочих станций. Клиент посылает запрос серверу. Сервер пересылает клиенту данные, являющиеся результатом поиска в БД по ее запросу.
Источник
Понятие базы данных и системы управления базами данных
База данных (БД) – именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области, или иначе БД – это совокупность взаимосвязанных данных при такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений в определенной предметной области.[3]
В любом бизнесе имеются данные, что в свою очередь требует создания некоторого организованного метода или механизма управления этими данными. Такой механизм принято называть системой управления базами данных (СУБД). Основываясь на современных технологиях, доказавших свою пользу системы управления базами данных начали развиваться в других направлениях, отвечая требованиям растущего бизнеса, все возрастающих объемов корпоративных данных и, конечно же, технологий, связанных с Internet.
Современная волна информационных технологий управления основывается на использовании систем управления реляционными базами данных (СУРБД), которые являются развитием традиционных СУБД. Реляционные базы данных и технологии клиент/сервер являются типичной комбинацией, позволяющей современным компаниям успешно обрабатывать данные и оставаться конкурентоспособными в своих секторах рынка.
Основные свойства базы данных
Для успешной реализации системы на основе базы данных на первом месте стоит проектирование структуры данных, а затем только осуществляется разработка приложений. Плохо спроектированная база данных будет поставлять некорректную информацию, порождать ошибки, способные привести к принятию неправильных решений.
Проектируемая БД должна обладать определенными свойствами. Ниже перечислены основные свойства базы данных.
Целостность. В каждый момент существования базы данных сведения, содержащиеся в ней, должны быть непротиворечивы. Целостность БД достигается вследствие введения ограничений целостности, в частности, к ним относятся ограничения, связанные с нормализацией БД. Желательно отслеживать диапазон допустимых значений, соотношения между значениями в полях, особенности написания формата. Существуют ограничения, работающие только при удалении записей.
Восстанавливаемость. Данное свойство предполагает возможность восстановления БД после сбоя системы или отдельных видов порчи системы. Сюда относится проверка наличия файлов, составляющих приложение. В основном свойство восстанавливаемости обеспечивается дублированием БД и использованием техники повышенной надежности.
Безопасность. Безопасность БД предполагает защиту данных от преднамеренного и непреднамеренного доступа, модификации или разрушения. Применяется запрещение несанкционированного доступа, защита от копирования и криптографическая защита. Также необходимы и административные меры, например ограничение доступа к носителям информации.
Эффективность. Свойство эффективности обычно понимается как:
минимальное время реакции на запрос пользователя;
минимальные потребности в памяти;
сочетание этих параметров.
Предельные размеры и эксплуатационные ограничения. Предельные размеры, а также другие ограничения, накладываемые эксплуатацией данной БД, могут существенно повлиять на проектное решение.[3]
Источник
База данных – это совокупность сведений о каких-либо объектах реального мира.
Например, совокупность сведений о владельцах автомобилей (ФИО, адрес, марка автомобиля, когда приобретён, номерной знак и т.д.)
СУБД – система управления базами данных. СУБД – это программный комплекс для работы с базой данных.
Информационная система (ИС) – совокупность базы данных и аппаратно-программного комплекса для работы с базой данных.
ИС служат для того, чтобы обрабатывать запросы пользователя и давать на них ответы.
Мы будем изучать ИС, в которых информация в базе данных хранится в виде таблиц. Такие базы данных называют реляционными.
Таблицы реляционных баз данных обладают определёнными свойствами.
Каждая таблица имеет фиксированное число столбцов, а число строк может изменяться в процессе эксплуатации.
Строки называются записями, а столбцы полями.
Для каждого поля должны быть определены уникальное имя, тип данных, содержащихся в поле, и другие свойства поля. Надо различать имя поля и значение поля. Например, если имя поля «Фамилия», то Иванов – это значение этого поля.
Каждая таблица должна иметь первичный ключ.
Первичный ключ – минимальный набор полей, однозначно определяющий запись в таблице.
Поскольку количество полей в первичном ключе должно быть минимальным, то идеальный случай, когда первичный ключ состоит из одного поля. Поэтому подбор полей для первичного ключа надо начинать с одного поля. Если подходящего поля не окажется, то следующий этап будет состоять в подборе пары полей и т.д., пока не будет найдена подходящая совокупность полей. Если всех полей записи недостаточно, чтобы образовать первичный ключ, то необходимо добавить в таблицу новые поля.
При создании базы данных стоит задача представления исходных данных в виде таблиц.
Процесс преобразования исходных данных в двумерные таблицы называется нормализацией.
Рассмотрим конкретный пример.
Пусть некоторая фирма занимается торговлей кондитерскими изделиями. Клиентами фирмы являются рестораны, кафе, клубы и т.д. Для учета заказов фирма заносит в учетную тетрадь следующую информацию:
Номер заказа;
Дата;
Наименование клиента;
Адрес клиента;
Название продукта;
Количество товара (кг);
Цена продукта (руб/кг);
Стоимость заказа (руб).
Итак, сначала надо произвести нормализацию данных, т.е. определить какие будут нужны таблицы для хранения этих данных.
В принципе можно базу данных создать из одной таблицы, в которой полями будут служить названия столбцов учетной тетради. Первичным ключом такой таблицы может служить номер заказа.
Однако организация этой базы данных одной таблицей содержит ряд недостатков.
Например, в таблице имеются поля наименование клиента и адрес клиента, которые не зависят от номера заказа. Набирая их каждый раз, мы будем проделывать массу лишней работы. Кроме того, при удалении записи, в которой сведения о данном клиенте больше нигде не содержаться, мы потеряем информацию о нём.
Чтобы избавиться от этого недостатка поступают так. Создают ещё одну таблицу с полями:
Код клиента;
Наименование клиента;
Адрес клиента.
Из первой таблицы удаляют поля наименование клиента и адрес клиента и добавляют поле код клиента. Первичным ключом второй таблицы, очевидно, служит поле код клиента.
Еще один недостаток заключается в том, что стоимость заказа определяется произведением цены продукта на количество товара и, следовательно, всегда может быть вычислена, если в этом возникнет необходимость. Поэтому поле стоимость вообще должно быть исключено из таблицы.
Ну и наконец, можно выделить в отдельную таблицу сведения о продукте. Полями такой таблицы будут: код продукта, наименование продукта и цена.
Итак, проектируемая база данных должна содержать три таблицы, которые можно назвать «Заказы», «Клиенты», «Продукты».
Заказы | ||||
Номер заказа | Код клиента | Код продукта | Количество | Дата |
Первичный ключ у этой таблицы – «номер заказа».
Клиенты | ||
Код клиента | Наименование | Адрес |
Первичный ключ у таблицы клиенты – поле «код клиента».
Продукты | ||
Код продукта | Название | Цена |
Первичный ключ – «код продукта».
Теперь надо определить какой тип данных будет содержаться в каждом из полей таблиц.
Свойства полей. Типы данных
Поля номер заказа, код клиента, код продукта, количество и цена будут числовыми. Но числа бывают разные целые и с плавающей точкой. Логично поля номер заказа, код клиента и код продукта сделать целыми числами, а количество и цена – с плавающей точкой.
Поле дата будет иметь специальный тип – дата.
Поля наименование, название, адрес будут иметь текстовый тип данных.
Кроме указания типа данных бывает нужно указать размер поля и формат поля.
Для всех текстовых полей рекомендуется обязательно указать размер поля. В нашем случае, для полей «наименование» и «название» достаточно будет указать размер в 50 символов, а для «адреса» – 80 символов.
В СУБД Microsoft Access поля могут содержать следующие типы данных.
Текстовый (Текст или числа, не требующие проведения расчетов, например номера телефонов. Число знаков, не превышающее 255).
Числовой (Числовые данные, используемые для проведения расчетов. 1, 2, 4 или 8 байт.).
Дата/время (Даты и время, относящиеся к годам с 100 по 9999.).
Логический (одно из двух возможных значений (Да/Нет, True/False или Вкл/Выкл).
Гиперссылка (Текст или комбинация текста и чисел, хранимые как текст и используемые в качестве адреса гиперссылки.)
Счётчик (Уникальные, последовательно возрастающие на 1 или случайные числа, автоматически вводящиеся при добавлении каждой новой записи в таблицу).
Денежный (Денежные значения и числовые данные (от одного до четырех знаков в дробной части), используемые в математических расчетах, проводящихся с точностью до 15 знаков в целой и до 4 знаков в дробной части.).
Поле объекта ОLE (Объект (например, электронная таблица Microsoft Excel, документ Microsoft Word, рисунок, звукозапись или другие данные в двоичном формате), связанный или внедренный в таблицу Microsoft Access.)
Свойства поля зависят от типа данных. Наиболее важные следующие свойства.
Общими для всех типов данных являются следующие свойства:
Обязательное поле – (допустимые значения – Да или Нет. Если поле обязательное, то пока в него не внесут данные, перейти к следующей записи будет невозможно);
Индексированное поле – (допустимые значения – (да(допускаются совпадения), да(совпадения не допускаются), нет. Если поле индексированное, то в случае поиска данных по этому полю время поиска будет минимальным. Если совпадения не допускаются, то таблица не может иметь записи с одинаковым значением данного поля.)
Для числовых данных
Размер поля (байт 0-255, целое –32768 +32767, длинное целое –2 109 +2 109, одинарное с плавающей точкой –3 1035 +3 1038, двойное с плавающей точкой).
Формат поля (основной, денежный, евро, фиксированный, процентный, экспоненциальный).
Число десятичных знаков (влияет на отображаемые данные, только если формат поля фиксированный).
Значение по умолчанию (то значение, которое будет присутствовать в поле, до ввода первого значения).
Обязательное поле.
Индексированное поле.
Для текстовых данных
Размер поля (сколько символов может содержать поле).
Обязательное поле.
Пустые строки (возможные значения – да, нет. Может ли поле не иметь данных).
Для данных Дата/время
Формат поля (краткий формат даты, полный формат даты…).
Контрольные вопросы
1. Что такое база данных?
2. Какие базы данных называются реляционными?
3. Какие базы данных называются фактографическими?
4. Что такое СУБД?
5. Какими обязательными свойствами должны обладать таблицы реляционной базы данных?
6. Что такое поле и запись в реляционных базах данных?
7. Что такое первичный ключ?
8. Что такое нормализация данных?
9. Какие типы данных могут содержать поля таблиц СУБД Microsoft Access?
10. Какими свойствами обладают поля данных?
11. Что такое индексированное поле?
12. Когда индексированное поле может содержать повторяющиеся данные, а когда нет?
13. Какими свойствами должно обладать поле, чтобы в нём отображалось определённое число десятичных знаков после запятой?
14. Что такое значение по умолчанию и когда имеет смысл задавать это значение?
Источник
Без баз данных (БД) практически невозможно себе представить работу современных информационных технологий. В этой статье мы рассмотрим назначение и понятие базы данных, поговорим о том, что же такое база данных, и какая база вам лучше подойдёт. Узнаем, какие существуют типы и виды баз данных и какие из них встречаются сегодня чаще. Также поговорим о структуре иерархических баз данных, упомянем сетевые базы данных, уделим пристальное внимание реляционным базам данных.
Напоследок рассмотрим особенности проектирования БД и их назначение на примере СУБД MySQL, т. к. эта система управления является, по сути, математической моделью реляционных баз данных. Итак, поехали!
База данных: назначение, понятие, классификация
В нашей статье мы не будем углубляться в математические теории и законы, описывающие базы данных, т. к. подробности всегда можно узнать из специализированной литературы. Но принципы работы БД, особенности управления, терминологию, устройство, назначение, а также такое понятие, как классификация баз данных, сегодня должен знать каждый, кто так или иначе сталкивается с ИТ-сферой, а уж тем более в ней работает.
Итак, самое простое определение баз данных звучит следующим образом: база данных — это упорядоченное хранение информации в систематизированном виде. При этом виды упорядочивания, хранения, систематизации и управления могут быть разные. И каждый из них отвечает определённым требованиям либо предназначен для выполнения определённых действий.
Типы и виды баз данных, классификация
Существует достаточно много типов и видов баз данных, поэтому описывать их все в данной публикации мы не будем. Однако самые распространённые всё же упомянем.
Важно понять, что, говоря о данных, мы подразумеваем определенную информацию, например, о товаре в интернет-магазине. И в этих данных содержатся конкретные параметры и свойства. Однако лучше всего рассматривать БД на конкретных примерах.
Иерархическая база данных, структура иерархических данных
Когда речь идёт о хранении иерархических данных, каждый объект хранит информацию в виде определенной сущности, и у каждой сущности могут быть родительские и дочерние элементы, а у дочерних, в свою очередь, тоже могут быть дочерние элементы. Таким образом, можно сказать, что это данные, которые подлежат строгой иерархии (представьте себе своеобразное дерево).
Простой пример иерархических данных — документ в формате XML либо файловая система компьютера.
Нельзя не упомянуть и то, что базы данных этого вида оптимизированы под чтение информации. При такой структуре данные можно быстро выбирать из нужной области, отдавая запрашиваемую информацию пользователям. Например, компьютер легко работает с конкретной папкой либо файлом, которые, по сути, можно назвать объектами структуры иерархических данных. Но когда нужно перебрать всю информацию, это может занять время (если вернуться к вышеописанному примеру, то проверка антивирусом всех уголков нашего компьютера выполняется не так быстро, как хотелось бы).
На рисунке представлена классическая структура иерархической базы данных. Вверху находится родитель (его ещё называют корневым элементом), ниже размещены дочерние элементы. Элементы с данными, находящиеся на одном уровне, можно назвать братьями либо соседними элементами. БД данной категории бывают с разным количеством уровней и разной степени вложенности.
Сетевые базы данных, структура сетевых данных
В каком-то смысле сетевые базы данных — это своеобразная модификация иерархических баз данных. Разница заключается в том, что в структуре иерархических данных у дочернего элемента бывает лишь один потомок (к каждому элементу, расположенному ниже, идёт лишь одна стрелочка с элемента, размещённого выше). А вот в сетевых базах данных у дочернего элемента бывает несколько предков (элементов, находящихся выше него). Для наглядного понимания структуры сетевых данных смотрите очередной рисунок:
Следует отметить, что сетевые базы данных имеют примерно те же характеристики, что и иерархические данные. Однако в рамках этой статьи мы не будем углубляться в особенности управления сетевыми и иерархическими данными, а лучше подробнее поговорим о реляционных базах данных.
Реляционные базы данных, структура реляционных данных
Реляционные базы данных сегодня распространены очень широко, поэтому в сети можно найти огромное количество материалов на соответствующую тему разного уровня сложности. Кроме того, их проходят на уроках информатики, плюс эти БД хорошо описываются в математике. Структуру данных впервые подробно описал математик Эдгар Франк Кодд (умер в 2003 году), сделав это ещё в 80-х гг. прошлого века. В результате его работ и была создана программная реализация. Реляционные БД стали активно развиваться, поэтому сегодня каждый, кто знаком с базами данных, знает реляционные БД.
Особенности реляционных данных
Главная особенность — все объекты хранятся в виде набора 2-мерных таблиц. Каждая таблица включает в себя набор столбцов, где указываются следующие параметры:
– название;
– тип данных (число, строка и т. д.).
Вторая важная особенность заключается в том, что число столбцов фиксировано. Это значит, что структура БД известна заранее, при этом количество рядов либо строк данных практически не ограничено. Грубо говоря, строки в реляционных БД — есть объекты, хранимые в базе.
По большему счёту, БД — это абстрактное понятие, а в случае с реляционной структурой таблица — есть не более чем удобный способ хранения информации. Причём набор таблиц превращается в базу данных тогда, когда он связан логически. А чтобы этим всем управлять, используют СУБД. Классический пример СУБД — система управления MySQL. Иными словами, СУБД MySQL — есть программное воплощение математических идей.
Проектирование баз данных
Проектирование — самая трудная задача при работе с данными. Оно заключается не только в том, чтобы создать таблицу, указав наименование столбцов и тип данных. Это гораздо более сложный процесс, требующий специализированных знаний и умений. Говоря о типах баз данных в столбцах, подразумевается, например, способ их записи, который бывает символьный (строковый), числовой, календарный, NULL.
Основная сложность заключается в том, что мощность наших компьютеров ограничена. И пока данных мало, таблиц и строк тоже немного, поэтому машина обрабатывает информацию достаточно быстро. Но с течением времени информации становится всё больше, что может стать причиной снижения быстродействия. Работа машины будет замедляться, времени на обработку запросов потребуется всё больше. Добавить новую запись в таблицу не станет проблемой для реляционной СУБД, а вот выборка данных может превратиться в весьма ресурсоёмкую операцию. Хотя, многое будет зависеть и от настроек СУБД.
Требования к проектированию БД
О видах и особенностях реляционных БД мы уже поговорили. Теперь давайте подробнее обсудим сложности их проектирования. В данном случае этот процесс начинается с постановки задач, исходя из нужных требований, особенностей использования, недостатков либо достоинств той либо иной системы управления. В случае с СУБД MySQL необходимо правильно составить общую структуру.
Требования обычно следующие:
1. База данных должна быть относительно простой в плане обработки информации.
2. Она должна быть максимально компактной и неизбыточной настолько, насколько это возможно без ущерба для функциональности.
Возможны и другие требования, причём нередко они противоречат друг другу. Именно поэтому важно найти оптимальный баланс с точки зрения архитектуры, учитывая назначение конечного продукта.
Так как проектирование — важнейший процесс, им занимается проектировщик. Обычно к работе привлекают профессиональных администраторов серверов либо архитекторов БД, имеющих большой практический опыт. Нужно четко понимать, что проектируется и какие результаты должны получиться на выходе. Это бывает непросто, так как, если речь идёт о серьёзных проектах, готовая структура может включать в себя десятки и сотни таблиц, которые бывают связаны друг с другом как простыми, так и замысловатыми способами.
Результат проектирования — диаграмма или схема. Это подробное схематическое описание, в котором указываются, какие данные будут храниться, сколько столбцов в таблице, тип столбцов в таблице, как связаны таблицы между собой и многое другое. При правильном и грамотном проектировании система будет работать стабильно и без сбоев. В обратном случае ожидайте проблем, так как нет ничего хуже, чем ошибиться на этапе построения архитектуры проекта.
Если вы хотите овладеть базами данных на высоком профессиональном уровне, записывайтесь на соответствующий курс в OTUS. Практикующие эксперты научат вас особенностям управления БД и тому, как эффективно взаимодействовать с любой реляционной СУБД, используя для этого язык структурированных запросов SQL.
Источник