4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как устроены базы данных

Зачем нужны базы данных

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

Данные

Вокруг нас все­гда мно­го раз­ных дан­ных, напри­мер:

  • теле­фон­ные номе­ра;
  • дела на день;
  • запи­си на бумаж­ках, сти­ке­рах и в блок­но­тах;
  • опуб­ли­ко­ван­ные мыс­ли раз­ных людей;
  • фото­гра­фии в смарт­фоне;
  • и всё осталь­ное, что мож­но про­чи­тать, уви­деть или услы­шать.

Если это ком­пью­тер­ная игра, то дан­ны­ми будут типы и место­по­ло­же­ния вра­гов, их уро­вень здо­ро­вья, уро­вень здо­ро­вья героя, тип героя, его поло­же­ние, харак­те­ри­сти­ки кар­ты.

Если это при­ло­же­ние для рабо­ты с кли­ен­том, то там будут хра­нить­ся имя кли­ен­та, его зака­зы, номер теле­фо­на, уро­вень в про­грам­ме лояль­но­сти.

Если это служ­ба сле­же­ния за граж­да­на­ми — фото­гра­фия, имя, посе­щён­ные стан­ции мет­ро и ули­цы, место рабо­ты.

База данных и СУБД

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

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

Для чего нужны

Вот основ­ные зада­чи БД на при­ме­ре гар­де­роб­ной:

  • Сохра­нить наши дан­ные по запро­су — что­бы вы мог­ли открыть дверь, пове­сить курт­ку, закрыть дверь и боль­ше не думать ни о курт­ке, ни о гар­де­роб­ной.
  • Изме­нить наши дан­ные по запро­су — что­бы мож­но было лег­ко извлечь из гар­де­роб­ной все дыря­вые нос­ки и поло­жить на их место целые.
  • Най­ти эти дан­ные по запро­су — что­бы быст­ро най­ти при­лич­ный пиджак или пар­ный носок.
  • Не дать про­чи­тать эти дан­ные тем, кому не сле­ду­ет, а кому надо — дать. Напри­мер, млад­ший брат может смот­реть на ваши крос­сов­ки, но не может их брать. А девуш­ка (или парень) может поло­жить свои вещи, но толь­ко на опре­де­лён­ную пол­ку.
  • Под­дер­жи­вать поря­док и не дать захла­мить­ся — если вам было лень и вы про­сто кину­ли тол­стов­ку куда попа­ло, что­бы гар­де­роб­ная либо сама нашла, куда эту тол­стов­ку пра­виль­но поло­жить, либо ска­за­ла: «Э БРАТ ЗАЧЕМ ЗАХЛАМЛЯЕШЬ ПОЛОЖИ НОРМАЛЬНО ДАВАЙ»
  • Мас­шта­би­ро­вать­ся — что­бы вы мог­ли про­сто вешать в гар­де­роб­ную вещи и не думать об объ­ё­ме полок.
  • Не поте­рять дан­ные — если квар­ти­ра будет гореть, при­лич­ная гар­де­роб­ная не долж­на даже нагреть­ся. Или, если она всё-таки горит, что­бы где-то в защи­щён­ном под­зем­ном гара­же была точ­ная копия этой гар­де­роб­ной со все­ми акту­аль­ны­ми веща­ми.

В чём преимущества

Базы дан­ных и их систе­мы управ­ле­ния зато­че­ны на рабо­ту с боль­шим объ­ё­мом дан­ных и от лица боль­шо­го чис­ла поль­зо­ва­те­лей. Сей­час вы пой­мё­те.

Пред­ставь­те, что у вас есть эксель­ка со спис­ком кли­ен­тов. Это не база дан­ных, это про­сто таб­ли­ца. Что­бы про­чи­тать или запи­сать что-то в эту эксель­ку, вам нуж­но её открыть, сде­лать дело, сохра­нить.

❌ Допу­стим, эксель­ка с кли­ен­та­ми лежит на сете­вом дис­ке. Вы откры­ли её и ковы­ря­е­тесь в дан­ных, вно­си­те изме­не­ния. Пока вы это дела­е­те, ваш кол­ле­га тоже её открыл и тоже вно­сит изме­не­ния. Потом вы сохра­ни­лись и закры­ли эксель­ку. Эксель­ка пере­за­пи­са­лась ваши­ми дан­ны­ми. Но у ваше­го кол­ле­ги эти дан­ные не отоб­ра­зи­лись, он-то открыл её рань­ше. Теперь, когда он сохра­нит свою эксель­ку, его дан­ные пере­за­пи­шут­ся поверх ваших, а ваши дан­ные про­па­дут. Это пол­ный ахтунг: вся ваша рабо­та поте­ря­на.

