Pull to refresh
  • by relevance
  • by date
  • by rating

«PostgreSQL в кейсах» — продвинутый вебинар 28 января

Southbridge corporate blog PostgreSQL *SQL *Database Administration *Development Management *


Приглашаем на вебинар «PostgreSQL в кейсах».


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

Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Views 2K
Comments 5

18 марта: DataBase Meetup Online

Центр Финансовых Технологий (ЦФТ) corporate blog Oracle *PostgreSQL *Conferences DevOps *


В четверг, 18 марта, состоится DataBase Meetup Online – встреча для разработчиков и администраторов баз данных.

Начало в 15:00 (время МСК).

Для участия необходимо зарегистрироваться

В ответ на отправленную заявку вы получите ссылку на трансляцию и все явки-пароли.
Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Views 416
Comments 0

Weekend offer в X5 для системных аналитиков

X5 Group corporate blog Semantics *System Analysis and Design *SQL *UML Design *

Приглашаем на Weekend Offer в X5 Group. Сокращаем дистанцию для системных аналитиков до двух дней: 31 июля — интервью, 2 августа — оффер.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Views 767
Comments 1

Укротителям слонов: 30 сентября пройдёт PGConf.NN

PostgreSQL *SQL *Data storage *

30 сентября 2021 года в Нижнем Новгороде пройдёт PGConf.NN – техническая конференция по СУБД PostgreSQL, организованная компанией Postgres Professional при активной поддержке партнера соорганизатора – ассоциации IT-компаний iCluster.

Участие бесплатное.

А что там будет?
Total votes 9: ↑9 and ↓0 +9
Views 199
Comments 3

Какую СУБД выбрать и почему? (Статья 1)

Oracle *SQL *NoSQL *Microsoft SQL Server *
Sandbox

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

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

Читать далее
Total votes 45: ↑34 and ↓11 +23
Views 12K
Comments 28

Spill-файлы в Greenplum

TINKOFF corporate blog SQL *

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

Читать далее
Rating 0
Views 234
Comments 0

MySQL 5.1 — что нового?

Website development *
В конце ноября состоялся бета-релиз MySQL 5.1. Это еще не стабильная версия, но уже по ней можно понять, какие новшества ожидают нас в финальном релизе.

Как пишут авторы сайта whenpenguinsattack.com, в версии 5.1 среди прочих, появляются следующие возможности:

* Разделение таблиц. Теперь одна таблица может с точки зрения MySQL разбиваться на части, которые физически сохраняются в различных местах. Для пользователя СУБД такая таблица будет по-прежнему единой и разбивка пройдет прозрачно.

* API для плагинов. Теперь в MySQL будут подгружаться плагины (различные компоненты) во время выполнения программы, т.е. без перезапуска сервера. Первым шагом в этом направлении становится появление плагинов полнотекстового парсинга, предназначенных для написания пользовательских фильтров индексируемого текста (как пример — реализация полнотекстового поиска по PDF).

* Планировщик событий. В базе данных появляется новый объект — событие (event). Это набор SQL-команд, которые будут выполняться регулярно по заданному расписанию.

* Строчная репликация. Раньше репликация основывалась на отправке SQL-выражений от машины master к машине slave, а теперь появится возможность использовать механизм записи событий в двоичный лог, в котором будет описываться способ обработки конкретных строк.

оригинал
Total votes 11: ↑9 and ↓2 +7
Views 1.3K
Comments 10

SQL-задачка

Lumber room

Дано:


Таблица Numbers с одной колонкой ID типа INT.
Значение @ID
Значение @MaxAmount

Найти:


Одним SELECT'ом присвоить параметру @Available единицу (1) если количество записей в таблице не превышает @MaxAmount и в таблице нет записей со значеним равным @ID. В противном случае ничего не присваивать параметру @Available.

Усложнение:


Сделать все это без оператора CASE.

P.S. Я эту задачу для себя решил и она показалась мне настолько интересной, что я решил поделиться ею с вами. Это как задачи со звездочкой в учебниках по алгебре и геометрии.
Total votes 17: ↑12 and ↓5 +7
Views 1.1K
Comments 10

Основы Linq. Linq и n-уровневая архитектура

Lumber room
Майкрософот предоставило новое легкое в освоении и очень мощное и гибко расширение языков .NET для обработки данных под названием Linq.

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

К примеру , есть таблица tbCustomers ((Int64)CustID, (String)Name, (int32)Age) и есть класс Customers:

publicclass Customers
{
    private Int64 _CustID;
    public Int64 CustID
    {
        get { return _CustID; }
        set { _CustID = value; }
    }

    private string _Name;
    public string Name
    {
        get { return _Name; }
        set { _Name = value; }
    }

    //Тип Int32 допускающее значение null
    private Int32? _Age;
    public Int32?Age
    {
        get { return _Age; }
        set { _Age = value; }
    }

    //Инициализаторы
    public Customers()
    {
    }
   
    public Customers(Int64 CustID, string Name, Int32? Age)
    {
        _CustID = CustID;
        _Name = Name;
        _Age = Age;
    }

    //Получение набора объектов из поставщика данных
    publicstatic List<Customers> GetCustomers()
    {
        return CustomersData.GetAllCustomers();
    }
}

и необходимо получить из поставщика набор объектов Customers.

Стандартное решение этого вопроса в .NET2.0 является использование пространства имен System.Data.SqlClient:

publicstatic class CustomersData
{
    //ИспользованиеSqlClient
    public static List<Customers> GetAllCustomers()
    {
        List<Customers> lst = new List<Customers>();
        using (SqlConnection conn = new SqlConnection(«Data Source=…»))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand(«SELECT CustID, Name, Age FROM tbCustomers», conn);
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                lst.Add(new Customers((Int64)reader[«CustID»], (String)reader[«Name»], (Int32)?reader[«Age»]));
            }
        }
        return lst;
    }
}

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

publicstatic class CustomersData
{
    //ИспользованиеLinq
    public static List<Customers> GetAllCustomers()
    {
        LinqDcDataContext db=new LinqDcDataContext();
        IEnumerable<Customers> result = db.tbCustomers.Select(c => new Customers(c.CustID, c.Name, c.Age));
        //ПриводимнаборIEnumerable<Customers> кList<Customers>
        return new List<Customers>(result);
    }
}




Оригинал статьи Linq в n-уровневой архитектуре
Total votes 5: ↑5 and ↓0 +5
Views 1.7K
Comments 29

XQuery и виртуализация

Lumber room
XQuery — это не просто технология из мира XML, а что-то, что всем придётся знать. Каким образом XQuery начинает своё наступление, рассказывается в этих статьях:

XQuery и абстракция данных
Функциональность XPath 2.0 (через XQuery или XSLT) даёт возможность работы с объектами и в тех случаях, когда данные не включены в объект, а хранятся во внешних источниках или даже существуют только в виртуальной форме.

XQuery, libferris и виртуальные файловые системы.
С помощью libferris можно всё что угодно превратить в виртуальную файловую систему. А так как ФС является деревом, то получается, что совместное использование XQuery и libferris даёт универсальную систему запросов к данным.

Спасибо kate_kulikova за перевод.
Total votes 9: ↑7 and ↓2 +5
Views 496
Comments 6

Краткий справочник по PostgreSQL 8.3

PostgreSQL *


Вышла новая версия краткого справочника по работе с PostgreSQL 8.3.

скачать в формате PDF/A4

скачать в формате HTML




оригинал материала

Новости Web 2.0, Веб сервисы, Социальные сети, Мэшап, AJAX, Теги
Total votes 17: ↑16 and ↓1 +15
Views 2.9K
Comments 3

PostgreSQL 8.3.0

Lumber room
С момента выхода предыдущей не-багфикс версии PostgreSQL (8.2) прошло чуть больше года, а в официальном блоге уже пишут «Watch for 8.3 this week!».

Ну вот, похоже, дождались; хоть на сайте ещё и не объявлено (upd: теперь объявлено), но уже можно скачать и исходники новой версии 8.3.0, и даже бинарники под Windows.

А качать стоит. Согласно Release notes, в PostgreSQL 8.3 появилось много вкусного:
Читать дальше →
Total votes 17: ↑11 and ↓6 +5
Views 301
Comments 5

PHP для нетребовательных. База Данных на коленке.

Lumber room
Даже если у меня будет 1000 клиентов, для меня не будет острой необходимости в MySQL, а пока их значительно меньше… около 50, то это вообще не вопрос.
Автоматизация следующей задачи: необходимо хранить Логин и Время(регистрации) для каждого клиента.
Их 50, пусть 100.
Может потом еще пара параметров добавится.
Самый простой способ — хранить данные в файлах, ну не нравится мне SQL для таких простых задач. Поэтому решение называл — На коленке.

Формат файла?
Сначала хотел сделать для каждого пользователя отдельный PHP файл, который просто выполняешь при необходимости (как JSON)
Очень удобно, но его надо как-то генерить — неудобно.
В PHP есть функционал для работы с CSV форматом — тоже не нравится. Когда-то на Perl писал свою БД при помощи сериализации объектов.
т.е. берем хэш. Сериализуем его и пишем. Что там в файле — уже не важно, Желательно чтобы можно его было руками поправить легко.
Ну и все… В PHP есть такая же фигня.

В итоге Простецкая БД пишет так (PHP4):
$USER['timepaid']=$dt+2592000; //генерим хэш
$userdata=serialize($USER); //сериализуем
$handle = fopen ('папка-мамка/'.$u.'.txt',«w») or die('Моцарт');
fwrite($handle,$userdata); //пишем на коленке
fclose ($handle);

А читаем так:
$userdata=file_get_contents('папка-мамка/'.$u.'.txt'); //читаем файло
$USER=unserialize($userdata); // распаковывает
if ($dt_<$USER['timepaid']){} //и работаем с готовым хэшем

Преимущества на лицо:
1. Очень быстро все это написать
2. Коду почти нету(для PHP5 все будет еще короче)
3. не требует купленных у хостера Баз
4. Через FTP можно легко подправить любые данные
5. Проблемы с одновременным доступом практически исключены т.к. для каждого пользователя свой файл

Недостатки:
Естественно это лишь для начального этапа, когда клиентов перевалит за 500-1000 придется переходить на MySQL, ибо на FTP будет заходить мутно для ручной правки.
Total votes 30: ↑5 and ↓25 -20
Views 584
Comments 19

Оптимизация работы с MySQL

MySQL *
Ни для кого не секрет, что работа с базой данных занимает большую часть работы практически любого сайта. И именно работа с БД чаще всего является узким местом веб-приложений.
В этой статье хотелось бы дать практические советы использования MySQL.
Сразу оговорюсь:
  • данная статья написана про MySQL, хотя общие вещи скорее всего справедливы для любой СУБД.
  • все написанное в статье является моей личной точкой зрения, и не является истиной в последней инстанции.
  • советы не претендуют на новизну и являются результатом обобщения прочтенной литературы и личного опыта.
  • в рамках данной статьи я не буду касаться вопросов конфигурирования MySQL.

Проблемы при использовании MySQL можно разделить на следующие три группы(в порядке значимости):
  1. Неиспользование или неправильное использование индексов.
  2. Неправильная структура БД.
  3. Неправильные \ неоптимальные SQL запросы.

Остановимся на каждой из этих групп подробнее.
Читать дальше →
Total votes 54: ↑52 and ↓2 +50
Views 70K
Comments 107

Главное отличие версии 8.3, которое может вызвать проблемы при переходе на нее

PostgreSQL *
Встала задача переноса сайта на новый сервер. Из проблем ожидалась несовместимость с PHP5, которая в итоге очень быстро решилась, а сайт все равно не поднимался. Выяснилось, что не отрабатывают простейшие запросы к БД. При ближайшем рассмотрении оказалось, что не происходит автоматическое преобразование типов.
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Views 600
Comments 41

Полмиллиона серверов IIS попали под атаку

Information Security *
В интернете распространяется эпидемия нового вируса, который эксплуатирует уязвимость в популярном веб-сервере Microsoft Internet Information Server. С заражённых сайтов осуществляется редирект на сайт с вредоносным кодом.

Определить факт заражения можно по появлению новой строчки в коде страниц.



Похоже, эпидемия приобретает глобальный масштаб. Первой на это обратила внимание антивирусная компания Panda Security, которая оценила количество поражённых серверов IIS в 282 тыс., но не прошло и суток, как компания F-Secure подняла планку до 500 тыс. Собственно, такую же картину показывает поиск через Google.



Эксперты предупреждают: если раньше, чтобы избежать заразы, нужно было воздерживаться от посещения сомнительных сайтов, то теперь подхватить трояна можно даже при посещении вполне респектабельного сайта, на котором установлен IIS.
Total votes 59: ↑51 and ↓8 +43
Views 707
Comments 105

Подсветка исходного кода

.NET *
Переписал и изменил (специально для Хабры, а точнее для .NET блога) на досуге небольшой модуль, который подсвечивает исходный код C#, VB.NET, HTML/XML/ASPX, JavaScript и SQL.

Если Вы хотите вставить кусок исходного кода в новую запись или комментарий к записи, используйте Source Code Highlighter, который подсветит Ваш код.

Есть поддержка нумерации строк и вставки переноса строк, если вы отметили «Отключить автоформатирование» при написании поста.

Читать дальше →
Total votes 34: ↑30 and ↓4 +26
Views 4.3K
Comments 82

RE: Как правильно писать SQL-запросы

SQL *
по поводу утверждения «Везде, где можно, используйте Prepared Statements» в статье Как правильно писать SQL-запросы могу сказать следующее: Производительность хранимых процедур MS SQL Server 2000
В общем, кэширование кода — это не всегда хорошо.
Total votes 25: ↑19 and ↓6 +13
Views 5.6K
Comments 23