Большие данные: 70 невероятных бесплатных источников данных, которые вы должны знать к 2020 году

Создаем базу данных

Управление базами данных как объектами

Будем считать, что наша небольшая экскурсия по запросам и командам SQL со стороны «торгового зала» завершена. Заглянем теперь в его «служебные помещения» и познакомимся с тем, как создается сама база данных. Эта часть языка SQL не столь стандартизирована и сильно отличается в различных реализациях. Поэтому в дальнейших примерах я буду придерживаться синтаксиса, принятого в самой популярной на веб-серверах системе — MySQL.

MySQL — продукт шведской компании MySQL AB. Ее основатели — Дэвид Аксмарк, Аллан Ларсон и Майкл Видениус (последний больше известен по прозвищу — Монти). По одной из версий, первая часть названия продукта (My) — не что иное, как англизированная запись имени дочери М. Видениуса. Однако точно за происхождение названия сегодня не могут поручиться даже отцы-создатели. Существует версия, по которой «my» — это префикс, с которого начинались названия рабочих каталогов на их компьютерах.

Из всех команд чаще всего нам будут нужны три: CREATE (создать), ALTER (изменить) и DROP (уничтожить).

Чтобы создать новую базу данных с названием, ну скажем, OUR_SHOP, следует выполнить команду:

Еще лучше сразу при ее создании установить нужную кодировку (ведь по умолчанию в MySQL используется latin1). В итоге команда будет выглядеть так.

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

Когда, наигравшись вдоволь с пробной базой данных, вы захотите ее уничтожить, воспользуйтесь командой:

Управление таблицами

Чтобы создать таблицу GOODS, на которой мы отрабатывали манипуляции с данными, потребуется составить команду примерно такого вида:

Разберем эту команду подробнее. Тип INT устанавливается для столбцов с целочисленными данными, тип VARCHAR(100) обеспечивает хранение строк с длиной не более 100 символов, DECIMAL(10,2) соответствует действительным числам с не более чем десятью знаками и точностью в два знака после запятой.

Столбец ID объявлен первичным ключом (PRIMARY KEY).

Ключевое слово AUTO_INCREMENT означает, что при добавлении новых строк с неуказанным значением ID оно будет автоматически заполняться следующим значением. Это удобно, поскольку обычно нет нужды вручную указывать значения первичных ключей, а за тем, чтобы они были уникальными, пусть лучше следит база данных.

NOT NULL означает запрет на пустые значения в столбце, иными словами, гарантирует обязательность заполнения.

Команда DEFAULT задает значение по умолчанию — то, которое будет записываться в базу при добавлении новой строки, если не указано иное. В нашем случае она обеспечивает автоматическое объявление товара штучным (код = 1) в случае, если при добавлении новых строк не будет указан другой код.

Признак UNIQUE обеспечивает уникальность значений в колонке (в нашем случае — уникальность названий товаров).

Если в будущем вы захотите перенастроить объявленные командой CREATE столбцы таблицы, сделать это можно командой ALTER. Например, таблицу GOODS можно нарастить строчной колонкой REMARK (подкоманда ADD):

Поработав с ней немного и убедившись, что 50 символов для примечания явно недостаточно, увеличиваем максимальный размер строки до 250 (блок CHANGE):

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

И наконец, убедившись через какое-то время, что без примечания в товарном справочнике вполне можно обойтись, мы удаляем ставшую ненужной колонку (блок DROP):

Удалить таблицу целиком можно командой DROP:

Стоит ли говорить о том, что пользоваться командами с этим ключевым словом следует с особой осторожностью?

конструктор запросов и представленийQuery and View Designer