❌ Или у вас в ком­па­нии пра­ви­ло: эксель­ка все­гда на одной флеш­ке, рабо­та­ем толь­ко с неё. Сей­час флеш­ка в вашем ком­пью­те­ре, вы с ней рабо­та­е­те. А ваше­му кол­ле­ге нуж­но с ней тоже пора­бо­тать. Он гово­рит: «Дай». Вы ему «Отстань». Ну и сло­во за сло­во…

Читать еще:  Google Chrome помечает файл как опасный: скачивать или нет

✅ Но мож­но орга­ни­зо­вать сво­е­го рода СУБД. Один ответ­ствен­ный сотруд­ник назна­ча­ет­ся глав­ным по эксель­ке. Она откры­та на его ком­пью­те­ре, а вы ему гово­ри­те: «Пет­ру­ха, добавь в кли­ен­та такого-то вот такие дан­ные». «Пет­ру­ха, а шо, когда дед­лайн по постав­ке для этих ребят из Воро­не­жа?», «Пет­ру­ха, питер­ские отка­за­лись, поставь там отказ».

Пет­ру­ха — ваша систе­ма управ­ле­ния базой дан­ных. А эксель­ка — это его база дан­ных.

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

Ско­рость — ещё одно пре­иму­ще­ство базы дан­ных. База дан­ных устро­е­на так, что она лег­ко и быст­ро нахо­дит, запи­сы­ва­ет, пере­пи­сы­ва­ет и сно­ва нахо­дит дан­ные. Всё пото­му, что СУБД все­гда зна­ет, что где лежит и по како­му кри­те­рию искать. Там не будет слу­чай­ных дан­ных в слу­чай­ном месте.

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

Слож­ность. Базы дан­ных нуж­ны в чис­ле про­че­го для хра­не­ния слож­но струк­ту­ри­ро­ван­ных дан­ных. Мы при­вык­ли думать, что база дан­ных — это такая таб­ли­ца, где есть стро­ки и столб­цы. Но база дан­ных при пра­виль­ной орга­ни­за­ции может намно­го боль­ше:

  • Свя­зы­вать одну еди­ни­цу дан­ных с мно­же­ством дру­гих. Напри­мер, если один чело­век совер­шил мно­го зака­зов со мно­же­ством това­ров внут­ри каж­до­го, база дан­ных спо­соб­на хра­нить и обра­ба­ты­вать такие свя­зи.
  • База может хра­нить дере­во дан­ных — вро­де того, о кото­ром мы писа­ли недав­но. Попро­буй в реаль­ной жиз­ни похра­нить дере­во!
  • В базах могут жить ссыл­ки на дру­гие фраг­мен­ты и отде­лы базы.

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

База данных — это отдельный файл?

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

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

Где их используют

Базы дан­ных сей­час исполь­зу­ют­ся почти вез­де:

  • На сай­тах, что­бы хра­нить кон­тент для стра­ниц. Все ста­тьи в «Коде» на самом деле хра­нят­ся в базе дан­ных и извле­ка­ют­ся отту­да по ваше­му запро­су.
  • В смарт­фо­нах, что­бы хра­нить все ваши дан­ные — фото, сооб­ще­ния, замет­ки, кон­так­ты и музы­ку. Так как все­го это­го мно­го, а доступ к это­му дол­жен быть мол­ние­нос­ный, исполь­зу­ют раз­ные виды СУБД.
  • В поч­то­вых сер­ви­сах, что­бы мож­но было най­ти нуж­ное пись­мо. Там стро­ят­ся слож­ные индекс­ные мас­си­вы, по кото­рым ваш поч­то­вый кли­ент ищет дан­ные.
  • Вез­де, где есть лич­ные каби­не­ты и реги­стра­ция, — что­бы запо­ми­нать поль­зо­ва­те­лей и отли­чать их друг от дру­га.
  • В соц­се­тях и бло­гах почти всё хра­нит­ся в базах дан­ных.

Если у вас в рабо­те появ­ля­ет­ся мно­го оди­на­ко­вых или похо­жих дан­ных, то самый надёж­ный спо­соб не поте­рять ниче­го из них — поме­стить их в базу дан­ных.

