Такі речі сильно різняться від місця до місця. На моєму нинішньому сайті лінія між розробниками та DBA дуже розмита - ми (DBA) теж пишемо PL / SQL, і вони (розробники) розсікають плани запитів. Усі ми бачимо себе однолітками, просто з різними наборами та обов'язками. Це дуже цікаво: нещодавно компанія вискочила на борт прокладки DevOps . Спільнота баз даних взагалі цього не розуміє; ми завжди працювали так. Зайве говорити, що ми працюємо надзвичайно продуктивно: рівень баз даних на сьогоднішній деньнайнадійнішою складовою частиною технології компанії є її простота в експлуатації (оскільки ми маємо навички в команді DBA, щоб зрозуміти програму на глибокому рівні, а розробники піддаються впливу DBA, щоб зрозуміти 24/7/365 операції та як щоб структурувати свої додатки для цього).
Але я знаю, що ви маєте на увазі, коли ви говорите про "неправильний" сорт розробника. Він самоучка, що саме по собі є шляхетною справою, але по дорозі він підбирає недовіру до будь-яких офіційних інструкцій. Він не знає, чого не знає , і обурюється тим, хто намагається його просвітлити, він вважає це образою своїх навичок самонавчання. Він навчився імперативному стилю програмування, тому що ви можете навчитися цьому без будь-якого з цих теоретичних речей, про які типи CS завжди лають (ну, погано; всі повинні знати big-Oта подібні біти теорії). Він також навчився трохи OO, просто тому, що йому потрібно використовувати Java. Але хороший професіонал баз даних - розробник або DBA - повинен комфортно мислити в декларативному стилі, обмірковуючи теорію множин, нормальні форми, навіть вміючи розуміти реляційну алгебру і обчислення. Спілкуватися з цими людьми дуже і дуже важко, оскільки вони активно ворожать до всього, що може вивести їх із зони комфорту, що в основному обмежується тим, як щось відформатувати на веб-сторінці. Якщо вони взагалі думають про бази даних, вони думають, що таблиця - це як клас, а рядок - як об’єкт. Ці хлопці буквально просто роблять SELECT * FROM TABLE
і фільтрують та сортують результати у власному коді. Вони насправді, насправді не розуміють, чому база даних краще, ніж плоский файл (і вони не так-то таємно думають, що кожен, хто використовує реляційну базу даних, - ідіот).
Дозвольте навести справжній приклад: нещодавно я розмовляв з одним із цих типів про проблеми, пов'язані з відмовою випуску нашого програмного забезпечення після того, як він почав випускатися, якщо проблема проскочила минулий рівень якості. Я пояснив, що, хоча ми можемо відмовити його додаток (один із багатьох, хто має доступ до бази даних), йому потрібно буде мати можливість працювати з ще розгорнутою базою даних. Він запитав, чому, і я сказав, що добре, що в цих нових таблицях і стовпцях будуть реальні дані про клієнтів. Потім він сказав, тож просто скопіюйте його у тимчасову таблицю, у чому проблема. Я з недовірою дивився на нього: коли клієнт дзвонить і каже, мої гроші з мого рахунку зникли, що ми йому скажемо, що це нормально, це у тимчасовій таблиці? Він просто не зрозумів, що коли ти маєш справу з чужими грошима, ти повинен діяти як відповідальний дорослий. Я знаю, що він все ще не робить; він більше не з нами.
Табір MySQL давно був таким; вони би сказали, що вам не потрібні транзакції, іноземні ключі тощо, якщо ви думали, що це зробили, тільки тому, що ви не мали уявлення, що ви робите, тощо, тощо, тощо (тоді, коли вони виросли, вони спокійно додали їх). Це такі люди, для яких ORM, такі як ActiveRecord або Hibernate, були розроблені, щоб вони могли писати програми баз даних, не потребуючи дотику до SQL. Використання цих технологій я вважаю червоним прапором - це не компанія, яка цінує навички DBA. Те, що вони насправді хочуть, - це няня ...