Понятие о базе данных

Реферат

Введение

Суть моей работы, раскрыть понятие о базе данных, о ее структуре, об этапах ее проектирования. Показать, что такое база данных вообще.

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

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

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

Базы данных: основные понятия

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

Таблица 1. Пример базы данных:

телефонная книга: ФИО,№ телефона, адрес

Петров Иван Иванович

32-43-12

ул. Ленина, 12, 43

Ильин Сергей Петрович

32-32-34

пр. Маркса, 32, 45

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

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

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

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

База данных

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

«Базой данных» часто упрощённо или ошибочно называют Системы Управления Базами Данных (СУБД).

Но нужно различать набор данных (собственно БД) и программное обеспечение, предназначенное для организации и ведения базы данных (СУБД).

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

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

Структура базы данных

Организация структуры базы данных формируется исходя из следующих соображений:

  • Адекватность описываемому объекту/системе — на уровне концептуальной и логической модели.

  • Удобство использования для ведения учёта и анализа данных — на уровне так называемой физической модели.

Виды концептуальных (инфологических) моделей БД: «сущность-связь», семантические, графовые

Виды логических (даталогических) моделей БД:

  1. Документальные (архивы) — ориентированные на формат документа, дескрипторные, тезаурусные.

  2. Фактографические (картотеки)

теоретико-графовые: иерархическая модель, сетевая модель.

теоретико-множественные: реляционная модель (ER-модель), многомерная модель.

объектно-ориентированные: объектная модель.

основанные на инвертированных файлах.

Таким образом, по модели представления данных БД классифицируются:

Картотеки

Иерархические

Сетевые

Реляционные

Многомерные

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

Дедуктивные

На уровне физической модели электронная БД представляет собой файл или их набор в формате TXT, CSV, Excel, DBF, XML либо в специализированном формате конкретной СУБД. Также в СУБД в понятие физической модели включают специализированные виртуальные понятия, существующие в её рамках — таблица, табличное пространство, сегмент, куб, кластер и т. д.

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

Картотеками пользовались до появления электронных баз данных. Сетевые и иерархические базы данных считаются устаревшими, объектно-ориентированные пока никак не стандартизированы и не получили широкого распространения. Некоторое возрождение получили иерархические базы данных в связи с появлением и распространением XML.

Этапы проектирования базы данных

1. Концептуальное проектирование — сбор, анализ и редактирование требований к данным. Для этого осуществляются

  • обследование предметной области, изучение ее информационной структуры

  • выявление всех фрагментов, каждый из которых характеризуется пользовательским представлением, информационными объектами и связями между ними, процессами над информационными объектами

  • моделирование и интеграция всех представлений

По окончании данного этапа получаем концептуальную модель, инвариантную к структуре базы данных. Часто она представляется в виде модели «сущность-связь».

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

3. Физическое проектирование — определение особенностей хранения данных, методов доступа и т. д.

Различие уровней представления данных на каждом этапе проектирования реляционной базы данных:

КОНЦЕПТУАЛЬНЫЙ УРОВЕНЬ — Представление аналитика (используется инфологическая модель «сущность-связь»)

* сущности

* атрибуты

* связи

ЛОГИЧЕСКИЙ УРОВЕНЬ — Представление программиста

* записи

* элементы данных

* связи между записями

ФИЗИЧЕСКИЙ УРОВЕНЬ — Представление администратора

* группирование данных

* индексы

* методы доступа

Система управления базами данных

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

Основные функции СУБД

  • управление данными во внешней памяти (на дисках);

  • управление данными в оперативной памяти с использованием дискового кэша;

  • журнализация изменений, резервное копирование и восстановление базы данных после сбоев;

  • поддержка языков БД (язык определения данных, язык манипулирования данными).

Обычно современная СУБД содержит следующие компоненты:

  • ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию,

  • процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода,

  • подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД

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

Классификация СУБД

По модели данных

По типу управляемой базы данных

Иерархические

Сетевые

Реляционные

Объектно-реляционные

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

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

Примеры

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

Примеры

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

По архитектуре организации хранения данных

локальные СУБД (все части локальной СУБД размещаются на одном компьютере)

распределенные СУБД (части СУБД могут размещаться на двух и более компьютерах)

По способу доступа к БД

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

На данный момент файл-серверные СУБД считаются устаревшими.

Примеры

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

Примеры

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

Примеры

Ключи

В системах управления базами данных существует понятие первичного ключа.

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

Смысл

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

Использование

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

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

Классификация

  1. Простые и составные ключи

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

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

  1. Естественные и суррогатные ключи

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

Такой первичный ключ называют естественным ключом. Теоретически, естественный ключ всегда можно сформировать, в этом случае мы получим т. н. интеллектуальный ключ. На практике, однако, использование естественных ключей наталкивается на определённые сложности:

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

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

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

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

Индексирование

Одна из основных задач, возникающих при работе с базами данных, – это задача поиска. При этом, поскольку информации в базе данных, как правило, содержится много, перед программистами встает задача не просто поиска, а эффективного поиска, т.е. поиска за сравнительно небольшое время и с достаточной точностью. Для этого (для оптимизации производительности запросов) производят индексирование некоторых полей таблицы. Использовать индексы полезно для быстрого поиска строк с указанным значением одного столбца. Без индекса чтение таблицы осуществляется по всей таблице, начиная с первой записи, пока не будут найдены соответствующие строки. Чем больше таблица, тем больше накладные расходы. Если же таблица содержит индекс по рассматриваемым столбцам, то база данных может быстро определить позицию для поиска в середине файла данных без просмотра всех данных. Это происходит потому, что база данных помещает проиндексированные поля поближе в памяти, так, чтобы можно было побыстрее найти их значения. Для таблицы, содержащей 1000 строк, это будет как минимум в 100 раз быстрее по сравнению с последовательным перебором всех записей. Однако в случае, когда необходим доступ почти ко всем 1000 строкам, быстрее будет последовательное чтение, так как при этом не требуется операций поиска по диску. Так что иногда индексы бывают только помехой. Например, если копируется большой объем данных в таблицу, то лучше не иметь никаких индексов. Однако в некоторых случаях требуется задействовать сразу несколько индексов (например, для обработки запросов к часто используемым таблицам).

Например, если говорить о MySQL, то там существует три вида индексов: PRIMARY, UNIQUE, и INDEX, а слово ключ (KEY) используется как синоним слова индекс (INDEX).

Все индексы хранятся в памяти в виде B-деревьев.

PRIMARY – уникальный индекс (ключ) с ограничением, что все индексированные им поля не могут иметь пустого значения (т.е. они NOT NULL).

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

UNIQUE – ключ (индекс), задающий поля, которые могут иметь только уникальные значения.

INDEX – обычный индекс.

Примеры баз данных

Astrophysics Data System — Астрофизическая Информационная Система НАСА — интерактивная база данных более 7 000 000 документов по астрономии и физике как из рецензируемых, так и из нерецензируемых источников.

Scientific and Technical Network — европейская база данных, содержащая около 10 млн наименований журнальных статей, препринтов, книг, диссертаций, патентов и материалов научных конференций в области прикладной физики, химии, биофизики, технологий, биотехнологий, медицины. Благодаря очень широкому спектру интересов база данных является одной из самых больших в мире.

Zentralblatt MATH — реферативный математический журнал, основанный издательством «Шпрингер» (Springer).Целью журнала является сбор, систематизация, публикация и распространение библиографических данных и рефератов книг и статей, посвящённых всем разделам математики и её приложениям в информатике, механике и физике. Журналом реферируются более 2300 журналов и периодических изданий разных стран, ежегодно публикуется около 80 000 аннотаций и рецензий, написанных более чем 5000 учёными. Большинство рефератов публикуется на английском языке, некоторые — на французском или немецком.

ABC CLIO — aмериканская база данных, содержащая свыше 1 млн журнальных статей, книг, материалов конференций в области истории и политических наук. В базе данных имеются почти все исторические журналы мира. Создана и управляется Калифорнийским университетом в Санта-Барбара.

ArXiv — крупнейший бесплатный архив электронных препринтов научных статей по физике, математике, астрономии, информатике и биологии.Архив был создан в 1991 в Лос-Аламосской национальной лаборатории, США (англ. Los Alamos National Laboratory, LANL) и первоначально предназначался для физических статей, но постепенно возникли разделы, посвящённые другим наукам. К середине 2008 года в нём содержалось более 485 000 публикаций, и каждый месяц добавляется 3000—4000 статей.

Заключение

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

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

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

По этой причине ANSI (Американским Национальным Институтом Стандартов) был разработан стандарт языка SQL (Структурированный Язык Запросов).

При этом SQL не изобретался ANSI. Это по существу изобретение IBM. Но другие компании подхватили SQL и сразу же, по крайней мере одна компания (Oracle), получила право на рыночную продажу SQL продуктов. Однако после этого появились некоторые проблемы, которые возникли в результате стандартизации ANSI языка в виде некоторых ограничений. Конкретные программы Баз Данных обычно дают ANSI SQL дополнительные особенности, часто ослабляют многие ограничения стандарта.

Литература

[Электронный ресурс]//URL: https://liarte.ru/referat/baza-dannyih/

  1. Скотт В. Эмблер, Прамодкумар Дж. Садаладж. Рефакторинг баз данных: эволюционное проектирование . — М.: «Вильямс», 2007. — С. 368.

  2. Томас Коннолли, Каролин Бегг. Базы данных. Проектирование, реализация и сопровождение. Теория и практика — 3-е изд. — М.: «Вильямс», 2003. — С. 1436.

  3. К. Дж. Дейт Введение в системы баз данных— 8-е изд. — М.: «Вильямс», 2006. — С. 1328.

  4. Голицина О.Л., Максимов Н.В., Попов И.И. Базы данных: Учебное пособие. – М.: ФОРУМ: ИНФРА-М, 2003. – С.352

  5. Карпова Т.С. Базы данных: модели, разработка, реализация. – СПб.: Питер, 2002. – С.304

  6. www.citforum.ru

  7. www.sql.ru

  8. www.linter.ru

  9. www.wikipedia.org