Как это работает

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

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

В нашем при­ме­ре у базы есть поля — Имя, Фами­лия, Теле­фон и Фото, в кото­рых могут хра­нить­ся дан­ные. Одна строч­ка — одна запись с дан­ны­ми.

Если поль­зо­ва­те­лю нуж­но будет най­ти теле­фон Миха­и­ла Мак­си­мо­ва по фами­лии, про­ис­хо­дит сле­ду­ю­щее:

Запрос от поль­зо­ва­те­ля: Выдай мне из базы «Контакты» все записи, где поле «Фамилия» равно «Максимов»

Читать еще:  Падение плагина Adobe flash что делать?

Ответ от базы дан­ных: ЛОЛ КЕК Ты кто такой

Запрос поль­зо­ва­те­ля: Я хозяин этой базы Админ Админыч, пароль •••••. Выдай мне из базы «Контакты» все записи, где поле «Фамилия» равно «Максимов»

Ответ от базы дан­ных: Найдена одна запись: [Михаил, Максимов, +79057362163, вот фото]

Разные базы — разные правила

Внут­ри каж­дой базы дан­ных и её управ­ля­ю­щей систе­мы свои стро­гие пра­ви­ла:

  • какие дан­ные могут хра­нить­ся: текст, циф­ры, фото, видео или всё вме­сте;
  • какие свой­ства есть у этих дан­ных: дата запи­си, кто запи­сал, кто может про­чи­тать;
  • что делать, если с базой хотят рабо­тать одно­вре­мен­но несколь­ко чело­век: раз­ре­шать толь­ко одно­му или пусть все вме­сте рабо­та­ют.

Рабо­чая ситу­а­ция: допу­стим, вы рабо­та­е­те в бан­ке и откры­ли кар­точ­ку кли­ен­та, что­бы поме­нять ему кре­дит­ный лимит. В этот же момент дру­гой сотруд­ник из сосед­не­го офи­са тоже хочет поме­нять лимит это­му же кли­ен­ту, но уже на дру­гую сум­му. Как база отре­а­ги­ру­ет на такое? Долж­на ли она раз­ре­шать вто­ро­му сотруд­ни­ку откры­вать кар­точ­ку или её нуж­но забло­ки­ро­вать, пока пер­вый не закон­чит? А если она раз­ре­шит открыть кар­точ­ку, то что будет, если двое сотруд­ни­ков напи­шут там раз­ный лимит — какой из них сохра­нять в ито­ге? СУБД зада­ёт эти пра­ви­ла и сле­дит за их выпол­не­ни­ем.

Что дальше

В сле­ду­ю­щей ста­тье пого­во­рим про MySQL — буре­рож­дён­ную мать всех баз. Если разо­брать­ся, как она рабо­та­ет, то мож­но тво­рить чуде­са.

Базы данных: среда и принципы работы

Цели урока:

  • освоить основные понятия темы;
  • освоение этапов создания баз данных;
  • иметь представление о среде баз данных и способах манипулирования данными.

Ход урока

Теория

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

Классификация баз данных:

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

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

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

Поля – это различные характеристики (иногда говорят – атрибуты) объекта.

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

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

Системы управления базами данных включают, как правило, следующие элементы:

  1. Интерфейс – среда пользователя для работы при помощи меню.
  2. Интерпретатор – алгоритмический язык программирования.
  3. Компилятор – преобразователь программ в автономные исполняемые файлы.
  4. Утилиты – средства программирования рутинных операций.

Любая СУБД позволяет выполнять четыре простейшие операции с данными:

  • добавлять в таблицу одну или несколько записей;
  • удалять из таблицы одну или несколько записей;
  • обновлять значения нескольких полей в одной или нескольких записях;
  • находить одну или несколько записей, удовлетворяющих заданному условию.
Читать еще:  Microsoft SkyDrive. Сервис для хранения файлов

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

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

  1. проектирование базы данных (определение объекта и выделение атрибутов объекта в качестве полей базы данных);
  2. задание структуры базы данных (однотабличная БД или состоящая из нескольких связанных таблиц);
  3. ввод структуры данных с описанием типов данных вводимых в поля таблицы;
  4. непосредственный ввод данных в БД;
  5. редактирование данных;
  6. манипулирование данными (сортировка, выборка данных с использованием фильтрации и/или запросов).

Базы данных – Урок 1. Понятие базы данных

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

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

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

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

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

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

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

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

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

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

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: