Sie sind auf Seite 1von 78

Dipl.oec.G.

PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Skript
Infsys
SS2008
Datenbankallgemein

Grundlagen,Begriff

EntityRelationshipModel(ERM)

AllgemeineAnforderungenanDBMS

ModellierungvonDatenbanken

3EbenenArchitektur

Normalisierung

Datenbankarten

RelationalesDatenmodell

NichtrelationaleDatenmodelle

SQL

FlotterFlitzer
DokumentationeinerDatenbankfr
eineAutovermietung

RelationaleDatenbanken

Seite1

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Datenbanken
GrundlagenundBegriff
EineDatenbankumfassteinethematischabgegrenzteMengevonDaten.
(Texte,Zahlen,Tabellen,Bilder...)
AusderOrganisationsformderDatenergebensichprinzipiellzweiverschiedeneDatenbankarten,die
sichbeiSuchanfragenverschiedenverhalten:
Information Retrieval Systems (IRS)

Formatierte Datenbanken

DieDatenliegenalsFlietextevor,
z.B.Urteile(JURIS)

DatenliegenalsDatenstzeeinesbestimmten
Formatsvor,z.B.Warenwirtschaftssystem

SuchendurchtextuelleSuchanfrage
(Stichworte)

SuchendurchObjektbeschreibung

keineeindeutigeAntwort
(Relevanzprinzip)

eindeutiges,korrektesErgebnis

GrundstzlicherAufbaueinesDatenbanksystems

DBS=DB+DBMS
EinDatenbanksystem(databasesystem,DBS)isteinSystemzurBeschreibung,Speicherungund
WiedergewinnungvonDatenmengen,dievonmehrerenAnwendungsprogrammengenutztwerden
knnen.

EssetztsichzusammenausderDatenbank(oftdatabasegenannt),alsoderMengederDatenund
einerSoftware,demDatenbankverwaltungssystem(databasemanagementsystem,DBMS),dasdie
SchnittstellezumBenutzerdarstellt.
DieDatenbankenthltsowohldiereinenNutzdatenalsauchMetaDaten(metadata),diezur
VerwaltungdesgesamtenSystemsntigsind.

Seite2

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Datenbanken
AllgemeineForderungenanDBM
AusdenNotwendigkeitenderDatenhaltungergebensichallgemeineAnforderungenanein
DatenbankManagementSystem(DBMS):

GroeDatenbestnde(>107Datenstze)verwalten==>erforderteffizienteSuchverfahren

BeliebigeVerknpfungnachinhaltlichenGesichtspunkten

Redundanzfreiheit

Datenkonsistenz

ZentraleDatenhaltung

GleichzeitigeBenutzungdurchvieleAnwender(z.B.Flugbuchung)

TrennungvonDBAnwenderundDBAdministratoren

DieRealisationsolcherAnforderungenhateinErgebnismitvlligneuerQualittzurFolge.

EsgibtzuDatenbankenkeinmateriellesquivalent(z.B.SammlungvonvielenKarteiksten);
d.h.dasModellselbstwirdzueinemObjektsystem.

DerDatenbestandhateinepotentiellunendlicheLebensdauer.

Darausfolgt,dassTechnikenerforderlichsind,dievorVerlustundVerflschungderDatenschtzen.

SichtaufdasDatenmodell
ImGegensatzzuprozeduralenDateiverwaltungsprogrammen,dieimallgemeinenDatennureinem
AnwenderprogrammzugnglichmachenundderenAlgorithmenbeschreiben,wieeinDatensatzzu
findenist,stehenbeieinem(relationalen)DBSimVordergrund

Datenobjekte
welcheObjektegibtes?

BeschreibungvonDaten
welcheEigenschaftenhabensie?
inwelcherBeziehungstehensiezueinander?

OperationenaufDaten
miteinerdeskriptivenDBSprache(waswillichhaben?)

InsgesamtergebensichdamithervorragendeMglichkeitenzurAbbildungrealerObjekte,aber
dennochsindDatenmodellestrengbetrachtetkeinAusschnittderRealwelt,sondern

dieMengederdefiniertenStrukturmerkmaleund

derdaraufmglichenOperationen.

DieNhezurobjektorientiertenModellierungistunverkennbar.DieModellierungmitdemEntity
RelationshipModel(ERM)kannalseingeistigerWegbereiterzuOOMangesehenwerden.

Seite3

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Datenbanken
3EbenenArchitektur
DieallgemeinbeschriebenenAufgabenundAnforderungenlassensichbesserverdeutlichen,wenn
maneingeeignetesArchitekturmodellfrDatenbankenhat.DieGrundideeistdieUnterteilungder
DBMSinSchichtenausdenverschiedenenBenutzersichtenunddamitverbundenklareSchnittstellen
zwischendenSchichten.
Gngigistdas3EbenenModell,dasseinenUrsprunginderANSI/SPARCArchitekturhat.
3EbenenModell

Entwurf

ERM

(Entity-Relation-Modell)

Transformationsregeln

DATENMODELL
Transformationsregeln

InderLiteraturwerdenauerdemfrdieEbenendieBegriffeSchichtundSchemaverwendet.Eine
guteausfhrlicheErluterungfindetmanunterModellder3EbenenArchitekturnachANSISparc

Seite4

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Datenbanken
Datenbanktypen
ImLaufederZeitwurdenvonSoftwarefirmenundwissenschaftl.InstituteneineVielzahlvon
Datenbanksystemenentwickelt,denenunterschiedlicheAnforderungenundKonzeptezugrunde
liegen.IndiesemKurssollennachihremBetriebskonzeptsog.StandaloneDatenbanken,FileShare
DatenbankenundClient/SeverDatenbankenunterschiedenwerden.DabeiliegtderSchwerpunktdes
KursesaufdemrelationalenStrukturierungskonzeptdasalsKonzeptzurDatenstrukturierungeine
berragendeBedeutungerlangthat.

StandaloneDatenbank
SiestelltdiesimpelsteFormeinerDatenbankdar.InderRegelhandeltessichumeinelokale
Datenbank,diesichwederumMehrfachzugriffsprobleme,wiedas,dasszweiBenutzergleichzeitig
versuchendenselbenDatensatzzundern,nochumausgefeilteZugangsberechtigungenfr
unterschiedlicheProgrammekmmert.SieistlediglichdazudavoneinemBenutzerberdasimmer
gleicheProgrammangesteuertzuwerden.TypischeBeispieledafrsindAdresskarteien,
elektronischeTelefonbcher,Buchhaltungsprogrammeetc.diemitdBase,Access,Filemaker,FoxPro,
ParadoxoderhnlichenProgrammenerstelltwurdenundihremBenutzeraufeinfacheWeiseeinen
mehroderwenigergutenelektronischenKarteikastenzurVerfgungstellen.Mitechten
DatenbankenhabendieseImplementierungenoftwenigerzutunalseinTrabimiteinemRolls
Royce.

FileShareDatenbank
ImGegensatzzueinerStandaloneDatenbankknnenaufeineFileShareDatenbankinnerhalbeines
NetzwerkesmehrerenBenutzergleichzeitigaufdenselbenDatenbestandzugreifen.Innerhalbeines
NetzwerkeswirdderjeweiligeDatenbestandquasialsDateianeinerStelleallenberechtigten
NutzernzurVerfgunggestellt,dievonihrenjeweiligenWorkstationsaus,aufdieseDatenbank
zugreifenknnen.DerZugriffaufdieDatenbankerfolgtdabeibereinspeziellesdatabaseengine
genanntesProgrammModul,dasaufderjeweiligenWorkstationausgefhrtwerdenmuss.(Die
DatenbankliegtwohlaufdemServer,jedochhatdieserbezglichderVerwaltungdieserDatenbank
keineeigeneIntelligenz.DiegesamteIntelligenzliegtseparataufjedereinzelnenWorkstation.)
DerHauptvorteilsolcherDatenbankenist,dassdamitdieredundanteDatenhaltungberwunden
wirdundDatennderungenredundanzfreisofortallenBenutzernzurVerfgungstehen.
Problemegibtesallerdingsdann,wennvielesimultaneundvorallemnderndeZugriffeaufdem
Datenbestanderfolgen(z.B.Auftragserfassung)oderhufigumfangreicheAuswertungenerstellt
werdenmssen.DabeidiesemKonzeptjedeAnwendungdieDatenbankletztlichinseinemlokalen
Arbeitsspeicherggf.SatzfrSatzbetrachtenundauswertenmuss,fhrtdieszueinem
umfangreichenDatenverkehr.BeikonkurrierendenZugriffenlassensichdabeinursehrineffiziente
MechanismenzurWahrungderoperationalenIntegrittrealisieren,sodassletztlichimmerrecht
groeDatenbereichesolangegesperrtwerdenmssen,bisderlokaleClientendlichzuPotte
gekommenist.

Seite5

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Client/ServerDatenbank
SolcheDatenbankensinddieSKlasseundgengenhchstenAnsprchen.(Dasgiltdurchausauch
frdiePreise.)
DerKerneinersolchenDatenbankisteinsog.Datenbankserver(Softwaresystem),deraufeiner
dediziertenMaschineinnerhalbeinesNetzwerkesluft.DieserServerkapseltdiegesamteDatenbank
undbietetimgesamtenNetzwerkseineDienstean.Programme,frwelchederServeretwastun
soll,(diesewerdenClientsgenannt,)greifennichtwiebeieinerFileShareDatenbankselbstaufdie
Datenzu,sondernwendensichmitIhrenWnschenlediglichandenServer,derallesfrdieClients
erledigt.
DieDatenverwaltungisthiervomZugriffkonsequentgetrennt.DieClientswendensichlediglichan
diestandardisierteSchnittstelledesServers.WoundwiederServerseineDatenverwaltetistfrdie
Clientstransparent.
Client/ServerDatenbankenbietenvieleSicherheits,LeistungsundFlexibilittsvorteile,erfordern
allerdingsauchdieBetreuungdurcheinenDatenbankadministrator.DieProdukteausdiesemBereich
habenNamenwieInformix,Oracle,DB2,MSSQLServer,InterBase,MySQL.

EinigeBegriffeundAbkrzungen:
DataDictionary
BestandteileinerDatenbank,deralleInformationenberStrukturundAufbaueinerDatenbank
enthlt.(WesentlicheInformationsquellefrdenDatenbankadministratorundInfoBasisfr
zugreifendeClients.)
Datenbankadministrator(DBA)
GewhrleistetdenlaufendenBetriebeinerDB.ErberwachtundbetreutdentglichenBetriebeiner
DB,erteiltZugriffsberechtigungen,gewhrleistetdieDatensicherungundveranlatundberwacht
Systemnderungen.
DBMS
DataBaseManagementSystem
ODBC
OpenDataBaseConnectivityStandardisierteSoftwareschnittstellevonMicrosoft,berdie
AnwendungsprogrammeaufunterschiedlichenDatenbankenzugreifenknnen,(insbesonderebei
sog.ClientServerApplikationen)
Redundanz
istineinemDatenbestandgenaudannvorhanden,wenneinTeilderDatenohneInformationsverlust
weggelassenwerdenkann.
SQL
StructuredQueryLanguageStandardisierte,systemunabhngigeSprachezurErstellung,
ManipulationundAbfragevon(relationalen)Datenbanken.
Transaktion
Datenbankoperation,dievollstndigausgefhrtwerdenmuss,damitdieIntegritteinerDatenbank
nichtgefhrdetist.(Z.B.RegistrierungeinesKundenauftragesineinemWarenwirtschaftssystem
einschl.BestandsberichtigungundRckstandserfassungundAktualisierungdesKundensaldos.)

Seite6

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Datenbanken
Datenmodelle
LogischeDatenmodellejenseitsdesRelationenmodells
Referat von
Norman Niemer

1.HierarchischesDatenmodell
GliederungalstypischesBeispielfrhierarchischesDatenmodell
einfachsteFormeinesDatensystems
inder"Informatikersprache"auchBume(Trees)genannt
natrlicheHierarchien:Personaldatei(Firma/Abteilung/Mitarbeiter),knstlicheHierarchien:
Lieferantenkartei(Artikel/Lieferant/Adresse)
ArtenvonHierarchien:

einstufig:genaueinemVaterelementwerdenein/mehrereShnezugeordnet

mehrstufig:
o

ZusammenfgenvonmehrerenHierarchien

aber:jedesElementdarfnurineinerGruppeSohnelementsein

dasWurzelelementistselbernirgendsSohnelement(keineZirkelbezge)

Beziehungen:
1:1VaterwirdSohnzuordnet
1:nVaterwerdenmehrereShnezugeordnet
m:nnichtdarstellbar
wichtigzumFinden,ndern,HinzufgenundLschenvonDatenistdassequenzielleAuslesen:
ShnekommennachihremVater
ShnekommenvordenBrdern
programmiertechnischerfolgtdieZuordnungnichtberTabellenwiebeimRelationenmodell,
sonderndirektmitPointern
Vorteile:einfaches,effizientesDatenmodell(kommtdaherinDirectoryServern,Webservernundim
Indexvonz.B.mySQLzurAnwendung)
Nachteile:unflexibelundbeikomplexenUmgebungenschwierigzumodellieren

Seite7

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

2.Netzwerkmodell
bautaufdemhierarchischenModellauf
Restriktion,dassEntittnurMitgliedineinerGruppeseinkann,istaufgehoben>mehrere
Wurzelelemente
mglich
Modellierungvonm:nBeziehungenmglich
daesunpraktikabelbzw.nichtrealisierbarist,diem:nBeziehungdirektzumodellieren,
gehtmaneinenUmwegber21:mBeziehungen(Darstellung:Autor/Beitrag/Buch)
ZugriffaufdieEntittenerfolgtdurchsequenziellesAuslesendereinzelnenHierarchien
Vorteile:
komplexereUmgebungenlassensichmodellieren
vermaschteStrukturensindmglich
m:nBeziehungdarstellbar
Nachteile:
VerlustvonEinfachheitundbersichtlichkeit
sequenziellesAuslesenkomplizierter
ineffizienterunddemzufolgelangsamer

3.ObjektorientiertesDatenmodell
3.1.ODBMSvs.RDBMS
ProblempunkterelationalerDatenbanken:

SehrkomplexeObjekteundUmgebungen(z.B.CIM,Geoinformationssysteme)lassensich
nurschwermodellieren,
bzw.mssenaufmehrerenTabellenabgebildetwerden,wodurch
o

diebersichtlichkeitverlorengeht

Integrittlsstsichschlechterberwachen

dieLeistungdesDatenbanksystemsreduziertwird

InkompatibilittzwischenDatenbankundAnwendungsentwicklung/Programmiersprache

EswerdennurDatenattribute,aberkeineOperationenabgebildet

EsgibtkeineechteObjektidentitt(IdentifikationberSchlssel,dienurdasSystemkennt)

=>EntstehungderobjektorientiertenDatenbanksysteme
3.2.AnforderungenanODBMS
herausgearbeitetvonrenommiertenForschern>"TheObjectOrientedDatabase
SystemManifesto"
Kernaussage:einDBMS,erweitertumfolgendeKonzeptederObjektorientierung

Seite8

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

UntersttzungfrkomplexeObjekte(Tupels,Listen,Arrays)

Objektidentitt

Einkapselung/Encapsulation("Geheimnisprinzip"private/public)

TypenundKlassen

HierarchienvonTypenundKlassen(z.B."Aggregation")

berladen

Vererbung

DanebensollesaucheinevollstndigeDatenbankProgrammiersprachegeben
3.3.ODMGStandard
Mitte1991tatensichfhrendeHerstellervonODBMSzusammenumeinenStandard
frobjektorientierteDatenbanksystemezuentwickeln
1993wurdedieODMGStandardSpezifikation1.0verffentlicht(3.0istdieneuesteVersion)
BestandteiledesStandards:

Objektmodell:DerODMGStandarddefinierteingemeinsamesObjektmodellfrODBMSe,
bestehendausobjektorientiertenModellierungsmittelnundDatenbankelementen.

ObjectDefinitionLanguage(ODL):DieODLalsObjektDefinitionsspracheliefertdieSyntax
frdasObjektmodell.DieODLkannzurDefinitioneinesDatenbankschemasverwandt
werden.

ObjectQueryLanguage(OQL):DieOQLdientzurBildungvonassoziativenAnfragenauf
Datenbankobjekten.DieOQL,diesichandenAnfragemglichkeitenvonSQLorientiert,kann
sowohlalseigeneODBMSSchnittstellealsauchinnerhalbderSprachanbindungen
verwendetwerden.

