Почему администрирование баз данных так сложно?


92

Я знаю многих администраторов баз данных, и всем им по 28-29 лет.

Все ли администрирование баз данных такое? Я имею в виду, это опыт работы более 7-8 лет?

Или быть администратором базы данных так сложно?


7
Я не уверен, что комикс приносит к этому кроме приятного отвлечения. Кто-нибудь еще?
Jcolebrand

9
Когда вы закончили разработку, вы полностью сформировались и получили право быть администратором ... :-)
gbn

2
Это большой вопрос. Это пришло в голову многим, отвечающим с истинной страстью DBA !!! +1 за это !!!!
RolandoMySQLDBA

2
@jcolebrand - оно изображало действительно DBAish-решение для чего-то действительно серьезного :) Показывая трудности, связанные с жизнью DBA.
Дезсо

1
Это не так сложно, просто утомительно.
глиф

Ответы:


141

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

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

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


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


9
Очень сжатые и продуманные перспективы !!! Я хотел бы дать вам +3 (+1 за каждый), но этот сайт только позволяет мне дать +1 !!!
RolandoMySQLDBA

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

«Чем лучше БД выполняет свою работу, тем меньше у них видимости». это хорошо или плохо для администратора?
звон

2
@zinking - у многих профессий есть задачи, показывающие прогресс или достижения, и они могут получить признание и вознаграждение. Администратор базы данных не имеет этого и распознается только при наличии проблем. Это помогает?
Ли Риффель

@LeighRiffel мой вопрос: звучит так, что для того, чтобы администратор БД получил признание, он должен создать как можно больше проблем. этот вид объясняет мой опыт работы с DBA ... LOL
zinking

57

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

  1. Быть разработчиком и сделать переход к администратору
  2. Быть разработчиком и быть призванным администратором
  3. Обучение прямо из колледжа / училища, чтобы стать администратором
  4. Быть Сисадмином и переходить на двойную должность в качестве администратора

Быть разработчиком и сделать переход к администратору

В другом вопросе, который был задан на этом сайте, « Как могут администраторы баз данных быть более« дружественными к программистам » , я упомянул, что я был разработчиком в течение 16 лет, который работал с администраторами баз данных. Поработав с ними, я понял, что их опыт включает теорию баз данных, дискретную математику и опыт программирования, поэтому они могут видеть, как должна работать база данных и как должен выполняться запрос.

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

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

Быть разработчиком и быть призванным администратором

Для большинства разработчиков, которые не видят ничего, кроме разработки и написания кода для остальной части своей жизни, это может быть похоже на то, чтобы выбрать либо участие в реалити-шоу Survivor, либо в игровом шоу Wipeout . Новый администратор баз данных тратит свое время на взаимодействие с тем «черным ящиком» (известным нам всем как база данных), с которым они связывались в течение многих лет.

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

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

Это, безусловно, самый смертоносный способ стать администратором. Это также самый редкий путь - фактически, это практически неслыханно. Теперь мы говорим о том, чтобы впустить кого-то из McDonald's или Burger King в тот же итальянский ресторан.

Три кривые обучения участвуют:

  1. Применение навыков из колледжа / ремесленного училища в роли DBA,
  2. Взаимодействие с конкретной СУБД (PostgreSQL, Oracle, MySQL, DB2, Sybase, Ingres), и,
  3. Взаимодействие с разработчиками ( будущий администратор БД, изучающий достойные социальные навыки прямо из школы? Да, верно! ).

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

Быть Сисадмином и переходить на двойную должность в качестве администратора БД

Как бывший разработчик, а теперь как администратор БД, нельзя не принимать во внимание как должное роль SysAdmin.

Роль SysAdmin / DBA меня немного впечатляет. В хостинговой компании моего работодателя у нас есть парень из SysAdmin / DBA (SCMDBA). Он так завален инфраструктурными проектами и своими собственными внутренними концертами на MySQL. Я не завидую ему, я рекомендую его. Честно говоря, поскольку истинный разум SysAdmin / DBA мне чужд, я оставляю на усмотрение SysAdmin / DBA обновить этот параграф (или полностью заменить его), чтобы описать этот путь .

Заключение

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

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

Мой совет администраторам БД 28-29 лет? Работайте с людьми так же хорошо, как и с RDBMS. Если вы будете расти в обеих областях, вы можете стать администратором на долгие годы.


37

Администрирование базы данных затруднено по двум причинам

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

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


3
@ Давид в отношении вашего аргумента медленной обратной связи, во многих магазинах разработчики занимаются дизайном таблиц и тому подобное.
AK

27

Быть плохим администратором довольно легко

Если серьезно, администратор БД обычно несет особую ответственность за то, что часто имеет решающее значение для успеха или неудачи бизнеса: его данные

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

Я не думаю, что это вопрос «проще» или «сложнее» - просто вопрос того, насколько ценны ваши данные: спутник в космос не сложнее, чем человек, но вы должны проверить свои суммы намного больше для последнего


Привет, Джек. Я думаю, что быть администратором базы данных, как быть руководителем проекта. Это критически важные рабочие места, необходимые знания и опыт. И я думаю, что если в вашей компании есть плохой администратор базы данных, ваши продукты никогда не будут очень хорошими, даже если у вас есть хороший разработчик, верно?
Soner Gönül

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

1
это легко, если вы сгладили свой путь по пути !!! Вы согласились со мной, потому что данные - это наш бизнес и основной товар администратора баз данных. Если это ценно для АБД, АБД станет достаточно зрелым, чтобы справиться с этим. +1 !!!
RolandoMySQLDBA

18

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

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

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


3
зрелость перед лицом невзгод, мне это нравится !!! +1.
RolandoMySQLDBA

И, конечно же, вам нужно, чтобы компания снова заработала в кратчайшие сроки.
HLGEM

1
Да ... почему мы не можем просто поставить это в облаке -> коза-> герой -> Почему мы не можем просто положить это в облаке «цикл довольно быстрый
swasheck

18

Я знаю многих администраторов баз данных, и всем им по 28-29 лет. Все ли администрирование баз данных такое?

Самым хорошим, солидным программистам, которых я знаю, также по крайней мере 25 лет. Я предполагаю, что есть фактор, коррелирующий с возрастом + опытом = хорошим программистом. ;)

Я имею в виду, это опыт работы более 7-8 лет? Или быть администратором базы данных так сложно? Как вы думаете?

Быть администратором базы данных непросто, если вы это имеете в виду. Есть много вещей, которые вы должны знать как DBA. Это также означает, что школа, и это означает несколько лет опеки под другим человеком. Помните, что базы данных являются сет-логикой, о которой почти никто не ходит в школу достаточно долго, чтобы изучать ее, поэтому о ней никто не знает. Set-logic разделяет некоторые правила с алгеброй, но движки (MSSQL, Oracle и т. Д.) Сами по себе являются извращенными зверями реализации этих правил, поэтому вы должны понимать не только математику баз данных, но и реализацию, которую вы используете. бежать на вершине. Это даже не считается знанием вашего предпочтительного языка сценариев (PL / SQL, TSQL и т. Д.).

Затем подумайте, что как администратор базы данных вы будете нести ответственность за обеспечение того, чтобы наиболее важные бизнес-данные часто передавались вам в руки. Вы должны преодолеть самые худшие моменты «совершения глупых ошибок», и вам нужно научиться немного сдерживать себя. Большинство людей в 21-23 еще не узнали этого. Некоторые из нас в 30 до сих пор не имеют.

ОТ: Вот почему я говорю, что люди действительно ничего не знают, пока им не исполнилось 40 лет, и к тому времени их считают за бортом, когда на самом деле они просто достигают своего шага. (сказал как кто-то, кому 31)


+1 все верно, особенно в младшем возрасте, нуждающемся в самоограничении (исходит от того, кому 46 лет)
RolandoMySQLDBA


