Реляционные базы данных - там должны быть более правильными?

Нейронная сеть, которая используется для внимания, - это не то, что тренируется отдельно. Чтобы интерпретировать в более простых словах, tanh(W[s;h]) (то, что бумага упоминает как нейронная сеть) является слоем прямой связи, который обучается вместе с кодером и декодером вместе.

Любой механизм внимания предлагает схему взвешивания для выбора и объединения подходящих состояний кодера для конкретного этапа декодирования. Предположим, что выходной сигнал кодировщика равен 1 , a 2 , .., a n . Для декодера на каждом шаге взвешенная комбинация состояний кодера дается в качестве входных данных. Оценка внимания дает соответствующие веса α 1 , α 2 , .., α n на каждом шаге декодера. Следовательно, скажем, чтобы получить выходной сигнал декодера d 1 , вход будет представлять собой 1 * α 1 + a 2 * α [ 1115] 2 + .. + a n * α n .

Веса α 1 , .. получены с помощью softmax на выходах слоя / сети внимания, в вашем случае - tanh. В этом случае веса tanh изучаются, т. Е. Обновление tanh в обратном направлении и градиенте выполняется вместе со всей сетью кодера-декодера.

15
задан 12 revs, 2 users 98% 9 May 2009 в 13:43
поделиться

19 ответов

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

3
ответ дан 1 December 2019 в 02:02
поделиться

Существует только один строгий метод концептуального моделирования схемы реляционной базы данных, о котором я знаю (и я потратил много времени на поиск). Это смущающе называется «Объектно-ролевое моделирование». Вот несколько ссылок.

http://www.agilemodeling.com/artifacts/ormDiagram.htm

http://www.tdan.com/view-articles/5033

http: // en .wikipedia.org / wiki / Object_role_modeling

http://en.wikipedia.org/wiki/NORMA

и вот плагин для Visual Studio

0
ответ дан 1 December 2019 в 02:02
поделиться

Я бы посоветовал немного сузить сферу. выберите сервер SQL и станьте экспертом в этом деле ... например, получите mysql, узнайте разницу между типами хранилищ, типами репликации и т. д. Реализовать репликацию несколькими различными способами. получить большой набор данных и попытаться оптимизировать запросы. сделайте несколько разворотов и оптимизируйте свои индексы для этого. исследовать стратегии резервного копирования. Узнайте, как повысить производительность репликации и резервного копирования, если у вас есть база данных объемом 10 ГБ, которая последовательно добавляет 100 000 транзакций каждый день. написать программное обеспечение для вставки записей и сценариев для репликации и резервного копирования.

трудно стать эффективным dba без реального опыта, когда вы пытаетесь охватить все sql-серверы. просто сосредоточьтесь на одном ... я бы предложил mysql или mssql, но все, что плавает на вашей лодке.

-don

0
ответ дан 1 December 2019 в 02:02
поделиться

Я настоятельно рекомендую начать с www.dbdebunk.com . У этого есть много практических вещей в противоположность теории. Сайт немного устарел, но все же полезен. Даже коммерческий контент не слишком дорогой, если вы действительно хотите стать профессионалом в области баз данных.

0
ответ дан 1 December 2019 в 02:02
поделиться

I believe optimization on existing databases could be interesting to dwelve into. I.e. why you should denormalize tables.

Some basic relation algebra is useful knowledge and closely related to set theory.

1
ответ дан 1 December 2019 в 02:02
поделиться

A very common scenario is having to map ugly databases to an entity model which is not necessary reflected directly in the structure of the DB. Working out which way is best to model the data in your domain can be tricky.

Full text search and XML are subjects that seem to be coming up more and more.

I have no experience with it but I know DB2 (of which there is a trial version) has some crazy new features)

Have fun :-)

1
ответ дан 1 December 2019 в 02:02
поделиться

Я думаю, что set + реляционная алгебра - это то, о чем большинство пользователей баз данных мало знают, но хорошо бы научились. Когда вы поймете логику, лежащую в основе отображения одного отношения к другому, вы начнете более четко понимать, почему такие вещи, как нормализация, хороши, почему лучше избегать значений NULL, если это возможно, и т. Д. Вы также начинаете видеть недостатки в SQL по сравнению с более чистыми языками реляционных запросов где функции накладывают ограничения на парадигму по причинам производительности и т. д.

2
ответ дан 1 December 2019 в 02:02
поделиться

Ну, это всегда хорошие примеры проектирования ... Посмотрите, есть ли кто-нибудь из ваших знакомых, кому нужна база данных для чего-то. Но изучение методов VLDB (Very Large DataBase) может оказаться полезным в зависимости от отрасли, в которой вы заинтересованы.

1
ответ дан 1 December 2019 в 02:02
поделиться

Не забудьте представить иерархию и / или графики в базах данных. Это может быть болезненно, и нет правильного ответа.

Стандартные методы (по крайней мере, для иерархии) были упомянуты в следующих статьях SO:

: Существуют также приложения для пространственной базы данных для использования в ГИС, где у вас есть структуры данных и / или индексы, основанные на точечных местоположениях с использованием R-деревьев и тому подобное. Их использование немного отличается от функций обычной непространственной базы данных.

1
ответ дан 1 December 2019 в 02:02
поделиться

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

http://database-programmer.blogspot.com/2008/09/comprehensive-table-of-contents.html

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

Еще один - Высокая Масштабируемость ...

http://highscalability.com/

Они попадают в каждую сферу БД.

Надеюсь, это поможет .

2
ответ дан 1 December 2019 в 02:02
поделиться

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

Итак, давайте представим, что вам, как и мне, приходится иметь дело с несколькими базами данных, а не с большими (<100 ГБ каждая), и у вас много клиентов с множеством различных потребностей, которые заставляют вас разрабатывать множество пользовательских решений, таких как создание пользовательских отчетов или экспортов. , Это делает вас более программистом, чем администратором баз данных. И что вам нужно - это производительность, а не производительность.

Лучшее решение, которое я придумал в этой ситуации, - максимально избавиться от SQL. Вы можете достичь этого, используя какой-то ORM, как домашний, так и существующий, и, таким образом, обменять сценарии SQL на объектное программирование. Делая это, я делаю за считанные минуты то, что потребует часов с SQL.

1
ответ дан 1 December 2019 в 02:02
поделиться

Отказ от ответственности: не является экспертом в проектировании баз данных.

Некоторые из проблем производительности могут быть решены с помощью:

  1. денормализации вашей базы данных, чтобы уменьшить количество таблиц для присоединения
  2. добавление индексов
  3. Фильтрация должна выполняться таким образом, чтобы вы сначала удалили наибольшее из несоответствующих данных, а затем выбрали следующее условие в сокращенном наборе. Лучше перейти от 100 значений -> 10 соответствий первому условию -> 1 соответствия первого и второго условия, чем 100 значений -> 80 соответствий второму условию -> 1 соответствия первого и второго условия. Кажется тривиальным, но важно иметь в виду.
  4. Div и Impera является девизом для масштабируемости. Если у вас есть что-то, что масштабируется нелинейно, скажем, O (N ^ 2), имеет смысл держать N как можно ниже, и вы должны разбить ваш набор данных на более мелкие наборы, предполагая, что они независимы, и вы можете разработать разбиение. Примером этого является шардинг, обычно используемый для хранения баз данных пользователей на крупных социальных сайтах. (NB: например, я бы не стал реализовывать это таким образом) Вместо огромной базы данных со всеми пользователями, у них есть 26 серверов (по одному на каждую букву алфавита), затем они ставят все псевдонимы с одинаковыми первыми буквами. на том же сервере. Это имеет следующие преимущества:

    а. Вы балансируете нагрузку на разных машинах
    Я бы не стал реализовывать это таким образом) Вместо того, чтобы иметь огромную базу данных со всеми пользователями, у них есть 26 серверов (по одному на каждую букву алфавита), затем они помещают все псевдонимы с одинаковыми первыми буквами на одном сервере. Это имеет следующие преимущества:

    а. Вы балансируете нагрузку на разных машинах
    Я бы не стал реализовывать это таким образом) Вместо того, чтобы иметь огромную базу данных со всеми пользователями, у них есть 26 серверов (по одному на каждую букву алфавита), затем они помещают все псевдонимы с одинаковыми первыми буквами на одном сервере. Это имеет следующие преимущества:

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

1
ответ дан 1 December 2019 в 02:02
поделиться

Получите больше грязи от базы данных СиДжея Дейта: Реляционная теория для практиков , если его Введение в системы баз данных не достаточно грязно для вас

Серьезно, эти две книги дадут вам гораздо больше знаний о РСУБД, намного меньше места, чем многие другие профессиональные работники баз данных. В частности, Database in Depth рассматривает, как относиться к базам данных как к реляционным, даже если язык их не поддерживает, и как превратить SQL в язык, близкий к реляционному.

3
ответ дан 1 December 2019 в 02:02
поделиться

Стандартный текст в поле "Введение в системы баз данных", автор CJ Date.

У меня есть двадцатилетний опыт работы; Я прочитал его, подумал, что это отлично, и из-за этого я написал реляционную базу данных (правильную, а не эту малярию SQL!).

9
ответ дан 1 December 2019 в 02:02
поделиться

A whole other area is dimensional modelling and data warehousing.

I had been working with relational modelling for years, and then I read The Data Warehouse Toolkit and received an entirely new view of how it could be used.

4
ответ дан 1 December 2019 в 02:02
поделиться

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

Параллель с LDAP заключается в том, что это протокол , и это не определение того, что вы можете с ним делать и как его следует реализовывать, то же самое можно сказать и о SQL.

Поэтому, если вы хотите узнать больше о базах данных, вы на самом деле говорите, что хотите узнать больше о протоколе SQL и / или о том, как хранить и извлекать данные.

Возможно, вам будет интересно поискать, что такое «B-дерево» и как оно используется. Еще одна вещь, на которую стоит обратить внимание, это EAV (Entity-Attribute-Value) и то, почему схемы так важны для него.

С этим знанием вы могли бы фактически разыграть свою собственную БД и, делая это, оценивая то, что RDBM уже сделал для вас.

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

0
ответ дан 1 December 2019 в 02:02
поделиться

На мой взгляд, есть три «дорожки» с базой данных навыки: разработчик, администратор баз данных и архитектор. С точки зрения разработки вы хотите сосредоточиться на разработке, понимать Architect и подбирать столько DBA-ресурсов, сколько вам нужно.

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

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

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

хранимых процедурах (не только о том, как их использовать, но когда и почему)
Представления (то же, включая материализованные представления)
Триггеры (вставка, обновление, удаление, как и почему)
Курсоры (особенно влияние на производительность)
Ссылочная целостность
Сделки
Индексы
Добавление значений по умолчанию, ограничений и идентификаторов в таблицы
Комплексное использование группы путем и имея
Функции особенно:
- манипуляции с датой и временем
- Струнная манипуляция
- Обработка пустых значений

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

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

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

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

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

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

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

С точки зрения ссылок это зависит от платформы - все это имеет тенденцию зависеть от платформы. Но для этого и нужен Google.

Не совсем подозреваю, что вы хотите, но стоит знать, поскольку многие люди, которые думают, что знают SQL, на самом деле не знают ...

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

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

С точки зрения ссылок это зависит от платформы - все это имеет тенденцию зависеть от платформы. Но для этого и нужен Google.

Не совсем подозреваю, что вы хотите, но стоит знать, поскольку многие люди, которые думают, что знают SQL, на самом деле не знают ...

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

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

С точки зрения ссылок это зависит от платформы - все это имеет тенденцию зависеть от платформы. Но для этого и нужен Google.

Не совсем подозреваю, что вы хотите, но стоит знать, поскольку многие люди, которые думают, что знают SQL, на самом деле не знают ...

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

С точки зрения ссылок это зависит от платформы - все это имеет тенденцию зависеть от платформы. Но для этого и нужен Google.

Не совсем подозреваю, что вы хотите, но стоит знать, поскольку многие люди, которые думают, что знают SQL, на самом деле не знают ...

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

С точки зрения ссылок это зависит от платформы - все это имеет тенденцию зависеть от платформы. Но для этого и нужен Google.

Не совсем подозреваю, что вы хотите, но стоит знать, поскольку многие люди, которые думают, что знают SQL, на самом деле не знают ...

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

С точки зрения ссылок это зависит от платформы - все это имеет тенденцию зависеть от платформы. Но для этого и нужен Google.

Не совсем подозреваю, что вы хотите, но стоит знать, поскольку многие люди, которые думают, что знают SQL, на самом деле не знают ...

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

С точки зрения ссылок это зависит от платформы - все это имеет тенденцию зависеть от платформы. Но для этого и нужен Google.

Не совсем подозреваю, что вы хотите, но стоит знать, поскольку многие люди, которые думают, что знают SQL, на самом деле не знают ...

1
ответ дан 1 December 2019 в 02:02
поделиться

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

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

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