Что делает 'реляционный' в 'реляционной базе данных', средней для нас?

Это похоже , я был неправ . MySQLi все еще разрабатывается. Но в соответствии со статьей, PDO_MySQL теперь вносится командой MySQL. От статьи:

MySQL Improved Extension - mysqli - является флагманом. Это поддерживает все функции MySQL Server including Charsets, Подготовленных Операторов и Хранимых процедур. Драйвер предлагает гибридный API: можно использовать стиль процедурного или объектно-ориентированного программирования на основе предпочтения. mysqli идет с PHP 5 и. Обратите внимание, что Конец жизни для PHP 4 08.08.2008.

Объекты данных PHP (PDO) уровень абстракции доступа к базе данных. PDO позволяет Вам использовать те же вызовы API различных баз данных. PDO не предлагает степени абстракции SQL. PDO_MYSQL является драйвером MySQL для PDO. PDO_MYSQL идет с PHP 5. С разработчиков MySQL PHP 5.3 активно способствуют ему. Преимущество PDO объединенного API прибывает в цену, что MySQL определенные функции, например, несколько операторов, не полностью поддерживается через объединенный API.

прекратите использовать первый драйвер MySQL для PHP, когда-либо опубликованного: ext/mysql. Начиная с введения MySQL Improved Extension - mysqli - в 2004 с PHP 5 нет никакой причины все еще использовать самый старый драйвер вокруг. ext/mysql не поддерживает Наборы символов, Подготовленные Операторы и Хранимые процедуры. Это ограничено набором функций MySQL 4.0. Обратите внимание, что Расширенная Поддержка MySQL 4.0 заканчивается 31.12.2008. Не ограничивайте себя набором функций такого старого программного обеспечения! Обновите до mysqli, см. также Converting_to_MySQLi. mysql находится в обслуживании только режим с нашей точки зрения.

мне, кажется, что статья склоняется к MySQLi. Я предполагаю, что склоняюсь к PDO. Я действительно как PDO по MySQLi. Это является прямым мне. API намного ближе к другим языкам, в которых я запрограммировал. Интерфейсы БД OO, кажется, работают лучше.

я не столкнулся ни с какими определенными функциями MySQL, которые не были доступны через PDO. Я был бы удивлен, делал ли я когда-нибудь.

5
задан Valentin Golev 6 November 2009 в 19:39
поделиться

5 ответов

Если вы хотите узнать, что такое реляционное, я рекомендую книгу " SQL и теория отношений " CJ Date.

Реляционные в этом контексте не относится к отношениям. Это относится к отношениям , которые в основном называются таблицами в математических теориях, которые привели к реляционной модели .

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

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

13
ответ дан 18 December 2019 в 14:47
поделиться

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

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

Кроме того, вы говорите, что хотите кэшировать «все запросы являются узкими местами», и вы хотите кэшировать только «простые» запросы. Однако я на 90% уверен, что выполнение нескольких небольших запросов потребует больше ресурсов, чем выполнение нескольких меньших запросов. вам также не нужно кэшировать каждую комбинацию, только те, которые действительно существуют. в моем примере, что не так с таким запросом?

SELECT person.*, car.* from person left join on car where person.car_ID = car.ID
0
ответ дан 18 December 2019 в 14:47
поделиться

Реляционные базы данных стали де-факто базой данных по ряду причин.

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

0
ответ дан 18 December 2019 в 14:47
поделиться

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

0
ответ дан 18 December 2019 в 14:47
поделиться

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

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

UserA -> ProductA

UserA -> ProductB

UserB -> ProductA

UserC -> ProductB

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

0
ответ дан 18 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: