Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
-6 / 1 / 0
Регистрация: 07.06.2019
Сообщений: 38
1

Для чего нужна база данных Python программисту?

27.06.2019, 12:57. Показов 5239. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Учу Пайтон уже почти как два месяца. Имею не плохие знание по нему как на свой стаж изучение. Почти прошёл свою первую книгу с которой начал AByteOfPython, и не знаю что дальше изучить после него для хорошего опыта. Все говорят учить базу данных СУБД. Но не понимаю для чего они вообще нужны.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2019, 12:57
Ответы с готовыми решениями:

Для чего нужно изучать базу данных Python программисту?
Учу Пайтон уже почти как два месяца. Имею не плохие знание по нему как на свой стаж изучение. Почти...

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

База данных для кино-сайта. Нужна или не нужна?
Рыскал интернет и наткнулся на комментарий на одном сайте: Вот сайт...

Нужна база данных для сайта
Добрый вечер!Помогите найти базу данных для сайта. Нужна база данных Калининградской области....

Объектная база данных для python
День добрый Нужна база данных, умеющая сохранять объекты как они есть в базу, что-то вроде ZODB...

26
Автоматизируй это!
Эксперт Python
7107 / 4611 / 1215
Регистрация: 30.03.2015
Сообщений: 13,243
Записей в блоге: 29
27.06.2019, 13:25 2
VictorDit, думаешь если создать много одинаковых тем с одним вопросом то можно получить разные ответы?
раз не понимаешь, значит еще рано тебе БД, читаем следующую книгу по пайтон -Лутца
0
-6 / 1 / 0
Регистрация: 07.06.2019
Сообщений: 38
27.06.2019, 13:52  [ТС] 3
Welemir1, я не чаяно создал пару тем с одним вопросом какбы
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
27.06.2019, 14:24 4
VictorDit, очевидно, чтобы хранить данные.
Они (базы) хранят в себе хитрую структуру разметки, которая позволяет быстро писать и читать данные, по сравнению с простыми, неструктурированными файлами.

На мой субъективный взгляд, этот вопрос неплохо описывается в книге "Джоэл о программировании", глава 2, "обращаясь к основам". Правда, там очень долгое подведение к этому вопросу, но уж чем богаты.
0
Модератор
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
27.06.2019, 14:28 5
Цитата Сообщение от VictorDit Посмотреть сообщение
я не чаяно создал пару тем с одним вопросом какбы
Все, срочно 7 лет расстрела(кара определяется, обычно, модератором).
Что касается баз данных, так они не только python - программисту нужны
0
-6 / 1 / 0
Регистрация: 07.06.2019
Сообщений: 38
27.06.2019, 14:35  [ТС] 6
Dax, Ну как бы понятно, я в пример просто сказал пайтон программисту
0
Модератор
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
27.06.2019, 14:41 7
VictorDit, нужны базы данных, как заметилdondublon, для хранения данных и управления ими.

Добавлено через 3 минуты
Если уж на то пошло, я считаю, что отдельными языками, будь то python, delphi , c++ или что иное , инструментарий,который дает БД и SQL можно только дополнить, но, нельзя заменить.
0
Просто Лис
Эксперт Python
5749 / 3544 / 1059
Регистрация: 17.05.2012
Сообщений: 10,384
Записей в блоге: 9
27.06.2019, 14:49 8
База данных нужна, чтобы хранить данные. Структурированные. Допустим, структуру Студент (фио, год рождения, номер студенческого) ты ещё может сохранить в текстовом файле. И вот тебе потребовалось добавить структуры Дисциплина (название предмета) и выставить оценки студентам по всем предметам за конкретный семестр.

Как будешь хранить всё это? И связи между объектами. Ладно, сотню-другую объектов ты сохранишь, а как будешь делать запросы вида: вывести всех студентов, у которых ни по одному предмету за все семестры нет троек?

В базе данных это все описывается легко и запросы к БД пишутся на отдельном языке запросов (SQL).
1
0 / 0 / 0
Регистрация: 27.06.2019
Сообщений: 3
27.06.2019, 14:50 9
чтобы,чтобы
0
Просто Лис
Эксперт Python
5749 / 3544 / 1059
Регистрация: 17.05.2012
Сообщений: 10,384
Записей в блоге: 9
27.06.2019, 14:52 10
Да и БД тупо быстрее работает, даже при полном обходе таблицы, чем если бы ты вручную перебирал данные в поисках чего-то конкретного.

Добавлено через 58 секунд
Наверное, СУБД всё-таки, нужно разделять эти понятия.
0
60 / 86 / 16
Регистрация: 25.03.2019
Сообщений: 235
27.06.2019, 16:20 11
Добавлю к написанному. Небольшую базу данных можно, как уже заметили, и в текстовом файле хранить. Но ведь ее обычно не только хранить надо, а еще и искать данные в ней. И если с помощью SQL вы просто пишите, что нужно выбрать что-то, то для текстового файла будете еще и дополнительный код для поиска в нем создавать.
0
1728 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
28.06.2019, 17:15 12
VictorDit, Вы понимаете зачем Вашему мозгу нужна память? Вот для этого же память в виде базы данных нужна и компьютеру. Почему база данных а не просто текстовый файл? Потому что в базе данных все разложено по полочкам (в таблицу), как и у Вас в памяти все разложено по полочкам, какая информация к чему относится.
Вот посмотрите мою телефонную книгу.
Телефонный справочник
Если бы я не использовал питоновскую базу данных на основе модуля shelve, то не смог бы хранить в этой телефонной книге телефоны. Тогда зачем она была бы нужна. Это все равно, что записывать в бумажную телефонную книгу телефоны ручкой с исчезающими чернилами.
А лучше всего вы поймете необходимость использования базы данных для хранения информации, и вообще как создается проект на питоне, если прочитаете первую главу в книге Лутц М. Программирование на Python. Том 1 (4-е издание, 2011)
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
28.06.2019, 19:10 13
Ладно, не откажу себе в удовольствии процитировать Спольски.

Каким образом реляционная база данных реализует SELECT author FROM
books? В реляционной базе данных каждая строка таблицы (например, таб-
лицы books) имеет одинаковый размер в байтах, и у каждого поля есть по-
стоянное смещение от начала строки. Например, если все записи таблицы
books имеют длину 100 байт, а поле author имеет смещение 23, то авторы
хранятся в байтах, начиная с 23, 123, 223, 323 и т. д. Какой же код позволит
перемещаться к следующей записи в результатах этого запроса? В принци-
пе он имеет такой вид:

pointer += 100;

Единственная команда CPU. Ну о-о-очень быстро.
Теперь взглянем на таблицу books в XML.
XML
1
2
3
4
5
6
7
8
9
10
11
<?xml blah blah>
<books>
<book>
<title>UI Design for Programmers</title>
<author>Joel Spolsky</author>
</book>
<book>
<title>The Chop Suey Club</title>
<author>Bruce Weber</author>
</book>
</books>
Вопрос на сообразительность. Какой код позволит переместиться
к следующей записи?
Да-да...
0
1728 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
28.06.2019, 20:10 14
dondublon, Не люблю, когда выражаются заумно. У нас на работе был один программист, который простые вещи излагал используя мало кому понятный жаргон, что его мало кто понимал. И он считал, что это его достоинство. Талант заключается в том, что бы сложные вещи объяснить, как можно более понятным языком. Увы, не все это умеют. Такие специалисты (может даже и очень хорошие специалисты в программировании), точно не могут быть хорошими преподавателями, если не могут понятно объяснять сложные вещи. Лутц именно потому написал хорошие книги по питону, что он кроме глубоких знаний питона, еще и опытный преподаватель. Поэтому его книги для того, что бы научить новичков, а не просто продемонстрировать свои глубокие познания, как это бывает у некоторых авторов.
Вопрос на сообразительность. Для чего существует данный раздел форума, для того что бы помочь новичкам или для того, что бы запудрить им мозги?
Для профессионалов на этом форуме существуют другие разделы.
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
29.06.2019, 11:28 15
Viktorrus, по-моему, приведённый фрагмент объясняет именно на пальцах, проще некуда.
0
1728 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
29.06.2019, 19:18 16
dondublon, Извините, Я не профессионал, только изучаю питон. Однако когда то изучал теорию реляционных баз данных, правда сейчас уже подзабыл. На работе реализовал несколько проектов на базе MS Access, для планового отдела и для бухгалтерии. Я не понял, какое отношение теория реляционных баз данных имеет к вопросу "Для чего нужна база данных Python программисту?" Кстати в питоне, используя модуль shelve и ООП, мы получаем базу данных, которая является просто словарем, который кстати не упорядочен, с ключами и их значениями в виде экземпляров класса. И таблица фактически имитируется атрибутами экземпляров класса. Поэтому высказывание Спольски , которое Вы процитировали, здесь не применимо. Оно применимо только к реляционным базам данных, которые созданы в виде реальных таблиц со столбцами и строками, как например в SQL или в MS Access, и во многих других стандартных базах данных. Но работать с ними из питона, это отдельная тема, для начала проще всего работать с базой данных, используя встроенный в питон модуль shelve. Но если VictorDit, начнет с того, что изучит теорию реляционных баз данных и будет сразу работать с SQL, тогда ему будет интересно, понимать структуру реляционных баз данных, как в них избегать избыточность, разбивать на несколько таблиц и правильно их связывать. Извините, но я просто понял его вопрос по другому.
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
29.06.2019, 21:55 17
Цитата Сообщение от Viktorrus Посмотреть сообщение
Я не понял, какое отношение теория реляционных баз данных имеет к вопросу
Цитата Сообщение от VictorDit Посмотреть сообщение
говорят учить базу данных СУБД
СУБД (Системы управления базами данных) по модели данных бывают либо SQL (Реляционные), либо всякие NoSQL (не реляционные) типа MongoDB или Redis, но никак не shelve\pickle, поскольку эти модули реализуют лишь функционал сериализации\десериализации Python структур в файл без всякой возможности поисковых запросов и не выполняют главных функций СУБД:
  • управление данными во внешней памяти (на дисках);
  • управление данными в оперативной памяти с использованием дискового кэша;
  • журнализация изменений, резервное копирование и восстановление базы данных после сбоев;

Собственно, и изучать поэтому тут нужно много, долго и кропотливо, потому что реляционная теория сама по себе очень сложна, диалектов SQL много, разновидностей СУБД (только основных) не меньше десятка... А работодатели требуют знать как можно больше. То есть знание СУБД это must have для программиста.
Ну а в pickle\shelve учить нечего - прочитал доку за 10 минут и готово.
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
29.06.2019, 23:07 18
Цитата Сообщение от Viktorrus Посмотреть сообщение
Я не понял, какое отношение теория реляционных баз данных имеет к вопросу "Для чего нужна база данных Python программисту?"
Бывает.
Видимо, то отношение, что под "базами данных" обычно понимают именно реляционные, особенно начинающие.
Цитата Сообщение от Viktorrus Посмотреть сообщение
Кстати в питоне, используя модуль shelve и ООП, мы получаем базу данных,
А вот хранение данных в памяти базами данных не называют.
Цитата Сообщение от Viktorrus Посмотреть сообщение
Поэтому высказывание Спольски , которое Вы процитировали, здесь не применимо. Оно применимо только к реляционным базам данных
Спасибо, кэп.
0
1728 / 968 / 199
Регистрация: 22.02.2018
Сообщений: 2,694
Записей в блоге: 6
30.06.2019, 10:31 19
Цитата Сообщение от Garry Galler Посмотреть сообщение
СУБД (Системы управления базами данных) по модели данных бывают либо SQL (Реляционные), либо всякие NoSQL (не реляционные) типа MongoDB или Redis, но никак не shelve\pickle, поскольку эти модули реализуют лишь функционал сериализации\десериализации Python структур в файл без всякой возможности поисковых запросов и не выполняют главных функций СУБД
Извините, Вы как раз в своем высказывании и говорите о том, что достоинства реляционных баз данных используются благодаря СУБД.
Теперь немного о понятиях.
Базой обычно называют некоторое множество или предметов или информационных объектов, как то овощная база, или база основных знаний, которыми нужно овладеть, чтобы стать специалистом в той или иной области деятельности. Бумажный каталог в библиотеке, это база данных о наличии книг в библиотеке. Если бумажный каталог книг завести в компьютер в том виде списка, как он в каталоге (сгруппированный по некоторым признакам), то это будет электронная база, но не реляционная.
И так база данных не является синонимом реляционная база данных, Вы об этом написали.
Но где Вы увидели, что я называю модуль shelve базой данных? Тут Вы, извините, приписываете мне то, чего я не говорил.
Цитата Сообщение от Viktorrus Посмотреть сообщение
Кстати в питоне, используя модуль shelve и ООП, мы получаем базу данных
Я написал, что используя модуль получаем базу данных, а не то, что модуль shelve является базой данных.
И то, что с помощью модуля shelve создается база данных, говорит и Лутц, если хотите поспорьте с ним.

