Vorlesung 2

Werbung
DatenbankbasierteWeb-Anwendungen
EntityRelationshipModellierung(ERM)&
StructuredQueryLanguage(SQL)
MedieninformatikSoSe2017
RenzoKottmann
ThisworkislicensedunderaCreativeCommonsAttribution-NonCommercial
4.0InternationalLicense.
Kontakt:
mail
linkedin:http://www.linkedin.com/in/renzokottmann
twitter:@renzokott
Schritteimad-hocProjekt
Datenverwaltungssystem:semistrukturierteDatenimFilesystem(CSV)
1. ProbleminderrealenWelt
WersinddieTeilnehmerinneninmeinemKurs?
2. ImplizitesModel(Tabelle)
3. Datenerfassung
ListederTeilnehmerinnen
WassinddieNachteilevondiesemSystem
unddieserVorgehensweise?
Waswärebesser?
Waswärebesser?
1. HoheDatenintegritätbzw.Konsistenz
2. MehrereNutzerkönnengleichzeitgandenselbenDaten
arbeiten
3. KlareTrennungvonStrukturundInhaltbzw.Daten
4. EffizienteSucheingrossenDaten
FürDatenintegritätundStrukturtrennung
StrukturierteDaten
(relationale)Datenbank(DB)
Schema(„Modell“,„Metadaten“)
+Daten(„Extension“,„Nutzdaten“)
ModellundDatensindkonzeptionellgetrennt!
FürEffizienzundMehrbenutzer
Datenbankmanagementsystem(DBMS)
Softwaresystem
ErmöglichtErstellungundPflegevielerDatenbanken
StelltWerkzeugefüralleAspektederDatenverwaltung
bereit
2.Runde
MitdemrelationalemZielvorAuge
SchritteimagilenDatenbankProjekt
Datenverwaltungssystem:RelationalesDatenbankmanagemensystem
1. Anwendungsdefinition
GenauetextuelleBeschreibungdesProblemsinder
realenWelt.
2. KonzeptionellerEntwurf/Datenbankmodellierung
EntityRelationshipModellierung(ERM)
3. DatenbankRealisierung
Skript(e)zurImplementierungdesDatenmodells
Skript(e)zumladen/einfügenderDaten
4. VonGeschäftsanfragenzuDatenbank-Abfragen
Skript(e)fürSQL´sSELECTs
AlternativerBlick:
Datenbankentwicklungszyklus
Datenmodellieren:Entwicklungvonderfachlichen,implementierungsunabhängigenKonzeptionbiszurDatenbank
wann Tätigkeiten
ModellierungsPhase
Aktivitätenund(Zwischen-)ErgebnissederDatenmodellierungimProjektverlauf
Beispiele
Inhalt
konzeptioneller Konzeptuelles
Entwurf
Datenbankkontext-
schema
relevante
fachlicheInform.Synonym,z. B.:
Aufnahme
“realenWelt”
Semantisches
imProjekt
Datenmodell
Objekteder
realeWelt
Personen,
Gegenstände,
Zustände…
logischer
Entwurf
Abbilddurch
Typisierungund
Beschreibung
ERD+
Beschreibungen
Logisches
Datenbank-
daten-techn.
Festlegungen
schema
Datenbank-Modell
imProjekt
physischer
Entwurf
Physisches
Datenbank-
DBMSspezifische
Definition
Schema
DatenbankSchema
imProjekt
+
datentechnische
Parameter
Schlüssel,
refer.Integrität,
Datensicherheit,
Historie…
DatenbankInbetriebsetzung
Installationder
Datenbank
betriebliche
Nutzung
Datenbankim
Betrieb
Projektende/
Wartung
Ein-/Ausgabe- UnternehmensAktionender
Prozesse
Programme
lfd.Betrieb
liefern,
verarbeiten
Scriptzur
Generierungder
Datenbank
KonkreteDaten
Produkteund
Informationenan/
vonKunden,
Partner,intern,…
Zugriffsoptimierung(Indexe)
Createund
andere
Kommandos
(über)Kunden,
Artikel,
Rechnungen…
Belege,
Urkunden,
Produkte,Pläne,
Bilanzen,…
DateninDatenbankensinddiedatentechnischeRepräsentationrealerObjekte
DieUnternehmensprozessestehenmitrealenObjekteninInteraktion
DatModvsemModzurDBKvonVÖRBY,KonvertierungzuSVGPerhelion-eigeneErstellung,
ausWikipedia-Textabgeleitet.LizenziertunterGemeinfreiüberWikimediaCommons.
Anwendungsdefinition
InderPhasederSystemanalysewerdenausgehendvonderProblemstellung
dieAnforderungenandieLösungformuliert.Diesesolltenmöglichst
vollständigundkonsistentsein,d.h.alle(vollständigen)Anforderungen
solltenwiderspruchsfrei(konsistent)formuliertwerden.
EinguterEinstiegindieAnwendungsdefinitionist,sichzuverdeutlichen,
welchegenauerenZwecksetzungenerfülltwerdensollen.D.h.wasistdasZiel
desProjektes.
Anwendungsdefinition
WelchenZweckensolldieErfassungallerKursteilnehmerdienen?
Anwendungsdefinition
WelchenZweckensolldieErfassungallerKursteilnehmerdienen?
Notenvergabe
ErmittlungdesWissenstands
WermachtwelchesDatenbankprojekt?
WeristinwelcherLaborgruppe?
WerhatwelcheLaboruebung,wannfertiggemacht?
Mini-Welt
Dawirwissenwaswirwollen,könnenwirfolgendeFragenbeantworten:
WelchenAusschnittderrealenWeltbrauchenwir?
WelcheAspektemüssenwirBerücksichtigen?
EntityRelationshipModellierung(ERM)
SemantischerDatenbankentwurf
unabhängigvonkonkretenDatenbank-spezifischen
Modellen
Graphisch
Ideesimpel
LeidersehrvieleinkonsistenteVarianten
Entity(Entität)
EinEntity-Relationship-Model(ERM)gehtvonEntitäten(~=
Objekten)aus.
"EineEntitätisteineeigenständigeEinheit,dieimRahmen
desbetrachtetenModellseindeutigidentifiziertwerden
kann."
EinEntitätstypwirddurchAttributegenauerbeschrieben
undstelltsomiteineabstrakteBeschreibungoder
CharakterisierungvonEntitätenda.
Beispiel:
Lehrer=Entitätstyp
Renzo~=Entität(einspeziellerLehrender)
Attribute
EigenschaftenvonEntitätenwerdendurchAttribute
beschrieben
AttributehabeneinenNamenundeineDomaine(=
BestimmungderWertmenge).
Keys(Schlüssel)
DadieDefinitioneinerEntitätbeinhaltet,dassdiesezumindestimRahmen
einesModellseindeutigidentifiziertwerdenkann,brauchtjederEntitätstyp
eineMengevonAttributenalsSchlüssel.
DieAuswahleinesodermehererAttributealsSchlüssellegtfest,dasseskeine
zweiEntitäteneinesEntitätstypgebenkanndieidentischeAttributwerte
haben.
WichtigeEigenchaften:
Eindeutigkeit
Zuteilbarkeit
Relationship(Beziehung)
VerschiedeneEntitätenkönnenzueinanderinBeziehunggesetztwerden.
InjederBeziehunghabenEntitätengewisseRollen
BeziehungenkönnenEigenschaften(Attribute)haben
BeziehungenhabenKardinalitäten
Notationen
EsgibtverschiedeneFormenERMzunotieren(textuellund/odergraphisch):
ChenNotation
CrowFoot's
UnifiedModellingLanguage(UML)
Notation
Entity
Attribute
Beziehungen/Relationship
VonERMzurerstenImplementation
StructuredQueryLanguage(SQL)
SQListeineDatenbanksprache
1. zurDefinitionvonDatenstrukturen/Modellen
2. zumBearbeiten(Einfügen,Verändern,Löschen)
3. zumAbfragenvondaraufbasierendenDatenbeständen
4. zurRechtevergabe
SQLEigenschaften
basiertaufrelationalerAlgebra
anEnglishangelehnt
Deklarativundfunktional
FastalleDatenbankenverstehenSQL
Standardisiert
PostgreSQLhateinerderbestenUmsetzungen
SQLÜberblick
DDL=DataDefintion
Language:
DefinitiondesDatenbankschemas
DML=DataManipluation
Language:
Ändern,Einfügen,LöschenundlesenderZugriff
DRL=DataRetrievel
Language
NichtstandadisierteBezeichnungdesSELECTaus
DML
DCL=DataControl
Language:
RechteverwaltungundTransaktionskontrolle
DDL:CreateTable
CREATETABLEteilnehmer(
--SpaltenNameDatentyp,
vornametext,
nachnametext,
matrikel_nrinteger,
emailtext,
semesterinteger
);
s.http://www.postgresql.org/docs/9.3/interactive/ddlbasics.htmlund
http://www.postgresql.org/docs/9.3/interactive/sql-createtable.html
DDL:CreateTablePrimaryKey
CREATETABLEteilnehmer(
--SpaltenNameDatentyp,
vornametext,
nachnametext,
matrikel_nrinteger,
emailtext,
semesterinteger
);
DDL:CreateTablePrimaryKey
CREATETABLEteilnehmer(
--SpaltenNameDatentyp,
vornametext,
nachnametext,
--Simpler(nichtbesterPrimaryKey)
matrikel_nrintegerPRIMARYKEY,
emailtext,
semesterinteger
);
DML:DatenEinfügen
INSERTINTOteilnehmer
(vorname,nachname,matrikel_nr,email,semester)
VALUES
('renzo','kottmann',007,'[email protected]',0);
s.http://www.postgresql.org/docs/9.6/interactive/dmlinsert.htmlund
http://www.postgresql.org/docs/9.3/interactive/sqlinsert.html
WeiterfuehrendeFragen:
1. WieändertsichdasERMunddieimplementierungwenn
folgendeAnfordernghinzukommt:
DieDatenbanksollfürallevergangenenundzukünftigen
Datenbankkurseinformationenspeichernkönnen
2. WelcheDatentypengibtesschoninPostgreSQL?
3. KannmaneigeneDatentypendefinieren?
Wennja,welcheMöglichkeitengibtes?
4. WelcheweiterenSQL-BefehlefürDatenmodell-Management
(DDL)gibtesnoch?
DankefuerdieZusammenarbeit
Herunterladen