Конструкторы визуальных инструментов для баз данныхvisual database tool designers
Содержание:
- Проверить номер ИНН на сайте налоговой, ИНН онлайн
- Plants for a Future — Растениеводство будущего
- Где скачать бесплатные базы емейлов
- Пробить номер телефона через приложения для iPhone и Android
- Зачем нужна программа DataExpress?
- Microsoft Access
- Доски объявлений
- Как хранится информация в БД
- Использование среды SQL Server Management StudioUsing SQL Server Management Studio
- Случаи, когда лучше избавиться от подарка в ОК
- Окно «Свойства»Properties Window
- Пробивка номера — это легально?
- MySQL WorkBench
- Индексы и индексация таблиц
- По имени и телефону
- Как пробить телефон через поисковые системы или другими методами
- Отношения между таблицами
- Ключи
Проверить номер ИНН на сайте налоговой, ИНН онлайн
Для этого нужно ввести в специальную форму персональные данные сотрудника.
Однако имейте в виду, что указанный сервис может не выдать сведения об ИНН, присвоенном физлицу. Например, такое может произойти, если у человека изменились реквизиты паспорта или иного документа, удостоверяющего личность. В такой ситуации сервис предложит ввести реквизиты прежнего документа, однако работодатель может не располагать такой информацией.
Узнать ИНН физического лица по фамилии. Данный сервис позволяет: узнать свой ИНН ; узнать ИНН физического лица . Для того, чтобы узнать свой ИНН необходимо: заполнить форму запроса о наличии постановки на учет с присвоением ИНН; отправить запрос; если Вы состоите на учете в налоговых органах с присвоением ИНН, Ваш ИНН появится в строке результата.
Анонс: Физические лица, которые забыли свой ИНН или не знают свой ИНН, могут теперь получить эту информацию за пару минут.
Plants for a Future — Растениеводство будущего
На сайте Plants for a Future (Растения будущего) приводится много данных об экологическом растениеводстве
Сайт распространяет знания о разнообразии видов и важности ведения сельского хозяйства на основе взаимосвязей, наблюдаемых в естественных экосистемах. То, что началось, как небольшой проект в графстве Cornwall на юго-западе Англии, сейчас превратилось в мировую базу данных
Сайт увеличивается в размерах сравнительно медленно и в значительной степени ориентируется на ведении сельского хозяйства в Великобритании и Европейском Союзе, но если у вас необходимые знания, то некоторой информацией с этого сайта вы сможете воспользоваться и в других частях света.
Где скачать бесплатные базы емейлов
В сети тоже есть несколько сервисов, предоставляющих бесплатные списки данных. Рассмотрим самые популярные.
Ebaza.pro
Возле каждой базы указывают количество скачиваний — с одной стороны это хорошо, потому что вы можете оценить «прогретость» аудитории. Чем больше скачиваний было, тем менее активны будут пользователи.
Плохо то, что невозможно посмотреть количество адресов перед скачиванием. А еще непонятно, актуальны ли базы емейлов в 2020 году, потому что сайт не показывает, когда они были загружены.
Popstar
Предоставляет в основном российские базы емейлов, не отсортированные по интересам, местоположению или другим параметрам. Зато в каталоге можно просмотреть количество адресов внутри и дополнительную информацию:
Кроме того, в каталоге можно выбрать списки адресов пользователей других стран — Эстонии, Казахстана, Латвии, Литвы и так далее. А еще в открытом доступе есть базы пользователей сервисов WebMoney и «Яндекс.Деньги».
Пробить номер телефона через приложения для iPhone и Android
А вот у кого есть свежие базы данных номеров, так это у разработчиков автоопределителей номеров для мобильных устройств. В их базах содержатся миллионы телефонов, в том числе некоторых частных лиц. Тем не менее, не рассчитывайте пробить с помощью этих приложений подругу или бывшего мужа. Это больше для определения сведений о разных организациях.
Применять для пробива рекомендуется три приложения. В первую очередь, приложение «Яндекс» (iOS, Android), в которое с недавнего времени встроен качественный АОН. База «Яндекса» одна из самых крупных, и само приложение работает замечательно. Определяет номера буквально за считанные секунды и не тормозит.
Также можно использовать аналогичное приложение Kaspersky Who Calls (iOS, Android). База у него схожая по размеру, но другая, в чем и заключается главный плюс альтернативы. У приложения есть и большой минус — оно платное.
Третье полезное в пробиве номеров приложение может вычислить и обычных людей, даже с подробностями. Речь идет о приложении GetContact (iOS, Android). Оно показывает как владелец номера записан у других людей в контактных книгах. Прогон номера через GetContact может определить, что за расследуемом вами номером скрывается «Валера депутат» или «Валера крыша». Интерес к дальнейшему пробиву номера может поубавиться. В общем, полезное приложение.
Кстати, если хотите удалить себя из базы данных GetContact (а вы там, вероятнее всего, есть), то воспользуйтесь этой инструкцией. Удалиться можно только так.
Зачем нужна программа DataExpress?
Программа DataExpress предоставляет пользователям следующие функции для работы с базами данных:
- Создание новых строк в таблице. При создании нового значения в базе данных, нужно выбрать вкладку: поступление товара, продажа, товарооборот, товары. Далее пользователям нужно указать номер товара, дату и время поставки, поставщика. После этого информация отобразится в таблице. Уже имеющиеся данные в таблице можно изменить в любое время.
- Параметры товарооборота. Во вкладке «Товарооборот» можно посмотреть денежный оборот всех товаров: остаток на начало, приход, расход, остаток на конец, группа и код группы. Информация отображается за выбранный промежуток времени. Есть разделы продажи по месяцам и поступления по месяцам.
- Товары. В этой вкладке отображается список всех товаров, которые есть в базе данных. Они разделены по категориями — пользователи могут быстро переключаться между категориями для быстрого поиска определенных типов продукции. При необходимости, список можно пополнить — добавить новый товар. Есть функция редактирования товаров, которые уже находятся в списке: например, смена группы (категории), единицы измерения или названия.
- Фильтры списков. Этот раздел используется для установки дополнительных фильтров, которые влияют на формирование списка товаров и разделов. Есть настройка списка моделей — он зависит от выбранных типа и марки. Все параметры устанавливаются вручную. В первом варианте работы нужно заполнить все строки, во втором — только модель (выбирать тип и марку необязательно).
- Отчеты. В программе можно создавать отчеты — доход по определенным клиентам, остаток товаров, расход по поставщикам, рейтинг товаров. При заполнении всех значений товаров в таблице (базе данных), отчеты формируются в автоматическом режиме. Достаточно только выбрать нужный тип отчета, после чего откроется окно с уже готовыми расчетами.
- Мастер шаблонов. Этот инструмент используется для создания готовых шаблонов. Пользователи могут вручную выбрать поля, формы и источники данных, которые будут использоваться в шаблоне.
- Экспорт данных. Данные из каждого раздела таблицы можно экспортировать на компьютер. Для этого необходимо выбрать поля (отметить их галочкой), которые будут экспортироваться, указать имя файла и выбрать кодировку (UTF-8 или ANSI). Есть функция «Открыть» — после завершения экспорта, файл с данными автоматически откроется в программе DataExpress.
- Монитор пользователей. Над созданием одной базы данных могут работать несколько пользователей. Инструмент «Монитор пользователей» дает возможность отслеживать действия активных пользователей. Также здесь отображается информация о разработчиках: имя, IP-адрес, время входа, сколько времени прошло с момента последнего входа.
- Фильтр. Этот инструмент дает возможность добавлять новые поля и значения в базу данных. При необходимости, можно удалить уже имеющиеся данные из шаблона.
- Поиск. В программе DataExpress есть встроенный инструмент для быстрого поиска информации в базе данных. Для этого нужно ввести текст в строку поиска. Также следует указать поле, где начнется поиск информации. При необходимости, можно активировать функцию «Искать во всех полях».
- Импорт данных. Помимо экспорта, утилита предоставляет возможность импортировать данные в базу данных. Для этого необходимо указать имя файла и кодировку (UTF-8 или ANSI). Есть возможность контроля уникальности импортируемой информации (в этом случае, программа не добавит дубликаты данных в таблицу).
- Расширения. Утилита поддерживает возможность установки дополнительных модулей. Расширения добавляют новые функции, которые упрощают процесс создания и редактирования баз данных. При необходимости, добавленные шаблоны можно экспортировать (сохранить) на компьютер.
Microsoft Access
Эта программа для создания баз данных точно знакома многим. Ведь она идет в пакете программ Microsoft Office. Эта программа является одной из самых легких в освоении, ведь знания языка программирования SQL там практически не нужны. Можно лишь обозначить, какой запрос сделать, а программа сама составит SQL-запрос.
Насчет актуальности программы. До сих пор базы данных множества организаций сделаны именно с помощью Microsoft Access. Действительно, сама программа очень легкая, есть интуитивно понятный интерфейс. Более того, основам работы в Access даже обучают в школе и на начальных курсах колледжа!
Доски объявлений
Кроме социальных сетей практически каждый человек имеет аккаунт на одной из досок объявлений.
Все мы что-то продаем или покупаем и легче всего для этого использовать бесплатные доски объявлений. Поэтому так или иначе мы тоже «светимся» на таких ресурсах.
Поэтому найдите несколько подобных сайтов и введите там, в строку поиска желаемый номер телефона.
Нередко в тексте объявления люди указывают свой номер, и это позволяет найти его с помощью местного поиска.
К сожалению, если пользователь этого не сделал, то отыскать его не получится. Поиск не работает по тем номерам, которые указаны в самом аккаунте, а не в тексте объявления. В нашем случае после ввода того же номера, что и раньше, сразу же удалось найти соответствующий пост.
Рис. 4. Поиск на olx.ua
Пользователям из Украины также стоит попытаться выполнить поиск на следующих сайтах:
- besplatka.ua;
- obyava.ua;
- catalog.i.ua;
- mesto.ua;
- autocentre.ua.
Судя по результатам поиска, юзеры из этой страны чаще всего выкладывают объявления именно на этом ресурсе. Кроме того, зайдите на следующие сайты:
- россия.бесплатныеобъявления.рф;
- adiso.ru;
- russia.dorus.ru;
- rusale.net;
- деловойрынок.рф.
Если вы не согласны с приведенными выше списками и знаете более востребованные сайты, обязательно воспользуйтесь поиском на них.
Что касается форумов, то их существует достаточно много и все они тематические. Искать на всех подряд просто не имеет смысла.
Если поиск в обычном поисковике ничего не дал, но вы хотя бы приблизительно догадываетесь, какого человека ищете, можно попытаться найти его на тематическом форуме, который, по вашему мнению, может его интересовать.
Но Этот способ малоэффективен.
Вот и все!
Собственно, на этом все легальные способы поиска человека, то есть владельца того или иного номера телефона, заканчиваются.
Некоторые интернет-ресурсы также позволяют определить местоположение абонента по его номеру. Рассмотрим их поподробнее.
Как хранится информация в БД
В основе всей структуры хранения лежат три понятия:
- База данных;
- Таблица;
- Запись.
База данных
База данных — это высокоуровневное понятие, которое означает объединение совокупности данных, хранимых для выполнения одной цели.
Если мы делаем современный сайт, то все его данные будут храниться внутри одной базы данных. Для сайта онлайн-дневника наблюдений за погодой тоже понадобится создать отдельную базу данных.
Таблица
По отношению к базе данных таблица является вложенным объеком. То есть одна БД может содержать в себе множество таблиц.
Аналогией из реального мира может быть шкаф (база данных) внутри которого лежит множество коробок (таблиц).
Таблицы нужны для хранения данных одного типа, например, списка городов, пользователей сайта, или библиотечного каталога.
Таблицу можно представить как обычный лист в Excel-таблице, то есть совокупность строк и столбцов.
Наверняка каждый хоть раз имел дело с электронными таблицами (MS Excel).
Заполняя такую таблицу, пользователь определяет столбцы, у каждого из которых есть заголовок. В строках хранится информация.
В БД точно также: создавая новую таблицу, необходимо описать, из каких столбцов она состоит, и дать им имена.
Запись
Запись — это строка электронной таблицы.
Это неделимая сущность, которая хранится в таблице. Когда мы сохраняем данные веб-формы с сайта, то на самом деле добавляем новую запись в какую-то из таблиц базы данных. Запись состоит из полей (столбцов) и их значений. Но значения не могут быть какими угодно.
Определяя столбец, программист должен указать тип данных, который будет храниться в этом столбце: текстовый, числовой, логический, файловый и т.д. Это нужно для того, чтобы в будущем в базу не были записаны данные неверного типа.
Соберем всё вместе, чтобы понять, как будет выглядеть ведение дневника погоды при участии базы данных.
- Создадим для сайта новую БД и дадим ей название «weather_diary».
- Создадим в БД новую таблицу с именем «weather_log» и определим там следующие столбцы:
- Город (тип: текст);
- День (тип: дата);
- Температура (тип: число);
- Облачность (тип: число; от 0 (нет облачности) до 4 (полная облачность));
- Были ли осадки (тип: истина или ложь);
- Комментарий (тип: текст).
- При сохранении формы будем добавлять в таблицу weather_log новую запись, и заполнять в ней все поля информацией из полей формы.
Теперь можно быть уверенными, что наблюдения наших пользователей не пропадут, и к ним всегда можно будет получить доступ.
Реляционная база данных
Английское слово „relation“ можно перевести как связь, отношение.
А определение «реляционные базы данных» означает, что таблицы в этой БД могут вступать в отношения и находиться в связи между собой.
Что это за связи?
Например, одна таблица может ссылаться на другую таблицу. Это часто требуется, чтобы сократить объём и избежать дублирования информации.
В сценарии с дневником погоды пользователь вводит название своего города. Это название сохраняется вместе с погодными данными.
Но можно поступить иначе:
- Создать новую таблицу с именем „cities“.
- Все города в России известны, поэтому их все можно добавить в одну таблицу.
- Переделать форму, изменив поле ввода города с текстового на поле типа «select», чтобы пользователь не вписывал город, а выбирал его из списка.
- При сохранении погодной записи, в поле для города поставить ссылку на соответствующую запись из таблицы городов.
Так мы решим сразу две задачи:
- Сократим объём хранимой информации, так как погодные записи больше не будут содержать название города;
- Избежим дублирования: все пользователи будут выбирать один из заранее определённых городов, что исключит опечатки.
Связи между таблицами в БД бывают разных видов.
В примере выше использовалась связь типа «один-ко-многим», так как одному городу может соответствовать множество погодных записей, но не наоборот!
Бывают связи и других типов: «один-к-одному» и «многие-ко-многим», но они используются значительно реже.
Использование среды SQL Server Management StudioUsing SQL Server Management Studio
Создание схемыTo create a schema
-
В обозревателе объектов раскройте папку Базы данных .In Object Explorer, expand the Databases folder.
-
Разверните базу данных, в которой создается новая схема базы данных.Expand the database in which to create the new database schema.
-
Щелкните правой кнопкой мыши папку Безопасность , укажите на пункт Создатьи выберите Схема.Right-click the Security folder, point to New, and select Schema.
-
В диалоговом окне Схема — создать на странице Общие введите имя новой схемы в поле Имя схемы .In the Schema — New dialog box, on the General page, enter a name for the new schema in the Schema name box.
-
В поле Владелец схемы введите имя пользователя или роли базы данных, которые будут владельцем схемы.In the Schema owner box, enter the name of a database user or role to own the schema. Также можно нажать кнопку Поиск , чтобы открыть диалоговое окно Поиск ролей и пользователей .Alternately, click Search to open the Search Roles and Users dialog box.
-
Нажмите кнопку ОК.Click OK.
Примечание
Диалоговое окно не будет отображаться, если вы создаете схему с помощью SSMS для Базы данных SQL Azure или Azure Synapse Analytics.A dialog box will not appear if you are creating a Schema using SSMS against an Azure SQL Database or an Azure Synapse Analytics. Потребуется создать схему шаблона T-SQL.You will need to run the Create Schema Template T-SQL Statement that is generated.
Дополнительные параметрыAdditional Options
Диалоговое окно Схема — создать также содержит параметры на двух дополнительных страницах: Разрешения и Расширенные свойства.The Schema- New dialog box also offers options on two additional pages: Permissions and Extended Properties.
-
На странице Разрешения перечислены все возможные защищаемые объекты и разрешения на эти объекты, которые могут быть предоставлены для имени входа.The Permissions page lists all possible securables and the permissions on those securables that can be granted to the login.
-
Страница Расширенные свойства позволяет добавлять пользовательские свойства пользователям базы данных.The Extended properties page allows you to add custom properties to database users.
Случаи, когда лучше избавиться от подарка в ОК
Открытки позволяют сказать человеку, что вы о нем помните. Помимо этого с помощью них можно передать то, что не получается сказать словами. Но бывают случаи, когда присланный презент нужно удалить:
- От картинки стоит избавиться, если у вас очень ревнивый муж/жена/парень/девушка. Зачем вам портить отношения с дорогим человеком, из-за какого изображения в социальной сети?
- Если его отправили вам по ошибке. Зачем хранить презент от человека, которого вы знаете?
- Если он некрасивый, неуместный или просто ненужный. Бывает, что присланная открытка выглядит, мягко говоря, безвкусно или вы исповедуете одну веру, а картинка вам приходит с напоминанием о празднике чуждой религии.
Окно «Свойства»Properties Window
Аналогичное окно доступно не только в визуальных инструментах для баз данных, но именно здесь можно вносить многие изменения.The properties window is not specific to Visual Database Tools, but it is where many modifications can be made. В этом окне показаны свойства текущего выбранного элемента (например, таблицы), которые можно изменять (все, начиная от имени свойства и заканчивая параметрами сортировки столбца).It shows the properties for the item currently selected (like a table) and allows you to edit those properties (everything from the properties name to the collation of a column). Некоторые свойства можно просматривать в окне «Свойства», но менять их нужно другими средствами.Some properties can be seen in the properties window but must be modified in a different tool.
Пробивка номера — это легально?
Пробивка номера телефона в России и других странах бывшего СНГ может быть нелегальной. Например, если определением номера занимается сотрудник сотового оператора или банка, который использует для этого защищенные базы данных.
Пробивка сотовых номеров сотрудниками банков или операторов грозит реальным уголовным сроком. Время от времени в СМИ появляются новости о том, что очередной сотрудник крупного банка или оператора пойман с поличным при попытке передачи конфиденциальной информации третьим лицам. Это весьма частая история.
В 2018 году за незаконный пробив граждан России было вынесено 49 приговоров. В большинстве случаев полиция ловила исполнителей. Тех, кто за определенную сумму пробивает номера и передает сведения анонимному организатору. Последние обычно являются недосягаемыми для органов, поэтому рынок незаконной пробивки номеров процветает.
Но есть и вполне легальные способы пробивки номеров. Они позволяют узнать достаточно много сведений, но при этом не будут караться даже предупреждением от правоохранительных органов. Именно о таких легальных способах мы и рассказали в этой статье.
MySQL WorkBench
Еще одна программа для создания баз данных. Она бесплатная, но есть и платная версия с улучшенными возможностями. В этой программе легко создавать связи с таблицами, да и вообще, просто удобно работать. Также плюсом является то, что можно показать БД в графическом виде. Большинство людей при работе с базами данных отдают предпочтение именно этой программе. В принципе, и PhpMyAdmin по возможностям не уступает, но все-таки она больше предназначена для работы с БД сайтов.
В этой статье были рассмотрены основные программы для создания баз данных. На самом деле их огромное множество, поэтому каждый выбирает инструмент под себя, но если же вы только осваиваетесь и желаете изучить эту область, то рекомендуется работать с MySQL WorkBench. После того как вы изучите основы SQL, для вас уже не будет существенной разницы, где работать, ведь запросы везде одинаковые. Удобно и то, что, создав базу данных в одной программе, можно ее открыть через другой софт, который тоже предназначен для работы с БД. При создании софта с базой данных не обойтись без этих знаний. Более того, освоив SQL, можно даже создать свое программное обеспечение для разработки и редактирования баз данных.
Индексы и индексация таблиц
Представьте себе, что ваш приятель загадал число между 1 и 1000 и просит вас угадать его за минимальное число попыток, сообщая лишь о том, в большую или меньшую сторону вы ошиблись. Как вы поступите? Очевидно, предложите при первой попытке версию 500 (то есть начнете с середины). Если он ответит: «меньше», — предложите 250. Если «больше» — 750. Так, разбивая интервалы пополам, вы уложитесь в 10 попыток (ведь 210 > 103). Если бы приятель загадал число в пределах миллиарда, то количество попыток уложилось бы в 30 (230 > 109).
Угадывая число, вы проводили поиск примерно так, как ведут его системы баз данных, использующие индексы. Понятное дело, их работа гораздо сложнее, но главная идея именно в этом — за небольшое число попыток найти нужное значение из миллиардов возможных. Поля, по которым вам часто придется делать в базе поиск, фильтрацию или связывание таблиц между собой, есть смысл проиндексировать, то есть создать специальный связанный с таблицей объект, содержащий информацию, необходимую для вышеописанного быстрого поиска.
Как это делается практически? Поясню на примерах. Допустим, вас часто просят отобрать информацию о товарах российского производства. Чтобы по колонке COUNTRY_ID таблицы GOODS фильтрация производилась быстрее, создадим по ней индекс с именем IDX_GOODS_COUNTRY:
Если в будущем вы передумаете использовать созданный индекс, то без труда его сможете удалить:
По имени и телефону
Найти место жительства человека по паспортным реквизитам можно не всегда, ведь не у всех выдается возможность выяснить данные в документах. Иногда достаточно знать номер телефона и ФИО искомого (найти человека по фамилии).
По номеру телефона можно выяснить место жительства лица, воспользовавшись многочисленными телефонными справочниками по РФ и городам. Еще один удобный способ поиска человека через социальные сети и поисковики в сети (так называемый поиск человека через интернет) . Конечно, узнать прописку человека по социальным сетям непросто. Точного адрес никто обычно не пишет, но собрать дополнительные данные вполне реально. Многие оставляют под фотографиями комментарии, либо можно узнать местность, если искомое лицо проживает в одном городе с ищущим. При должной внимательности, можно не только найти человека по паспортным данным, но и по обычной страничке в интернете.
Как пробить телефон через поисковые системы или другими методами
Имея под рукой телефонный номер человека, можно «пробить» сведения о нем одним из трех популярных способов. Рассмотрим их подробно.
Поисковые системы
Самый простой и эффективный метод, позволяющий найти человека — ввести номер телефона в поисковой системе (Яндекс, Гугл или любой другой). Активные пользователи Сети обязательно где-то «засветят» эту информацию, что позволяет выявить их и получить дополнительные сведения. Источником могут быть разные сайты, форумы и другие площадки. Кроме того, человек может что-то продавать или предоставлять услуги, указав при этом телефон. В таком случае найти его не составляет труда. Кроме того, интересующие данные могли быть указаны при регистрации на каком-либо портале.
Если поисковая система выдает ряд ссылок с интересующими данными, необходимо открыть все вкладки и собрать доступные данные. Человек может «засветиться» на сайте копирайтинга, на портале по продаже каких-либо товаров, в соцсетях и т. д. Бывает, что поисковая система не дает результатов, и тогда нужно попытаться найти человека другим способом.
Соцсети
Второй способ мы уже кратко рассмотрели выше — поиск по номеру телефона в Facebook и в других соцсетях. Чем шире география, тем больше вероятность отыскать нужного человека. Некоторые сервисы работают таким образом, что могут выдать пользователя по любой информации даже в том случае, если он не выставлял данные для всеобщего обозрения. Кроме Фейсбук, где работает принцип конфиденциальности, можно задействовать и другие соцсети, к примеру, Инстаграм, Твиттер, ВКонтакте и т. д. На какому-то из сайтов клиент социальной сети обязательно «засветится».
Удобнее всего искать человека по номеру телефона через Фейсбук, ведь система выдает подробную информацию — место жительства и учебы, увлечения и т. д. Кроме того, можно увидеть аватар, быстро распознав необходимого субъекта. Многие пользователь просто не знают, как правильно закрыть личные данные, поэтому номер телефона и, соответственно, профиль открыт для других людей.
Доски объявлений
Еще один способ найти человека — использовать доски объявлений, где почти каждый пользователь имеет свой профиль. Многие из нас однажды что-то продают или покупают, поэтому на площадках отображается некоторая информация, в том числе номер телефона.
Для начала найдите несколько таких ресурсов и введите в строку имеющиеся данные. Если в системе имеется какая-нибудь информация, она обязательно высветится в поиске. К сожалению, если пользователь не вбил нужные данные, отыскать его не получится. Поиск не срабатывает для номеров, указанных в аккаунте, а не внутри объявления.
К примеру, для России можно использовать следующие сервисы:
- Avito.ru;
- rusale.net;
- adiso.ru;
- russia.dorus.ru и другие.
В Интернете можно найти и другие сайты, где легко найти человека по номеру телефона. Еще один вариант — использование разных форумов. Сложность в том, что они имеют тематический характер, и поиск конкретной личности может занять много времени.
Отношения между таблицами
Чтобы база данных стала реляционной, одних данных мало. Между ними нужны еще и связи (те самые relations, от которых и пошло слово «реляционный»).
Для связи между таблицами служит так называемый внешний ключ (foreign key). Название довольно точно выражает его суть. Если в таблице A есть столбец для хранения первичного ключа таблицы B, то такой столбец и называется внешним ключом. Первичные и внешние ключи устанавливают связи между таблицами, превращая набор таблиц в цельную конструкцию — реляционную базу данных.
Приведу пример. Допустим, мы создали еще одну простую таблицу — справочник товаров. Назовем ее GOODS.
Товарный справочник GOODS | ||||
ID | NAME | PRICE | UNIT | COUNTRY |
1 | Яблоки | 50.00 | кг | Россия |
2 | Груши | 60.40 | кг | Франция |
3 | Апельсины | 40.00 | кг | Марокко |
4 | Макароны | 21.00 | шт | Франция |
5 | Кефир | 25.30 | шт | Россия |
6 | Молоко | 30.50 | шт | Россия |
Ее колонки: ID — первичный ключ, NAME — название товара, PRICE — его цена, UNIT — краткое название единицы измерения, COUNTRY — название страны-производителя.
Хорошо ли построена такая таблица? Вроде бы всем упоминавшимся выше принципам она удовлетворяет: уникальные имена столбцов с однородными данными, строки с уникальным первичным ключом. Казалось бы, все на месте. Тем не менее построена она непрофессионально. Здесь мы подходим к принципам, о которых я еще не упоминал, — к понятию о нормализации таблиц. Суть в том, чтобы всюду, где только можно, избегать избыточности в хранении данных путем выделения их в отдельные таблицы.
Посмотрим на нашу таблицу GOODS. Чем она плоха? Представьте себе, что завтра придется изменить название какой-нибудь страны. Такое случается часто. Бирма когда-то меняла свое название на Мьянму, Польша — на Польскую Республику. Хочется ли вам менять огромное количество строк во всех таблицах, где эти страны упоминаются? Представьте также, что вас попросят отобрать запросом весь штучный товар. Можете ли вы быть уверены в том, что оператор всюду набил эту аббревиатуру правильно и одинаково? Скорее всего, окажется, что в таблице встречаются все мыслимые вариации: «шт», «Шт», «шт.», «штук» и «штуки».
Думаю, проблема понятна. Выходом из этой ситуации будет выделение из нее двух других таблиц: справочника стран (COUNTRIES) и справочника единиц измерений (UNITS).
Справочник единиц измерения UNITS | ||
ID | NAME | SHORT_NAME |
1 | Штуки | шт |
2 | Килограммы | кг |
Сам справочник товаров GOODS будет теперь выглядеть совершенно по-другому (см. таблицу).
Товарный справочник GOODS после нормализации | ||||
ID | NAME | PRICE | UNIT_ID | COUNTRY_ID |
1 | Яблоки | 50.00 | 2 | 1 |
2 | Груши | 60.40 | 2 | 2 |
3 | Апельсины | 40.00 | 2 | 3 |
4 | Макароны | 21.00 | 1 | 2 |
5 | Кефир | 25.30 | 1 | 1 |
6 | Молоко | 30.50 | 1 | 1 |
Что изменилось? Вместо столбцов с названиями единиц измерения и стран появились столбцы UNIT_ID и COUNTRY_ID с кодами, отсылающими нас к другим таблицам. Это и есть внешние ключи. Что означает значение 2 в столбце UNIT_ID? Оно означает, что интересующая нас информация по единице измерения находится той строке таблицы UNITS, где ID = 2. Достаточно заглянуть в этот справочник, чтобы убедиться, что называется эта единица полностью «штуки», а кратко — «шт».
Объяснение всех видов и принципов нормализации выходит далеко за рамки данной статьи. Главное — почувствовать общие принципы. Единожды научившись строить базы данных правильно, вы уже не сможете иначе. Для этого не обязательно знать теорию в полном объеме — зачастую здравого смысла и интуиции бывает достаточно.
Вернемся к нашей маленькой базе данных. Ну хорошо, нормализовали мы таблицу. Сможем теперь менять названия стран, не исправляя всю таблицу. Замечательно. Но как теперь увидеть эти названия? Ведь в справочнике товаров появились коды, и таблица сразу потеряла свою наглядность.
Вот тут-то мы и подходим к понятию уже не раз упоминавшихся запросов, которые, используя связи, извлекают из них нужную информацию и выдают нам опять же в виде так называемой отчетной таблицы.