Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

MySQL.

Ähnliche Präsentationen


Präsentation zum Thema: "MySQL."—  Präsentation transkript:

1 MySQL

2 relationale Datenbanken
SQL : Sprache fuer relationale Datenbanken. jede Information nur einmal gepeichert Dazu macht man mehrere Tabellen, die alle ueber Schluessel miteinander verknuepft sind. Bsp. Projektpartner, Versuchsteilnehmer, ganze Schulklasssen, etc. Bei Versuch z.B. nur Id-Nr. der Schlusklasse eintragen. Daraus auf Schüler-Id und daraus auf Liste schliessen.

3 Normalisierung Ein Datenbankkonzept, das alle Bedinungen fuer Konsistenz erfuellt, nennt man normalisiert. In der Literatur sind Konzepte zur Normalisierung fuer Datenbankentwuerfe zu finden.

4 Benutzerrechte Rechte auf verschiedenen Stufen:
Servers, Datenbank, Tabelle, Kolonnen verschiedene Rechte z.B.: Datensatz suchen, einfuegen, loschen, ändern SQL-Befehl grant.

5 Client Ansteuerung der DB über Client, der SQL-Befehle übergibt Bsp:
update nanoworld.partners set vorname = 'Dino' where login = 'dino'; select ident, vorname, nachname, login, from nanoworld.partners where mailinglist = 'y';

6 Beispiel create table Personen( id int not null primary key auto_increment, vorname varchar(30), nachname varchar(30), mailinglist enum('y','n'), ... PLZ smallint );

7 Zope - MySQL Z MySQL Database Connection einfuegen
Datenbase Conection String: [user [password [unix_socket]]] In unserem Fall: homepage homepassw /tmp/mysql.sock

8 Z SQL Methoden Die DB steuert man mit Z SQL Methoden an:
SQL-Befehl darf dtml-tags enthalten Parameter können verlangt werden Rückgabe: Liste von Objekten, die als Attribute die gefragten Feldnamen enthält. Zugriff: über <dtml-in sql_Methoden_Name> <dtml-var Feldname>

9 Interface für Partner Datenbank: nanoworld.partners

10

11 Ablauf: Verzeichnis anmeldung:

12 anmeldung.index_html

13 anmeldung/formular

14 anmeldung/report

15 /anmeldung/index_html
<FORM NAME=" " METHOD="POST" onReset="history.back()" ACTION="formular"> Bitte geben sie Ihre Adresse an: <INPUT TYPE=TEXT NAME=" " SIZE=30 MAXLENGTH=30> <INPUT TYPE="submit" VALUE="Submit"> <INPUT TYPE="reset" VALUE="Abbrechen">

16 anmeldung/formular Uberprüfung
<dtml-if C > <dtml-call "REQUEST.set('fehler','Sie sind bei uns schon angemeldet.')"> </dtml-if>

17 C Z SQL Methode

18 anmeldung/formular Formular
<FORM NAME="formular" METHOD="POST" onReset="history.back()" action="report"> Anrede: <input type="text" name="anrede" value="" size=20 maxlength=20> …. <INPUT TYPE="hidden" NAME=" " VALUE="<dtml-var "_.string.lower( )">" >

19 anmeldung/report Diverser Überprufungen Willkommen
<dtml-var "REQUEST.get('anrede')"> <dtml-var"REQUEST.get('nachname')"><br> <dtml-call Insert_Person_MySQL> <dtml-call benachrichtigen>

20 Insert_Person_MySQL Insert into partners
(vorname, nachname, login, passwort, , mailinglist,strasse,nr,ort,plz,land,position,sprache,anrede ) values ( <dtml-sqlvar vorname type="string" optional>, <dtml-sqlvar nachname type="string" optional>, … )

21 benachrichtigen <dtml-sendmail mailhost="an_guggi">
To: From: nanopartners.anmeldung Subject: Partner hat sich angemeldet Angemeldet hat sich <dtml-in Abfrage> <dtml-var Field> <dtml-var expr="_.getitem(Field)"> </dtml-in> </dtml-sendmail>

22 login/index_html

23 /login/report

24 auswahl

25 Bearbeiten

26 Abmelden

27 Abgmeldet

28 anmeldung/index_html

29 anmeldung/formular

30 anmeldung/report

31 Ablauf

32 login/index_html <form action="report" method="post">
Login:<input type="text" name="login"><br> Passwort:<input type="password" name="passwort"><br> <INPUT TYPE="submit" NAME="submit" VALUE="Submit"> <INPUT TYPE="submit" NAME="submit" VALUE="Passwort vergessen"> </form>

33 login/report <dtml-in Ueberpruefen size=1>
<dtml-in "Personendaten(ident=ident)"> Login erfolgreich.<br> Willkommen <dtml-var anrede> <dtml-var nachname> <form action="../auswahl" onReset="history.back()"> ...

34 /bearbeiten/bearbeiten Parameter: ident
<dtml-in Personendaten> <dtml-in Abfrage> <dtml-var "_.string.capitalize(Field)“> <dtml-if "Type[0]=='v'"> <INPUT TYPE=TEXT NAME="<dtml-var Field>" VALUE="<dtml-var expr="_.getitem(Field,1)">" SIZE=<dtml-var "Type[8:_.string.find(Type,')')]"> MAXLENGTH=<dtml-var "Type[8:_.string.find(Type,')')]"> >

35 Personendaten Parameter: ident Select * from nanoworld.partners where
ident=<dtml-sqlvar ident type="int">

36 Abfrage show columns from nanoworld.partners

37 bestaetige_bearbeiten
div. Überprüfungen Aenderungen gespeichert: <form action="../auswahl"> <input type="submit" value="OK"> <input type="hidden" value="<dtml-var ident>" name="ident"> </form><br> <dtml-call Update_Person_MySQL>

38 abmeldung/abmelden Wollen Sie sich sicher abmelden?
<form action="abgemeldet“ onReset="history.back()"> <input type="submit" value="OK"> <input type="reset" value="Abbrechen"> <INPUT TYPE="hidden" NAME="ident" VALUE="<dtml-var ident>" > </form>

39 abgemeldet Auf Wiedersehen!<br> Sie wurden abgemeldet.
<form action="../anmeldung"> <input type="submit" value="OK"> </form><br> <dtml-call Abmelden>

40 Abmelden Parameter: ident delete from nanoworld.partners where
ident=<dtml-sqlvar ident type="int">


Herunterladen ppt "MySQL."

Ähnliche Präsentationen


Google-Anzeigen