Существует множество реализаций SQL (SQL Server, mysql, Oracle и т. Д.), Но нет другого языка, который служил бы той же цели в том смысле, что являлся бы языком общего назначения, предназначенным для реляционного хранения и поиска данных .
Существуют объектные базы данных, такие как db4o , и аналогичные так называемые базы данных noSQL, которые относятся практически к любому механизму хранения данных, который не полагается на SQL, но чаще всего к продуктам с открытым исходным кодом, таким как Cassandra, основанным на концепции Bigtable Google .
Существует также ряд специализированных продуктов для баз данных, таких как CDF, но вам, вероятно, не стоит о них беспокоиться - вы узнаете, если он вам понадобится.
Ни один из них не эквивалентен SQL.
Это не значит, что они «лучше» или «хуже» - они просто не одно и то же. Деннис Форбс недавно написал отличный пост, в котором разоблачил ряд странных претензий к SQL. Он утверждает (и я согласен), что эти жалобы в основном исходят от людей и магазинов, которые либо выбрали неправильный инструмент для работы, либо неправильно используют свои СУБД SQL (я даже больше не удивляюсь, когда я см. другую базу данных SQL, где каждый столбец - это, varchar(50)
и нигде нет ни одного индекса или ключа).
Если вы создаете еще одну социальную сеть и не слишком озабочены принципами ACID , непременно начните изучать такие продукты, как db4o. Однако, если вы разрабатываете критически важную бизнес-систему, я настоятельно рекомендую дважды подумать, прежде чем присоединиться к хору «SQL - отстой». Сначала проведите исследование, выясните, какие функции различные продукты могут и не могут поддерживать.
Изменить - я был занят написанием своего ответа и не получил обновление вопроса через несколько минут. При этом SQL по сути неотделим от самой СУБД. Если вы запускаете продукт базы данных SQL, вы обращаетесь к нему с помощью SQL, точка.
Возможно, вы ищете абстракции по синтаксису; Linq to SQL, Entity Framework, Hibernate / NHibernate, SubSonic и множество других инструментов ORM все предоставляют свой собственный SQL-подобный синтаксис, который не совсем SQL. Все это «компилируется» в SQL. Если вы запускаете SQL Server, вы также можете писать функции / процедуры / триггеры CLR, что позволяет вам писать код на любом языке .NET, который будет выполняться внутри базы данных; однако на самом деле это не замена SQL, а скорее его расширение.
Я не знаю ни одного полного «языка», который можно было бы использовать поверх базы данных SQL; если не считать переключения на другой продукт базы данных, вы в конечном итоге увидите SQL на конвейере.