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
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:
imRelationenmodellerfolgtdasSpeichernderDateninTabellen,
imODBMS:SpeichernderDateninObjekten
Attribute,Beziehungen,Schlsselebenfallszufinden
starkeOrientierunganOOP
DefinitiondesObjektmodellserfolgtmitderODLdiekonkreteImplementationderObjekttypen,
MethodenundAbfragenerfolgtinderjeweiligenProgrammiersprache
Seite10
Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik
___________________________________________________________________________
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
....
(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
123
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
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
444
Mller Hilde
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:
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
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
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
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
Zange
24,50
110
Kelle
16,80
112
Zement
10,40
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
Berlin
111
Gips
200
9,60
2000
4711
Kugler GmbH
Kremmen
112
Zement
180
10,40
2000
4800
Potsdam
ArtNr
Bezeichnung
Bestand
Preis
100
Bohrer
100
4,85
101
Pinsel
210
103
Hammer
105
StammLief
Seite47
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
Berlin
111
Gips
200
9,60 NULL
4711
Kugler GmbH
Kremmen
112
Zement
180
10,40 NULL
4800
Potsdam
Ort
100
Bohrer
KuglerGmbH
Kremmen
101
Pinsel
TrimsOHG
Berlin
103
Hammer
KuglerGmbH
Kremmen
105
Zange
KuglerGmbH
Kremmen
110
Kelle
Auf&AbKG
Bernau
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
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.
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
___________________________________________________________________________
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)
);
AutovermietungFlotterFlitzer
ScriptzumErzeugen
derDatenbankundderTabellen
(Informix)
{
{
{
{
{
{
{
{
{
{
{
Skriptname
Fundort
create.sql
scripts/create.sql
Funktion
Autoren
DBMS
Informix 4.1
erstellt am
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,
Seite77
Dipl.oec.G.PlatzerKursInformationssystemeFHKemptenFachbereichElektrotechnikundInformatik
___________________________________________________________________________
CREATE TABLE werkstatt
(
wename
westrasse
weplz
weort
wetelefon
wekontakt
PRIMARY KEY (wename)
);
Seite78