Конструктор запросов и представлений фактически представляет собой два средства, работающих схожим образом.Query and View designer is actually two tools that work in very similar ways. К некоторым из их основных отличий относится следующее.Some of the major differences are:

  • Представления сохраняются в базе данных, а запросы сохраняются в проекте базы данных среды Visual Studio.Views are saved with the database while a query is saved with a Visual Studio database project.

  • Конструктор запросов работает практически с любыми источниками данных, а конструктор представлений поддерживает только SQL Server.Query Designer works with nearly any data source, where View Designer works only with SQL Server.

  • Конструктор запросов позволяет проектировать инструкции языка манипулирования данными SELECT, INSERT, UPDATE и DELETE, а представления могут содержать только инструкции SELECT.Query Designer allows you to design SELECT, INSERT, UPDATE and DELETE DML statements, while views can only contain SELECT statements.

Конструктор представленийView Designer

Конструктор представлений позволяет проектировать и наглядно отображать существующие представления или создавать новые в базе данных Microsoft SQL Server, к которой подключен пользователь.View Designer allows you to design and visualize an existing view or create a new one in a Microsoft SQL Server database to which you are connected.

Окно конструктора содержит четыре панели: панель диаграмм, панель критериев, панель «SQL» и панель результатов.View Designer has four panes: the Diagram pane, the Criteria pane, the SQL pane, and the Results pane. Дополнительные сведения о каждой из этих панелей см. в разделе Инструменты конструктора запросов и представлений (визуальные инструменты для баз данных).For more detailed information on each of these panes, see Query and View Designer Tools (Visual Database Tools).

Чтобы открыть конструктор представлений, откройте уже существующее представление или щелкните правой кнопкой мыши узел Представление в обозревателе объектов и в раскрывающемся списке выберите Добавить новое представление.To display View Designer, open an existing view or right-click the View node in Object Explorer and choose Add New View from the drop-down menu.

После открытия конструктора в главном меню появится меню Конструктор запросов .Once the designer is open, the Query Designer menu appears in the main menu. Это меню является точкой доступа к специальным возможностям конструктора.This menu is the access point to the designer’s special features.

Примечание

Конструктор работает с базами данных Microsoft SQL Server.This designer works with Microsoft SQL Server databases.

Данная версия визуальных инструментов для баз данных не поддерживает Microsoft SQL Server версии 7 и более ранние версии.This version of Visual Database Tools does not support Microsoft SQL Server version 7 and earlier.

Перед началомBefore You Begin

ОграниченияLimitations and Restrictions

  • Новая схема принадлежит одному из следующих участников уровня базы данных: пользователю базы данных, роли базы данных или роли приложения.The new schema is owned by one of the following database-level principals: database user, database role, or application role. Объекты, создаваемые в схеме, принадлежат владельцу схемы и имеют значение NULL для principal_id в sys.objects.Objects created within a schema are owned by the owner of the schema, and have a NULL principal_id in sys.objects. Владение объектами, содержащимися в схеме, можно передать любому участнику уровня базы данных, однако у владельца схемы всегда остается разрешение CONTROL на объекты в схеме.Ownership of schema-contained objects can be transferred to any database-level principal, but the schema owner always retains CONTROL permission on objects within the schema.

  • Если при создании объекта базы данных указать допустимый субъект домена (пользователя или группу) в качестве владельца объекта, то этот субъект добавляется в базу данных в качестве схемы.When creating a database object, if you specify a valid domain principal (user or group) as the object owner, the domain principal is added to the database as a schema. Новая схема принадлежит этому субъекту домена.The new schema is owned by that domain principal.

PermissionsPermissions

  • Требует разрешения CREATE SCHEMA в базе данных.Requires CREATE SCHEMA permission on the database.

  • Чтобы назначить другого пользователя владельцем создаваемой схемы, у участника должно быть разрешение IMPERSONATE на этого пользователя.To specify another user as the owner of the schema being created, the caller must have IMPERSONATE permission on that user. Если роль базы данных указана в качестве владельца, то вызывающий объект должен входить в роль или иметь на нее разрешение ALTER.If a database role is specified as the owner, the caller must meet one of the following criteria: membership in the role or ALTER permission on the role.

Индексы и индексация таблиц

Представьте себе, что ваш приятель загадал число между 1 и 1000 и просит вас угадать его за минимальное число попыток, сообщая лишь о том, в большую или меньшую сторону вы ошиблись. Как вы поступите? Очевидно, предложите при первой попытке версию 500 (то есть начнете с середины). Если он ответит: «меньше», — предложите 250. Если «больше» — 750. Так, разбивая интервалы пополам, вы уложитесь в 10 попыток (ведь 210 > 103). Если бы приятель загадал число в пределах миллиарда, то количество попыток уложилось бы в 30 (230 > 109).

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

Как это делается практически? Поясню на примерах. Допустим, вас часто просят отобрать информацию о товарах российского производства. Чтобы по колонке COUNTRY_ID таблицы GOODS фильтрация производилась быстрее, создадим по ней индекс с именем IDX_GOODS_COUNTRY:

Если в будущем вы передумаете использовать созданный индекс, то без труда его сможете удалить:

MySQL WorkBench

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

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

Какую информацию можно получить при проверке физического лица

Дополнительно о человеке можно получить и иного рода сведения:

  1. Об открытых наследственных делах на сайте Федеральной нотариальной палаты.

Достаточно ввести точные ФИО, и система выдаст сведения обо всех наследственных делах, зарегистрированных у нотариусов в РФ.

Сведения о начатой в отношении гражданина процедуре банкротства.

В строке поиска необходимо заполнить ФИО и нажать кнопку «Найти».

Является ли гражданин ИП. Для этого необходимо воспользоваться сервисом ФНС «Предоставление сведений из ЕГРЮЛ/ЕГРИП».

Пользователю нужно ввести ФИО и выбрать регион из представленного справочника. Для более точного поиска нужно поставить галочку о поиске по точному совпадению.

Freebase — Онлайн-коллекция структурированных данных

Freebase является «курируемой сообществом базой данных, хранящей сведения об известных людях, местах и предметах»; сведения хранятся в структуре данных, называемой графом. Граф состоит из узлов, соединенных ребрами и это позволяет базе данных Freebase быстро расширять свой контент, не нарушая содержимое уже существующих записей.

К сожалению, база Freebase, принадлежащая Google, перед тем, как этот автономный сервис будет передан в для интеграции с проектом Wikidata (в конце июня 2015 года), перешла в начале этого года в режим только чтения. Разработчики все еще могут в настоящее время получить доступ к Freebase через существующее API, но как только переход произойдет, разработчикам для доступа к данным придется пользоваться API-интерфейсами Wikimedia.

Что такое SQL?

SQL — это самый распространенный язык запросов к базам данных. Расшифровывается аббревиатура так: Structured Query Language — «язык структурированных запросов».

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

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

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

Установите для себя правила именования таблиц и полей

Сложно работать с данными, которые выглядят как-то так: , , . Конечно, каждый программист в праве сам выбирать для себя стиль наименования, но для SQL рекомендуется выбрать наименование с подчёркиванием. Потому что не все SQL-движки одинаково работают с заглавными буквами, а помещать всё в кавычки бывает утомительно.

Ещё нужно определиться как будут называться таблицы — во множественном числе () или в единственном (). Каждая базовая структура в БД обычно настроена на множественное число, поэтому и именовать таблицы стоит соответственно.

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

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

Microsoft Access

Эта программа для создания баз данных точно знакома многим. Ведь она идет в пакете программ Microsoft Office. Эта программа является одной из самых легких в освоении, ведь знания языка программирования SQL там практически не нужны. Можно лишь обозначить, какой запрос сделать, а программа сама составит SQL-запрос.

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

Язык запросов SQL

База данных — централизованное хранилище данных, обеспечивающее хранение, доступ, первичную обработку и поиск информации.

Базы данных разделяются на:

  • Иерархические
  • Сетевые
  • Реляционные
  • Объектно-ориентированные

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

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

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

Обычно, для обучения используется СУБД Microsoft Access, но мы будем использовать более распространенную в веб сфере систему — MySQL. Для удобства будет использовать веб-интерфейс или онлайн сервис для построения sql запросов , принцип работы с которыми описан ниже.

Важно: При работе с реляционными или табличными базами данных строки таблицы будем называть записями, а столбцы — полями.

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

Составляющие языка SQL

Язык SQL состоит из следующих составных частей:

  1. язык манипулирования данными (Data Manipulation Language, DML);
  2. язык определения данных (Data Definition Language, DDL);
  3. язык управления данными (Data Control Language, DCL).

1.Язык манипулирования данными состоит из 4 главных команд:

  • выборка данных из БД — SELECT
  • вставка данных в таблицу БД — INSERT
  • обновление (изменение) данных в таблицах БД —
  • удаление данных из БД — DELETE

2.

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

Мы будем рассматривать лишь несколько из основных команд языка. Ими являются:

  • создание базы данных — CREATE DATABASE
  • создание таблицы — CREATE TABLE
  • изменение таблицы (структуры) — ALTER TABLE
  • удаление таблицы — DROP TABLE

3.

Язык управления данными используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде.

Использование среды SQL Server Management StudioUsing SQL Server Management Studio

Создание базы данныхTo create a database

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент SQL Server Database EngineSQL Server Database Engine и разверните его.In Object Explorer, connect to an instance of the Компонент SQL Server Database EngineSQL Server Database Engine and then expand that instance.

  2. Щелкните правой кнопкой мыши элемент Базы данных, а затем выберите пункт Создать базу данных.Right-click Databases, and then click New Database.

  3. В поле Новая база данныхвведите имя базы данных.In New Database, enter a database name.

  4. Чтобы создать базу данных, приняв все значения по умолчанию, нажмите кнопку ОК; иначе продолжайте выполнение следующих дополнительных шагов.To create the database by accepting all default values, click OK; otherwise, continue with the following optional steps.

  5. Чтобы изменить имя владельца, нажмите ( … ) и выберите другого владельца.To change the owner name, click (…) to select another owner.

    Примечание

    Параметр Использовать полнотекстовое индексирование всегда установлен и недоступен (т. к. начиная с SQL Server 2008SQL Server 2008все пользовательские базы данных поддерживают полнотекстовый поиск).The Use full-text indexing option is always checked and dimmed because, beginning in SQL Server 2008SQL Server 2008, all user databases are full-text enabled.

  6. Чтобы изменить значения первичных данных по умолчанию и файлов журнала транзакций, щелкните соответствующую ячейку в сетке Файлы базы данных и введите новое значение.To change the default values of the primary data and transaction log files, in the Database files grid, click the appropriate cell and enter the new value. Дополнительные сведения см. в статье AДобавление файлов данных или журналов в базу данных.For more information, see Add Data or Log Files to a Database.

  7. Чтобы изменить параметры сортировки базы данных, выберите страницу Параметры и выберите из списка желаемые параметры сортировки.To change the collation of the database, select the Options page, and then select a collation from the list.

  8. Чтобы изменить модель восстановления, выберите страницу Параметры и модель восстановления из списка.To change the recovery model, select the Options page and select a recovery model from the list.

  9. Чтобы изменить параметры базы данных, выберите страницу Параметры и измените параметры базы данных.To change database options, select the Options page, and then modify the database options. Описание каждого параметра см. в статье Параметры ALTER DATABASE SET (Transact-SQL).For a description of each option, see ALTER DATABASE SET Options (Transact-SQL).

  10. Чтобы добавить новую файловую группу, перейдите на страницу Группы файлов .To add a new filegroup, click the Filegroups page. Нажмите Добавить и введите значения для файловой группы.Click Add and then enter the values for the filegroup.

  11. Чтобы добавить расширенное свойство в базу данных, выберите страницу Расширенные свойства .To add an extended property to the database, select the Extended Properties page.

    1. В столбце Имя введите имя расширенного свойства.In the Name column, enter a name for the extended property.

    2. В столбце Значение введите текст расширенного свойства.In the Value column, enter the extended property text. Например, введите одно или несколько предложений, которые описывают базу данных.For example, enter one or more statements that describe the database.

  12. Чтобы создать базу данных, нажмите кнопку ОК.To create the database, click OK.

Как пробить телефон через поисковые системы или другими методами

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

Поисковые системы

Самый простой и эффективный метод, позволяющий найти человека — ввести номер телефона в поисковой системе (Яндекс, Гугл или любой другой). Активные пользователи Сети обязательно где-то «засветят» эту информацию, что позволяет выявить их и получить дополнительные сведения. Источником могут быть разные сайты, форумы и другие площадки. Кроме того, человек может что-то продавать или предоставлять услуги, указав при этом телефон. В таком случае найти его не составляет труда. Кроме того, интересующие данные могли быть указаны при регистрации на каком-либо портале.

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

Соцсети

Второй способ мы уже кратко рассмотрели выше — поиск по номеру телефона в Facebook и в других соцсетях. Чем шире география, тем больше вероятность отыскать нужного человека. Некоторые сервисы работают таким образом, что могут выдать пользователя по любой информации даже в том случае, если он не выставлял данные для всеобщего обозрения. Кроме Фейсбук, где работает принцип конфиденциальности, можно задействовать и другие соцсети, к примеру, Инстаграм, Твиттер, ВКонтакте и т. д. На какому-то из сайтов клиент социальной сети обязательно «засветится».

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

Доски объявлений

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

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

К примеру, для России можно использовать следующие сервисы:

  • Avito.ru;
  • rusale.net;
  • adiso.ru;
  • russia.dorus.ru и другие.

В Интернете можно найти и другие сайты, где легко найти человека по номеру телефона. Еще один вариант — использование разных форумов. Сложность в том, что они имеют тематический характер, и поиск конкретной личности может занять много времени.

Ключи

Как хранится информация в БД

В основе всей структуры хранения лежат три понятия:

  • База данных;
  • Таблица;
  • Запись.

База данных

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

Таблица

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

Запись

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

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

  1. Создадим для сайта новую БД и дадим ей название «weather_diary».
  2. Создадим в БД новую таблицу с именем «weather_log» и определим там следующие столбцы:
    • Город (тип: текст);
    • День (тип: дата);
    • Температура (тип: число);
    • Облачность (тип: число; от 0 (нет облачности) до 4 (полная облачность));
    • Были ли осадки (тип: истина или ложь);
    • Комментарий (тип: текст).
  3. При сохранении формы будем добавлять в таблицу weather_log новую запись, и заполнять в ней все поля информацией из полей формы.

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

Реляционная база данных

Английское слово „relation“ можно перевести как связь, отношение.
А определение «реляционные базы данных» означает, что таблицы в этой БД могут вступать в отношения и находиться в связи между собой.
Что это за связи?
Например, одна таблица может ссылаться на другую таблицу. Это часто требуется, чтобы сократить объём и избежать дублирования информации.
В сценарии с дневником погоды пользователь вводит название своего города. Это название сохраняется вместе с погодными данными.
Но можно поступить иначе:

  1. Создать новую таблицу с именем „cities“.
  2. Все города в России известны, поэтому их все можно добавить в одну таблицу.
  3. Переделать форму, изменив поле ввода города с текстового на поле типа «select», чтобы пользователь не вписывал город, а выбирал его из списка.
  4. При сохранении погодной записи, в поле для города поставить ссылку на соответствующую запись из таблицы городов.

Так мы решим сразу две задачи:

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

Связи между таблицами в БД бывают разных видов.
В примере выше использовалась связь типа «один-ко-многим», так как одному городу может соответствовать множество погодных записей, но не наоборот!
Бывают связи и других типов: «один-к-одному» и «многие-ко-многим», но они используются значительно реже.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector