Journal Postgresql, un retour d'expérience

Posté par  (site web personnel) . Licence CC By‑SA.
107
15
mai
2020

Un petit peu de contexte

J'ai rejoint une grande banque asiatique, à Londres, il y a de cela 10 ans, pour travailler sur un de leurs systèmes, une grosse application financière en C++. Quelques années plus tard, les affaires n'ayant pas fonctionné comme prévu, ils décident de se débarrasser de l'équipe à laquelle j'appartenais. Heureusement, une petite institution financière européenne s'est montrée intéressée par le système et l'équipe, et plutôt que je devoir payer des indemnités de licenciement, mon ancien (…)

Requêtes et jointures avec pgModeler (PostgreSQL)

Posté par  . Édité par BAud, Davy Defaud, Ysabeau 🧶 🧦, Benoît Sibaud, claudex et ZeroHeure. Modéré par claudex. Licence CC By‑SA.
64
29
jan.
2020
Base de données

Bon, voilà, j’ai développé ce greffon pour pgModeler (C++/Qt), et j’ai envie de le partager dans une petite dépêche.

Mes motivations principales étaient de pouvoir effectuer des requêtes dans mon logiciel de modélisation préféré, bien entendu, et le fait que les logiciels de modélisation que je connais ne prennent pas en charge les jointures existantes ou automatiques.

Votre client SQL est cool ? Mais est‑il cool à ce point ?! :)

Rapide présentation de pgModeler

pgModeler est un logiciel de modélisation de base de données. Bien que plutôt généraliste — si l’on s’en tient à un modèle logique des données — il est spécialisé PostgreSQL. Il permet entre autres de :

  • construire par interface graphique un modèle de base de données (tables, schémas, rôles…), mais bien plus ; en fait, il propose toutes les fonctionnalités offertes par PostgreSQL, allant jusqu’aux extensions PostGIS ;
  • créer une base de données à partir d’un modèle : passer de la représentation à l’implémentation ;
  • à l’inverse, créer un modèle à partir d’une base de données ;
  • comparer une instance PostgreSQL avec un modèle et produire — voire réintégrer — les différences entre schémas ;
  • administrer sa base, avec un module riche, mais qui n’égalera sans doute pas pgAdmin ;
  • produire un dictionnaire des données.

Des discussions sont en cours pour rendre pgModeler nativement compatible avec les autres systèmes de gestion de bases de données relationnelles (SGBDR) grâce à l’excellent extracto‑chargeur (ETL) pgLoader.

PostgreSQL 11.0

Posté par  . Édité par Snark, ZeroHeure, Davy Defaud, BAud, Julien Jorge, palm123, Nils Ratusznik et NeoX. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
64
22
oct.
2018
Base de données

PostgreSQL est un système de gestion de base de données relationnelle. La version 11 est sortie ce 18 octobre 2018.

Logo PostgreSQL

Les principales nouveautés, détaillées en seconde partie de la dépêche, se sont concentrées sur la gestion des bases ayant un très gros volume de données.

Interview de Dimitri Fontaine, contributeur majeur à PostgreSQL

Posté par  . Édité par ZeroHeure, Davy Defaud, Benoît Sibaud, Nils Ratusznik et palm123. Modéré par ZeroHeure. Licence CC By‑SA.
56
25
fév.
2018
Base de données

Contributeur de longue date au projet PostgreSQL, Dimitri Fontaine a publié il y a quelques mois un ouvrage consacré au développement d’applications et au « SGBD libre de référence » : Mastering PostgreSQL in Application Development. On s’est dit que cela pourrait être une bonne occasion pour avoir sa vision sur l’évolution de PostgreSQL et des rapports entre développeurs et bases de données.

Journal Fusionner deux profils signal-desktop pour retrouver ses conversations

Posté par  . Licence CC By‑SA.
54
18
avr.
2022

Me revoilà pour un journal un peu technique. On part à l’aventure et on va notamment parler de Signal, de SQL, SQLite, de son extension fts5 (vite fait) et de SQLCipher (variante de SQLite capable de chiffrer les bases de données, découverte à l’occasion), et de fusion de deux bases de données Signal pour reconstruire un historique complet et « réparer » un profil Signal un peu moisi.

Généralités sur Signal

Signal est une application de messagerie instantanée chiffrée de (…)

Écrire une appli web en une journée avec SQLPage

Posté par  (site web personnel) . Édité par Nÿco, Benoît Sibaud, gUI, BAud et bobble bubble. Modéré par Nÿco. Licence CC By‑SA.
54
4
juil.
2023
Technologie

Aujourd'hui, je souhaite vous présenter le logiciel SQLPage, un outil open-source (MIT) qui permet de développer des applications web complètes, avec une belle interface graphique et une base de données, entièrement en SQL.

Le SQL est un langage très simple, qui permet de faire des recherches dans des base de données. Il est utilisé depuis les années 80, et est encore omniprésent aujourd'hui. Contrairement aux langages de programmation traditionnels, on peut apprendre les bases de SQL en une journée, et commencer à faire des requêtes complexes croisant plusieurs tables de données très rapidement.

Dans une application web traditionnelle, on développe aujourd'hui en général trois composants :

  • un front-end, qui gère uniquement l'interface utilisateur,
  • un back-end, qui traite les requêtes du front-end et contient le cœur de la logique de l'application lorsque celle-ci est complexe,
  • une base de données qui va stocker et structurer les données, s'assurant de leur cohérence et de leur bonne organisation.

Les deux premiers éléments sont en général ceux sur lesquels les programmeurs passent le plus de temps lors du développement d'une application. Et pourtant, c'est souvent le dernier, la base de données, qui contient la substantifique moelle de l'application !

Ce que propose SQLPage, c'est de s'abstraire complètement du back-end et du front-end, et générer toute une application entièrement en SQL. Nous allons voir ici comment c'est possible, avec un exemple concret d'application que nous allons construire ensemble en SQL : à la Tricount.com, une petite application qui permet de gérer ses comptes entre amis.

École Inclusive: une application libre pour la prise en charge des élèves en situation de handicap

Posté par  (site web personnel) . Édité par DSMejantel et Ysabeau 🧶 🧦. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
43
6
mar.
2024
Éducation

Directeur adjoint d’un collège en Occitanie, chargé de la SEGPA et de l’accueil des élèves en situation de handicap, je me suis retrouvé dans une situation où le suivi des élèves et de leurs accompagnants devenait difficile, notamment par manque d’outils adaptés.

Loin de me décourager, j’ai créé ma propre application de suivi, École Inclusive, en utilisant le cadriciel libre SQLPage et la publie aujourd’hui sous licence GPLv3. Ce projet a été possible grâce au support proposé par la documentation en ligne et à de fréquents échanges avec Ophir Lojkine, créateur de SQLPage.

Sans aucune connaissance préalable en programmation, j’ai réalisé toute cette application en SQL. Cela permet un large panel de fonctionnalités pour École Inclusive, qui gère tout le suivi horaire des élèves, des classes et des accompagnants, les emplois du temps, les statistiques, les notifications, l’identification des utilisateurs avec plusieurs niveaux de permission.

Logo

Lancement de GapMea logiciel de modélisation de données

Posté par  (site web personnel) . Édité par Davy Defaud, Anonyme, Benoît Sibaud, ZeroHeure, palm123 et bubar🦥. Modéré par bubar🦥. Licence CC By‑SA.
39
30
déc.
2016
Base de données

GapMea est un outil de conception de bases de données (code sous licence GPL v3+ et documentation sous GFDL v1.3+).

GapMea est un outil graphique de modélisation des données écrit en C++ à l’aide de la bibliothèque Qt. Il permet de formaliser des schémas recueillant et structurant les informations nécessaires à un domaine de gestion. Le schéma obtenu est enregistré dans un fichier texte au format XML. Le logiciel permet la génération du code SQL nécessaire à la création des tables de la base de données qui vont accueillir les informations.

Journal SeqTools et retour d'expérience sur le traitement de jeux de données en python

Posté par  . Licence CC By‑SA.
38
29
oct.
2018

SeqTools est une librairie que j'ai créée pour transformer des jeux de données trop gros pour tenir en mémoire. Elle remplit un rôle comparable à itertools de la librairie standard, mais fait aussi en sorte de donner accès aux éléments par indexation, ce qui est plus pratique.

Dépôt du code
Documentation

L'objectif principal consiste à prendre une ou plusieurs sources de données et de les combiner ou de modifier leurs éléments pour obtenir une version transformée.
Par exemple, partant d'une (…)

Open Beauty Facts : que contiennent vraiment nos produits cosmétiques ?

35
31
juil.
2016
Open Data

Open Beauty Facts est un projet collaboratif en ligne dont le but est de constituer une base de données libre et ouverte sur les produits cosmétiques du monde entier.

Après les aliments, Open Food Facts s’attelle donc à un nouveau chantier : les produits de beauté. Lancé en février 2016, Open Beauty Facts a pour but de réaliser pour les cosmétiques, dentifrices et autres shampooings ce que Open Food Facts a fait pour la nourriture.

Logo Open Beauty Facts

Metabase - Business intelligence open source

34
28
nov.
2021
Commercial

Je forme de longue date des utilisateurs à Dolibarr et j’ai été amené à côtoyer toutes sortes d’entreprises, pris conscience de leurs besoins et mode de fonctionnement. Quand Philippe Scoffoni d’Open-DSI, m’a présenté Metabase, un outil d’analyse de données, j’ai tout de suite été emballé, c’était clairement l’outil idéal pour tout un tas de structures.

C’est aussi ce qui m’a poussé ensuite à écrire un livre et maintenant à vous présenter l’outil. Bien sûr, il a aussi ses limites, mais sa simplicité de mise en place au regard de tout ce qu’il permet de faire mérite le détour. Et surtout ce serait dommage de ne pas en profiter.

Journal Où sont les filesystems orientés DB?

Posté par  . Licence CC By‑SA.
32
11
sept.
2019

Bonjour à tout le monde et aux autres aussi,

Un exposé, une question et un rêve

Exposé : de quoi est-il question?

En tentant d'organiser les dizaines de milliers de fichiers que j'ai amassés en quelques décennies de vie numérique, je me suis rappelé des technos qui ont existé ou sont restées à l'état de projet, mais dont je ne connais aucune implémentation actuelle. Je veux parler des systèmes de fichiers orientés DB.

L'idée est que les fichiers ne sont (…)

MongoDB sort en version 2.2

Posté par  (site web personnel) . Édité par Nÿco, Nils Ratusznik, Bruno Michel, jcr83, Cyprien, passant·e et NeoX. Modéré par baud123. Licence CC By‑SA.
Étiquettes :
31
29
août
2012
Base de données

Une nouvelle version de la base de données MongoDB est sortie ce mercredi. Il s'agit de la version 2.2 qui fait suite à la version 2.0 (le versionnement adopte un système pair/impair : pair pour les versions stables, impair pour les versions en développement).

Pour rappel, MongoDB (humongous database) est une base de données développée par la société 10gen. Elle s'inscrit dans le mouvement NoSQL (Not Only SQL), très à la mode. Les forces de MongoDB viennent avant tout de sa simplicité : aucun schéma, installation simplissime, peu de concept complexes à maîtriser avant de l'utiliser. C'est un système de gestion de base de données orientée documents, extensible, écrit en langage C++ et distribué sous licence AGPL. Plus d'information sur la base de données sur Wikipedia ou sur le site de MongoDB.

Dans cette dépêche, nous étudierons les nouveautés proposées par cette nouvelle version. Les plus pressés iront consulter les notes de version tandis que les pointilleux pourront s'intéresser à la liste des bugs corrigés par cette version.

Robert, un logiciel de stockage en mémoire vive

Posté par  . Édité par Ysabeau 🧶 🧦, claudex, bubar🦥, palm123, Benoît Sibaud et Davy Defaud. Modéré par claudex. Licence CC By‑SA.
31
20
avr.
2020
Rust

Bonjour tout le monde,

J’ai le plaisir, pour ce premier message sur LinuxFr.org, de vous annoncer un nouveau projet de stockage clé‑valeur en mémoire vive.

« Encore un » vous direz‑vous ? Certes. Voyons si j’arrive à vous convaincre.

N. D. M. : à ne pas confondre avec le protocole ROBERT (ROBust and privacy‐presERving proximity Tracing) qui vient d’être publié par l’INRIA et la Fraunhofer AISEC pour le suivi de contacts dans le cadre de la pandémie de Covid‑19.

Exploitez vos SGBD grâce à dbSQWare

Posté par  (site web personnel) . Édité par Nÿco et claudex. Modéré par Pierre Jarillon. Licence CC By‑SA.
30
24
mai
2014
Base de données

Une petite précision tout d'abord sur ce qu'est un SGBD ! Voici ce que nous écrit Wikipédia à ce sujet "En informatique un système de gestion de base de données (abr. SGBD) est un logiciel système destiné à stocker et à partager des informations dans une base de données, en garantissant la qualité, la pérennité et la confidentialité des informations, tout en cachant la complexité des opérations."
Il en existe un grand nombre, plus ou moins libres et plus ou moins répandus. Dans les plus connus du monde libre, il y a notamment MySQL, PostgreSQL…

À l'heure actuelle, une grande majorité des applications voulant stocker de l'information le fait dans un SGDB. Par exemple, nombre de sites web sont développés en environnement LAMP dont le "M" vient de MySQL. Vient ensuite une autre précision à donner sur ce qu'est "l'exploitation" de ces SGBD. Cela regroupe en fait les tâches récurrentes (souvent automatisées) faites par les administrateurs de bases de données.

La première qui vient à l'esprit est celle de backup (sauvegarde). En général, quand on stocke de l'information, c'est que l'on ne veut pas la perdre ! Il est donc de bon ton d'avoir un système de backup efficace qui nous permettra de récupérer nos données perdues ou altérées en cas de problème (matériel, logiciel, erreur humaine…).

Viennent ensuite les tâches dédiées à la performance comme l'update statistics ou la réorganisation (là, on est dans le barbare pour certains, mais on tâchera d'écrire un article dessus si cela intéresse du monde).

Et enfin, il est bien de pouvoir avoir une vision globale de son parc de SGBD en terme de type, version, volumétrie… c'est ce que l'on appelle la gestion de la CMDB et du capacity planning.

Un outil a été développé dans ce sens pour regrouper toutes ces tâches (et bien d'autres), il s'agit de dbSQWare.