С чего мне начать изучение баз данных? - PullRequest
8 голосов
/ 24 февраля 2009

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

Я никогда раньше не работал с базами данных или серверами. Какие рекомендованные языки запросов к базам данных для начинающих? Сейчас я работаю с языками C #, C ++, Perl и Python, но мне все равно, нужно ли мне изучать другой язык (это всегда весело).

  • Какой язык мне использовать?
  • Как бы я работал с сервером?
  • Если я распространяю свою программу и использую компьютер в своей сети в качестве сервера, это открывает дыру в безопасности? Если да, то как мне быть с этим?
  • А как мне настроить сервер, просто скачать установщик и запустить его?

Ответы [ 14 ]

5 голосов
/ 24 февраля 2009

Учим SQL.

Загрузите SQLite в качестве обучающего сервера.

Это поможет вам начать.

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

Как бы я работал с сервером? MySQL или Postgres были бы хорошим недорогим выбором. Oracle, MS SQL / Server и DB2 - хорошие дорогостоящие решения.

Если я распространяю свою программу и использую компьютер в своей сети в качестве сервера, это открывает дыру в безопасности?

Это огромная тема. Начните с одного из широко используемых списков уязвимостей. Вот несколько указателей: http://homepage.mac.com/s_lott/iblog/architecture/C465799452/E20090124205231/index.html

2 голосов
/ 24 февраля 2009

Начните с Моделирование ER , и тогда вы сможете начать изучать SQL, для учебного ресурса по SQL, я действительно рекомендую вам SQLZoo: краткое введение в SQL очень хороший интерактивный учебник.

2 голосов
/ 24 февраля 2009

Большинство коммерческих баз данных используют SQL в качестве языка, хотя есть и другие, я бы посоветовал вам придерживаться проверенных и надежных пакетов, если вы склоняетесь к лагерю с открытым исходным кодом, я предлагаю вам использовать MySQL альтернативно, если у вас есть клиенты Microsoft тогда вы должны использовать SQL Server Express (т.е. бесплатную версию).

Я не уверен, что вы спрашиваете, как вы будете работать с сервером, но я предполагаю, что вы спрашиваете о том, как вы разрабатываете / строите базы данных, в SQL Server есть клиентская программа для управления базой данных, тогда как в MySQL есть PHP-инструмент с открытым исходным кодом для управления

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

1 голос
/ 24 февраля 2009

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

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

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

1 голос
/ 24 февраля 2009

Я рекомендую вам начать с C # в .NET Framework и использовать MS SQL Server.

Для начала вам нужно начать работу с базами данных .

Вот отличное место, чтобы начать с MS SQL: http://msdn.microsoft.com/en-us/library/aa256841.aspx

MS SQL Express - это бесплатная версия для таких людей, как вы, пока вы учитесь или оцениваете.

Visual Studio также имеет экспресс-издание для обучения.

Это потребует вашего изучения Transact SQL , который является усовершенствованием SQL.

Если вас беспокоит безопасность SQL, есть несколько хороших статей .

0 голосов
/ 01 декабря 2017

Высокая доступность и Brozar - ключевые слова, которые мне сказали мои коллеги. Еще одна высокая прочность.

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

Там есть сам компьютер (вход в систему). Тогда факт, что это в Интернете (брандмауэр / порты / службы работают). Тогда есть сервер (ы) (iis / SQL Server), который также имеет кредиты. И, возможно, интерфейс через API, который использует кредиты (токен REST) ​​или нет кредитов.

Даже если он использует Creds, убедитесь, что ваши функции API надежны. EG: Не оставляйте пробелов, таких как массовые разрешения, которые применялись на github, просто убедитесь, что ваши функции не открыты.

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

Тогда есть шифрование, соление ... Я не эксперт. Я всего несколько недель задаю тот же вопрос, что и вы. Другие ответы, которые я нашел полезными, но, как вы можете видеть, я не видел этот уровень детализации, поэтому добавлю это, хотя Вопрос - это '09 эра

0 голосов
/ 04 марта 2009

LINQ - это, вероятно, следующая большая эволюция обработки SQL, так что, может быть, вы сначала захотите Google, чтобы это сделать.

0 голосов
/ 24 февраля 2009

Что касается вопроса "Как бы я работал с сервером?" что может означать много вещей. , .

Вы слышали о пакете "LAMP" (Linux-Apache-MySQL-Php (perl, python))?

Это довольно распространенный способ запуска сервера (apache), базы данных (mysql) и выбранного вами языка программирования.

Я запускаю Apache и mysql на машине с Windows и предпочитаю Python для работы с базами данных. С Python очень легко взаимодействовать с MySql и запускать графический интерфейс, который служит вашим интерфейсом.

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

0 голосов
/ 24 февраля 2009

Какой язык мне использовать?

Common Lisp , если вы хотите получить познавательный опыт и хочу работать не только с реляционными базами данных (SQL), но и с объектно-ориентированными.

Другие языки, как правило, хорошо поддерживают только RDBMS.

Как бы я работал с сервером?

Мой совет: арендуйте дешевый виртуальный сервер GNU / Linux и научитесь работать на нем, используя SSH.

Если я распространяю свою программу и использую компьютер в своей сети в качестве сервера, это открывает дыру в безопасности?

Может быть, а может и нет. Это зависит от вашей программы.

Вопрос, который вы задали, был примерно аналогичен «Если я работаю в своем доме, могу ли я облегчить доступ грабителям?».

Если да, то как мне с этим бороться?

Читайте о безопасном программировании и брандмауэрах.

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

А как мне настроить сервер, просто скачайте установщик и запустите его?

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

А какой сервер? Сервер базы данных (если вы его используете), веб-сервер, сервер приложений, что-то еще?

0 голосов
/ 24 февраля 2009

Я согласен, что если вы будете работать с базами данных более чем немного, вам нужно будет знать язык SQL . Хорошая книга для изучения SQL - «1003 * Learning SQL» О'Рейли, второе издание .

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

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

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