Datenbank-Einschränkungsdesign und -Implementierung

MySQLBeginner
Jetzt üben

Einführung

In diesem Projekt lernst du, wie du verschiedene Einschränkungen in einem Datenbank-Schema hinzufügen kannst, einschließlich Primärschlüssel, Fremdschlüssel, eindeutige Einschränkungen, Standardwerte und Prüf-Einschränkungen. Am Ende dieses Projekts wirst du einen besseren Überblick haben, wie du in einer relationalen Datenbank Datenintegritätsregeln entwirfst und durchsetzt.

👀 Vorschau

Vorschau der Datenbank-Schema-Einschränkungen

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du einen zusammengesetzten Primärschlüssel auf der salgrade-Tabelle erstellst
  • Wie du einen Fremdschlüssel auf dem deptno-Feld in der emp-Tabelle angibst
  • Wie du eine eindeutige Einschränkung verwendest, um Duplikate im ename-Feld in der emp-Tabelle zu vermeiden
  • Wie du einen Standardwert für das comm-Feld in der emp-Tabelle setzt
  • Wie du eine Prüf-Einschränkung verwendest, um das Eintragen von Einstellungsdatum nach dem 28. Februar 2022 im hiredate-Feld in der emp-Tabelle zu verhindern

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Die Wichtigkeit von Datenintegritätseinschränkungen in der Datenbank-Entwicklung zu verstehen
  • Verschiedene Arten von Einschränkungen in einer MySQL-Datenbank umzusetzen
  • Best Practices für die Aufrechterhaltung von Datenqualität und -konsistenz anzuwenden
  • Probleme mit Datenbank-Einschränkungen zu beheben und zu debuggen

Starte den MySQL-Server und importiere die Datenbank

In diesem Schritt lernst du, wie du den MySQL-Dienst startest und die personnel.sql-Datenbank importierst. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Starte MySQL:

    sudo /etc/init.d/mysql start
    
  2. Importiere die personnel.sql-Datenbank in MySQL. Du kannst dies tun, indem du den folgenden Befehl in deinem Terminal ausführst:

    mysql -u root < /home/labex/project/personnel.sql
    

Dieser Befehl wird die personnel.sql-Datenbank mit dem Root-Benutzer in MySQL importieren.

Füge einen zusammengesetzten Primärschlüssel zur Tabelle 'salgrade' hinzu

In diesem Schritt lernst du, wie du einen zusammengesetzten Primärschlüssel zur salgrade-Tabelle hinzufügen kannst. Folge den Schritten unten, um diesen Schritt abzuschließen:

  1. Melde dich am MySQL-Terminal an:

    mysql -uroot
    
  2. Verwende die personnel-Datenbank:

    USE `personnel`;
    
  3. Füge einen zusammengesetzten Primärschlüssel zur salgrade-Tabelle hinzu, wobei die Felder grade, losal und hisal als zusammengesetzter Primärschlüssel verwendet werden:

    ALTER TABLE salgrade
    ADD PRIMARY KEY (grade, losal, hisal);
    

Dadurch wird ein zusammengesetzter Primärschlüssel auf der salgrade-Tabelle erstellt, der die Felder grade, losal und hisal verwendet.

Füge Einschränkungen zur Tabelle 'emp' hinzu

In diesem Schritt wirst du lernen:

  • Wie du einen Fremdschlüssel auf dem 'deptno'-Feld in der 'emp'-Tabelle angibst, der auf das 'deptno'-Feld in der 'dept'-Tabelle verweist.
  • Wie du eindeutige Einschränkungen verwendest, um die Duplizierung des 'name'-Felds in der 'emp'-Tabelle zu verhindern.
  • Wie du die Standardwert-Einschränkung verwendest, um den Standardwert des 'comm'-Felds in der 'emp'-Tabelle auf 100 zu setzen.
  • Wie du die Eingabe eines Einstellungsdatums nach dem 28. Februar 2022 im 'hiredate'-Feld der 'emp'-Tabelle mithilfe der Prüf-Einschränkung verhindern.

Folge den Schritten unten, um diesen Schritt abzuschließen.

  1. Verwende die personnel-Datenbank:

    USE `personnel`;
    
  2. Gib einen Fremdschlüssel auf dem deptno-Feld in der emp-Tabelle an, der auf das deptno-Feld in der dept-Tabelle verweist:

    ALTER TABLE emp
    ADD FOREIGN KEY (deptno) REFERENCES dept(deptno);
    
  3. Verwende eine eindeutige Einschränkung, um Duplikate im ename-Feld in der emp-Tabelle zu verhindern:

    ALTER TABLE emp
    ADD UNIQUE (ename);
    
  4. Verwende eine Standardwert-Einschränkung, um den Standardwert des comm-Felds in der emp-Tabelle auf 100 zu setzen:

    ALTER TABLE emp
    ALTER COLUMN comm SET DEFAULT 100;
    
  5. Verwende eine Prüf-Einschränkung, um die Eingabe von Einstellungsdatum nach dem 28. Februar 2022 im hiredate-Feld in der emp-Tabelle zu verhindern:

    ALTER TABLE emp
    ADD CHECK (hiredate <= '2022-02-28');
    

Zeige die Tabellenstruktur an

In diesem Schritt wirst du Befehle verwenden, um die Struktur der Tabellen salgrade und emp anzuzeigen:

  1. Zeige die Struktur der Tabelle salgrade an:

    desc salgrade;
    
  2. Zeige die Struktur der Tabelle emp an:

    desc emp;
    

Du solltest die folgende Ausgabe sehen:

MariaDB [personnel]> desc salgrade;
+-------+-------------+------+-----+---------+-------+
| Feld  | Typ         | Null | Schlüssel | Standardwert | Zusatz |
+-------+-------------+------+-----+---------+-------+
| grade | int(4)      | Nein | PRI | NULL    |       |
| losal | double(7,2) | Nein | PRI | NULL    |       |
| hisal | double(7,2) | Nein | PRI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 Zeilen in Satz (0,001 Sekunden)

MariaDB [personnel]> desc emp;
+----------+-------------+------+-----+---------+-------+
| Feld     | Typ         | Null | Schlüssel | Standardwert | Zusatz |
+----------+-------------+------+-----+---------+-------+
| empno    | int(4)      | Nein | PRI | NULL    |       |
| ename    | varchar(20) | Ja   | UNI | NULL    |       |
| job      | varchar(20) | Ja   |     | NULL    |       |
| mgr      | varchar(20) | Ja   |     | NULL    |       |
| hiredate | date        | Ja   |     | NULL    |       |
| sal      | double(7,2) | Ja   |     | NULL    |       |
| comm     | double(7,2) | Ja   |     | 100,00  |       |
| deptno   | int(4)      | Ja   | MUL | NULL    |       |
+----------+-------------+------+-----+---------+-------+
8 Zeilen in Satz (0,001 Sekunden)

Herzlichen Glückwunsch! Du hast das Projekt erfolgreich abgeschlossen.

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben