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

Основы реляционных баз данных

Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

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

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

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

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

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

Данные

Наша база данных будет состоять из двух таблиц: “ Student ” ( студенты ) и “ Class ” ( предметы ), и содержать в себе информацию, соответственно, о студентах и изучаемых ими предметах.

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

С учётом этой информации нормализуем данные следующим образом:

1. Таблица студентов будет иметь следующие поля:

2. Таблица предметов будет иметь следующие поля:

Реляционная база данных что это такое простыми словами. dannie 130258. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-dannie 130258. картинка Реляционная база данных что это такое простыми словами. картинка dannie 130258. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Теперь заполним обе таблицы данными:

Реляционная база данных что это такое простыми словами. student 130258. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-student 130258. картинка Реляционная база данных что это такое простыми словами. картинка student 130258. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Реляционная база данных что это такое простыми словами. classtable 130259. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-classtable 130259. картинка Реляционная база данных что это такое простыми словами. картинка classtable 130259. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Отношения между объектами

Теперь, используя имеющиеся данные, определим отношения и объекты этих отношений.

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

Атрибуты отношений: первичные и внешние ключи

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

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

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

Первичный ключ идентифицирует каждую строку в таблице.

Реляционная база данных что это такое простыми словами. pervichnii kljuch identif 130300. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-pervichnii kljuch identif 130300. картинка Реляционная база данных что это такое простыми словами. картинка pervichnii kljuch identif 130300. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Для установления отношения мы должны сопоставить каждому первичному ключу внешний ключ.

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

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

Использование таблицы перекрёстных ссылок

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

Реляционная база данных что это такое простыми словами. ispolzovanie tablici per 130301. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-ispolzovanie tablici per 130301. картинка Реляционная база данных что это такое простыми словами. картинка ispolzovanie tablici per 130301. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Каждая строка получившейся таблицы однозначно определяется собственным первичным ключом – идентификатором зачисления ( Enrollment ID ).

Кроме первичного ключа, таблица содержит ещё два поля:

Заключение

В нашей сегодняшней статье мы изучили принципы организации реляционных баз данных. Слово « реляционные » можно определить как « характеризуемые отношениями », от латинского слова “ relatio ” – « отношение ».

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

Как же применить изученные нами примеры на практике?

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

Источник

Артём Санников

Языки программирования
Базы данных
Программное обеспечение
Операционные системы
Мобильная разработка
Менеджеры пакетов
Сетевые технологии
CMS системы
Математика
SEO продвижение
Социальные сети
Психология
Хостинг провайдер
Смартфоны

Что такое реляционная база данных?

Что такое реляционная база данных?

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

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

Установление связи между таблицами

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

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

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

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

Порядок строк произволен

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

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

Идентификация строк (первичный ключ)

По этой и ряду других причин, необходимо иметь столбец таблицы, который однозначно идентифицирует каждую строку. Обычно этот столбец содержит номер, например, приписанный каждому пациенту. Конечно, можно использовать для идентификации строк имя пациента, но ведь может случиться так, что имеется несколько пациентов с именем Mary Smith. В подобном случае нет простого способа их различить. Именно по этой причине обычно используются номера. Такой уникальный столбец (или их группа), используемый для идентификации каждой строки и обеспечивающий различимость всех строк, называется первичным ключом таблицы (primary key of the table).

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

Столбцы поименованы и пронумерованы

В отличие от строк, столбцы таблицы (также называемые полями (fields) упорядочены и поименованы. Следовательно, в нашей таблице, соответствующей адресной книге, можно сослаться на столбец «Address» как на «столбец номер три». Естественно, это означает, что каждый столбец данной таблицы должен иметь имя, отличное от других имен, для того, чтобы не возникло путаницы. Лучше всего, когда имена определяют содержимое поля. В этой книге мы будем использовать аббревиатуру для именования столбцов в простых таблицах, например: cname — для имени покупателя (customer name), odate — для даты поступления (order date). Предположим также, что таблица содержит единственный цифровой столбец, используемый как первичный ключ.

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

Таблицы 1.1, 1. 2, 1.3 образуют реляционную базу данных, которая достаточно мала для того, чтобы можно было понять ее смысл, но и достаточно сложна для того, чтобы иллюстрировать на ее примере важные понятия и практические выводы, связанные с применением SQL.

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

Например, поле snum в таблице Customers определяет, каким продавцом (salespeople) обслуживается конкретный покупатель (customer). Номер поля snum устанавливает связь с таблицей Salespeople, которая дает информацию об этом продавце (salespeople). Очевидно, что продавец, который обслуживает данного покупателя, существует, т.е. значение поля snum в таблице Customers присутствует также и в таблице Salespeople. В этом случае мы говорим, что система находится в состоянии ссылочной целостности (referential integrity).

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

Перед вами объяснение столбцов таблицы 1.1:

ПолеСодержимое
snumУникальный номер, приписанный каждому продавцу («номер служащего»)
snameИмя продавца
cityМесто расположения продавца
commВознаграждение (комиссионные) продавца в форме с десятичной точкой

Таблица 1.2 содержит следующие столбцы:

ПолеСодержимое
cnumУникальный номер, присвоенный покупателю
cnameИмя покупател
cityМесто расположения покупателя
ratingЦифровой код, определяющий уровень предпочтения данного покупателя. Чем больше число, тем больше предпочтение
snumНомер продавца, назначенного данному покупателю (из таблицы Salesperson)

И, наконец, столбцы таблицы 1.3:

ПолеСодержимое
onumУникальный номер, присвоенный данной покупке
amtКоличество
odateДата покупки
cnumНомер покупателя, сделавшего покупку (из таблицы Customers)
snumНомер продавца, обслужившего покупателя (из таблицы Salespeople)

Источник: SQL для простых смертных / Мартинн Грабер

Источник

Реляционные базы данных для чайников

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

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

Реляционная база данных что это такое простыми словами. relational databases for dummies fig1. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-relational databases for dummies fig1. картинка Реляционная база данных что это такое простыми словами. картинка relational databases for dummies fig1. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Табличные данные могут быть вставлены, восстановлены, обновлены и удалены. Для пакета этих операций была создана специальная аббревиатура CRUD (Create-Read-Update-Delete).

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

Шаг 1. Подготовка данных

Для того чтобы нам было с чем работать, я набрал в твиттере запрос “#databases” и сформировал таблицу из 10 записей:

Таблица 1

full_nameusernametextcreated_atfollowing_username
Boris Hadjur_DreamLeadWhat do you think about #emailing #campaigns #traffic in #USA? Is it a good market nowadays? do you have #databases?Tue, 12 Feb 2013 08:43:09 +0000Scootmedia, MetiersInternet
Gunnar SvalanderGunnarSvalanderBill Gates Talks Databases, Free Software on Reddit http://t.co/ShX4hZlA #billgates #databasesTue, 12 Feb 2013 07:31:06 +0000klout, zillow
GE SoftwareGEsoftwareRT @KirkDBorne: Readings in #Databases: excellent reading list, many categories: http://t.co/S6RBUNxq via @rxin Fascinating.Tue, 12 Feb 2013 07:30:24 +0000DayJobDoc, byosko
Adrian BurchadrianburchRT @tisakovich: @NimbusData at the @Barclays Big Data conference in San Francisco today, talking #virtualization, #databases, and #flash memory.Tue, 12 Feb 2013 06:58:22 +0000CindyCrawford, Arjantim
Andy RyderAndyRyder5http://t.co/D3KOJIvF article about Madden 2013 using AI to prodict the super bowl #databases #bus311Tue, 12 Feb 2013 05:29:41 +0000MichaelDell, Yahoo
Andy RyderAndyRyder5http://t.co/rBhBXjma an article about privacy settings and facebook #databases #bus311Tue, 12 Feb 2013 05:24:17 +0000MichaelDell, Yahoo
Brett EnglebertBrett_Englebert#BUS311 University of Minnesota’s NCFPD is creating #databases to prevent “food fraud.” http://t.co/0LsAbKqJTue, 12 Feb 2013 01:49:19 +0000RealSkipBayless, stephenasmith
Brett EnglebertBrett_Englebert#BUS311 companies might be protecting their production #databases, but what about their backup files? http://t.co/okJjV3BmTue, 12 Feb 2013 01:31:52 +0000RealSkipBayless, stephenasmith
Nimbus Data SystemsNimbusData@NimbusData CEO @tisakovich @BarclaysOnline Big Data conference in San Francisco today, talking #virtualization, #databases,& #flash memoryMon, 11 Feb 2013 23:15:05 +0000dellock6, rohitkilam
SSWUG.ORGSSWUGorgDon’t forget to sign up for our FREE expo this Friday: #Databases, #BI, and #Sharepoint: What You Need to Know! http://t.co/Ijrqrz29Mon, 11 Feb 2013 22:15:37 +0000drsql, steam_games

В первую очередь, давайте разберёмся с колонками:

Это реальные данные. Если хотите, вы можете их найти и обновить.

Хорошо. Теперь все наши данные находятся в одном месте. Даёт ли это нам возможность легко осуществить поиск по ним? Не совсем. Данная таблица далека от идеала. Во-первых, в некоторых столбцах у нас есть повторяющиеся записи: к примеру, в х “username” и “following_username”. Также колонка “following_username” нарушает правила реляционных моделей, т.к. её в ячейках присутствует более 1 значения (записи разделены запятыми).

К тому же у нас попадаются дубликаты и в строках.

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

Шаг 2. Избавляемся от дубликатов в столбцах

Реляционная база данных что это такое простыми словами. relational databases for dummies fig2. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-relational databases for dummies fig2. картинка Реляционная база данных что это такое простыми словами. картинка relational databases for dummies fig2. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Поскольку @Brett_Englebert подписан на @RealSkipBayless, то в таблице “following” отобразим это следующим образом: имя @Brett_Englebert поместим в колонку “from_user”, а @RealSkipBayless в “to_user.” Давайте посмотрим, как будет выглядеть таблица “following” после разделения Таблицы 1:

Таблица 2. following

from_userto_user
_DreamLeadScootmedia
_DreamLeadMetiersInternet
GunnarSvalanderklout
GunnarSvalanderzillow
GEsoftwareDayJobDoc
GEsoftwarebyosko
adrianburchCindyCrawford
adrianburchArjantim
AndyRyderMichaelDell
AndyRyderYahoo
Brett_EnglebertRealSkipBayless
Brett_Englebertstephenasmith
NimbusDatadellock6
NimbusDatarohitkilam
SSWUGorgdrsql
SSWUGorgsteam_games

Таблица 3. users

full_nameusernametextcreated_at
Boris Hadjur_DreamLeadWhat do you think about #emailing #campaigns #traffic in #USA? Is it a good market nowadays? do you have #databases?Tue, 12 Feb 2013 08:43:09 +0000
Gunnar SvalanderGunnarSvalanderBill Gates Talks Databases, Free Software on Reddit http://t.co/ShX4hZlA #billgates #databasesTue, 12 Feb 2013 07:31:06 +0000
GE SoftwareGEsoftwareRT @KirkDBorne: Readings in #Databases: excellent reading list, many categories: http://t.co/S6RBUNxq via @rxin Fascinating.Tue, 12 Feb 2013 07:30:24 +0000
Adrian BurchadrianburchRT @tisakovich: @NimbusData at the @Barclays Big Data conference in San Francisco today, talking #virtualization, #databases, and #flash memory.Tue, 12 Feb 2013 06:58:22 +0000
Andy RyderAndyRyder5http://t.co/D3KOJIvF article about Madden 2013 using AI to prodict the super bowl #databases #bus311Tue, 12 Feb 2013 05:29:41 +0000
Andy RyderAndyRyder5http://t.co/rBhBXjma an article about privacy settings and facebook #databases #bus311Tue, 12 Feb 2013 05:24:17 +0000
Brett EnglebertBrett_Englebert#BUS311 University of Minnesota’s NCFPD is creating #databases to prevent “food fraud.” http://t.co/0LsAbKqJTue, 12 Feb 2013 01:49:19 +0000
Brett EnglebertBrett_Englebert#BUS311 companies might be protecting their production #databases, but what about their backup files? http://t.co/okJjV3BmTue, 12 Feb 2013 01:31:52 +0000
Nimbus Data SystemsNimbusData@NimbusData CEO @tisakovich @BarclaysOnline Big Data conference in San Francisco today, talking #virtualization, #databases,& #flash memoryMon, 11 Feb 2013 23:15:05 +0000
SSWUG.ORGSSWUGorgDon’t forget to sign up for our FREE expo this Friday: #Databases, #BI, and #Sharepoint: What You Need to Know! http://t.co/Ijrqrz29Mon, 11 Feb 2013 22:15:37 +0000

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

Шаг 3. Удаление повторений из строк

Теперь мы займёмся устранением других проблем, а именно, избавимся от дубликатов в строках таблицы “users”. Поскольку пользователи @AndyRyder5 и @Brett_Englebert разместили по несколько твиттов, то их имена в таблице “users” (Таблица 3) дублируются в колонке full_name. Данная проблема также решается разделением таблицы “users”.

Реляционная база данных что это такое простыми словами. relational databases for dummies fig3. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-relational databases for dummies fig3. картинка Реляционная база данных что это такое простыми словами. картинка relational databases for dummies fig3. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

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

Таблица 4. tweets

usernametextcreated_at
_DreamLeadWhat do you think about #emailing #campaigns #traffic in #USA? Is it a good market nowadays? do you have #databases?Tue, 12 Feb 2013 08:43:09 +0000
GunnarSvalanderBill Gates Talks Databases, Free Software on Reddit http://t.co/ShX4hZlA #billgates #databasesTue, 12 Feb 2013 07:31:06 +0000
GEsoftwareRT @KirkDBorne: Readings in #Databases: excellent reading list, many categories: http://t.co/S6RBUNxq via @rxin Fascinating.Tue, 12 Feb 2013 07:30:24 +0000
adrianburchRT @tisakovich: @NimbusData at the @Barclays Big Data conference in San Francisco today, talking #virtualization, #databases, and #flash memory.Tue, 12 Feb 2013 06:58:22 +0000
AndyRyder5http://t.co/D3KOJIvF article about Madden 2013 using AI to prodict the super bowl #databases #bus311Tue, 12 Feb 2013 05:29:41 +0000
AndyRyder5http://t.co/rBhBXjma an article about privacy settings and facebook #databases #bus311Tue, 12 Feb 2013 05:24:17 +0000
Brett_Englebert#BUS311 University of Minnesota’s NCFPD is creating #databases to prevent “food fraud.” http://t.co/0LsAbKqJTue, 12 Feb 2013 01:49:19 +0000
Brett_Englebert#BUS311 companies might be protecting their production #databases, but what about their backup files? http://t.co/okJjV3BmTue, 12 Feb 2013 01:31:52 +0000
NimbusData@NimbusData CEO @tisakovich @BarclaysOnline Big Data conference in San Francisco today, talking #virtualization, #databases,& #flash memoryMon, 11 Feb 2013 23:15:05 +0000
SSWUGorgDon’t forget to sign up for our FREE expo this Friday: #Databases, #BI, and #Sharepoint: What You Need to Know! http://t.co/Ijrqrz29Mon, 11 Feb 2013 22:15:37 +0000

Таблица 5. users

full_nameusername
Boris Hadjur_DreamLead
Gunnar SvalanderGunnarSvalander
GE SoftwareGEsoftware
Adrian Burchadrianburch
Andy RyderAndyRyder5
Brett EnglebertBrett_Englebert
Nimbus Data SystemsNimbusData
SSWUG.ORGSSWUGorg

После разделения в таблице users (Таблица 5) у нас присутствуют уникальные (не повторяющиеся) строки.

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

Шаг 4. Объединяем таблицы на основе ключей

Итак, в результате наших действий, Таблица 1 была разбита на 3 части: following (Таблица 2), tweets (Таблица 4), users (Таблица 5). Все дубликаты устранены. Для того чтобы в дальнейшем мы могли с лёгкостью извлекать данные из этой структуры, независимые друг от друга таблицы мы должны связать специальными отношениями, которые будут давать нам информацию о том, какому пользователю принадлежит какой твит, и кто на кого подписан.

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

Вообще говоря, в Таблице 4 и 5 мы уже это сделали. В таблице “users” первичным ключом является колонка “username”, потому что логин пользователя должен быть уникальным значением и не может повторяться. В таблице “tweets” мы используем данный ключ для обозначения связи между пользователем и твитом. Колонка “username” в таблице “tweets” называется внешним ключом.

Если вы когда-то работали с базами данных, то у вас может возникнуть вопрос: можем ли мы использовать колонку “username” в качестве первичного ключа?

С одной стороны, это может упростить процесс поиска, ведь мы не используем никаких числовых ID. С другой стороны, что если пользователь захочет поменять свой логин? Это может привести к огромному количеству проблем. Для того чтобы не попасть в подобную ситуацию, лучше воспользоваться числовыми ID. Всё зависит от вашей системы. Если вы предоставляете вашим пользователям возможность менять логины, то лучше в качестве первичного ключа использовать автоинкрементированное числовое поле ID. В противном случае, колонка “username” вполне подойдёт для этой роли. Я оставлю всё как есть.

Давайте посмотрим на таблицу tweets (Таблица 4). Первичный ключ должен быть уникальным для каждой строки. Какую колонку в данной таблице мы можем выбрать для этой роли? Колонка “created_at” не подойдёт, т.к. в принципе 2 разных пользователя могут в одно и то же время опубликовать запись. С колонкой “text” та же история: два разных пользователя могут создать твит с текстом “Hello World”. Колонка “username” в данной таблице является внешним ключом для обозначения связи между пользователем и твитом. Итак, поскольку все возможные варианты нам не подходят, то лучшим решением будет добавление колонки id, которая будет первичным ключом для данной таблицы.

Таблица 6. tweets с колонкой id

IDusernametextcreated_at
1_DreamLeadWhat do you think about #emailing #campaigns #traffic in #USA? Is it a good market nowadays? do you have #databases?Tue, 12 Feb 2013 08:43:09 +0000
2GunnarSvalanderBill Gates Talks Databases, Free Software on Reddit http://t.co/ShX4hZlA #billgates #databasesTue, 12 Feb 2013 07:31:06 +0000
3GEsoftwareRT @KirkDBorne: Readings in #Databases: excellent reading list, many categories: http://t.co/S6RBUNxq via @rxin Fascinating.Tue, 12 Feb 2013 07:30:24 +0000
4adrianburchRT @tisakovich: @NimbusData at the @Barclays Big Data conference in San Francisco today, talking #virtualization, #databases, and #flash memory.Tue, 12 Feb 2013 06:58:22 +0000
5AndyRyder5http://t.co/D3KOJIvF article about Madden 2013 using AI to prodict the super bowl #databases #bus311Tue, 12 Feb 2013 05:29:41 +0000
6AndyRyder5http://t.co/rBhBXjma an article about privacy settings and facebook #databases #bus311Tue, 12 Feb 2013 05:24:17 +0000
7Brett_Englebert#BUS311 University of Minnesota’s NCFPD is creating #databases to prevent “food fraud.” http://t.co/0LsAbKqJTue, 12 Feb 2013 01:49:19 +0000
8Brett_Englebert#BUS311 companies might be protecting their production #databases, but what about their backup files? http://t.co/okJjV3BmTue, 12 Feb 2013 01:31:52 +0000
9NimbusData@NimbusData CEO @tisakovich @BarclaysOnline Big Data conference in San Francisco today, talking #virtualization, #databases,& #flash memoryMon, 11 Feb 2013 23:15:05 +0000
10SSWUGorgDon’t forget to sign up for our FREE expo this Friday: #Databases, #BI, and #Sharepoint: What You Need to Know! http://t.co/Ijrqrz29Mon, 11 Feb 2013 22:15:37 +0000

С таблицей following можем сделать то же самое, т.к. ни одна существующая колонка не подойдёт на роль первичного ключа. Колонки “from_user” и “to_user” являются внешними ключами и обозначают связь между подписками пользователей.

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

Ниже вы можете увидеть схему наших таблиц и связей между ними:

Реляционная база данных что это такое простыми словами. relational databases for dummies fig4. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-relational databases for dummies fig4. картинка Реляционная база данных что это такое простыми словами. картинка relational databases for dummies fig4. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Системы Управления Базами Данных

Теперь, когда у нас есть реляционная БД, каким образом мы можем её имплементировать? Для этого мы можем воспользоваться системами управления базами данных (СУБД). Существует целый набор подобных программ, как платных, так и бесплатных. Среди платных можно выделить Oracle Database, IBM DB2 и Microsoft SQL Server. Бесплатные: MySQL, SQLite и PostgreSQL.

SQLite чаще используется при разработке приложений для iOS и Android, где хранится различного рода конфиденциальная информация. Браузер Google Chrome использует SQLite для хранения истории просмотров, кукисов, изображений.

PostgreSQL используется реже. Для неё существует полезное расширение PostGIS, которое делает данную СУБД удобной для хранения геолокационных данных. К примеру сервис OpenStreetMap исользует PostgreSQL.

Язык структурированных запросов (SQL)

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

Создание БД development:

Создание таблицы Users:

При создании полей нам необходимо указать тип хранимой информации и её размер. Колонки “full_name” и “username” будут типа VARCHAR, который предназначен для хранения строк символов. Размер 100 символов. Список всех типов вы можете найти тут.

Извлечение всех записей пользователя _DreamLead:

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

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

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://net.tutsplus.com/tutorials/tools-and-tips/relational-databases-for-dummies/
Перевел: Станислав Протасевич
Урок создан: 16 Марта 2013
Просмотров: 93145
Правила перепечатки

5 последних уроков рубрики «Разное»

Как выбрать хороший хостинг для своего сайта?

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

Проект готов, Все проверено на локальном сервере OpenServer и можно переносить сайт на хостинг. Вот только какую компанию выбрать? Предлагаю рассмотреть хостинг fornex.com. Отличное место для твоего проекта с перспективами бурного роста.

Реляционная база данных что это такое простыми словами. mini. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-mini. картинка Реляционная база данных что это такое простыми словами. картинка mini. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Разработка веб-сайтов с помощью онлайн платформы Wrike

Реляционная база данных что это такое простыми словами. thumbnail. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-thumbnail. картинка Реляционная база данных что это такое простыми словами. картинка thumbnail. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

20 ресурсов для прототипирования

Подборка из нескольких десятков ресурсов для создания мокапов и прототипов.

Реляционная база данных что это такое простыми словами. thumbnail. Реляционная база данных что это такое простыми словами фото. Реляционная база данных что это такое простыми словами-thumbnail. картинка Реляционная база данных что это такое простыми словами. картинка thumbnail. Базы данных всегда являлись краеугольным камнем любого цифрового бизнеса. Поэтому программная индустрия всегда уделяла так много внимания системам управления базами данных.

Топ 10 бесплатных хостингов

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

Источник

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

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