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