 Your new post is loading...
 Your new post is loading...
|
Scooped by
Mickael Ruau
August 26, 2013 9:45 AM
|
You can use this MySQL function to generate names, (e-mail)addresses, phone numbers, urls, bit values, colors, IP address, etc.. As usual, the code is provided in a zip and the code is fully documented.
|
Scooped by
Mickael Ruau
August 26, 2013 9:43 AM
|
Below you will find all code to create the table and the stored procedures to manage hierarchical trees in MySQL. All code is documented.
|
Scooped by
Mickael Ruau
August 26, 2013 9:36 AM
|
Apache Xindice is a database designed from the ground up to store XML data or what is more commonly referred to as a native XML database.
|
Scooped by
Mickael Ruau
August 26, 2013 9:32 AM
|
Modified Preorder Tree Traversal Now, let’s have a look at another method for storing trees. Recursion can be slow, so we would rather not use a recursive function. We’d also like to minimize the number of database queries.
|
Scooped by
Mickael Ruau
August 26, 2013 9:27 AM
|
Most users at one time or another have dealt with hierarchical data in a SQL database and no doubt learned that the management of hierarchical data is not what a relational database is intended for. The tables of a relational database are not hierarchical (like XML), but are simply a flat list. Hierarchical data has a parent-child relationship that is not naturally represented in a relational database table.
|
Scooped by
Mickael Ruau
August 26, 2013 9:25 AM
|
In this article I'll investigate two out of four well known approaches to accomplishing this and show a connection between them. We'll discover a new method that could be considered as a "mix-in" between materialized path and nested sets.
|
Scooped by
Mickael Ruau
August 26, 2013 9:20 AM
|
DB_NestedSet let's you create trees with infinite depth inside a relational database.
|
Scooped by
Mickael Ruau
August 26, 2013 6:13 AM
|
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
|
Scooped by
Mickael Ruau
August 26, 2013 6:06 AM
|
Propriétés des dépendances fonctionnelles (ou axiomes d'Amstrong)DF1 : réflexivité Y inclus-ou-egal X => X -> YDF2 : augmentation X -> Y => X,Z -> Y,ZDF3 : transitivité X -> Y ET Y -> Z => X ->ZDF4 : pseudo-transitivité X -> Y ET Y,W -> Z => X,W -> ZDF5 : union X -> Y ET X -> Z => X -> Y,ZDF6 : décomposition X -> Y ET Y Z => X -> Z
|
Scooped by
Mickael Ruau
August 26, 2013 6:02 AM
|
Soit un schéma de relation R, et une couverture minimale F' de dépendances fonctionnelles s'appliquant sur R. Une décomposition SPI de R, qu'on appellera D, est construite de manière itérative : D est initialisée à R,Soit T une relation de D qui ne soit pas FNBC. Cela signifie qu'il y a une dépendance fonctionnelle X -> A s'appliquant sur T telle que X n'est pas clé de T, et que A n'est pas un sous-ensemble de X. On décompose alors T en T1 contenant A et les attributs de X, et T2 contenant tous les attributs de T sauf A,D est réinitialisée avec T1 et T2, et on boucle sur b) jusqu'à ce que toutes les relations soient FNBC.
|
Scooped by
Mickael Ruau
August 26, 2013 6:01 AM
|
Soit un schéma de décomposition T = {R1, R2, …, Rk}, et un ensemble F de dépendances fonctionnelles. Soit P Z (F) l'ensemble des dépendances fonctionnelles {X -> Y} appartenant à F+ (fermeture de F), et tel que XY Í Z. On dit que T préserve les dépendances fonctionnelles si P R1 (F) ÈP R2 (F) … ÈP Rk (F) permet de retrouver l'ensemble F d'origine.
|
Scooped by
Mickael Ruau
August 26, 2013 5:59 AM
|
La fermeture d'un ensemble d'attributs X, notée (X)+, représente l'ensemble des attributs de R qui peuvent être déduits de X à partir d'une famille de dépendances fonctionnelles en appliquant les axiomes d'Armstrong. Ainsi, Y sera inclus dans (X)+ ssi X -> Y.
|
Scooped by
Mickael Ruau
August 26, 2013 5:51 AM
|
Dans une base de données relationnelle, une forme normale désigne un type de relation particulier entre les entités.
Le but essentiel de la normalisation est d'éviter les anomalies transactionnelles pouvant découler d'une mauvaise modélisation des données et ainsi éviter un certain nombre de problèmes potentiels tels que les anomalies de lecture, les anomalies d'écriture, la redondance des données et la contre-performance.
La normalisation des modèles de données permet de vérifier la robustesse de leur conception pour améliorer la modélisation (et donc obtenir une meilleure représentation) et faciliter la mémorisation des données en évitant la redondance et les problèmes sous-jacents de mise à jour ou de cohérence. La normalisation s’applique à toutes les entités et aux relations porteuses de propriétés.
|
|
Scooped by
Mickael Ruau
August 26, 2013 9:44 AM
|
Setting the mode to STRICT_ALL_TABLES when you compile your stored procedure or function can prevent a lot of subtle bugs in your MySQL application. See how to prevent it.
|
Scooped by
Mickael Ruau
August 26, 2013 9:39 AM
|
Most users at one time or another have dealt with hierarchical data in a SQL database and no doubt learned that the management of hierarchical data is not what a relational database is intended for. The tables of a relational database are not hierarchical (like XML), but are simply a flat list. Hierarchical data has a parent-child relationship that is not naturally represented in a relational database table. F
|
Scooped by
Mickael Ruau
August 26, 2013 9:35 AM
|
This set-oriented method for representing trees in SQL runs orders of magnitude faster than the adjacency list method.
|
Scooped by
Mickael Ruau
August 26, 2013 9:29 AM
|
Whether you want to build your own forum, publish the messages from a mailing list on your Website, or write your own CMS: there will be a moment that you'll want to store hierarchical data in a database.
|
Scooped by
Mickael Ruau
August 26, 2013 9:26 AM
|
Getting Started To help guide us through this tutorial we will be using a MySQL database with two tables, categories and products. The SQL dump is provided here. The name of the database is "hierachy".
|
Scooped by
Mickael Ruau
August 26, 2013 9:21 AM
|
A world community for web developers, evolt.org promotes the mutual free exchange of ideas, skills and experiences.
|
Scooped by
Mickael Ruau
August 26, 2013 9:18 AM
|
|
Scooped by
Mickael Ruau
August 26, 2013 6:10 AM
|
Règles de passage de l'algèbre relationnelle vers SQL
|
Scooped by
Mickael Ruau
August 26, 2013 6:02 AM
|
Soit un schéma de relation R, et une couverture minimale F' de dépendances fonctionnelles s'appliquant sur R. Une décomposition SPI et SPD de R, qu'on appellera D, est construite de la façon suivante : pour chaque dépendance fonctionnelle X -> A, on crée une relation Ri (X, A),si on a plusieurs dépendances fonctionnelles telles que X -> A1, X -> A2, …, X -> An, alors on regroupe tous ces attributs dans une même relation Rj (X, A1, A2, …, An),les attributs n'apparaissant dans aucune relation (pas présents dans les dépendances fonctionnelles) sont regroupés dans une même relation,pour avoir une décomposition SPI, il faut s'assurer qu'il y ait au-moins une clé de R dans une des relations de décomposition. Si ce n'est pas le cas, il faut soit ajouter une relation contenant une clé de R, soit ajouter des attributs dans une des relations de décomposition afin de satisfaire cette contrainte.
|
Scooped by
Mickael Ruau
August 26, 2013 6:01 AM
|
Définition : un attribut (ou un groupe d'attributs) B est dit "fonctionnellement dépendant" d'un attribut (ou d'un groupe d'attributs) A si : a1 = a2 => b1 = b2, a1, a2, b1, b2 étant des réalisations (valeurs) des attributs A et B dans des n-uplets de la base de données. On dit alors que A "détermine" B, et on note A -> B.
|
Scooped by
Mickael Ruau
August 26, 2013 6:00 AM
|
La décomposition de R est dite SPI "sous F" si : " r satisfaisant F, r = P R1 (r) jointure P R2 (r) … jointure P Rk (r)
|
Scooped by
Mickael Ruau
August 26, 2013 5:57 AM
|
|
When creating random test data it is important that the data matches your domain values. Just a random string generated with a MD5 hash does not resemble real data and cannot be used for testing. There are some tools that you can buy to generate meaningful test data, but you can do this with a simple function in your database, free of charge