LinuxFanClub Wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:databases:design

Σχεδιασμός Βάσεων Δεδομένων

Εισαγωγή

Η εφαρμογή δημιουργίας διαγραμμάτων dia (Windows-Linux)μπορεί να χρησιμοποιηθεί για την δημιουργία Οντοτήτων-Συσχετίσεων. Στην συνέχεια με τα ακόλουθα εργαλείο κονσόλας μπορούμε να εξάγουμε σε ένα sql αρχείο το σχήμα της βάσης

Εγκατάσταση

Debian Linux

aptitude install dia dia2code tedia2sql

Δημιουργία σχήματος

Επιλέγουμε εργαλειοθήκη tedia2sql

tedia2sql dia2code
Πρωτεύον κλειδί Προστατευμένο πεδίο εύρος οντότητας
Συσχέτιση πλευρά ένα Πολλαπλότητα 1, ρόλος το όνομα του πεδίου
Συσχέτιση πλευρά πολλά Πολλαπλότητα *, ρόλος το όνομα του πεδίου, τσεκάρουμε το ομάδα

Για την δημιουργία VIEWS

  1. Στην Καρτέλα Οντότητα, τσεκάρουμε αφηρημένο,
  2. Στην Καρτέλα Attributes, για τα πεδία που εμφανίζονται στο τμήμα SELECT, π.χ. CI.* η CI.IDCustomer
  3. Στην Καρτέλα Operations, για τους πίνακες στο τμήμα FROM
    • στο όνομα (κανονικό όνομα πίνακα) (σύντομο όνομα), π.χ. CustomerInfo CI
    • στον τύπο from
  4. Στην Καρτέλα Operations, για τις συνθήκες στο τμήμα WHERE
    • στο όνομα (κανονικό όνομα πίνακα) (σύντομο όνομα), π.χ. (VCICTI.IDCustomer=DI.IDCustomer) ή (and age>21)
    • στον τύπο where

Εξαγωγή σχήματος

Για mysql :

tedia2sql -i weballdesign.dia -o mysql-testerd -t innodb -d   

Προσοχή

  • δημιουργείται σωστό αρχείο sql για τα foreign keys μόνο αν ορίσουμε -t innodb
  • Αν έχουμε constraints, χρειάζεται να κάνουμε διαγραφή πινάκων με διαδοχικές προσπάθειες μέσα από το phpmyadmin (λόγω των constraints δεν διαγράφονται όλοι οι πίνακες με την μία από το sql αρχείο που παράγεται)

Συμβάσεις

Τύποι Δεδομένων

Οι ακόλουθοι είναι συμβατοί τύποι δεδομένων με το σύνολο των βάσεων

Κείμενο VARCHAR (x)
Ακέραιος INT
Πραγματικός FLOAT
Ημερομηνία DATE
Λογικός BOOLEAN

Πεδία

Κάποιες προσωπικές επιλογές για απλότητα, ομοιόμορφη εμφάνιση και γρήγορο εντοπισμό

  • Το πρωτεύον κλειδί να είναι το πρώτο πεδίο
  • Το όνομά του και γενικά το όνομα των κλειδιών να είναι ID+(όνομα πίνακα) π.x. IDCustomer για τον πίνακα Customer
  • Τα ξένα κλειδιά να έχουν το ίδιο όνομα με τα πρωτεύοντα
  • Τα ξένα κλειδιά να ακολουθούν ως 2ο,3ο .. πεδία στον πίνακα
  • Στα πεδία με πολλές λέξεις να διαχωρίζονται οι λέξεις με κεφαλαίο το 1ο γράμμα κάθε λέξης και όχι με κάτω παύλα _

Πινακες

  • Μικρά όσο το δυνατόν ονόματα πινάκων, αλλά όχι συντομογραφίες-γρίφοι
  • Πίνακες με απλά πεδία απαρίθμησης να ξεκινάνε με την λέξη Type
    • π.χ. πίνακας TypeStatus με πεδίο IDTypeStatus τιμές 1,2.. και TypeStatusName Active Inactive κτλ

VIEWS-SQL QUERIES

  • Δημιουργία Views για οτιδήποτε χρειαστούμε SQL επερωτήσεις και συνδυασμό δημιουργίας VIEW από VIEW. Αυτό βολεύει πάρα πολύ ειδικά σε σχεδιασμό φορμών σε κάποιο frontend για την βάση (π.χ. OpenOffice Base)
  • Όψεις (Views) να ξεκινάνε με V_ και να συνεχίζουν με τα αρχικά των πινάκων σε κεφαλαία διαχωριζόμενα από κάτω παύλα
    • π.χ. create view V_CI_CTI as select CI.Name, CTI.Username from CustomerInfo CI, CustomerTechInfo CTI where ..

Χρήσιμα

el/databases/design.txt · Last modified: Y/m/d H:i (external edit)