"Мы создали вполне функциональную базу данных: наши классы одновременно реализуют хранение данных записей и их обработку и заключают в себе реализацию поведения. А модули pickle и shelve обеспечивают простой способ сохранения нашей базы данных между запусками программы. Это не реляционная база данных (она хранит объекты, а не таблицы, и запросы имеют вид программного кода на языке Python, обрабатывающего объекты), но ее вполне достаточно для многих видов программ. Если потребуются более широкие функциональные возможности, мы сможем перевести это приложение на использование более мощных инструментов. Например, если нам потребуется полноценная поддержка запросов на языке SQL, мы сможем использовать библиотеки, позволяющие сценариям на языке Python путем переноса взаимодействовать с реляционными базами данных, такими как MySQL, PostgreSQL и Oracle."
Лутц М. Программирование на Python. Том 1 (4-е издание, 2011) стр.81-82.

Такая база данных не может быстро обрабатывать объемы с сотнями тысяч записей в отличие от СУБД работающих с реляционными базами данных типа SQL. Но для небольшого количества данных, питоновская база данных , созданная с помощью shelve, принимая во внимание современные мощности компьютеров, вполне достаточна. И на начальном этапе, вполне можно обойтись такой базой данных, пока вы не изучили SQL.
0
Эксперт Python
5418 / 3842 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
30.06.2019, 11:47 20
Цитата Сообщение от Viktorrus Посмотреть сообщение
Но где Вы увидели, что я называю модуль shelve базой данных?
Нигде. СУБД и БД - разные понятия. Я же написал про СУБД и про то что shelve таковой (т.е. системой) не является и, следовательно, не отвечает вопросу ТС.

Цитата Сообщение от Viktorrus Посмотреть сообщение
на начальном этапе, вполне можно обойтись такой базой данных, пока вы не изучили SQL.
Да, можно. Но тут, как я уже написал, нечего изучать.
ТС, естественно, не понимает терминологии - поэтому написал в своем посте и база данных и СУБД. Изучать же ТС-у нужно именно СУБД (и, понятное дело, в первую очередь на основе реляционных БД, т.е. SQL) - как ему правильно и посоветовали на где-то на другом форуме.
0
30.06.2019, 11:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.06.2019, 11:47
Помогаю со студенческими работами здесь

Нужна готовая база данных для курсовика
Мне нужна готовая база данных в Access c 5 таблицами на любую тему. А лучше готовый курсовик

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

Для чего программисту 1С нужно высшее техническое образование.
Очень часто вижу в требованиях на вакансю программиста 1С &quot;Высшее техническое образование&quot;. Мне...

Upload file. Нужна ли база данных для загрузки файла?
Тут на сайте есть объяснение как его загружать, но...по-моему много лишнего. Нужна ли база данных...

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

Очень нужна база данных для работы с документами разных форматов
Добрый вечер. Обращаюсь к вам за помощью. У меня по роду работы скопился огромный архив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru