Тарифы Услуги Сим-карты

Субд. основные понятия бд. Какие бывают базы данных

F разлеле рассматриваются базы данных и информационные системы. Описываются основные понятия баз данных и систем упрагления базами данных. Дается характеристика вариантов организации информационной сисемы по архитектуре клиент-сервер. Приводится классификация СУ БД, и описываются основные их функции Рассматривают» я варианты созда­ния приложений и организации взаимодействия пользователей с информа­ционными системами.

1.1. Базы данных и информационные системы

В основе решения многих задач лежит обработка информации. Для об­легчения обработки информации создаются информационные системы (ИС). Автоматизированными называют ИС, в которых применяют техни­ческие средства, в частности ЭВМ. Большинство существующих ИС яв­ляются автоматизированными, поэтому для краткости просто будем на- зыват ь их ИС.

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

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

Банк данных является разновидностью ИС, в которой реализованы фун­кции централизоьанного хранения и накопления обрабатываемой информа ции, организованной в одну или несколько баз данных.

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

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

Логическую структуру хранимых в базе данных называют моделью представления данных. К основным моделям представления данных (моделям данных) относятся следз"ющие: иерархическая, сетевая, реля­ционная, постреляционная, многомерная и объекгно-ориентированная (см. раздел 2).

Сиспи ма иправления 6а ами данньи (СУБД) - это комплекс языковых и про. раммных средств, предназначенный для создания, ведения и совместного использования БД многими пользователями. Обычно СУБД различают но испо 1ьзуемой модели данных. Так, СУБД, основанные на использовании ре­ляционной модели данных, называют реляционными СУБД.

Одними из первых СУБД являются следующие системы: IMS(IBM, 1968 г.),IDMS(Cullinet, 1971 г.),ADABAS(SoftwareAG, 1969 г.) и ИНЭС (ВНИИСИAII СССР, 1976 г.). Ко шчество современных систем управ пения базами дан ных исчисляется тысячами.

Приложение представляет собой программу или комплекс программ, обеспечивающих автоматизацию обработки информации для прикладной задачи. Нами рассматривав ггея приложения, использующие БД Приложе­ния могут создаваться в среде или вне среды СУБД - с помощью системыnpoi раммирования, использующей средства доступа к БД, к примеруDelphi или С++Builder. Приложения, разработанные в среде СУБД, часто называ­ют приложениями СУБД, а приложения, разработанные rhc СУБД, - внешни ми при чола ниями.

Для работ ы с базой данных зачастую достаточно средств СУБД и не нуж­но испо. шзовять приложения, создание которых требует npoi раммирования. Приложения разрабатывают главным образом в случаях, koi да требуется обес­печить удобство раооты < БД неква тифицироьанным пользователям или ин­терфейс СУБД не устраивает пользователей.

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

Функционально СД присутствует во всех БнД, но не всегда выполняю­щий эти функции компонент имеет именно такое название. Чаще всего фун­кции СД выполняются СУБД и вызываются из основного меню системы или реализуются с помощью ее утилит.

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

В вычислительной сети АБД, как правило, взаимодействует с админист­ратором сети. В обя шнности последнего входят контроль за функциони­рованием аппаратно-программных средств сети, реконфигурация сети, вос­становление программного обеспечения после сбоев и отказов оборудования, профилактические мероприятия и обеспечение разграничения доступа

Вычислительная система (ВС) представляет собой совокупность вза­имосвязанных и согласованно действующих ЭВМ или процессоров и дру­гих устройств, обеспечивающих автоматизацию процессов приема, обра- бот ки и выдачи информации потребителям. Поскольку основными функциями БнД являются хранение и обработка данных, то используе­мая ВС, наряду с приемлемой мощностью центральных процессоров (ЦП) должна иметь достаточный объем оперативной и внешней памяти прямо­го доступа.

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

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

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

Давайте разберемся с терминами и понятиями баз данных:

База данных - набор сведений, хранящихся некоторым упорядоченным способом. Можно сравнить базу данных со шкафом, в котором хранятся документы. Иными словами, база данных - это хранилище данных. Сами по себе базы данных не представляли бы интереса, если бы не было систем управления базами данных (СУБД).

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

SQL - язык структурированных запросов, основной задачей которого является предоставление простого способа считывания и записи информации в базу данных.

Итак, простейшая схема работы с базой данных выглядит примерно так:

По характеру использования СУБД делят на однопользовательские (предназначенные для создания и использования БД на персональном компьютере) и многопользовательские (предназначенные для работы с единой БД нескольких компьютеров, объединенных в локальные сети). Вообще деление по характеру использования можно представить следующей схемой:

Не вдаваясь далее в подробности, отметим, что на сегодняшний день число используемых СУБД исчисляется десятками. Наиболее известные однопользовательские СУБД - Microsoft Visual FoxPro и Access, многопользовательские - MS SQL Server, Oracle и MySQL.

В этих уроках мы будем использовать СУБД MySQL. Во-первых, она бесплатная, а во-вторых, она является стандартом де-факто у российских хост-провайдеров. Но об этом позже, а пока вернемся к основам. В определении базы данных говорится, что это сведения, которые упорядочены некоторым образом. А как собственно они упорядочены? Об этом и пойдет речь в следующем уроке.

БД - это аббревиатура, расшифровывающаяся как "база данных", или "базы данных" (в зависимости от контекста). В данной статье рассмотрим, что она/они собой представляют, какими бывают и где применяются. Также обсудим, СУБД и БД - это одно и то же или нет.

Терминология

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

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

Виды БД

В теории различают несколько их видов. Бывают:

  • Реляционные базы данных (от английского слова relation, что переводится как "связь") - характеризируются отношениями и выражены в совокупности взаимосвязанных сущностей. Последние представлены в виде табличек, в которых содержатся данные БД. Это наиболее распространенный
  • Иерархические - связи на уровне "предок-потомок", "начальник-подчиненный".
  • Сетевые - ответвление от предыдущего вида.
  • Объектно-ориентированные, которые напрямую работают с соответствующей методологией

Рассмотрим каждый из них подробнее, попутно останавливаясь на основных идеях и понятиях базы данных.

БД - это табличка?

В их обычном представлении не вызывают трудностей для понимания - это таблички с информацией. Для разъяснения можно призвать на помощь очень известную СУБД от компании "Майкрософт" - "Аксес", входящий в их привычных офисный пакет приложений.

У таблиц реляционных БД есть записи (строки) и поля (столбцы). В первых содержится непосредственно информация, данные, в последних - описания того, что именно означают записи. Например, поле - "имя", запись - "Катерина".

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

Следует понимать, что сама по себе БД - это не таблица. В базе может храниться от одной до нескольких сотен таблиц в зависимости от количества и разнообразия информации.

Связи между таблицами

Для обеспечения связей между таблицами в СУБД есть схемы данных. Связи бывают:

  • "Один-к-одному" - каждой записи таблицы соответствует только одна запись из другой таблички.
  • "Один-ко-многим" и "многие-ко-многим". Одной записи может соответствовать сразу несколько из связанной таблицы. И наоборот (для второго варианта).
  • "Многие-ко-многим". Уже нетрудно догадаться, что в этом случае для нескольких строк может быть подобрано для связи несколько строк другой таблицы (такая связь организовывается при помощи промежуточной таблицы и двух связей вышеуказанного вида).

Движение вверх и вниз

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

Такой тип удобно применять для построения хранилищ информации уже упорядоченной структуры: например, базы данных воинского подразделения или файлового менеджера. Недостатком считается невозможность для узла иметь более одного предка, а также сложность логики БД.

Расширяем связи

Сетевые БД стали решением недостатка иерархических, названного чуть выше. Единственным отличием этого типа от предыдущего стала связь "многие-ко-многим", которая в данном случае проявляется в том, что как предок может иметь много наследников, так и они, потомки, могут происходить сразу от нескольких узлов.

Табличный способ отображения

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

Объектно-ориентированный тип

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

В широком смысле слова база данных (БД) - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области.

Для удобной работы с данными их необходимо структурировать, т.е. ввести определенные соглашения о способах их представления.

База данных (в узком смысле слова) — поименованная совокупность структурированных данных относящихся к некоторой предметной области

В реальной деятельности в основном используют системы БД.

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

Системы БД существуют и на малых, менее мощных компьютерах, и на больших, более мощных. На больших применяют в основном многопользовательские системы, на малых - однопользовательские.

Однопользовательская система (single-user system) - это система, в которой в одно и то же время к БД может получить доступ не более одного пользователя.

Многопользовательская система (multi-user system) - это система, в которой в одно и то же время к БД может получить доступ несколько пользователей.

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

Различия однопользовательской и многопользовательской систем - в их внутренней структуре, конечному пользователю они практически не видны.

Система баз данных содержит четыре основных элемента: данные, аппаратное обеспечение, программное обеспечение и пользователи .

Данные в БД являются интегрированными и общими .

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

Общие - значит, отдельные области данных могут использовать различные пользователи, т.е. каждый из этих пользователей может иметь доступ к одной и той же области данных, даже одновременно. (Например, одни и те же данные БД о студентах может одновременно использовать студенческий отдел кадров и деканат.)

К аппаратному обеспечению относятся:

Накопители для хранения информации вместе с подсоединенными устройствами ввода-вывода, каналами ввода-вывода и т.д.

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


ТУТ ВОЗНИКЛИ ВОПРОСЫ

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

В этой таблице данные - это собственно номера телефонов, адреса и ФИО., т.е. строки «Иванов Иван Иванович», «32-43-12» и т.п., а названия столбцов этой таблицы, т.е. строки «ФИО», «Номер телефона» и «Адрес» задают смысл этих данных, их семантику.

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

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

Для точности дадим определение базы данных , предлагаемое Глоссарий.ру

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

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

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

Примеры объектных СУБД : Cache , GemStone (от Servio Corporation), ONTOS (ONTOS).

В последнее время производители СУБД стремятся соединить два этих подхода и проповедуют объектно-реляционную модель представления данных. Примеры таких СУБД - IBM DB2 for Common Servers, Oracle8 .

Поскольку мы собираемся работать с Mysql , то будем обсуждать аспекты работы только с реляционными базами данных . Нам осталось рассмотреть еще два важных понятия из этой области: ключи и индексирование , после чего мы сможем приступить к изучению языка запросов SQL .

Ключи

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

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

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

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

Примером логического первичного ключа является номер паспорта в базе данных о паспортных данных жителей или ФИО и адрес в телефонной книге (таблица выше). Для задания суррогатного первичного ключа в нашу таблицу можно добавить поле id (идентификатор), значением которого будет целое число, уникальное для каждой строки таблицы. Использование таких суррогатных ключей имеет смысл, если естественный первичный ключ представляет собой большой набор полей или его выделение нетривиально.

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

Например, у нас есть три таблицы: содержащая информацию об исторических личностях (Persons), содержащая информацию об их изобретениях (Artifacts) и содержащая изображения как личностей, так и артефактов (Images) (рис 10.1).

Первичным ключом во всех этих таблицах является поле id (идентификатор). В таблице Artifacts есть поле author, в котором записан идентификатор, присвоенный автору изобретения в таблице Persons. Каждое значение этого поля является внешним ключом для первичного ключа таблицы Persons. Кроме того, в таблицах Persons и Artifacts есть поле photo, которое ссылается на изображение в таблице Images.

Эти поля также являются внешними ключами для первичного ключа таблицы Images и устанавливают однозначную логическую связь Persons-Images и Artifacts-Images. То есть если значениевнешнего ключа photo в таблице личности равно 10, то это значит, что фотография этой личности имеет id=10 в таблице изображений. Таким образом, внешние ключи используются для организации связей между таблицами базы данных (родительскими и дочерними) и для поддержания ограничений ссылочной целостности данных.

Связь информационных систем и баз данных

Определение 1

Логически связанные данные, формализованные каким-либо единым способом, таким образом, чтобы их можно было обрабатывать компьютером, называются базой данных

Базы данных создаются, хранятся и обрабатываются в специальных программах, называемых системами управления базами данных (СУБД). Но для эффективной работы с данными одной лишь базы данных под управлением СУБД не достаточно. Обычно данные нужны для использования в каком-либо виде деятельности . Например, личные данные пациента нужны в процессе регистрации его медицинской карты в клинике, данные о проданных товарах нужны для ведения учета на предприятиях розничной торговли, данные о результатах сессии нужны в процессе начисления студентам стипендии и т.д. Все эти виды деятельности специфичны, в них есть свои правила и своя терминология. Поэтому для их информационной поддержки нужны специальные программы, где используется привычная терминология, а все правила учтены. Такие программы называются информационными системами (ИС).

Определение 3

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

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

Определение 4

Совокупность правил и принципов поведения объектов предметной области называют бизнес-логикой ИС.

Пример 1

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

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

Классификация информационных систем

По сферам применения ИС делятся на

  • Информационно-поисковые (ИПС);
  • Системы обработки данных (СОД).

Основной задачей ИПС, как правило, является поиск и извлечение части хранимых данных, удовлетворяющих некоторому критерию отбора. Классическим примером ИПС являются поисковые сервера Интернет. Обращения пользователей к СОД, как правило, заканчивается добавлением новых данных или редактированием уже имеющихся. Хранимые данные обрабатываются программно и выводятся в результате отчетов и документов. Классический пример СОД – это ИС банков и супермаркетов.

В зависимости от вида информационных ресурсов, с которыми работает ИС, их делят на два класса:

  • Документальные;
  • Фактографические.

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

Фактографические ИС хранят формализованные данные о проведении каких-либо операций. Например, данные о поступлении товаров от поставщиков, данные о передаче материалов со склада в цеха и т.д. Фактографические ИС содержат данные об объектах предметной области в их взаимосвязи друг с другом.

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