14

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

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

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

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

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

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


8

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

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

PS: Когда я был бывшим программистом, ставшим администратором баз данных, программисты обычно спрашивали меня: «Разве работа с DBA не скучна?»

Мой ответ: «Скучно только тогда, когда ты все делаешь правильно!». :)


7

Скорее, я только начинаю свой путь в DBA, но вот несколько причин, по которым людям трудно найти эту работу ... Это сложно, потому что:

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

Брэд Мак Ги написал книгу об этом, "Как стать исключительным администратором баз данных". Стоит прочитать, если вы собираетесь углубить вопрос.

Удачи!


2
+1 за не бойтесь освежить свои навыки людей.
Уолтер Митти

5

Я стал дба в 25 лет. Мне потребовалось 6 месяцев с того времени, когда я начал учиться, чтобы получить сертификат, а через 2 месяца у меня была работа. Я думаю, что решимость определенно играет главную роль. Для меня было несложно получить работу. Все, что требовалось, - это сила воли, чтобы учиться, и показать, что я способен учиться тому, что когда-либо ставится передо мной.

Я скажу, что все, что у меня было, это степень по психологии и справочная служба. Когда я получил работу администратора баз данных Oracle Apps, я сразу подумал, OMG, что все, что я изучал, чтобы стать CORE DBA, не помогло мне ни на секунду. Я помню, как чувствовал себя крайне подавленным. Мне приходилось ежедневно напоминать себе, что я могу этому научиться, и через 2 года я приобрел гораздо больше знаний.

Я хочу сказать, что быть администратором БД - это не сложно, совсем не сложно, но изучать все на работе и вне ее, что мы должны знать, как уже упоминалось ранее в dba, занимает много времени и требует много усердия. Я обнаружил, что у большинства людей моего возраста или моложе 27 нет ни усердия, ни желания изучать столь широкий спектр технологий. Но мне нравится моя работа в качестве администратора приложений Oracle Apps, и я с нетерпением жду всего, что постоянно будет использоваться для обучения. Вы можете сделать это, если вы к этому относитесь, не имеет значения, какого вы возраста!


2
Это дух. Что вы действительно узнали, так это принципы адаптации к работе с БД. Полевой опыт работы с Oracle открыл для вас политику, людей, производительность и проекты. Спасибо, что поделились своими мыслями как молодой администратор баз данных. +1 !!!
RolandoMySQLDBA

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

5

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


4

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

Я думаю, что старая сертификация MCDBA довольно хорошо подводит итог. Требовалось сдать четыре экзамена, экзамен SysAdmin, экзамен по сетевой инфраструктуре, экзамен по разработке баз данных и экзамен по администрированию SQL. Это довольно широкий круг тем, поэтому в реальности вы, скорее всего, придете к нему сначала через одну из них. Я бы сказал, что большая часть администрирования SQL стоит на плечах остальных трех, поэтому большинство людей изначально приходят к нему по одному из этих маршрутов. Например, SysAdmin, обрабатывающий резервные копии SQL (мое первое знакомство с SQL много лет назад), или Разработчик, проектирующий базу данных для кода, который они пишут. Начнем с того, что вы не будете знать все, но у вас будет основание, по крайней мере, в части, например, системы, на которой работает SQL и как работают разрешения, или методы программирования, используемые для связи с базой данных,

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

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

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


Вы делаете становление DBA звучащим как жизненный опыт. Дисциплинированный в начале и смягчающийся, когда вы выясняете, что такое DBA вместе с удобным владением им. +1 !!!
RolandoMySQLDBA

3

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

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

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

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

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

И да, мне сейчас 38 + 1/2 лет.


1
Ты все еще молодой. У вас есть достаточно времени, чтобы изучить социальные ( dba.stackexchange.com/questions/2471/… ) и технические ( dba.stackexchange.com/a/2913/877 ) аспекты работы администратором базы данных.
RolandoMySQLDBA

1

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.