SprachanbindungenfrC++undSmalltalk:DieSprachanbindungensinddieUmsetzungdes
ObjektmodellsaufeineProgrammierspracheunddienenalsDatenbankschnittstellefr
ODBMSApplikationen.DieSprachschnittstellenlieferndieSyntaxundSemantikzur
DefinitionundManipulationder(Datenbank)Objekte.DerStandardumfasstderzeiteine
C++Schnittstelle,eineJavaSchnittstelleundeineSmalltalkSchnittstelle

Quelle: [1], S. 20f

DamitistauchautomatischInteroperabilittgeschaffen:aufObjekte,diemitderSprache"A"erzeugt
wurden,kannauchmitallenanderenSpracheODSprachenzugegriffenwerden.
3.4.DasObjektmodell
C.Beerientwickelte(ca.1989)eintheoretischfundiertesobjektorientiertesDatenbankmodell
diesbeinhalteteimGroenundGanzendieo.g.KriteriendesODBMSManifestes
Objektmodell:DatenmodellnachobjektorientiertenKonzepten=>konkreteModellierung
Datenbankschema

Seite9

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

ObjektorientiertesDatenbankschema:
Grafische Notation fr ein
objektorientiertes
Datenbankschema:

Quelle: [1], S. 231 f

imRelationenmodellerfolgtdasSpeichernderDateninTabellen,
imODBMS:SpeichernderDateninObjekten
Attribute,Beziehungen,Schlsselebenfallszufinden
starkeOrientierunganOOP
DefinitiondesObjektmodellserfolgtmitderODLdiekonkreteImplementationderObjekttypen,
MethodenundAbfragenerfolgtinderjeweiligenProgrammiersprache

Seite10

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Definition des Objekttyps Firma:


interface Firma
( // Typeigenschaften
extent Firmen
key (Name, Firmensitz)
)
{ // Instanzeigenschaften
//Attribute
attribute String Name;
attribute Adresse Firmensitz;
attribute Date Gruendung;
attribute Short Grosse;
// Beziehungen
relationship Set<Produkt> vertreibt;
relationship Set<Angestellter> beschftigt inverse angestellt_in;
// Instanzoperationen
Boolean einstellen (in Angestellter, in Projekt);
Boolean entlassen (in Angestellter);
}
Quelle: [1] S. 24

3.4.2.Attribute
habeneinenbestimmtenDatentyp,derentwedereinSystemdatentypodereinBenutzerdatentyp
seinkann
Mengen,ListenundArrayssindebenfallsmglich
knnenalsprivateoderpublicdeklariertwerden
3.4.3.Beziehungen
dieBeziehungen,wieessieindenDatenmodellengibt,existiereninobjektorientierten
Programmiersprachennicht
=>eigenstndigesKonzept
alleArtenvonBeziehungenlassensichimObjektmodellrealisieren

1:1Angestellterleitet/geleitetvonProjekt

1:nFirmabeschftigt/angestelltinAngestellten

m:nAngestellterbearbeitet/bearbeitetvonProjekt

unidirektionalFirmavertreibtProdukt

bidirektionalFirmabeschftigt/angestelltinAngestellten
(mussimverbundenenObjekttypanalogseinWahrungderreferentiellenIntegritt)

BeziehungenknnennurzweiObjekttypeninvolvierenundkeineAttributebesitzen
=>zurLsungmusseinneuerObjekttyperstelltwerden

Seite11

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
3.4.4.Schlssel
dasSchlsselkonzeptderRDBMSfindetsichauchinODBMSwieder
dientwenigerderObjektidentifizierung,sondernzurSicherungderEindeutigkeitbestimmter
Attributkombinationen
3.4.5.Methoden
dasobjektorientierteParadigmalegtWertaufstrikteTrennungvonSpeicherungvonDatenund
ManipulationderDaten
KonzeptauchimODBMS
dadieImplementationinderProgrammierspracheerfolgtergibtsicheinbesondererVorteil:
MglichkeitderNutzungvonspeziellenProgrammieralgorithmen
3.4.6.Vererbung
identischeVerwendungwieinOOP,esistsogarPolymorphiemglich
groerVorteilgegenberRDBMS
3.4.7.Objektidentitt
wichtigeEigenschaftvonODBMS(wirdsowohlimManifest,alsauchimODMGStandardgefordert)
jedemObjektwirdeineIDzugeordnet,diedasObjekteindeutigidentifizierbarmacht
VorteilegegenberRDBMS

dieIDistunabhngigvondenEigenschaften(dasKennzeichenalseindeutiger
PrimrschlsseleinesAutoDatentypsndertsichu.U.doch)

dieIDswerdenautomatischvomDBMSvergebendientigeUmgangmitSchlsselnim
RDBMSentfllt

3.5.Datenbankkonzepte

Persistenz

Berechnungsvollstndigkeit

TransaktionsundZugriffskontrolle

u.a.

4.Glossar
CIM

computerintegratedmanufacturing

ODBMS

objectdatabasemanagementsystem

ODMG

objectdatabasemanagementgroupForumfrStandardsderODMBS

OOP

objectorientedprogramming

OOPL

objectorientedprogramminglanguage

RDBMS

relationaldatabasemanagementsystem

Seite12

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Relationale
Datenbanken

EntityRelationshipModel

EntityRelationshipModel

Beziehung(Relationship)

Entitt(Entity)

Konnektivitt(Kardinalitt)

Entittstyp

1:1Beziehung

EntittundEntittstyp

1:1Beziehung(mehrstellig)

Attribut

1:nBeziehung

Primrschlssel

m:nBeziehung

Fremdschlssel

Datenbanken
EntityRelationshipModel

AllePrimrschlsselwerdenunterstrichen.
DieFremdschlsselwerdenbeidenRelationshipinderRegelnichtaufgefhrt.

Seite13

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

EntityRelationshipModel
Entity
EineEntittisteinDing,welcheseindeutigidentifizierbarist. [Chen]

EntitterscheintwiebeiOOPzwitterhaft:alsrealesWeltObjektund/oderalsDVObjekt

WieeineEntittmodelliertwird,stehtpersenichtfest.Eswirddurcheine
Entwurfsentscheidungfestgelegt.

JedeEntittistsingulr,alsoeinExemplar,dasdurchdenWertseinerAttributebestimmt
wird;
d.h.esexistierteineindeutigerSchlssel,durchdenesidentifiziertwird.

EntityRelationshipModel
Entittstyp

EinEntittstypdefinierteineKlassegleichartigerEntitten.

ImERMspezifiziertderEntittstypeineMengevonEntitten(Exemplaren,Instanzen)mit
gleichenAttributen.

ZujedemEntittstypkannesbeliebigvieleEntittengeben.

ModelleenthaltennurEntittstypen

EntittstypenreprsentierendieallgemeineDatenbeschreibung
EntittenreprsentierendenDatenbestand

EntittstypenbeschreibenkeineDateien;d.h.
damitistkeineZugriffsorganisationfestgelegt,
keine(hierarchische)OrdnungderEntittendefiniert.

EntityRelationshipModel
EntittundEntittstyp
Entittstyp
beschreibt im Modell die Sicht auf die Mitarbeiter
des Betriebs.

Entitten
Hansen

Horst

4.740

Pirelli

Elli

5.900

Ratlos

Rudi

3.620

....

Die Werte der Attribute enthalten die aktuellen


Daten eines jeden Mitarbeiters.

(ZurVeranschaulichungwerdenmanchmal
AttributwerteinderDarstellungdesEntittstyps
eingetragen!)

Seite14

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

EntityRelationshipModel
Attribute
EinAttributistdieBeschreibungeinerbestimmtenEigenschaftderEntitteneinerEntittsmenge.

JedesAttributeinerEntitterhlteinenNamen

NamensindineinerEntitteindeutigIdentifizierungvonAttributennurberNamen,nicht
berDefinitionsreihenfolge

GleicheAttributNamensindinverschiedenenEntittenmglicheindeutigdurch:
Entittsname.Attributname

DatentypundWertebereich

ImERMsindalsAttributeauchkomplexeDatenmglich,wiez.B.Adresse.Dajedochdas
relationaleModellnur"flache"Attributezulsst,solltenimERMvorzugsweiseauchnur
einfacheDatentypengenommenwerden.

EntityRelationshipModel
Identifikationsschlssel
DerSchlssel(Primrschlssel,primarykey)dientzurIdentifikationeinerEntitt,derihneindeutig
vondenanderenEntittendesselbenEntittstypsunterscheidetunddersichwhrendder
Lebensdauernichtndert.
JederSchlsselbestehtauseinemodermehrerenAttributen(Schlsselattributen).Dierestlichen
heienNichtSchlsselAttribute.

AlsPrimrschlsselkanngewhltwerden:

NatrlicherSchlssel,
ein"normales"Attribut,welchesdieEntittmitbringt,z.B.

PKW(Fahrgestellnummer,Modell,Erstzulassung,DatumderAbmeldung),
dadieNummereinmaligseinmuss.

KnstlicherSchlssel
Den"natrlichen"AttributenwirdbeiderModellierungeinzustzlichesmeistnumerisches
Attributhinzugefgt,dasdieEinmaligkeitsichert,z.B.

KUNDE(Kundenummer,Name,Vorname,Plz,Ort,Strasse,Hausnummer)

"EinPrimrschlsselkannauchausderKombinationmehrererAttributebestehen,wenndiese
gemeinsamjedenSatzeindeutigidentifizieren.DiesistdanndersogenannteKombinierte
PrimrschlsseloderauchVerbundschlssel.HierkanneineWertekombinationalleramSchlssel
beteiligtenAttributenureinmalvorkommen."(http://www.atmix.de/primaerschluessel.htm),z.B.

PERSON(Name,Vorname,Geburtstag,Strasse,HausNr,TelefonNr)

Seite15

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
BeziehungenzwischenTabellenwerdendadurchhergestellt,dassderPrimrschlsseleinerRelation
alsFremdschlsselinderRelationeingetragenwirdzudereineBeziehungbesteht.
EntityRelationshipModel
Beziehungen
EineBeziehung(Relationship)istdieZuordnungzweierodermehrererEntitten
untereinembestimmtenAspekt.

DieBeziehungdrckteineFunktionaus.

SiewirdblicherweisevonlinksnachrechtsgelesenundkanndurcheinSubstantivoderein
Verbbeschriebenwerden...

DieselbenEntittenknnenmehrere,verschiedeneBeziehungenhaben.

Obein"Welt"SachverhaltEntittoderBeziehungist,stehtpersenichtfest.Eswirddurch
eineangemesseneEntwurfsentscheidungbeiderModellierungfestgelegt.

EntityRelationshipModel
Konnektivitt(Kardinalitt)
DieKonnektivitt(AssoziationE1,E2)legtfest,wievieleEntittenausE2einerEntittausE1
zugeordnetwerdenknnen.

DabeiwerdendreiGrundtypenunterschieden:
1:1
1:n
m:n

IndieserSchreibweisegibtdieKonnektivittnuran,wievieleEntittenmaximalmiteinander
verbundenseinknnen.

AndereNotationensind:
1:genaueine(1)
c:konditionell,keineodereine(0,1)
m:multiple(1,*)
mc:(0,1,*)

Seite16

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

MethodederFestlegungundNotation:

DieKonnektivittwirdjeweilsamgegenberliegendenEntittstypnotiert,
z.B.1EntittausE2kannnurmitgenau1ausE1Beziehungenhaben.

DieKonnektivittgibtfrjedenEntittstypan,zuwievielanderenEntittenjedeeinzelneEntitt
Beziehungenhabenkann.

Die1:1Beziehung

1Mannstehtexklusivzu1einerFrauinBeziehungoder

1Fraustehtexklusivzu1ManninBeziehung

Die1:1Beziehung(mehrstellig)

1Aufwandsnachweisegiltfr1Rechnungin1bestimmtenWerk

Zu1RechnunggibtesproWerk1Aufwandsnachweis

JedesWerkhatzu1Rechnung1Aufwandsnachweis.

Die1:nBeziehung

1AbteilungbeschftigtmehrereMitarbeiter

1Mitarbeiteristexklusivin1Abteilungbeschftigt

Seite17

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Diem:nBeziehung

1ProjektkannmehrereMitarbeiterhaben

1MitarbeiterkannanmehrerenProjektenmitarbeiten

Modellierung
von
Datenbanken

Datenbank-Modellierung
Allgemeines Material

ArbeitsschrittezumErstellenvon
Datenbankanwendungen

Anforderungsdefinition

Gliederungder
Anforderungsdefinition

EntityRelationshipModel

AnwendungderAbbildungsregeln

EntityRelationshipModel

Integrittsbedingungen

Abbildungsregeln(einfach)

Zugangsberechtigungen

Abbildungsregeln(ausfhrlich)

FunktionaleAbhngigkeitvom
Schlssel

SQLScriptzumErzeugendes
Datenmodells(Informix)

SQLScriptzumErzeugendes
Datenmodells(MySql)

SQLScriptzurVergabeder
Zugriffsrechte(MySql)

SQLScriptzurVergabeder
Zugriffsrechte(Informix)

Integrittsbedingungen

Normalisierung

SichtenundZugriffsrechte(berblick)

ZugriffsrechteSQL

Beispieldatenbank
"Flotter Flitzer"

Seite18

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

ArbeitsschrittezumErstelleneinerDatenbankanwendung
ImFolgendenwerdendiewesentlichenSchrittezurErstellungeinerDatenbankanwendung
dargestellt.DieBeschreibunggiltfralleDatenbankmaschinen.DieDokumentationderVerwaltung
derAutovermietungFlotterFlitzerkannalsBeispieldienen.DieTtigkeitensindnachdem
Schichtenmodellgetrenntaufgefhrt.
Modell
Nr.
1

Ttigkeit
Anforderungsdefinitionschreiben

Dokument
Anforderungsdefinition

DatenanalyseundDatenmodellierungmitHilfedesEntity
RelationshipModells(ERM)

EntityRelationsshipModel

berfhrungdesERMinTabellenanhandderAbbildungsregeln

VerzeichnisderTabellen

berprfungderTabellenmitHilfederNormalisierung

FestlegenderIntegrittsbedingungen

Aufstellungder
Integrittsbedingungen

ErzeugenderDatenbankundderentsprechendenTabellen

KommentiertesSQLScript

FestlegenderSichtenundderjeweiligenZugangsberechtigungen

Verzeichnisder
Zugangsberechtigungen

ErstellenderSichtenundZugangsberechtigungen

KommentiertesSQLScript

ErzeugenvonIndicesfrjedenSchlsselbzw.zurBeschleunigungdes KommentiertesSQLScript
Ablaufs(nurbeimehrals200Datenstzen)

MitdiesenSchrittenistdieDatenbasisderAnwendungmitdenElementaroperationen(select,insert,
modifyunddelete)fertig,allerdingsohnejeglichenKomfort.DieEinundAusgabevonDatenkann
nuraufderPromptebenemitSQLerfolgen.
WeiterhinfehltdieSichtderFunktionen.UmdieDatenbankberdasInternetbedienenzuknnen
undumdieIntergrittsbedingungeneinzubauensindfolgendeSchrittemglich:
View
Nr.
1

Ttigkeit
AnforderungsdefinitionfrdieWebsiteinderdieDatenbank
eingebundenwerdensollerstellenoderanpassen.

Dokument
Anforderungsdefinition

FestlegenderNavigationsstrukturfrdieWebsite

Zeichnungder
Navigationsstruktur

ErstelleneinesPrototypsmitPlatzhalternfrdieTabellen

ErstellenvonWebseitenzurDatenpflegeinHTML.

Beispiel:HTMLSeitenzur
Eingabe

Skripteerzeugen(z.B.inPHP,Pearlusw.),umdieVerbindungder
HTMLSeitemitderDatenbankherzustellen.

Beispiel:SkriptzumAusgeben
einerKundenliste

TestenderAnwendung

Testprotokoll

Datenbankanwendungffentlichzugnglichmachen

Logfiles

Seite19

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

GliederungderAnforderungsdefinition
Aufgabenstellung
BeschreibungvonZweckundZusammenhangdesknftigenProdukts
AnforderungenandieBenutzerinnenundBenutzer
ErforderlicheVorkenntnisse,diezumUmgangmitdemProduktvorausgesetztwerden
AnforderungenandieArbeitsweise
EingliederungdeszuerarbeitendenSoftwareproduktsinbestehendeBetriebsundArbeitsablufe
AnforderungenandenLeistungsumfang
KurzdarstellungderdurchdasProduktzurVerfgunggestelltenLeistungen,aufgeschlsseltnach
Benutzungsgruppen
AnforderungenanmglicheAusbaustufen
Aufstellungdenkbarer,zuknftigerErweiterungen
AnforderungenandasFehlerverhalten
AussagenzumVerhaltendesProduktsbeiFehlbedienung,insbesonderedermglichen
KonsequenzenfrdasUmfeld(Datenverlust,Systemstillstandetc.)
AnforderungenandieQualitt
AngabenzurQualittdesProdukts,z.B.zumAufwandfrdiePortierbarkeitundzurImplementation
vonErweiterungen
AnforderungenandenDatenschutz
BeschreibungderzutreffendenManahmenzurSicherstellungdesDatenschutzessowohlrechtlich
alsauchausderSichtdesAuftraggebersbzw.derAuftraggeberin.
AnforderungenandieErgonomie
DarstellungderAnforderungenandieBenutzerschnittstelle
AnforderungenandieDokumentation
AussagenzumUmfangderzumProduktgehrendenDokumentation
AnforderungenandieBasismaschine
Voraussetzungen,dievoneinerMaschine(einschlielichSoftware)zurVerwendungdesProdukts
erflltseinmssen

Seite20

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Datenbanken
EntityRelationshipModel

AllePrimrschlsselwerdenunterstrichen.
DieFremdschlsselwerdenbeidenRelationshipinderRegelnichtaufgefhrt.

TransformationvonERMindasrelationaleModell
Abbildungsregeln(einfach)
DieTransformationdesERModellsinRelationenisteinmehrtechnischerProzess,dernachfesten
RegelnabluftundderheutzutageauchbereitsvonWerkzeugenbernommenwerdenkann.
Transformationsregeln(Abbildungsregeln)

1.Regel:
JederEntittstypwirdalsTabelledargestellt.

2.Regel
Jeden:mBeziehungwirddurcheineeigeneTabelledargestellt.
DieBeziehungwirddadurchhergestellt,dassdiePrimrschlsselvonE1undE2als
FremdschlsselattributeinderBeziehungsrelationaufgenommenwerden.
Beispiel:EinemProjektgehrenmehrereMitarbeiteran,dieauchinmehrerenverschiedenen
Projektenmitarbeiten.

PERSONAL(PNr,Name)
PROJEKT(ProNr,Bezeichung,Termin)
ZUGEHRIGKEIT(PNr,ProNr)

3.Regel
Jede1:nund1:1Beziehung,dieeigeneAttributehat,wirddurcheineeigeneTabelle
dargestellt.

Seite21

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

4.Regel
Hateine1:nBeziehungkeineeigenenAttributedanngilt:
IsteineEntittausE2zwingendesMitglied(d.h.genau1)einer1:nBeziehungmiteiner
EntittausE1,dannerhltE2denprimrenSchlsselvonE1alsAttribut.

SoferneineEntittausE2freiesMitglied(d.h.0,1konditionell)der1:nBeziehungmit
einerEntittausE1ist,wirddieseBeziehunggewhnlichineinereigenenRelation
dargestellt.
DieseBedingungengeltenfr1:1und1:nBeziehungen.
BeispielefrRegel4
ZwingendesMitgliedamBeispielAbteilungszuordnung:

EineMitarbeiteringehrtzwingendgenaueinerAbteilunganundeineAbteilunghatmehrere
Mitarbeiterinnen.

DahiereineEntitt(Mitarbeiterin)vonE2zwingendesMitgliedeinerEntittausE1(Abteilungist),
wirddieBeziehungindenTabellendadurchhergestellt,indemderPrimrschlsselvonE1(ANr)in
E2alsFremdschlsselattributaufgenommenwird.
ABTEILUNG(ANr,AName)
PERSONAL(PNr,Name,ANr)
FreigestelltesMitgliedamBeispielBetriebssportgemeinschaft:
EineMitarbeiterinkannmussabernichtMitgliedgenaueinerBetriebssportgemeinschaftsein.

DahiereineEntittausE2(Mitarbeiterin)freiesMitgliedderEntittE1(BSG)ist,wirddieBeziehung
ineinereigenenTabelledargestelltunddiePrimrschlsselvonE1undE2werdenalsFremdschlssel
eingetragen.
BSG(BSGNr,BSGName)
PERSONAL(PNr,Name)
MITGLIED(Mitgliedsnummer,BSGNr,PNr)

Seite22

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

TransformationvonERMindasrelationaleModell(ausfhrlich)
DieTransformationdesERModellsinRelationenisteinmehrtechnischerProzess,dernachfesten
RegelnabluftundderheutzutageauchbereitsvonWerkzeugenbernommenwerdenkann.Beiden
EntittstypenistesklarsiewerdeninRelationen(Tabellen)berfhrt.BeidenBeziehungsmengen
(Relationship)sindeinigeBesonderheiteninAbhngigkeitvonderKonnektivittzubeachten.

Transformationsregeln

1.Regel:
JederEntittstypwirdalsTabelledargestellt.

2.Regel
Jeden:mBeziehungwirddurcheineeigeneTabelledargestellt.
DieBeziehungwirddadurchhergestellt,dassdiePrimrschlsselvonE1undE2als
FremdschlsselattributeinderBeziehungsrelationaufgenommenwerden.
Beispiel:EinemProjektgehrenmehrereMitarbeiteran,dieauchinmehrerenverschiedenen
Projektenmitarbeiten.

PERSONAL(PNr,Name)
PROJEKT(ProNr,Bezeichung,Termin)
ZUGEHRIGKEIT(PNr,ProNr)

3.Regel
JedeBeziehung,dieeigeneAttributehat,wirddurcheineeigeneTabelledargestellt.

4.Regel
Hateine1:nBeziehungkeineeigenenAttributedanngilt:
IsteineEntittausE2zwingendesMitglied(d.h.genau1)einer1:nBeziehungmiteiner
EntittausE1,dannerhltE2denprimrenSchlsselvonE1alsAttribut.

SoferneineEntittausE2freiesMitglied(d.h.0,1konditionell)der1:nBeziehungmit
einerEntittausE1ist,wirddieseBeziehunggewhnlichineinereigenenRelation
dargestellt.
DieseBedingungengeltenfr1:1und1:nBeziehungen.

Seite23

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
Wannnimmtman2Tabellenwanndrei?
BeispielzweiTabellen:

Abteilungszuordnung:

MehrereMitarbeitergehren1Abteilungan.

DieBeziehungwirdindenTabellendadurchhergestellt,indemderPrimrschlsselvonE1(ANr)in
E2alsFremdschlsselattributaufgenommenwird.
ABTEILUNG(ANr,AName)
PERSONAL(PNr,Name,ANr)
BeispieldreiTabellen:
SzeneneinerEhe

Scheinbarliegthiereine1:1BeziehungnachabendlndischemRechtvor.
BeieinerzwingendenBeziehungmussin'Eheland'Heiratspflichtbestehenundesmssten
gleichgroeEntittsmengenvorhandensein.WenneinPartnerAdamstirbt(gelschtwird),tritt
eineLschanomalieauf,dienurdadurchgeheiltwerdenkann,dassEvaebenfallsgelschtwird
('indischeEhe').
DiegleicheProblematikliegtbei1:nBeziehungenvor('muslimischeEhe').

FalscheLsungmitHeiratspflichtund"indischenVerhltnissen".
MNNER
FRAUEN
Name

Ehefrau

Adam

Eva

Ike

Tina

Udo

Rudi

Name

Ehemann

Berta

Eva

Adam

Tina

Ike

Dabeiunsnichtjederverheiratetseinmuss,alsoeinefreieBeziehungbesteht,unddieMnner
schonmalfrhersterbenalsFrauen,gibtesinderTabellenachdemobigenModellverboteneleere
Felder(Nullstellen).DieLsungergibtsichdurchEinfhrenderBeziehungstabelleEHEmitden
FremdschlsselnMNNER.NameundFRAUEN.Name.

Seite24

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
RichtigeLsung:
MNNER

FRAUEN

EHE

Name

Ehefrau

Ehemann

Name

Adam

Eva

Adam

Berta

Ike

Tina

Ike

Eva

Udo

Rudi

Tina

FunktionaleAbhngigkeitvonSchlsseln
FunktionaleAbhngigkeitvomSchlsselheit:
NichtSchlsselattributesindausdemSchlsselbestimmbar
1. FunktionaleAbhngigkeitbeieinemSchlsselattribut:
KUNDE(KNr,Firma,Plz,Ort,Strasse,HausNr)
KundenFirmaistausKNrbestimmbar.
2. FunktionaleAbhngigkeitvonzusammengesetztenSchlsseln:
(BeidiesemBeispielseiunterstellt,dassgenaueinePLZeinemOrtzugeordnetist.)

VERTRETER(Name,Ort,PLZ,Vorname,Umsatz)
Meier

AStadt

12123

Anton

50.000

Meier

KStadt

34517

Anton

80.000

3. DerUmsatzeinesVertretersineinerbestimmtenStadtistvomgesamtenSchlsselabhngig
Meier

AStadt

50.000

Meier

KStadt

80.000

4. DiePostleitzahlistnurvoneinemTeilschlsselabhngig.

AStadt

12123

KStadt

34517

1.
VollfunktionalabhngigsinddieAttributeeinerRelationgenaudann,wennsievon
jedemTeilderAttributskombinationabhngen,abernichtbereitsvonTeilender
Attributskombination

Seite25

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Integrittsbedinungen
IntegrittsregelnknnenindreiKategorieneinordnetwerden:

1.RegelnfrdieWertebereichsintegritt(Beispiel)
"SieumfassendenErhaltderKorrektheitderAttributwerteinnerhalbderRelationen"

FrjedesAttributistderzulssigeWertebereichfestzulegen.DiesesKonzeptentsprichtder
TypprfungbeiProgrammiersprachen.NebendemgenauenDatentypsollten,wennmglich,auch
OberundUntergrenzenfrdieWerteangegebenwerden.
ZudieserIntegrittsprfunggehrtauchdieForderung,dassderWertebereichfreinbeliebiges
SchlsselelementnichtNULLbeinhaltendarf.

MethodenzurEinhaltungsindz.B.diePlausibilittsprfungunddasPrfziffernverfahren.

2.RegelnfrdieintrarelationaleIntegritt(Beispiel)
"SieumfassendieKorrektheitderBeziehungenzwischendenAttributenineinerRelation
undderErhaltungderEindeutigkeitdesSchlssels"
ImwesentlichengehteshierumdieEindeutigkeitderSchlssel,Indexeundz.B.fortlaufende
Nummerierung.VielerelationaleDatenbanksystemeerzwingendieseEindeutigkeitnicht.

3.RegelnfrdiereferentielleIntegritt(Beispiel)
"SieumfassendieErhaltungderKorrektheitundKonsistenzderBeziehungenzwischen
denRelationen"
DieErhaltungderreferentiellenIntegrittgiltvorallemderberprfungvonFremdschlsseln.So
solltenz.B.ineinerBchereikeineBenutzergelschtwerdenknnen,dienocheinBuchausgeliehen
haben.AuerdemsolltennurBcherantatschlichvorhandeneBenutzerausgeliehenwerden
knnen.Verstegegendiereferentielle

Normalisierung

NormalisierungZieleu.Verfahren

NormalisierungBeispiel

o 1Normalform(mit.bung)
o 2Normalform
o 3Normalform
o Lsung

weiterebungsaufgabezur
Normaliserung

Redundanz

Mutationsanomalien

bungMutationsanomalien

bungMutationsanomalienLsung

DieEinhaltungderIntegrittsbedingungenbeieinemRDBSerzwingtbestimmteAnforderungenan
dieFormderTabellen.DerWegdahinwirdNormalisierunggenannt.AmEndederNormalisierung
stehenRelationen,dieeinervorgegebenenNormalformentsprechen.Jehherdiegewhlte
Normalform(NF),destogrerdieAnforderungandieinnereStrukturderRelation.Kurzgesagt
bezwecktdieNormalisierungzweiZiele:

Seite26

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
Ziele:EliminierenvonRedundanzenundVermeidenvonAnomalien.

EsgibtzweiunterschiedlicheAnstze:RelationensyntheseundDekomposition,diezu
unterschiedlichenErgebnissenfhrenknnen.

Relationensynthese
RelationensyntheseisteinEntwurfsverfahrenfreinrelationalesDatenbankschema.Ausgangspunkt
dafrsinddieAttributeundihrefunktionalenAbhngigkeiten,welchemaningeeignetenRelationen
zusammenfasst.

Dekomposition
NichtimmergelingtesbeieinemEntwurfdieRelationensozugestalten,dassInformationen,die
nichtzusammengehren,auchnichtineinerTabellestehen.SolcheRelationenfhreninderPraxis
zuFehlernbeiderVerarbeitung,dieAnomaliengenanntwerden.
DieGrundideederDekompositionbestehtdarin,ausgehendvonder1.Normalform(1NF),
Relationen,dienichtdergefordertenNormalformentsprechen,inzweiodermehrRelationensozu
zerlegen,dassdieneuenRelationenderNormalformentsprechen.
Bedingung:esdrfenkeineInformationenverlorengehenunddiealteRelationmussausdenneuen
wiederherstellbarsein(VerbundtreueoderAbhngigkeitstreue).AuerdemmussdieMinimalittin
BezugaufdieAnzahlderRelationengewhrleistetsein.
DasblicheVerfahrenistdieDekomposition.AusSicherheitsgrndensolltemanaucheinen
scheinbargutenEntwurfdamitberprfen.

bung
DienachfolgendendreiArbeitsbltter*)zeigendenNormalisierungsprozessaneinemeinfachen
Beispiel.
1NF(1.Normalform)
2NF(2.Normalform)
3NF(3.Normalform)
Lsung
Frdendieerstebungistesgnstig,dieTabellenauszufllen,umdenFortschrittder
Normalisierungzuveranschaulichen,spterreichtdieKurznotation.
1.Normalform
"EineTabelleliegtindererstenNormalformvor,wennjederAttributwerteineatomare,nichtweiter
zerlegbareDateneinheitist."
Beispiel:Fahrradgeschft
Knr Name

Rahmennr

Marke

100 Meyer Hofweg6 Berlin

123

101 Mller Solweg5

Berlin

100 Meyer Hofweg6 Berlin

Str.

Seite27

Ort

Versich.

Ortder
Versich.

Reparatur
datum

Diagnose

Diamant Allianz

Kln

12.12.94

Platten

690

Kettler

Allianz

Kln

14.12.94

Schleicher

432

Winora

Signal

Mainz

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
2.Normalform
"EineTabelleliegtinderzweitenNormalform(2NF)vor,wennsieinder1NFistundjedes
NichtschlsselattributvollfunktionalabhngigvomPrimrschlsselist."
DieAttributeName,Str.,Ort,Marke,Versicherung,OrtderVersicherung,Reparaturdatum,Diagnose
sindnichtvollfunktionalabhngigvomPrimrschlssel(KombinationsschlsselKnrundRahmennr).
DieTabellemusssoaufgeteiltwerden,dassdieseNichtabhngigkeitenbeseitigtwerden.
Fahrrder:

Kunden:
Knr

Name

Str.

Ort

Kln

100

Meyer

Hofweg6

Berlin

Allianz

Kln

101

Mller

Solweg5

Berlin

Signal

Mainz

Rahmen Knr
nr

Marke

Versich. Ortder
Versich.

123

100

Diamant Allianz

690

101

Kettler

432

100

Winora

Reparaturen
Rahmennr

Reparaturdatum

Diagnose

123

12.12.94

Platten

690

14.12.94

Schleicher

3.Normalform
"EineTabelleliegtinderdrittenNormalform(3NF)vor,wennsiesichinder2NFbefindetundjedes
NichtschlsselattributnichttransitivabhngigvomPrimrschlsselist."
EsgibteinetransitiveAbhngigkeit:Rahmennummer>Versicherung>OrtderVersicherung.Aus
diesemGrundmusseineneueTabelleVersicherungangelegtwerden.
DieTabellenKundenundReparaturenbleibenunverndert.
Versicherungen
Versicherung

OrtderVersicherung

Allianz

Kln

Signal

Mainz

Fahrrder
Rahmennr

Knr

Marke

Versicherung

123

100

Diamant

Allianz

690

101

Kettler

Allianz

432

100

Winora

Signal

Seite28

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Normalisierung1NF
Ziel:

EliminierenvonRedundanzenundVermeidenvonAnomalien

Weg: AttributedenRelationensozuordnen,dassinnerhalbderRelationkeineRedundanzauftritt.
"Naive"Tabelle,nichtinder1NF(ersteNormalform).MitarbeiterknneninmehrerenProjekten
beteiligtsein.Eswirdjeweilsnotiert,wievieleStundensieineinemProjektgeleistethaben.

PERSONALPROJEKT
P#

PName

Abt# AbtName

Prj#

PrjName

PrjStd

101

Mller

Motoren

11,12

A,B

60,40

102

Meier

Karosserie

13

100

103

Krause

Karosserie

11,12,13 A,B,C

20,50,30

104

Schmidt

Motoren

11,13

80,20

A,C

EineTabelleliegtindererstenNormalformvor,wennjederAttributwerteineatomare,
nichtweiterzerlegbareDateneinheitist.
oder
EineTabelleistnichtinder1NF,wennAttributemehrfachoderkomplexineinerSpalte
auftreten;d.h.1NFisteineStrukturierungsvorschrift.
Rezept:AuslagerndernichtatomarenAttributeinverschiedeneZeilenodermehrereSpaltenoder
eigeneTabellen.
PERSONAL-PROJEKT
P#

PName

Abt#

AbtName

Seite29

Pj#

PjName

PjStd

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Normalisierung2NF
Zwischenergebnis:1NF
PERSONAL-PROJEKT
P#

PName

Abt#

AbtName

Prj#

PrjName

PrjStd

101

Mller

Motoren

11

60

101

Mller

Motoren

12

40

102

Meier

Karosserie

13

100

103

Krause

Karosserie

11

20

103

Krause

Karosserie

12

50

103

Krause

Karosserie

13

30

104

Schmidt

Motoren

11

80

104

Schmidt

Motoren

13

20

EineTabelleliegtinderzweitenNormalform(2NF)vor,wennsieinder1NFistundjedes
NichtschlsselattributvollfunktionalabhngigvomPrimrschlsselist.
oder
EineTabelleistnichtinder2NF,wennAttributevoneinemTeildesSchlsselseindeutig
identifiziertwerden.Voraussetzungistauerdem1NF
Rezept:AuslagernvonTeilschlsselnundzugehrigenInformationenineigeneTabellennach
Sachgebieten;bzw.separateEntittstypenmiteigenemSchlsselfinden.BeimAuslagerndurch
entsprechendeBeziehungendaraufachten,dassInformationennichtverlorengehen.

Seite30

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Normalisierung3NF
Zwischenergebnis:2NF
PERSONAL

PERSONAL-PROJEKT

P#

PName

Abt#

AbtName

P# Prj# PrjStd

101

Mller

Motoren

101 11

60

102

Meier

Karosserie

101 12

40

103

Krause

Karosserie

102 13

100

104

Schmidt

Motoren

103 11

20

103 12

50

103 13

30

104 11

80

104 13

20

PROJEKT
Prj# PrjName
11 A

12 B
13 C

EineTabelleliegtinderdrittenNormalform(3NF)vor,wennsiesichinder2NFbefindet
undjedesNichtschlsselattributnichttransitivabhngigvomPrimrschlsselist
oder
EineTabelleistnichtinder3NF,wennAttributevonanderenNichtSchlsselattributen
identifiziertwerden.Voraussetzungistauerdem2NF.
Rezept:Auslagernder"transitivabhngigen"AttributeineigeneTabellen.

NormalisierungLsung3.Normalform
1.Normalform(1NF)
PERSONALPROJEKT(P#,PName,Abt#,AbtName,Prj#,PrjName,PrjStd)
2.Normalform(2NF)
PERSONAL(P#,PName,Abt#,AbtName)
PROJEKT(Prj#,PrjName)
PERSONALPROJEKT(P#,Prj#,PrjStd)
3.Normalform(3NF)
PERSONAL(P#,PName,Abt#)
PROJEKT(Prj#,PrjName)
PERSONALPROJEKT(P#,Prj#,PrjStd)
ABTEILUNG(Abt#,AbtName)

Seite31

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

bungsaufgabezurNormalisierung
Aufgabenstellung:

DerSystemanalytikerHannesvonMassenheimwurdebeauftragt,freineAutovermietungeineERM
zuerstellenunddiesesModellinTabellenzubertragen.
Erliefertfolgende3Tabellenab(Schlsselfeldersindunterstrichen):
Kunden
Knr

Name

Strae.

PLZ

Ort

Geburtsdatum

100

Meyer

Hofweg6

14169

Berlin

13.04.56

101

Mller

Solweg5

10999

Berlin

12.09.46

Kennzeichen

Erst
Klima
zulassung anlage

Modell
name

Lei
stung

Lnge

Herstel
lername

Strasse

PLZ

BW123

10.05.95

ja

OpelManta

78

390

Opel

Torstr.5

54321 Rsselsheim

BK345

10.09.95

nein

OpelManta

78

390

Opel

Torstr.5

54321 Rsselsheim

PKW
Ort

Ausleihe
Kennzeichen Knr

Ausleihtag Anfangkm Rckgabetag

Endekm

BW123

1011 18.09.95

23457

20.09.95

25456

BK345

1017 18.09.95

1256

19.09.95

2341

MariettaMandelheim,AuszubildendezurDatenverarbeitungskauffrau,siehtdieseTabellenund
lstert:"Dassiehtdochjede,dassdiese3Tabellennichtder3.Normalformentsprechen."
Aufgabe:
PrfenSie,obMariettarechthatundstellenSieggf.alleTabellenin3.Normalformdar!

Seite32

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Redundanz
UmInkonsistenzenzuvermeiden,sollteeineDatenbankkeineDatenmehrfachenthalten.Diesistz.
B.dannderFall,wennDatenberStudentinnenundStudentengleichzeitiginder
FachbereichsbibliothekundimImmatrikulationsbrogespeichertwerden.
Redundanz:mehrmaligesSpeicherndergleichenDaten,d.h.esknnenDatenohne
Informationsverlustweggelassenwerden.
WennDatenmehrfachgespeichertwerden,
1. fhrtdieszueinemredundantenArbeitsaufwand,z.B.musseinenderungderAnschriftim
obigenBeispielzweimalvorgenommenwerden.
2. wirdSpeicherplatzverschwendet.
3. knnenMutationsanomalienauftreten,wennnichtalleDateninallenbeteiligtenDateien
gendertwerden,z.B.einenderungderAnschriftnurinderFachbereichsbibliothekund
nichtimImmatrikulationsbrovorgenommenwird.
EineNormalisierungberprfteinDatenmodellaufRedundanzenundstelltsomitsicher,dasskeine
Datenmehrfachvorhandensind.

RelationaleDatenbanken
Mutationsanomalien
WenneinenDatenbanknichtnormalisiertwurdeunddadurchRedundanzenaufweistknnen
Mutationsanomalienvorkommen.DieseAnomalienentstehenauch,wenndie
IntegrittsbedingungeneinerDatenbank,insbesonderediereferentielleIntegrittzwischen
Relationennichteingehaltenwerden.
WeisteineeineDatenbankMutationsanomalienauf,dannsinddieenthaltenenDateninkonsistent,
z.B.kannesdannmglichsein,dassvoneinerPersonmehrereAnschrifteninderDatenbank
vorhandensind.
AmfolgendenBeispielsollendieeinzelnenAnomalienerklrtwerden:
Ausleihe(Achtung,dieseTabelleistnichtnormalisiert,alsofalschunddientnurals
Demonstrationsobjekt)

100

Meyer Hans

Hofweg8

Ausleih
datum
12345 Berlin 20051103

245

Meyer Hans

Hofweg8

12345 Berlin 20051103

444

Mller Hilde

Hagweg9 10101 Berlin 20060103

Ausleihnr Buchnr Name Vorname Strae

PLZ

Ort

Buch
Buchnr Titel
Grundlagenvon
100
Datenbanksystemen
245
Datenbankmodelle
444
RelationaleDatenbanken

Seite33

Autor

Verlag

Elmasri

AddisonWesley

Vossen
Meier

Oldenbourg
Springer

Rckgabe
datum
20060103
20060103

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

EinfgeAnomalie
IneineRelationmitFremdschlsselknnenneueTupelnureingetragenwerden,wennderkonkrete
DatensatzinderreferenziertenRelationvorhandenist.EinneuesTupelkannalsoinderRelation
Ausleiheersteingetragenwerden,wenndasauszuleihendeBuchinderRelationBuchvorhandenist.

LschAnomalie
EinTupeldarfauseinerRelationerstgelschtwerden,wennkeineFremdschlsseleintrgefrdiesen
TupelinanderenRelationenvorliegen.GeschiehtdiestrotzdemgehenalleInformationenverloren.
WirddasBuchmitderBuchnummer444inderRelationBuchgelscht,sindalleDatenzudiesem
Buchnichtmehrnachvollziehbar,obwohldasBuchnochausgeliehenist.

nderungsAnomalie
Wenn,wieinderRelationAusleihe,einDatensatzmehrfachvorhandenistundsichndert,kannes
vorkommen,dassnichtallebetroffenenDatenstzegendertwerden.ZiehtHansMeyerum,dann
msseninderRelationAusleihediebeidenvorhandenenAdressengendertwerden,sonstentsteht
einenderungsAnomalie.DurchdieAuslagerungderKundendatenineineeigeneRelationKunde,
knnennderungsanomalienindiesemFallverhindertwerden.
Mutationsanomalien
MutationsanomaliensindschdlicheFolgenfrdieKonsistenzeinerDatenbank,diesichbei
nderungenvonDatenergebenknnen,wennsichdieTabellennichtineinernormalisierten
FormbefindenundRedundanzenvorhandensind.

Beispiel
FrdieseTabellesollgelten:

JedesFachhatgenaueinenFachleiterundeinenFachhelfer

EinFachkannvonmehrerenLehrernunterrichtetwerden

FACH-LEHRER
Lehrerkrzel

Lehrername

Fachname

FachleiterKrzel

FachhelferName

Hei

Heitech

Info

Hei

Lotech

Mid

Middletech

Info

Hei

Lotech

Zwi

Zwitech

Info

Hei

Lotech

Jag

Jagger

Musik

Jag

Brahms

Sch

Schiller

Deutsch

Schil

Ratlos

Goe

Goethe

Deutsch

Schil

Ratlos

1.WaskannmanbeiBetrachtungderDatenintegrittzuderTabellesagen?
2.WiewirktessichaufdieDatenintegrittaus,wenn...

Seite34

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Einfgeanomalie
EinneuesFachKunstsolleingefhrtwerden,jedochistnochkeinLehrerdafrverfgbar.

Lschanomalie
LehrerJagger(Jag)wirdpensioniert.

nderungsanomalie
DasFachInfowirdderFachhelferLotechdurchdenFachhelferFiffikusersetzt.

MutationsanomalienLsung
FACH-LEHRER
Lehrerkrzel

Lehrername

Fachname

FachleiterKrzel

FachhelferName

Hei

Heitech

Info

Hei

Lotech

Mid

Middletech

Info

Hei

Lotech

Zwi

Zwitech

Info

Hei

Lotech

Jag

Jagger

Musik

Jag

Brahms

Sch

Schiller

Deutsch

Schil

Ratlos

Goe

Goethe

Deutsch

Schil

Ratlos

WaskannmanzuderTabellesagen?
DieTabelleenthltvieleRedundanzen.
WiewirktessichaufdieDatenintegrittaus,wenn...?

Einfgeanomalie
EinneuesFachKunstsolleingefhrtwerden,jedochistnochkeinLehrerdafrverfgbar.

DasFachkannnichteingefhrtwerdenmanmusswartenbiseinLehrereinsetzbarist,weil
dasAttributLehrerkrzelzumSchlsselgehrtundimmereinenWert(NOTNULL)haben
muss.

Lschanomalie
LehrerJagger(Jag)wirdpensioniert.

WennJaggerdieSchuleverlsst,dannmussdasganzeFachMusikgelschtwerden.
AuerdemgehtdieInformationverloren,dassBrahmsFachhelferist.

nderungsanomalie
DasFachInfowirdderFachhelferLotechdurchdenFachhelferHeiendersetzt.

WennFiffikusstattLotechFachhelferwird,dannmssennderungenindreiDatenstzen
gemachtwerden.

Seite35

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

SichtenundZugriffsrechte
NichtjederMitarbeitermussundsollZugriffaufalleDatenhaben.

Sichten
EsknnenBenutzersichtenaufTeilmengen(einerodermehrererTabellenund/oderTeilendaraus)
desDatenbestandeseingerichtetwerden.SiewerdenmitderAnweisungCreateview...vergeben
undknnendemBenutzerzugnglichgemachtwerden.

BeispielfreineBenutzersucht(view)'Rechnung'.
Verknpfung
zwischen
Basistabellen

Quelle:Husch,B:PraktischeSQLAnwendung,1994.

Seite36

Verknpfung
Viewmit
Basistabelle

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Zugriffsrechte
knnenmitgrantselectonkundentomueller
insert..
delete..
update..usw.
jedemeinzelnenBenutzergegebenwerden.
DanebensinddieblichenZugangskontrollen(ID,password)erforderlich.

ZugriffsrechteSQL
Vorbemerkungen
AlleimweiterenerwhntenZugriffsrechtebeziehensichaufdenSQL1Standard.DieBeispielegelten
frMySQLundentsprechenteilweisenichtdiesemStandard.

Zugriffsebenen
ZugriffsrechtefrDatenbankenknnenaufvierEbenenvergebenwerden:

GlobaleEbene:DieEbenedesDatenbankManagementSystems(DBMS),d.h.werberhaupt
ZugangzuallenDatenbankenhat.

DatenbankEbene:DerZugangzueinzelnenDatenbanken,d.h.wereineDatenbankbenutzen
darf

TabellenEbene:DerdifferenzierteZugriffaufeinzelneTabellen,d.h.welcheOperationenauf
einerTabelle(Relation)ausgefhrtwerdendrfen

SpaltenEbene:DerdifferenzierteZugriffaufeinzelneSpalten,d.h.welcheOperationenauf
einerSpalter(Attribut)ausgefhrtwerdendrfen.

DiedargestelltenRechtewerdeninderangegebenenReihenfolgeausgewertet.Dasbedeutet:
RechtedieaufderglobalenEbenevergebenwerden,knnenaufunterenEbenenichtwieder
eingeschrnktwerden.AufderglobalenEbenesolltedeshalbnurdieAdministrationdesDBMSber
alleRechteverfgenundallenanderenBenutzerinnenundBenutzersolltennurdasZugangsrecht
zumDBMShaben.AlleweiterenRechtesolltennurjeweilsfrDatenbanken,TabellenundSpalten
vergebenwerden.

ZugangzumDatenbankManagementSystem(GlobaleEbene)
GlobaleBerechtigungenbetreffenalleDatenbankenaufeinemgegebenenServer.DieseRechte
solltensehrsparsamodergarnichtvergebenwerden.Esreicht,wennalleBenutzerinnenund
BenutzeraufdieserEbeneZugangzurDatenbankhaben.

DerBefehlbeiMySQLdafrlautetfrdenBenutzerausleihemitdemPasswortauff:GRANT USAGE
on *.* to ausleihe@localhost IDENTIFIED BY 'auff'; Die USAGE
BerechtigungerlaubtbeiMySQL,einenBenutzerohneBerechtigungenanzulegen.
FrdasgesamteDatenbankManagementSystemwerdenAdministratorenrechtevergeben.Diese
RechtesindnichteingeschrnktunderlaubenesalleDatenbankenundRechtezuverndernundzu
lschen.WichtigsteAufgabederglobalenDatenbankadministrationistesleereDatenbankzu
erzeugenunddafrdieRechtederDatenbankadministrationzuvergeben.

Seite37

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

ZugangzurDatenbank
DiesesZugriffsrechtlegtfest,werdieDatenbankaufrufenunddamitnutzendarf.Entwederkann
diesesRechtallenBenutzerinnenundBenutzernodereinzelnenPersonenzugeteiltwerden.Greift
jemandunberechtigterweiseaufdieDatenbankzu,sowirdermiteinerentsprechenden
Fehlermeldungabgewiesen.
UmallenBenutzerinnenundBenutzernbeiMySQLeinenZugriffaufdieDatenbank"FF"zugewhren
lautetderBefehl:GRANT USAGE on FF.* to ''@localhost;
FrjedeDatenbankwerdenbesondereRechtefrdieAdministrationvergeben.DasRechtder
DatenbankadministrationumfasstalleZugriffeaufdieDatenbank.Insbesondereknnenmitdiesem
Recht:

alleZugriffsrechtevergebenundentzogen

Tabellen,ViewsundIndiceserzeugt,verndertundgelscht

dieDatenbankgelscht

werden.WerdieDatenbankerzeugt,wirdautomatischDatenbankadministratordieserDatenbank,
d.h.erbesitztDBARechte.DiesesRechtkannvomAdministratorweiterenPersonenzuerkennen.
DBARechtesolltenaufwenigePersonenbeschrnktbleiben.

ZugriffaufTabellen
FrjedeTabellewirdentschieden,weraufdieseTabellemitwelchenRechtenzugreifendarf.
FolgendeZugriffsrechteknnenvergebenwerden:

Ansehen(SELECT)

Hinzufgen(INSERT)

ndern(UPDATE)

Lschen(DELETE)

alleobigenZugriffsrechte(ALLPRIVILEGES)

WeiterknnendifferenziertRechtezurTabellenvernderungerteiltwerden.Diesistinden
entsprechendenHandbchernnachzulesen,undwirdhiernichtnhererlutert.
StandardmigwerdenzunchstalleTabellenrechtefrdieAllgemeinheitfreigegeben.Die
EinschrnkungaufbestimmtePersonenistgesondertzuprogrammieren.DieallgemeinenRechte
sinddabeiausdrcklichrckgngigzumachen.
FolgendeTabellekannalsMusterdokumentationfrdieFestlegungvonTabellenrechtendienen:

Tabellenname

Benutzernamen
Name
Name
Name

Seite38

SELECT
ja/nein
ja/nein
ja/nein

INSERT
ja/nein
ja/nein
ja/nein

UPDATE
ja/nein
ja/nein
ja/nein

DELETE
ja/nein
ja/nein
ja/nein

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
SolleinZugriffaufbestimmteTabellenauchfrunangemeldeteBenutzermglichsein,soistes
ratsamdafreinenbesonderenBenutzer(z.B.Dummy)mitentsprechendenRechteneinzurichten.
BeispielfrdieRegelungderZugriffeaufdieTabelleWerkstattinMySql:

GRANT SELECT ON FF.werkstatt TO fuhrpark@localhost,


wartung@localhost;
GRANT INSERT ON FF.werkstatt TO wartung@localhost;
GRANT UPDATE ON FF.werkstatt TO wartung@localhost;
GRANT DELETE ON FF.werkstatt TO wartung@localhost;
DerBenutzer"wartung"darfdieTabelleansehenundkannWerteeinfgen,ndernundlschen.Der
Benutzer"fuhrpark"hatnurLeserechte.

ZugriffaufSpalten
FrjedeSpaltewirdentschieden,weraufdieseTabellemitwelchenRechtenzugreifendarf.
FolgendeZugriffsrechteknnenvergebenwerden:

Ansehen(SELECT)

Hinzufgen(INSERT)

ndern(UPDATE)

Lschen(DELETE)

alleobigenZugriffsrechte(ALLPRIVILEGES

Views
DurchgeeignetdefinierteViewswirderreicht,dassjenachBedarfeinbestimmterAusschnittder
DatenbankzurVerfgunggestelltwird.DieserAusschnittkannauseinerKombinationvonFeldern
ausverschiedenenTabellenbestehen.SoknnenzumBeispielausSicherheitsgrndenkritische
Daten(wieKontostand)vornichtprivilegiertenBenutzernverborgenwerden,whrendprivilegierte
BenutzeraufalleDatenzugreifendrfen.ViewswerdenwieTabellenbehandelt,d.h.esknnenalle
Tabellenrechtevergebenwerden.
BeiderKombinationvonFeldernverschiedenerTabellenmssendieZugriffsrechteallerbeteiligten
TabellenfrdenjeweiligenBenutzerderViewsdefiniertwerden.

Seite39

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

RelationalesModell

RelationalesDatenmodell(Codd)

KartesischesProdukt

OperationenaufTabellen(allgemein)

Projektion

GrundoperationenaufRelationen
(detail.)

Selektion

Projektion+Selektion

NaturalJoin

o Projektion
o Selektion
o Join

DasrelationaleDatenmodell(nachCodd)
DieTabelleistdieeinzigeDatenstrukturdesrelationalenModells.
UnabhngigvondenAspektenderjeweiligenImplementierungundphysikalischenRealisierungauf
einembestimmtenRechner,bietenrelationaleDatenbankendemAnwendereineeinfachelogische
SchnittstellezudenDatenbestnden.
DiesewerdendemBenutzerinFormvonTabellenzurVerfgunggestellt.Entgegeneinem
hierarchischenDatenmodellmssenkeinedetailliertenInformationenberdieBeziehungen
(Referenzen,links)zwischendeneinzelnenObjektenverwaltetwerden,sonderndasSystembietet
dieDatenlediglichalsTupelsan,zwischendenenderBenutzerspterweitgehendbeliebige
BeziehungenauchwhrendderAnwendungherstellenkann.
KUNDE

VIDEO

KNr

Vorname

Name

12

Hans

Meier

47

Otto

Waalkes

....

...

...

1020

Rudi

Ratlos

VNr

Titel

Genre

101

Casablanca

Liebe

348

Alpenglhen

Heimat

...

...

...

AUSLEIHE

KNr

Vorname Name

VNr

Titel

Genre

47

Otto

Waalkes

101

Casablanca

Liebe

47

Otto

Waalkes

348

Alpenglhen Heimat

...

Beziehungsrelation(naiveDarstellung)

Seite40

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
JededieserTabellenhatfolgendeEigenschaften:

JedeTabelleistautonomundwirddurcheineneindeutigenSchlsselidentifiziert.

AufjedenelementarenWertkanngarantiertzugegriffenwerdendurcheineKombination
vonTabellenname,PrimrschlsselundSpaltenname

NULLWerte(unbelegteAttributfelderunabhngigvonDatentyp)drfenkeinemglichen
PrimrschlsselseinundmssenbeiBedarfauchinanderenSpaltenausgeschlossenwerden
knnen.

JedeSpaltehateinenBezeichner,derinnerhalbderTabelleeindeutigist.

DieAnordnungderSpaltenistfralleTupel(Zeilen)ineinerTabelleeinheitlich,aberohne
jedeBedeutung.

Spaltensindelementar.Diesheit,dassTabellen"flache"Datenstrukturenseinmssen,in
deneneinDatenfeldkeineweitereDatenstrukturenthaltendarf.

AllEintrgeinnerhalbeinerSpaltesindvondemselbenTyp(meistNUMERIC(n),AMOUNT(n),
STRING(n),DATE(n);BLOB)

DieReihenfolgederTupelistinderTabellebeliebig.

EinDatenbanksystemkanndannrelationalgenanntwerden,wennesdieallgemeinen
AnforderungenaneinDBSerflltund
1. dieDatendemBenutzerausschlielichalsRelationen(Tabellen)zugnglichmacht,
2. diePrimrschlsselbedingungunddiereferenzielleIntegritt(Fremdschlsselbedingungen)
automatischberwacht,
3. dieOperationenderRelationenalgebraunddienderungsoperationenaufTabellen
ausfhrenkann,ohnedassphysischeZugriffeangegebenwerdenmssen.

Seite41

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

OperationenaufTabellenProjektion
Projektion:Spaltenauswhlen

KUNDE
KNr
12
47
..
...
...
512

proj(Name)
Vorname Name
Hans
Meier
Otto
Waalkes
...
...
...
...
...
...
Elli
Pirelli

Name
Meier
Waalkes
...
...
...
Pirelli

ListedieNamenallerKundenauf!

OperationenaufTabellenSelektion
Selektion:Zeilen(Tupels)auswhlen

KUNDE

sel(Name='Meier')

KNr
12

Vorname Name
Hans
Meier

47

Otto

Waalkes

..

...

...

308

Erich

Meier

...

...

...

512

Elli

Pirelli

ListealleKundenmitdemNamen'Meier'auf!

Seite42

KNr
12

Vorname Name
Hans
Meier

308

Erich

Meier

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

OperationenaufTabellenProj.+Sel.
ProjektionundSelektionkombinieren

proj(Nr,Name); sel(Name=
'Meier')

KUNDE
KNr VornameName
12
Hans
Meier
47

Otto

Waalkes

..

...

...

308

Erich

Meier

...

...

...

512

Elli

Pirelli

KNr Name
12 Meier
308 Meier

ListedieNummerundNamenallerKundenauf,die'Meier'heissen!

OperationenaufTabellenJoin
NaturalJoin:TabellenverbindenberdiegemeinsamenAttribute
KUNDE
KNr VornameName
12
Hans
Meier
47

Otto

Waalkes

..

...

...

308

Erich

Meier

...

...

...

512

Elli

Pirelli

join(KUNDE.K-Nr =
AUSLEIHE.K-Nr)
Vorname
Otto

Name
Waalkes

AUSLEIHE
KNr
47

VNr
101

....

ListedieVornameundNamenallerKundenauf,dieeinVideogeliehenhaben!

WeitereOperationenaufTabellensind:

EinfgenvonZeileninTabellen

LschenvonZeilen

ndernvonSpaltenwerten

DazustehteinestandardisierteDatenbanksprachezurVerfgung:SQL

Seite43

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

KartesischesProdukt
DaskartesischeProduktistdieMengeallermglichenWertekombinationen

KUNDE
KNr
1

Name
Abel

2
47

kartesisches Produkt

Bebel

1
1

Abel
Abel

1 300
47 400

Waalkes

Bebel

Bebel

47 400

AUSLEIHE
KNr
1

VNr
300

....

47

400

300

47 Waalkes

300

47 Waalkes

47 400

Daraus lsst sich eine Definition ableiten:

EineRelationisteineTeilmengedeskartesischenProdukts,wobeialleTupeluntersich
verschiedensind

...undnocheinmal:join(KUNDE.KNr=AUSLEIHE.KNr)
SucheKundenNr,NameallerKunden,dieeinVideoausgeliehenhaben!

1 Abel
1 Abel

1 300
47 400

2 Bebel

1 300

2 Bebel

47 400

47 Waalkes 1 300
47 Waalkes 47 400

Selektion
1 Abel
47 Waalkes

1 300
47 400

undnunnochdieProjektion
1
47

Abel
Waalkes

GrundoperationenaufTabellen(Relationen)
NebendemEINFGEN,LSCHENundVERNDERNZeilen(Tupel),sindinRDBMSauchOperationen
definiert,diesichaufganzeTabellen(Relationen)beziehen.
Imeinzelnensinddies:

Tabelleerzeugen

Tabellelschen

TabellemitZugriffsrechtenbelegen

FreinebestimmteTabelleeinenIndexzurBeschleunigungderZugriffeerzeugen.

Seite44

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
ZurAuswertungderindenjeweiligenTabellenenthaltenenInformationenstehenfolgende
AuswahloperationenzurVerfgung:

Projektion
Selektion
Join (Verbund)
View

Beachte!
DasErgebniseinerAuswahloperationistRelation(Tabelle)mitmindestenseinemAttribut(einer
Spalte),dieentwederleeristoderdiegesuchtenWerteenthlt.

Projektion(AuswahlvonbestimmtenSpalten)

Artikel
ArtNr Bezeichnung Bestand Preis StammLief
100

Bohrer

100

4,85

4711

101

Pinsel

210

7,60

3299

103

Hammer

17

8,30

4711

105

Zange

25 24,50

4711

110

Kelle

9 16,80

3000

111

Gips

200

9,60

NULL

112

Zement

180 10,40

NULL

ArtNr Bezeichnung

Preis

100

Bohrer

4,85

101

Pinsel

7,60

103

Hammer

8,30

105

Zange

24,50

110

Kelle

16,80

111

Gips

9,60

112

Zement

8,40

Erstellen Sie eine


Artikelliste mit Nr.,
Bezeichnung und Preisen
aller unserer Artikel

SELECT ArtNr,
Bezeichnung, Preis
FROM Artikel

Seite45

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Selektion(AuswahlvonbestimmtenZeilen)
Artikel
ArtNr Bezeichnung Bestand Preis StammLief
100

Bohrer

100

4,85

4711

101

Pinsel

210

7,60

3299

103

Hammer

17

8,30

4711

105

Zange

25 24,50

4711

110

Kelle

9 16,80

3000

111

Gips

200

9,60

NULL

112

Zement

180 10,40

NULL

select *
from Artikel
where Preis >= 10.00

Artikel
ArtNr Bezeichnung
105

Zange

110

Kelle

112

Zement

Bestand

Preis

Erstellen Sie eine


Artikelliste aller Artikel die
10 DM oder mehr kosten.

StammLief

25

24,50

4711

16,80

3000

180

10,40

2000

InderRegelwerdenSelektionundProjektioninnerhalb
derselbenAbfrageverwendet.
Artikel
ArtNr Bezeichnung Bestand Preis StammLief
100

Bohrer

100

4,85

4711

101

Pinsel

210

7,60

3299

103

Hammer

17

8,30

4711

105

Zange

25 24,50

4711

110

Kelle

9 16,80

3000

111

Gips

200

9,60

NULL

112

Zement

180 10,40

NULL

select ArtNr,
Bezeichnung, Preis
from Artikel
where Preis >=10.00

ArtNr Bezeichnung Preis


105

Zange

24,50

110

Kelle

16,80

112

Zement

10,40

Erstellen Sie eine Artikelliste


aller Artikel die 10 DM oder
mehr kosten.
Das Ergebnis soll nur die
jeweilige ArtNr, Bezeichnung
und den Preis enthalten

Seite46

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

JOIN(VERBUND)(ZusammenziehenderInformationenausverschiedenen
Tabellen)
SolangekeinederverbundenenTabellenNULLWerteenthltsindVerbunderelativunkompliziertzu
handhaben.(ZurProblematik"VerbundspaltenmitNULLWerten"beachtedienachfolgendeSeite.)
DereinfachsteVerbundisteinsog."CROSSJOIN"beidemdasErgebnisausdemKreuzproduktder
beteiligtenTabellenbesteht.Z.B.:
SELECT *
FROM Artikel, Lieferanten

SELECT *
FROM Artikel CROSS JOIN Lieferanten

DasErgebniseinersolchenAbfrageistaberinallerRegelnichtbesonderserleuchtend,sodassesin
allerRegelerforderlichist,dasErgebniseinerVerbundoperationaufeinebestimmteTeilmenge
einzugrenzen.
Diesgeschiehtz.B.indernachfolgendenAufgabe,beidemaufzweiverschiedenenLsungswegenein
sog."natrlichenVerbund"erzeugtwird.
Aufgabe: ErstellenSieeineArtikellistemitArtNr,ArtikelbezeichnungundNameundOrtdes
jeweiligenLieferanten
Lieferanten

Artikel

LiefNr

Name

Ort

...

4711

2000

Lederer AG

Berlin

7,60

3299

2300

Teufel & Co

Potsdam

17

8,30

4711

3000

Auf & Ab KG

Bernau

Zange

25

24,50

4711

3299

Trims OHG

Berlin

110

Kelle

16,80

3000

4700

Bert & Kage

Berlin

111

Gips

200

9,60

2000

4711

Kugler GmbH

Kremmen

112

Zement

180

10,40

2000

4800

Aal & Shne

Potsdam

ArtNr

Bezeichnung

Bestand

Preis

100

Bohrer

100

4,85

101

Pinsel

210

103

Hammer

105

StammLief

SELECT ArtNr, Bezeichnung, Name,


Ort
FROM Artikel, Lieferanten
WHERE Artikel.StammLief =
Lieferanten.LiefNr

Seite47

SELECT ArtNr, Bezeichnung, Name,


Ort
FROM Artikel INNER JOIN
Lieferanten
ON Artikel.StammLief =
Lieferanten.LiefNr

ArtNr Bezeichnung Name

Ort

100

Bohrer

Kugler GmbH

Kremmen

101

Pinsel

Trims OHG

Berlin

103

Hammer

Kugler GmbH

Kremmen

105

Zange

Kugler GmbH

Kremmen

110

Kelle

Auf & Ab KG

Bernau

111

Gips

Lederer AG

Berlin

112

Zement

Lederer AG

Berlin

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

JOINSunterTabellen,dieNULLWerteenthalten
SobaldabereinederbeteiligtenTabellenNULLWerteenthlt,wirddieSacheetwasinteressanter.
Nunerhltmanjenachdem,obmansichfreinenINNERJOIN,LEFTOUTERJOIN,RIGHTOUTER
JOIN,oderFULLOUTERJOINentscheideteinjeweilsanderesErgebnis.ndertmandaszugrunde
liegendeBeispielderart,dassinderTabelleArtikeldieSpalteStammliefNULLWerteenthlt,wrden
beideVariantenderVerbundabfrageaufderletztenSeiteeinirrefhrendesErgebnisliefern.
Artikel
ArtNr Bezeichnung

Lieferanten

Bestand

Preis

StammLief

LiefNr

Name

Ort

...

100

Bohrer

100

4,85 4711

2000

Lederer AG

Berlin

101

Pinsel

210

7,60 3299

2300

Teufel & Co

Potsdam

103

Hammer

17

8,30 4711

3000

Auf & Ab KG

Bernau

105

Zange

25

24,50 4711

3299

Trims OHG

Berlin

110

Kelle

16,80 3000

4700

Bert & Kage

Berlin

111

Gips

200

9,60 NULL

4711

Kugler GmbH

Kremmen

112

Zement

180

10,40 NULL

4800

Aal & Shne

Potsdam

SELECT ArtNr, Bezeichnung, Name, Ort


FROM Artikel, Lieferanten
WHERE Artikel.StammLief =
Lieferanten.LiefNr

ArtNr Bezeichnung Name

Ort

100

Bohrer

KuglerGmbH

Kremmen

101

Pinsel

TrimsOHG

Berlin

103

Hammer

KuglerGmbH

Kremmen

105

Zange

KuglerGmbH

Kremmen

110

Kelle

Auf&AbKG

Bernau

SELECT ArtNr, Bezeichnung, Name, Ort


FROM Artikel INNER JOIN Lieferanten
ON Artikel.StammLief =
Lieferanten.LiefNr

AusdieserErgebnislisteistnichtzuentnehmen,dassfrdieArtikel"Gips"und"Zement"kein
Lieferantenthaltenist.WirddieAufgabewiefolgtmodifiziert,sofhrtnurdienachfolgendeLsung
zumErfolg.

Seite48

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
Aufgabe: ErstellenSieeineArtikellisteinderalleArtikelenthaltensind,undzujedemArtikelder
Stammlieferant(soweitvorhanden)angegebenwird
Hierfhrteinsog."LEFTOUTERJOIN"zumErfolg,derdasnachfolgendeErgebnisliefert.
SELECT ArtNr, Bezeichnung, Name, Ort
FROM Artikel, Lieferanten
WHERE Artikel.StammLief =
Lieferanten.LiefNr
OR Artikel.StammLief = NULL

SELECT ArtNr, Bezeichnung, Name, Ort


FROM Artikel LEFT OUTER JOIN
Lieferanten
ON Artikel.StammLief =
Lieferanten.LiefNr

ArtNr

Bezeichnung

Name

Ort

100

Bohrer

Kugler GmbH

Kremmen

101

Pinsel

Trims OHG

Berlin

103

Hammer

Kugler GmbH

Kremmen

105

Zange

Kugler GmbH

Kremmen

110

Kelle

Auf & Ab KG

Bernau

111

Gips

NULL

NULL

112

Zement

NULL

NULL

LEFTOUTERJOIN(linksseitigeAuenverknpfung)EnthltsmtlicheZeilenderimFROMStatment
genanntenTabelle,auchsolche,dieimVergleichskriteriumNULLWerteenthaltenundverknpft
diesemitderTabelleaufderLieferanten.Kurz:Ein"LEFTOUTERJOIN"enthltalleZeilen,dieein
"INNERJOIN"liefernwrdeundzustzlichalledieZeilenderlinkenTabelle,diebeim
VergleichskriteriumeinenNULLWerteenthalten.
SELECT ArtNr, Bezeichnung, Name, Ort
FROM Artikel LEFT OUTER JOIN Lieferanten
ON Artikel.StammLief = Lieferanten.LiefNr

RIGHTOUTERJOIN(rechtsseitigeAuenverknpfung)EnthltsmtlicheZeilenderimJOIN
StatementgenanntenTabelle,auchsolche,dieimVergleichskriteriumNULLWerteenthaltenund
verknpftdiesemitderTabelleaufderlinkenSeite(hierebenfallsLieferanten).Kurz:Ein"RIGHT
OUTERJOIN"enthltalleZeilen,dieein"INNERJOIN"liefernwrdeundzustzlichalledieZeilender
rechtenTabelle,diebeimVergleichskriteriumeinenNULLWerteenthalten.
(EinerechtsseitigeAuenverknpfungliefertdieselbenErgebnissewieeinelinksseitige
Auenverknpfung,wenndieSpaltenentsprechendvertauschtwerdenshe.FolgendesBeispiel.)
SELECT ArtNr, Bezeichnung, Name, Ort
FROM Lieferanten RIGHT OUTER JOIN Artikel
ON Artikel.StammLief = Lieferanten.LiefNr

Seite49

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
FULL OUTER JOIN (vollstndige Auenverknpfung)

EnthltsmtlicheReihen,dieinderBedingungbereinstimmensowiebereinstimmendenReihen
aussowohlderlinksseitigenalsauchderrechtsseitigenTabelle.
Kurz:Ein"FULLOUTERJOIN"enthltalleZeilen,dieein"INNERJOIN"liefernwrdeundzustzlich
alleZeilensowohlderlinkenwieauchrechtenTabelle,diebeimVergleichskriteriumeinenNULL
Werteenthalten.
SELECT ArtNr, Bezeichnung, Name, Ort
FROM Artikel FULL OUTER JOIN Lieferanten
ON Artikel.StammLief = Lieferanten.LiefNr
Kurzbeschreibung SQL

SQLberblick

DefinitionSQL

DatenbankenundTabellenerzeugen

GrundoperationenaufTabellen

DoppelteWerteausderAusgabeausblenden

PatternMatching(Jokerzeichen)

SQLBefehleausfhren

ArithmetischeOperatoren

Aggregatfunktionen

PrinzipielleAbarbeitungsreihenfolgedereinzelnenKomponenten

Unterabfragen"InnerSelect"

Seite50

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

SQLSprachumfang
InseinerRegel5fordertCodd,dassinrelationalenSystemeneineSprachevorhandenseinmuss,die
umfassendallewichtigenAnforderungenerfllt:

Datendefinition

Datenmanipulation(alsProgrammoderinteraktiv)

DefinitionvonDatensichten(Views)

Integrittsbedingungenkontrollieren

Autorisierung(Zugangregeln)

Transaktionskontrolle(start,ende,rollback,..)

NebenderMglichkeitvonSQLalsQueryLanguagewerdendieseAnforderungenalsDataDefinition
Language(DDL),DataManipulationLanguage(DML)undDataControlLanguage(DCL)erfllt.

SQL-Funktionen nach erweitertem ANSI-Standard.

HufigwirdaufdieexpliziteDarstellungderDCLverzichtetunddieFunktionenwerdenderDDL/DML
zugeordnet.

Seite51

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

KurzbeschreibungSQLI
Definition
SQL(STRUCTUREDQUERYLANGUAGE)isteineinternationalgenormteSprachezurKommunikation
mitrelationalenDatenbanksystemen(RDBMS).Mankannheutesagen,dassalleernstzunehmenden
DatenbanksystemebereineSQLSchnittstelleverfgen.
NebendenAnweisungenzurAbfrage/AuswahlvonInformationenauseinerDatenbank,sindinSQL
auchAnweisungenzurDefinitionundAnlageeinerDatenbank,demHinzufgen,Entfernenund
VernderneinzelnerTabellen,derVergabevonZugriffsrechtensowiederManipulation(einfgen,
verndern,lschen)dergespeichertenDatenenthalten.
DieAbfrageeinerDatenbankistberSQLsehreinfachzubewerkstelligen,damandazuinderRegel
nurdreibissechssehrleistungsfhigeAnweisungenkennenmuss,dienachfolgendekurzvorgestellt
werden.
BeiderNutzungder"InformationsquelleDatenbank"entstehtschonnachkurzerZeitdasBedrfnis,
dassmandieInformationsflutdurchzustzlicheAuswahlundVerdichtungskriterienkonzentrieren
oderbestimmteInformationenarithmetischoderlogischmiteinanderkombinierenwill.Dazustellt
SQLeinenimperativenProgrammiersprachenvergleichbarenSatzvonpraktischenOperationenzur
Verfgung,welchedieAbfrageerleichtern.
BeirealenDatenbankanwendungenwerdendieAbfragemglichkeitenderEndbenutzeri.d.R.ber
vorgegebeneMaskeneingeschrnkt(underleichtert).DiefrdiejeweiligeAbfrageerforderlichen
SQLStatementswurdenhiervondenProgrammentwicklernindieAnwendungsprogramme
integriertundbleibensodemBenutzerverborgen.BeimderProgrammausfhrungkommunizieren
diejeweiligenAnwendungsprogramme(Clients)berSQLdementsprechendenDatenbanksystem..

DiesechsKomponenteneinerSQLAbfrage
SELECT[ALL|DISTINCT]Spaltenausdruck[,...] ZeigemirdieWerteausfolgendenSpalten
(Ausgabedaten)
DefaultistALL

FROMTabellenbezeichner[,...]

ausfolgendenTabelle(n)

[WHEREBedingung]

schrnkedieAuswahlwiefolgtein

[GROUPBYSpalte[,...]]

Gruppenbildung
VerdichtedieAusgabevonallenZeilenmit
gleichemAttributwertzueinereinzigen
Ausgabezeile

[HAVINGHavingBedingung

ZustzlicheAuswahlbedingungauf
Gruppenebene

[ORDERBY[[ASC|DESC]Spalte[,...]]

sortiereAusgabeanhandfolgenderSpalten
DefaultASC

Seite52

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

DatenbankenundTabellenerzeugen
1.Datenbankenerzeugen(CREATEDATABASE)
ZunchstmussmitdemBefehlCREATEDATABASEdbnameeineDatenbankerzeugtwerden.Dafr
mssenSiedieBerechtigungzumAnlegenvonDatenbankhaben.WennSieZugangzum
Datenbanksystemhaben,drfenSieTestdatenbankenanlegen.EinzigeVoraussetzung:DerNameder
DatenbankmussmitdenBuchstabentestbeginnen.DieseTestdatenbankistungeschtzt.Eshatsich
bewhrt,frdieErzeugungvonDatenbankenundTabelleneinSkriptzuerstellenundmitdem
Befehl:mysqluXXXXpXXXXX<skriptname.sql(FrXXXXsindBenutzerundPasswort
einzusetzen)auszufhren.WeitereMglichkeitenSQLBefehleauszufhrenfindenSiehier.
2.Tabellenerzeugen(CREATETABLE)
ZunchstmssenSiesicherstellen,dassSiedierichtigeDatenbankbearbeiten.MitdemBefehluse
dbnamelegenSiedieDefaultdatenbankfest.FreinfacheTabellenreichtfolgendeSyntax:

CREATE TABLE[IFNOTEXISTS]

CREATETABLEIFNOTEXISTSkunden

tabellenname

(
(
kunrintegerDEFAULT'10000'NOTNULL
spaltenname1,datentyp,option, AUTO_INCREMENT,
spaltenname2,datentyp,option, kunameCHAR(30)NOTNULL,
PRIMARYKEY(spaltenname)
PRIMARYKEY(kunr)
);
);

WenndieTabelleschonexistiertkommteszueinerFehlermeldung.DieskannmitdemZusatzIFNOT
EXISTSverhindertwerden.GngigeDatentypensind:INTEGERfrganzeZahlen,FLOATfr
Fliekommazahlen,CHAR(n)undVARCHAR(n)frZeichenkettenundDATEfrdasDatum.
MitderOptionNOTNULLwirdfestgelegt,dasseinEintragindieserSpaltevorhandenseinmuss.Dies
isteinezwingendeOptionfrdenPrimrschlssel.AUTO_INCREMENTfgtindieSpalteeineZahl
ein,dieumEinsgreristalsdervorigeWertdieserSpalte.
BeispielSkriptfrdieErzeugungderDatenbankFlotterFlitzer.
MitdemBefehlDESCRIBEtableknnenSieberprfen,oballesgeklappthat.

Seite53

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

KurzbeschreibungSQLII
DoppelteWerteausderAusgabeausblenden
Schlsselwort:DISTINCT
Beispiel:VonwievielverschiedenenLieferantenSELECTDISTINCTStammlief
wirdunserUnternehmenbeliefert?fromArtikel

EinsatzvonOperatoren/NotationvonKonstanten
BeimEinsatzvonarithmetischenundlogischenFunktionenisteswichtig,zwischennumerischen
AusdrckenundTexten(Strings)zuunterschieden.

ArithmetischeOperatorenundAggregatfunktionenknneni.d.R.nuraufnumerischeWerte
angewendetwerden.

SolleinErgebnismitNachkommastellenausgegebenwerden,wiez.B.(Menge/3)mssen
diejeweiligenWerteinderFormelmitDezimalpunkteingegebenwerden.

SogenannteMatchcodes(sieheSeite4)knnennuraufTexteangewendetwerden.

StringLiteraleundDatumsLiteralemssenineinfachenAnfhrungszeichennotiert
werden.
Whrungsliteralenmussein$Zeichenvorangestelltwerden.
z.B.
INSERTINTOArtikel(ArtBezeichnung,Preis)
VALUES('PersilSubber',$12.80)
WHEREArtBezeichnung='Persil'

Vergleichsbedingungen(log.Operatoren)
Operator

Bedeutung

>,<

grer,kleiner

>=

grergleich

ArtNr>=100

<=

kleinergleich

gleich

Name='Meier'

<>

ungleich

Saldo<>0.00

AND

Konjunktion

ArtNr>100ANDArtNr<500

OR

Disjunktion

Name='A%'ORName='B%'

NOT

Negation

NOT(Ort='Berlin')

BETWEEN

Bereichsangabe

WHEREKuNr BETWEEN100AND500

LIKE

einfacheMustervergleiche
berMatchcodes

(SiehenachfolgendeBeispielezu"Patternmatching".)

IN

Bezugaufeinefest

SELECTName,Ort
FROMKunden

Seite54

Beispiel

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
vorgegebeneMenge
BezugaufdasErgebniseiner
Unterabfrage

WHEREOrtin('Berlin','Bonn',
'Hamburg','Wien')
SELECTKuNr,Name,Ort
FROMKunden
WHEREKuNrIN
(SELECTKuNr
FROMAbverkauf
WHEREReBetrag>$10000)
(SiehedazuauchSeite6
"Unterabfragen")

RelationaleDatenbanken
KurzbeschreibungSQLIII
PatternMatching(Jokerzeichen)
Sogenannte'Matchcodes'knnennurfrTexteverwendetwerden!
MatchcodesknnenzubeliebigensinnvollenMusternkombiniertwerden!
Matchcode

stehtfr

Beispiel

beliebigeFolgevon
WHEREName
ZeichenwozuauchNULL
LIKE'B%'
gehrt.
LIKE'%er'
LIKE'B%mann'
LIKE'%'

Ergebnis
AlleNamen,die
mit"B"beginnen
mit"er"enden
diemit"B"beginnenundmit
"mann"enden.
AlleNamendieein""enthalten.

einbeliebigeseinzelnes
Zeichen

WHEREName
LIKE'_al'
LIKE'S__'

[AF]

einbeliebigeseinzelnes
Zeicheninnerhalbdes
angegebenenBereichs
bzw.derangegebenen
Menge

AlledreistelligenNamen,diemit
"al"enden.

LIKE'Ma_er'

AlledreistelligenNamen,diemit
"S"beginnen.

Alle,5stelligenNamendiemit
"Ma"beginnenundmit"er"
enden.

WHEREName

AlleNamen,die

LIKE'[AH]%'

"A"bis"H"beginnen

LIKE'[AH]%ing'

dto.undmit"ing"enden.

LIKE'_[KR]%'

dieanzweiterStelleein
"K"oder"R"enthaltenund
beliebigenden.

LIKE '[A-FKRT]%'
diemit"A"bis"F","K","R"oder

Seite55

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
"T"beginnen.
[^AF]

einbeliebigeseinzelnes
Zeichenauerhalbdes
angegebenenBereiches

WHEREName

AlleNamen,die

LIKE'[^AH]%'

nicht"A"bis"H"beginnen

LIKE'_[^C]%'

(quivalentzu
WHERENAMENOTLIKE'[AH]%'
Alle,dieanzweiterStellekein"C"
haben.

Anmerkung:
WollenSiez.B.ineinerTabelleFinanzenalleEintrgederSpalte"Zinsart"suchen,welcheein
%Zeichenenthalten,stehenSievoreinemProblem.SieknnendasZeichen%nichtverwenden,da
esalsMatchcodeinterpretiertwird.
Dieseskannberdiesog.ESCAPEOptionwiefolgtgelstwerden:
SELECT * FROM Finanzen
WHERE Zinsart LIKE '%X%-Satz%' ESCAPE 'X'

Oder

AlleNamensuchen,welcheein"Underline"enthalten.
SELECT*FROMKunden
WHERENameLIKE'%#_%'ESCAPE'#'

Seite56

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

SQLBefehleausfhren
EsgibtsehrvieleunterschiedlicheMglichkeitenSQLBefehleauszufhren.FralleMglichkeiten
mssensichsicherstellen,dassSiedieerforderlichenZugriffsrechtebesitzten.Imfolgendenwerden
diewichtigstenaufgefhrt:
1.Kommandointerpreter
HierfrmssenSieaufdemDatenbankservermiteinerConsoleangemeldetsein.MitdemBefehl
mysqluusernameppasswortbekommenSieZugangzumKommandointerpreter.Mituse
datenbanknamewhlenSiediegewnschteDatenbank.JetztknnenSiedieSQLBefehledirekt
eintippenundmitRETURNausfhren.BeachtenSie,dassjederBefehlmiteinemSemikolon
abgeschlossenwerdenmuss.

2.Skripteerstellenundausfhren
AuchfrdieseMglichkeitmssenSiemiteinerConsoleangemeldetsein.ZunchsterstellenSieein
SkriptmitdengewnschtenSQLBefehlen.StellenSiesicher,dassdasSkriptaufrufbarist.Sieknnen
dasSkriptaufeinemanderenRechnererzeugenunddannmitFTPinIhrenBenutzerbereichaufdem
Datenbankserverbertragen.MitdemBefehl:mysqluusernameppasswort<skript.sqlknnen
SienundenBefehlausfhren.BeidiesemVerfahrensinddieSQLBefehleimmervorhandenund
lassensichleichtverndern.
3.phpMyAdminbenutzen
DiesesProgrammbestehtauseinerReihevonPHPSkriptsmitderenHilfeeinefastvollstndige
AdministrationeinerDatenbankmglichistundsomitauchleichtSQLBefehleerzeugtwerden
knnen.RufenSiezunchstdasProgrammaufundmeldenSiesichbeiDBMSan.FallsSieeine
existierendeDatenbankbearbeitenwollen,whlenSiedieselinksausderListeaus.JetztknnenSie
durchdieAnwahlvonSQLinderoberenLeisteeinenEditorffnenmitdemSieSQLBefehle
eingebenundmitOKausfhrenknnen.
WennSieeineTestdatenbankeinrichtenwollen,sowhlenSiedieDatenbanktestausderListeaus,
klickendannSQLanundgebenSieimEditordenBefehl"createdatabasetest_meinname;"an.
DrckenSieauf"OK"undschonistdieDatenbankeingerichtetundSieknnenSieinder
Datenbanklisteanwhlenundbearbeiten.

Seite57

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

KurzbeschreibungSQLIV
ArithmetischeOperatoren
Operator

Bedeutung

Beispiel

Addition

EK Skonto+Bezugskosten

Subtraktion

Multiplikation

(VKEK)*100/VK

Division

Modulo(nurfrganzeZahlen)

(Zeilen%60)AS'Seiten'

Achtung:
DieAnzahlderausgegebenenNachkommastellenistvondenbeteiligtenTypenunddenjeweiligen
Literalenabhngig!
GegebenseienfolgendeFelder
Menge:Integer(mitdemaktuellenWert10)
Preis:Money(mitdemaktuellenWert12.50)
Gewicht:Float(mitdemaktuellenWert2.0)
Notation

liefertdiesesErgebnis

Menge/2

Menge/2.0

5.0000000

Menge/$2.0

5.00

Preis/Menge

1.25

Preis/5

2.50

Preis/5.0

2.5000000

Preis/$5.0

2.50

Gewicht/3

0.666667

Gewicht/2

1.0

Seite58

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

KurzbeschreibungSQLV
Aggregatfunktionen
AggregatfunktionendienenzurZusammenfassungoderVerdichtungvonErgebnissenundarbeiten
jeweilsaufallenZeilenderentsprechendenTabellebzw.derentsprechendenUntergruppe.Sie
knnennurin'select'und'having'Anweisungenbenutztwerden.
EineHAVINGAnweisungkanni.d.R.nurimVerbindungmiteinerAggregatfunktionbenutztwerden.
Operator

Bedeutung

Beispiel

count(*)

LiefertdieAnzahlderTupeldes
jeweil.Zwischenergebnisses

SELECTcount(*) AS'Artikelzahl'
FROMBestand

sum()

LiefertdieSummederWerte
einerSpalte

SELECTsum(Sollsaldo)FROMKunden

min()

Liefertdenkleinsten/grten
WerteinerSpalte.

SELECTArtNr,ArtBez,
min(Bestand)FROMLager

LiefertdasarithmetischeMittel
(Durchschnittswert)beralle
WerteinderjeweiligenSpalte.

SELECTavg(Umsatz)AS'DuUmsatz'
FROMKunden

max()
avg()

Seite59

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

KurzbeschreibungSQLVI
PrinzipielleAbarbeitungsreihenfolgedereinzelnenKomponenten

Seite60

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

KurzbeschreibungSQLVII
Unterabfragen"INNERSELECT"
HinterBedingungsoperatoreninWHEREoderHAVINGAusdrckendrfenUnterabfragenverwendet
werden.Einschrnkungen:
DieinnereSELECTAnweisungdarfnureinenTabellenausdruckenthalten
DieORDERBYKlauseldarfinnerhalbeinerUnterabfragenichtverwendetwerden.
Beispiel:
EssollenalleKundenmitKundennummer,FamiliennameundAusweisnummerauseinerfiktiven
VideoVerleihDatenbankherausgesuchtwerden,dieHorrorvideosausgeliehenhabenunddieinder
TabelleGewaltverbrechermiteinerVorstraferegistriertsind.
SELECTKundenNr,Familienname,Ausleihe.AusweisNr
FROMKunden
WHEREKundenNr=
(SELECTAusleihe.KundenNr
FROMAusleihe
WHEREAusleihe.VideoNr=
(SELECTVideoNr
FROMKatalog
WHEREGenre='Horror'))

ANDAusleihe.AusweisNrIN
(SELECTPersonenkennzeichen
FROMGewaltverbrecher
WHEREVorstrafen>0)

GltigkeitsbereichvonSpalten(Attributen)beiUnterabfragen
EinwichtigerGesichtspunktbeiUnterabfragenistdieFrage,welcheDatenobjekte(Datenfelder)in
denjeweiligenUnterabfragengltig(bekannt)sindundverwendetwerdendrfen.

Seite61

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Regel
Attribute(Spalten,Datenfelder)ausdenjeweilsuerenAbfrageblckendrfeniminneren
AbfrageblockanjederStelleverwendetwerdenabernichtumgekehrt.
SoknnenimAbfrageblock1'Abfrage1'nurAttributeausderTabelleAverwendetwerden.Im
Abfrageblock2knnenAttributeausdenTabellenAundBverwendetwerdenundimAbfrageblock3
AttributeausA,BundC.
WerdenindenTabellenAttributemitgleichenAttributbezeichnernverwendet,z.B.KundenNr,
mssenimjeweiligenAbfrageblockqualifizierteBezeichner(A.KundenNr,B.KundeNr,C.KundenNr)
benutztwerden.
MansprichtbeiderFragedesGltigkeitsbereichesauchvonderReichweiteeinesAttributesineiner
Tabelle.SohabeninobigemBeispieldieAttributederTabelleAdieReichweiteAbfrage1,Abfrage2,
Abfrage3undAbfrage4.DieAttributederTabelleBhabenlediglichdieReichweiteAbfrage1und
Abfrage3.

Seite62

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Beispieldatenbank Flotter Flitzer


Modellierung

Anforderungsdefinition

EntityRelationshipModel

AnwendungderAbbildungsregeln

Integrittsbedingungen

Zugangsberechtigungen

Implementierung

SQLScriptzumErzeugendesDatenmodells(MySql)

SQLScriptzumErzeugendesDatenmodells(Informix)

SQLScriptzurVergabederZugriffsrechte(MySql)

SQLScriptzurVergabederZugriffsrechte(Informix)

SkriptefreineBenutzungsschnittstellederTabelleKunden(PHPundHTML)

Online Versionen

FlotterFlitzerohneZugangskontrolle(Nurintern)(Autor:MaximillianMller)

FlotterFlitzerohneZugangskontrolle(Autor:MaximillianMller)

Seite63

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Anforderungsdefinition
AnforderungsdefinitionfrAutovermietungFlotterFlitzer

Aufgabenstellung
DieAutovermietung"FlotterFlitzer"istaufdieVermietungluxuriserSportwagenspezialisiert.
DieserWagentypbildetdasHauptangebot,danebenwerdenaberauchMittelklassewagenverliehen.
NunmehrsolldieVerwaltungaufEDVumgestelltwerden.VorgesehenisteinerelationaleDatenbank,
mitderzunchstdieVermietungunddieVerwaltungdesFuhrparks(dieAngabenberden
FahrzeugtypunddieDokumentationvonReparaturen)abgewickeltwerdenknnen.

AnforderungenandieBenutzerinnenundBenutzer
BeiderAbwicklungderAusleihesindzweiArbeitsbereichezuunterscheiden:

dieAusleihe:HierwerdendiePersonalienderKundinnenundKunden,dieausgegebenen
PKWundderKilometerstanderfasst.

dieRckgabe:DieErfassungderzurckgegebenePKWundderKilometerstand.

FrdieVerwaltungdesFahrzeugbestandessindebenfallszweiBereicheeinzurichten:

diePKWVerwaltung:HierwerdendiePKWaufgenommenbzw.abgemeldet.

diePKWWartung:DieDokumentationderReparaturenunddieVerwaltungvon
InformationenberdieWerksttten.

AllenBereichenmssensmtlicheAngabenzurVerfgungstehen,diefrdieErfllungihrer
jeweiligenArbeitsaufgabennotwendigsind.DieDatenundSystempflegeverbleibtbeider
Systemverwaltung.
DieErlaubnis,Lschungenvorzunehmen,istwiefolgtgeregelt:

Kundinnen,KundenundPKWdrfennurvonderSystemverwaltunggelschtwerden.

HerstellerdrfenvonderPKWundSystemverwaltunggelschtwerden.

WerkstttendrfenvonderSystemverwaltungundderWartunggelschtwerden.

DatenzurAusleiheundzurReparaturdrfenvonniemandengelschtwerden.

AnforderungenandieArbeitsweise
BeidenAngestelltenderAutovermietungkannaufkeineEDVErfahrungzurckgegriffenwerden.Die
Benutzungmussdahermglichsteinfachundfehlertolerantsein.OnlineHilfensindzuden
wesentlichenPunkteneinzubauen.DieEingabensindsozugestalten,dassauchbeieinem
hektischenMassenbetriebeineschnelle,fehlerarmeErfassungmglichist.

AnforderungenandenLeistungsumfang
DieAusleihesollmitHilfedesProgrammsdieKundinnenundKundenregistrierenundihneneinen
PKWzuteilen,dabeiistauchderaktuelleTachostandeinzugeben.AlleAusleihvorgngewerden
automatischdurchnummeriert.BeiderRckgabedesAutoswerdendasRckgabedatumundder
aktuelleTachostanderfasst.

Seite64

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
AlsDatenderKundschaftwerdenverpflichtendName,Anschrift,DatumdesFhrerscheinerwerbs
undGeburtsdatumgespeichert.FrdiePKWwerdenverpflichtendKennzeichen,Herstellermit
Namen,AnschriftundKontaktperson,ModellmitNamen,Leistung,Hubraum,Klimaanlage,
Schiebedach,LngeundBreiteunddasDatumderErstzulassungerfasst.EswerdennurNeuwagen
direktbeimHerstellerbeschafft.WerdenPKWausdemFuhrparkentfernt,sowirdnurdie
AbmeldungindieDatenbankeingetragen.DerPKWwirderstamEndedesGeschftsjahres
vollstndiggelscht.
VondenWerkstttenwerdenName,AnschriftundKontaktpersongespeichert.AlsDatender
ReparatursindKennzeichendesentsprechendenPKW,NamederWerkstatt,Reparaturdatumsowie
ArtundDauerderReparaturvorzusehen.
UmManipulationenvorzubeugen,sindalleVorgngezuprotokollieren.DieProtokolldateidarfnur
vonderSystemverwaltungeingesehenundvonniemandengelschtwerden.
AlsGeschftsjahrgiltdasKalenderjahr.JeweilsamEndedesGeschftsjahreswerdenalle
fortlaufendenDaten,indiesemFallalleabgeschlossenenAusleihundReparaturvorgnge,ausder
DatenbankherausgenommenundfrSteuerzweckeaufeinemMagnetbandgespeichert.

AnforderungenanmglicheAusbaustufen
IndererstenAusbaustufewerdendiefinanziellenTransaktionennichterfasst.Alsweitere
AusbaustufesolldieAbwicklungdesgesamtenZahlungsverkehrseinbezogenwerden.
AuchdieVerwaltungdesPersonalssollineinerspterenAusbaustuferealisiertwerden.

AnforderungenandasFehlerverhalten
UmeinenreibungslosenBetriebzugewhrleisten,sollensoweitwiemglichFehleingaben
abgewiesenwerden.AuchdarfeineFehlbedienungnichtzumAbsturzdesSystemsunderstrecht
nichtzumDatenverlustfhren.ImFehlerfallsindaussagekrftige,kontextabhngigeOnlineHilfenzu
geben.

AnforderungenandieQualitt
Esistanzustreben,einmglichstfehlerarmesundwartungsfreundlichesProgrammsystemzu
erstellen.DasProgrammsollmitgeringemAufwandaufandereHardundSoftwareplattformen
bertragenwerdenknnen.Deshalbistesnotwendig,soweitdiesmglichist,
herstellerunabhngigeStandardszubenutzen.

AnforderungenandenDatenschutz
DieKundinnenundKundenwerdenmitAbschlussdesVertragesdaraufhingewiesen,dassihreDaten
zurAbwicklungderVermietungelektronischgespeichertwerden.EineWeitergabederDatenan
Drittewirdausgeschlossen.

AnforderungenandieErgonomie
DasProgrammsollmglichstoptimalergonomischenGesichtspunktengengen.Diesgilt
insbesonderefrdieschnelleEingabevonDatenanderAusleihe.AlleMaskensindeinheitlichzu
gestaltenunddieBildschirmformularesolltenmitggf.vorhandenenPapiervorlagenimAufbau
identischsein.AlleMaskensollenmindestensAngabenzumStandortimProgramm,zumVerlassen
derMaskeundzumAbbrechenenthalten.

Seite65

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

AnforderungenandieDokumentation
DieStrukturdesProgramms,inklusivederverwendetenDatenstruktur,derMaskenundder
kommentiertenProgrammlistingswerdenineinemWartungshandbuchdokumentiert.DasSystem
sollsobenutzungsfreundlichgestaltetwerden,sodasskeinHandbuchntigist.

AnforderungenandieBasismaschine
DasSystemsollaufgngigenaktuellenRechnernunabhngigvomBetriebssystemimplementiert
werdenknnen.WnschenswertwreeineWartungsmglichberdasInternetmitgngigen
Browsern.

EntityRelationshipModel

Seite66

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

AbbildungdesERMinTabellen
AnhandderAbbildungsregelnwirddasERMderAutovermietungFlotterFlitzerinTabellenberfhrt.
Nachder1.RegelwerdenalleEntittstypenzueinerTabelle:
Kunden(Nummer,Name,Vorname,Strae,PLZ,Ort,Geburtsdatum,Telefon,Datumdes
Fhrerscheinerwerbs)
Pkw(Kennzeichen,Modell,Erstzulassung,DatumderAbmeldung,Schiebedach,Klimaanlage)
Werkstatt(Name,Strae,PLZ,Ort,Telefon,Kontaktperson)
Modell(Name,Hersteller,Leistung,Lnge,Breite,Hubraum)
Hersteller(Name,Strae,PLZ,Ort,Telefon,Kontaktperson)
Nachder2.Regelwirdjedem:nBeziehungeineTabelle:
Ausleihe (fortlaufende Nummer, Kundennummer, Kennzeichen, Ausleihdatum,
Anfangskilometer, Rckgabedatum, Endkilometer)
Reparatur (Werkstatt, Kennzeichen, Reparaturdatum, Dauer, Art)

Die3.RegelfindetkeineAnwendung,daeskeine1:noder1:1BeziehungmitAttributengibt.

Regel4.
Nachder4.Regelwirdeine1:noder1:1BeziehungdiefreigestelltistzueinereigenenTabelle.Da
beide1:nBeziehungenzwingendsind,findetauchdieseRegelkeineAnwendung.DieBeziehungen
sindTypisierungundProduktionsindzwingend.
DadieEntittPKW(E2)zwingendesMitgliedderEntittModell(E1)ist,wirddieBeziehunginden
Tabellendadurchhergestellt,indemderPrimrschlsselvonE1(Modell.Name)inPKW(E2)als
Fremdschlsselattributaufgenommenwird.NachdemgleichenMusterwirdbeiderBeziehung
Produktionverfahren.
Pkw(Kennzeichen,Modell,Erstzulassung,DatumderAbmeldung,Schiebedach,Klimaanlage,
Modell.Name)
Modell(Name,Hersteller,Leistung,Lnge,Breite,Hubraum,Hersteller.Name)

Seite67

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

Integrittsbedingungen
Wertebereichsintegritt
kunden
Feldname

Beschreibung

Datentyp

Wertebereich

Null

kunr

Kundennummer

SERIAL

FortlaufendeNummer nein
mit1000beginnend

kuname

Name

CHAR

30Stellen

nein

kuvorname

Vorname

CHAR

20Stellen

nein

kustrasse

Strae

CHAR

30Stellen

nein

kuplz

Postleitzahl

CHAR

8Stellen,3Buchstaben nein
frdasLand,Restnur
Ziffern

kuort

Ort

CHAR

30Stellen

nein

kutelefon

TelefonmitVorwahl

CHAR

30Stellen

ja

kugebdat

Geburtsdatum

DATE

mindestensvor18
Jahren

nein

kudatfschein

Datumdes
Fhrerscheinerwerbs

DATE

mindestens18Jahre
nachdem
Geburtsdatum

nein

pkw
Feldname

Beschreibung

pkennzeichen

Datentyp

Wertebereich

Null

PolizeilichesKennzeichen CHAR

11Stellen

nein

moname

NamedesModells

35Stellen

nein

perstzulassung

DatumderErstzulassung DATE

nichtlterals10
Jahre,nichtnach
derAbmeldung

ja

peabmeldung

DatumderAbmeldung

DATE

lterals
Erstzulassung

ja

pschiebedach

Schiebedachvorhanden

CHAR

1Stelle'j'oder'n'

ja

pklima

Klimaanlagevorhanden

CHAR

1Stelle'j'oder'n'

ja

CHAR

modelle
Feldname

Beschreibung

Datentyp

Wertebereich

Null

moname

NamedesModells

CHAR

35Stellen

nein

hename

NamedesHerstellers

CHAR

35Stellen

nein

moleistung

LeistunginKW

INTEGER

positiv60 500KW

ja

Seite68

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
mohubraum

Hubrauminccm

INTEGER

positiv500 5000ccm ja

molaenge

LngedesPKWincm

INTEGER

positiv300 1200cm

ja

mobreite

BreitedesPKWincm

INTEGER

positiv200 400cm

ja

hersteller
Feldname

Beschreibung

Datentyp Wertebereich

Null

hename

NamedesHerstellers

CHAR

35Stellen

nein

hestrasse

Strae

CHAR

30Stellen

ja

heplz

Postleitzahl

CHAR

5Stellen

ja

heort

Ort

CHAR

30Stellen

ja

hetelefon

TelefonmitVorwahl

CHAR

20Stellen

ja

hekontakt

Kontaktpersonbeim
Hersteller

CHAR

20Stellen

ja

Feldname

Beschreibung

Datentyp Wertebereich

Null

wename

NamederWerkstatt

CHAR

35Stellen

nein

westrasse

Strae

CHAR

30Stellen

ja

weplz

Postleitzahl

CHAR

5Stellen

ja

weort

Ort

CHAR

30Stellen

ja

wetelefon

TelefonmitVorwahl

CHAR

20Stellen

ja

wekontakt

Kontaktpersonbeider
Werkstatt

CHAR

20Stellen

ja

Feldname

Beschreibung

Datentyp Wertebereich

Null

annr

Ausleihnummer

SERIAL

Fortlaufende
Nummermit1
beginnend

nein

pkennzeichen

PolizeilichesKennzeichen

CHAR

11Stellen

nein

kunr

Kundennummer

INTEGER >999

auleiausdat

Ausleihdatum

DATE

auanfangkm

Kilometerstandbeim
Ausleihen

INTEGER positiv<100000

werkstatt

ausleihe

Seite69

nein

Datumdes
nein
Ausleihtags,nichtvor
demaktuellenDatum
nein

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
auleirueckdat

Rckgabedatum

DATE

spteralsdasAusleih ja
datum,nichtvordem
aktuellenDatum

auendkm

Kilometerstandbeider
Rckgabe

INTEGER positiv<100000

ja

Feldname

Beschreibung

Datentyp Wertebereich

Null

pkennzeichen

PolizeilichesKennzeichen

CHAR

11Stellen

nein

wename

NamederWerkstatt

CHAR

35Stellen

nein

redatum

DatumderReparatur

DATE

ja

reart

ArtderReparatur

CHAR

35Stellen

ja

redauer

DauerderReparaturin
Tagen

INTEGER positiv<100

reparatur

ja

IntrarelationaleIntegritt
ImFolgendenwerdennurdieManahmenzurSicherungeineseindeutigenSchlsselsdokumentiert:
Tabellenname

Manahmen

kunden

FortlaufendeKundennummernmit1000beginnenddurchdas
Datenbanksystem

hersteller

durcheineneindeutigenIndexfrdenHerstellernamen

modelle

durcheineneindeutigenIndexfrdenModellnamen

pkw

durcheineneindeutigenIndexfrdasKennzeichen

werkstatt

durcheineneindeutigenIndexfrdenWerkstattnamen

ausleihe

FortlaufendeNummerierungallerAusleihvorgngemit1beginnend
durchdasDatenbanksystem

reparatur

durcheineneindeutigenIndexfrdieFremdschlsselKennzeichen
undWerkstattname

DieIntegrittsbedingungen,diesichaufdieBeziehungeinzelnerFelderinnerhalbeinerRelation
beziehen,wurdenausGrndenderbesserenDarstellungsmglichkeitenbeider
Wertebereichsintegrittdokumentiert.

Seite70

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

ReferentielleIntegritt
DiehierfrnotwendigenManahmenbetreffenimwesentlichendieRelationenAusleiheund
Reparatur.
BeiderAusleihemusssichergestelltwerden,dassnurAusleihenvorgenommenwerden,beidenen
alleDatenberKundenundPKWvorliegen.DasSystemmussjedeAusleiheablehnen,beidenenkein
VerweisaufdieRelationKundenundPKWmglichist.DaalleAusleihdateneinJahraktuellim
Systemgehaltenwerden,drfenKundenundPKWnureinmalimJahr,amEndedesGeschftsjahres
gelschtwerden.
hnlichesgiltfrdieRelationReparatur.AuchhierkannnureineReparatureingegebenwerden,die
eineneindeutigenVerweisaufdieRelationPKWundWerkstattzulsst.LschungenvonWerksttten
sindnuramEndedesGeschftsjahreserlaubt.
WenigerrigidesolltendieBeziehungenzwischenPKW,ModelleundHerstellergehandhabtwerden.
SokannesinderPraxisvorkommen,dassbereitseinPKWausgeliehenwird,vondemnochnichtalle
genauenDatenvorliegen.Deshalbsollesmglichsein,inderRelationPKWEintragungen
vorzunehmen,obwohldieentsprechendenVerweiseindenRelationenHerstellerundModelle
fehlen.

Zugriffsrechte
Datenbankadministration
DasRechtderDatenbankadministrationerhltnurderErstellerbzw.dieErstellerin,indiesemFall
"systff".

ZugangzumDatenbanksystemundzurDatenbankFlotterFlitzer
DerAllgemeinheitwirddasZugriffsrechtentzogen.VergebenwirdesandiefolgendenBereiche:

ausleihe

rueck

kuverw

fuhrpark

wartungund

systff

Seite71

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________

ZugriffaufTabellen
kunden
Name

SELECT

INSERT

UPDATE

DELETE

ausleihe

ja

ja

ja

nein

rueck

ja

nein

nein

nein

kuverw

ja

ja

ja

nein

fuhrpark

nein

nein

nein

nein

wartung

nein

nein

nein

nein

Name

SELECT

INSERT

UPDATE

DELETE

ausleihe

ja

nein

nein

nein

rueck

ja

nein

nein

nein

kuverw

ja

nein

nein

nein

fuhrpark

ja

ja

ja

nein

wartung

ja

nein

nein

nein

Name

SELECT

INSERT

UPDATE

DELETE

ausleihe

nein

nein

nein

nein

rueck

nein

nein

nein

nein

kuverw

nein

nein

nein

nein

fuhrpark

ja

nein

nein

nein

wartung

ja

ja

ja

ja

Name

SELECT

INSERT

UPDATE

DELETE

ausleihe

ja

nein

nein

nein

rueck

ja

nein

nein

nein

kuverw

nein

nein

nein

nein

fuhrpark

ja

ja

ja

ja

wartung

ja

nein

nein

nein

fuhrpark

werkstatt

hersteller

Seite72

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
modelle
Name

SELECT

INSERT

UPDATE

DELETE

ausleihe

ja

nein

nein

nein

rueck

ja

nein

nein

nein

kuverw

nein

nein

nein

nein

fuhrpark

ja

ja

ja

ja

wartung

ja

nein

nein

nein

Name

SELECT

INSERT

UPDATE

DELETE

ausleihe

ja

ja

nein

nein

rueck

ja

ja

ja

nein

kuverw

ja

nein

nein

nein

fuhrpark

nein

nein

nein

nein

wartung

nein

nein

nein

nein

Name

SELECT

INSERT

UPDATE

DELETE

ausleihe

nein

nein

nein

nein

rueck

nein

nein

nein

nein

kuverw

nein

nein

nein

nein

fuhrpark

ja

nein

nein

nein

wartung

ja

ja

nein

nein

ausleihe

reparatur

ZugriffaufSpalten
EswerdenkeinegesondertenRechtefreinzelneAttributevergeben.
Views
EswerdenkeineViewserzeugt.

Seite73

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
AutovermietungFlotterFlitzer

SQLScriptzumErzeugen
derDatenbankundderTabellen
(MYSQL)
# Skriptname create_ff.sql
#
# Funktion Erstellt die Tabellen fuer die Verwaltung der
# Autovermietung Flotter Flitzer
#
# Autor: Johann Penon (BICS)
#
# DBMS: MySql 4.X
#
# erstellt am 30. Oktober 2005
#
# Aufruf: mysql -u XXXX -p XXXXX < create_ff.sql (Fr XXXX sind Benutzer
und Passwort einzusetzen).
#
# Die Fremdschlsselbefehle (FOREIGN KEY) wurden von der Informix-Version
bernommen,
# haben aber keine Wirkung bei MySql.
#
# drop database FF; (Kommentarzeichen wegnehmen, wenn die Datenbank bereits
existiert)
CREATE DATABASE FF;
use FF;
CREATE TABLE IF NOT EXISTS kunden
(
kunr int (5) DEFAULT '10000' NOT NULL AUTO_INCREMENT,
kuname CHAR(30) NOT NULL,
kuvorname CHAR(20) NOT NULL,
kustrasse CHAR(30) NOT NULL,
kuplz CHAR(08) NOT NULL,
kuort CHAR(30) NOT NULL,
kutelefon CHAR(20),
kugebdat DATE NOT NULL,
kudatfschein DATE NOT NULL,
PRIMARY KEY (kunr)
);

Seite74

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
CREATE TABLE IF NOT EXISTS hersteller
(
hename CHAR(35) NOT NULL,
hestrasse CHAR(30),
heplz CHAR(05),
heort CHAR(30),
hetelefon CHAR(20),
hekontakt CHAR(20),
PRIMARY KEY (hename)
);
CREATE TABLE IF NOT EXISTS modelle
(
moname CHAR(35) NOT NULL,
hename CHAR(35) NOT NULL,
moleistung SMALLINT,
mohubraum SMALLINT,
molaenge SMALLINT,
mobreite SMALLINT,
PRIMARY KEY (moname),
FOREIGN KEY(hename) REFERENCES hersteller(hename)
);
CREATE TABLE IF NOT EXISTS pkw
(
pkennzeichen CHAR(11) NOT NULL,
moname CHAR(35) NOT NULL,
perstzulassung DATE,
peabmeldung DATE,
pschiebedach CHAR(1),
pklima CHAR(1),
PRIMARY KEY (pkennzeichen),
FOREIGN KEY(moname) REFERENCES modelle(moname)
);
CREATE TABLE IF NOT EXISTS werkstatt
(
wename CHAR(35) NOT NULL,
westrasse CHAR(30),
weplz CHAR(05),
weort CHAR(30),
wetelefon CHAR(20),
wekontakt CHAR(20),
PRIMARY KEY (wename)
);

Seite75

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
CREATE TABLE IF NOT EXISTS ausleihe
(
aunr int (6) DEFAULT '100000' AUTO_INCREMENT,
pkennzeichen CHAR(11) NOT NULL,
kunr INTEGER NOT NULL,
auleiausdat DATE NOT NULL,
auanfangkm INTEGER NOT NULL,
auleirueckdat DATE,
auendkm INTEGER,
PRIMARY KEY (aunr),
FOREIGN KEY(pkennzeichen) REFERENCES pkw(pkennzeichen),
FOREIGN KEY(kunr) REFERENCES kunden(kunr)
);

CREATE TABLE IF NOT EXISTS reparatur


(
pkennzeichen CHAR(11) NOT NULL,
wename CHAR(35) NOT NULL,
redatum DATE NOT NULL,
reart CHAR(30),
redauer SMALLINT,
PRIMARY KEY (pkennzeichen, wename, redatum),
FOREIGN KEY(pkennzeichen) REFERENCES pkw(pkennzeichen),
FOREIGN KEY(wename) REFERENCES werkstatt(wename)
)

AutovermietungFlotterFlitzer

ScriptzumErzeugen
derDatenbankundderTabellen
(Informix)
{
{
{
{
{
{
{
{
{
{
{

Skriptname
Fundort

create.sql
scripts/create.sql

Funktion

Erstellt die Tabellen fuer die Verwaltung der


Autovermietung Flotter Flitzer

Autoren

Johann Penon (BICS), Hermann Peltzer (BICS)

DBMS

Informix 4.1

erstellt am

18. September 1995

CREATE DATABASE ff WITH LOG IN "/schule/anwen/db/ff/log1.log";

Seite76

}
}
}
}
}
}
}
}
}
}
}

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
CREATE TABLE kunden
(
kunr
kuname
kuvorname
kustrasse
kuplz
kuort
kutelefon
kugebdat
kudatfschein
PRIMARY KEY (kunr)
);

SERIAL(1000),
CHAR(30) NOT NULL,
CHAR(20) NOT NULL,
CHAR(30) NOT NULL,
CHAR(08) NOT NULL,
CHAR(30) NOT NULL,
CHAR(20),
DATE
NOT NULL,
DATE
NOT NULL,

CREATE TABLE hersteller


(
hename
hestrasse
heplz
heort
hetelefon
hekontakt
PRIMARY KEY (hename)
);

CHAR(35) NOT NULL,


CHAR(30),
CHAR(05),
CHAR(30),
CHAR(20),
CHAR(20),

CREATE TABLE modelle


(
moname
CHAR(35) NOT NULL,
hename
CHAR(35) NOT NULL,
moleistung
SMALLINT,
mohubraum
SMALLINT,
molaenge
SMALLINT,
mobreite
SMALLINT,
PRIMARY KEY (moname),
FOREIGN KEY(hename) REFERENCES hersteller(hename)
);
CREATE TABLE pkw
(
pkennzeichen
CHAR(11) NOT NULL,
moname
CHAR(35) NOT NULL,
perstzulassung
DATE,
peabmeldung
DATE,
pschiebedach
CHAR(1),
pklima
CHAR(1),
PRIMARY KEY (pkennzeichen),
FOREIGN KEY(moname) REFERENCES modelle(moname)
);

Seite77

Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik

___________________________________________________________________________
CREATE TABLE werkstatt
(
wename
westrasse
weplz
weort
wetelefon
wekontakt
PRIMARY KEY (wename)
);

CHAR(35) NOT NULL,


CHAR(30),
CHAR(05),
CHAR(30),
CHAR(20),
CHAR(20),

CREATE TABLE ausleihe


(
aunr
SERIAL(1),
pkennzeichen
CHAR(11) NOT NULL,
kunr
INTEGER NOT NULL,
auleiausdat
DATE
NOT NULL,
auanfangkm
INTEGER NOT NULL,
auleirueckdat
DATE,
auendkm
INTEGER,
PRIMARY KEY (aunr),
FOREIGN KEY(pkennzeichen) REFERENCES pkw(pkennzeichen),
FOREIGN KEY(kunr)
REFERENCES kunden(kunr)
);
CREATE TABLE reparatur
(
pkennzeichen
CHAR(11) NOT NULL,
wename
CHAR(35) NOT NULL,
redatum
DATE
NOT NULL,
reart
CHAR(30),
redauer
SMALLINT,
PRIMARY KEY (pkennzeichen, wename),
FOREIGN KEY(pkennzeichen) REFERENCES pkw(pkennzeichen),
FOREIGN KEY(wename)
REFERENCES werkstatt(wename)
);

Seite78