Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Relevanta dokument
Informa5onsmodellering

1. Treskiktsarkitektur 2. Applika1onsprogramvara 3. Teknisk programvara. Kapitel 6 sid

Kap 1-3. Databasen (1.2.2) Database Management System DBMS (Kap 1.6), Teknisk Programvara SQL (Kap 3) Den relationella modellen (Kap 2)

Chapter 3: Data, informa5on and knowledge. Paul Beynon- Davies: Business Informa5on Systems

Chapter 3: Data, informa5on and knowledge. Paul Beynon- Davies: Business Informa5on Systems

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Informationsmodellering och e-infrastrukturer

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Föreläsning 2: Översikt över ett databassystem

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Databaser och Datamodellering Foreläsning IV

Design och underhåll av databaser

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

1.Lär känna MS SQL Observera. Tips. Förberedelse

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Databaser - Design och programmering

732G16: Databaser - Design och programmering

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Sample exam questions. Database exam TIG058

Inga hjälpmedel är tillåtna

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Lösningsförslag, tentamen i Databaser

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

Konceptuella datamodeller

Tentamen. Databasmetodik Lördag 27 september 2014 kl

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

VAD GÖR DU / VEM ÄR DU?

Övningar i SQL. SQLAccess.doc Ove Lundgren

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Structured query language (SQL)

Karlstads Universitet, Datavetenskap 1

Webbprogrammering, grundkurs 725G54

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

NORMALISERING. Mahmud Al Hakim

VAD GÖR DU / VEM ÄR DU?

WCMS-15, Webbutvecklare CMS

Tentamen DATABASTEKNIK - 1DL116

Analytisk relationsdatabasdesign

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Databasutveckling Introduktion till SQL och TSQL

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Rättningsmall tenta den 25e oktober Uppgift 1. Uppgift 2. se slides

Vad är en databas? Databasutveckling Med MySQL/MariaDB

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Relationsmodellen och syntetisk databasdesign

Starta MySQL Query Browser

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Lösningar till tentamen i EDAF75

Databasdesign. E-R-modellen

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

DVA234 Databaser. Dag Nyström, Introduktion till databaser och MS SQL Server

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Innehåll. MySQL Grundkurs

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informationssystem Datum 19/8 Tid

Kursens mål. Databasteknik TDDB48. Lärare. Kursorganisation. Laborationsinformation. Inlämning av laborationer. Responsible:

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Structured Query Language (SQL)

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

1. Kvalitetsbegreppet 2. Kommunikation 4. Olika typer av datalagring. 5. Databas 6. DBMS 7. Molntjänster 8. Tabeller. 10. SQL 11.

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Prova på-laboration i SQL

Informationssystem och Databasteknik

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Databasspråket SQL - online.

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

Webservice & ERP-Integration Rapport

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Genomgång av tentamen. Databasteknik ITHS 4/3 2016

Kapitel 4 Arkivmenyn Innehåll

Databasspråket SQL - online.

TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 2002, kl 14-18

3. Dynamiska webbplatser, 20 Yhp (4 v)

1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7.

TENTAMEN DATABASKUNSKAP ITEK12

Skapa exempeldatabasen

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Föreläsning 3 Dagens föreläsning går igenom

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;

Databaser och SQL - en kort introduktion

Databasspråket SQL - online.

1. SQL DDL (Data Definition Language) 2. Skapa tabell

Transkript:

Disposition 1. Kopplingen mellan Processanalys (DFDdiagram) och konceptuell modellering (ERdiagram) (se kap 4) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Databasen (Kap 2) Den relationella modellen (Kap 2) DBMS (Kap 1.6) SQL (Kap 3)

Verksamhets- och systemutveckling Omgivande samhälle Organisation Förändring av ansvar och roller Verksamhet Krav Möjliggör och begränsar Datoriserat informationssystem Externa aktörer och deras informationssystem Figure 1.9: Planning, management and operations

Processmodellering (grund för krav) ER-modellering (grund för krav)

Figure 1.15: The information system at Goronwy

Processmodellering Processmodellering (Fokus på activitysystem) Nuläge Framtid (önskat läge) Det finns många olika metoder för verksamhetsanalys och processmodellering Dataflödesdiagram Processdiagram Alla metoder för processmodellering behöver notation för att beskriva Processer och aktiviteter/handlingar/funktioner Aktörer/Producenter Sekvenser Beslut Meddelanden och informationsflöden Materialflöden

ER-Modellering - Ettviktigt syfte med systemutveckling ärattspecificera verksamhetens informationsbehov för att kunna kartlägga detta informationsbehov bör vi skapa et ER-diagram (konceptuell modell, informationsmodell) - Syftet med att skapa ett ER-diagram är att beskriva informationsstrukturen i verksamheten - ER-diagrammet visar en statisk bild av informationen - Detta utgör den grundläggande semantik och pragmatik för verksamhetsspråket - Beskriver de begrepp och termer som används i verksamhetsspråket - Modellera klasser och dess relationer

Vad är det för verksamhetsspråk som används? Vad är språkreglerna? Vilken semantik och pragmatik Figure 1.12: Sample delivery advice note

Vad är det för verksamhetsspråk som används? Vad är språkreglerna? Vilken semantik och pragmatik? Figure 1.13: Sample job sheet

Vad är det för verksamhetsspråk som används? Vad är språkreglerna? Vilken semantik och pragmatik? Figure 1.14: Sample dispatch advice note

Customer (1) Customer No. PK Attributes: Customer Name Order lines (3) Order no., PK Attribute: Delivery qty, Weight Product (4) Product Code PK Attributes: Description, Item length Delivery advice note (2) Advice no. (PK) Attributes: Date, Instructions, Haulier, Status

(1) (2) (4) 1 0..M 0..* (3)

Datoriserade informationssystem bygger på tre-skikts arkitektur Se figur 1.8 Interface layer Business layer Data layer

Datoriserat informationssystem DBMS t.ex. Access Verksamhetsspråket är implementerat som tabeller i databasen Detta är en kombination av data- och informationsstruktur. INSERT UPDATE DELETE SELECT Program skrivna i t.ex. C#, Visual Basic, C++, Pearl som styr hur man använder sig av data management layer och hur data skall visas för slutanvändaren här används bådeformellt språk och verksamhetsspråk Slutanvändare Verksamhetsspråket är implementerat i användargränssnittet slutanvändaren använder ett digitaliseratverksamhetsspråk Figure 1.18: Layers of an ICT system -Hantering av data i databasen sker via business layer och informationen presenteras i interface layer -Databashanteringssystemet anropas via program som finns i business layer

Tre-skikts arkitektur fördelar Tillgängliggöra information på ett effektivt sätt och på olika sätt via data layer Man kan ändra teknologi i ett av skikten utan att det påverkar de andra skikten Man kan köra/exekvera olika delar av en applikation på olika datorer i ett nätverk T.ex. i en Internet-applikation. Browser körs på klienten (tunn klient) Business layer logiska operationer, och transaktionskontroll mot data layer (webserver, application server) Data layer (data base server)

Business layer Initierar Transaktioner gentemot databasen Utför beräkningar och logiska härledningar

Transaktioner Styr i vilken ordning databashanteringssystemet skall anropas och hur data skall visas för slutanvändaren samt lagras i databasen

Beräkning och logisk härledning Beräkningsregler och regler för logisk härledning Dessa styr hur programmen i business layer skall utföra beräkningar och logiska härledning

Interface layer Användargränsnittet kan hanteras via ett skräddarsytt program ett klientprogram - Så kalladeformsapplikationer är ett exempel pådetta (som Goronwy prototypen) - Appar är ett annat exempel på detta Browsers kan används för att hantera användargränssnittet HTML och andra internet-standardiserade språk används för att presentera användragränssnittet med hjälp av t.ex. Webforms

Manuellt informationssystem: presentation och lagring i ett skikt och inget business layer

Data Management layer Database Data Base Management Systems (DBMS) SQL

Databas (Database) En organiserad samling av data Ska motsvara informationmodellen Data i databasen ska vara åtkomligt av flera användare samtidigt

Relationsdatabaser (Den relationella modellen) Data lagras i tabeller Tabellerna består av rader och kolumner Varje cell innehåller bara ett värde inga grupper av data Varje rad måste kunna identifieras unikt Det finns ingen ordning på raderna de är inte sorterade I en tabell måste det alltid finnas en unik primärnyckel (primary key) som kan vara sammansatt av flera kolumner, det kan finnas kandidatnycklar men en ska väljas som PK Referenser mellan olika tabeller sker med hjälp av primärnycklarna Om en primärnyckel finns i en annan tabell där den inte är primärnyckel kallas den för främmande nyckel (foreign key)

Transformationsregel mellan ER-diagram och tabeller 1 klass blir en tabell Relationer representeras med hjälp av främmande nycklar

ER-Diagram Goronwy 1 1 0..* 1 1 0..M 1 1 0..* 0..M 1 1 0..* 1 0..*

ER-Diagram Goronwy 1 Customer Customer No. (PK) 1 Dispatch Advice Note Delivery Advice Note Advice No. (PK) Advice No. (PK) 1 1 Dispatch_Line Product Order_Line Order_No. (PK) 0..1 Produtcode(PK) 0..1 Order_No. (PK) 1 0..1 Job Sheet 1 Job_No. (PK)

Rätt 3:e Normalformen Varför måste vi göra så för att representera 1:* relationer? Tabellerna ska var i 3:e NF Fel 2:a normalformen 3:NF Attributen ska vara beroende av PK hela PK och inget annat än PK Jag visade i föreläsning 3 att detta har sin grund i olika språkfunktioner Skillnad mellan refererande och beskrivande språkfunktioner Detta förklaras inte i den relationella modellen eller i boken där det ses ur ett rent logiskt perspektiv

Information i databaser representerar propositioner (språkliga satser) som utförts i talhandlingar Språkfunktion Referens till unikt objekt Språkfunktion Klassificering Språkfunktion Beskrivning Venus (Planeten) är Vacker (Omdöme) Proposition (språklig sats)

Vi refererar unikt till objektet och tillskriver det attribut Alltså: Vi får ett funktionellt beroende mellan PK och attributen Planet Planetnamn PK Omdöme Ljusstyrka Tabell i 3:e NF

Fel Tabellen i 2:a NF Rätt två tabeller i 3:e NF

ER-Diagram Goronwy 1 Customer Customer No. (PK) 1 Dispatch Advice Note Delivery Advice Note Advice No. (PK) Advice No. (PK) 1 1 Dispatch_Line Product Order_Line Order_No. (PK) 0..1 Produtcode(PK) 0..1 Order_No. (PK) 1 0..1 Job Sheet Job_No. (PK) Hur löser vi en *:* relation?

Rätt alla tabeller i 3:e NF

Databashanteringssystem Database Management System Programvara som används för att hantera databaser Tillhandahåller följande funktionalitet (1.6 I boken): Hantera data i databasen Förändra datastrukturerna i databasen Läggatill, förändra och ta bort data i databasen Söka och presentera data från databasen Data base administration, sköta behörighet, trimma databsen etc.

Databashanteringssystem Database Management System Tillhandahåller följande funktionalitet (forts): Data catalouge Transaction support Concurrency control services Recovery services Authorization services Support for data communication Integrity services Services to provide data independence Utility services

Structured Query Language (SQL) Detta är ett databasspråk som kan användas för att utföra databaskommandon i samband med relationsdatabaser

Structual maintanence med hjälp av SQL (Lägga till ta bort datastrukturer) Detta innebär att skapa och ta bort tabeller I databasen Med kommandot CREATE TABLE lägger man till tabeller I databasen och med kommandot DROP TABLE tar man bort tabeller i databasen Dessa kommandon utförs oftast av databasadministratören

Exempel på SQL-satser som skapar dessa tabeller utan datainnehåll (1) Create Table Customer ( Customer_No Varchar(10), Customer_name Varchar(100), Primary key(customer_no) ); (2) Create table Delivery_advice_note (Advice_no Varchar(10), Date Varchar(10), Instruction Varchar(50), Haulier Varchar(50), Received_in_good varchar(1), Customer_No Varchar(10), primary key(advice_no), Foreign key(customer_no) References Customer(Customer_No) ); (3) Create table Order_lines ( Order_no Varchar(10), Delivered_Qty int, Weight int, Product_code varchar(50), Advice_no varchar(10), Primary key(order_no), Foreign key(product_code) References Product(Product_code), foreign key(advice_no) references Delivery_advice_note(Advice_no) ); (4) Create table Product ( Product_code Varchar(10), Length int, Product_description varchar(100), Primary key(product_code)); (5) Create table Job ( Job_no Varchar(50), Count_Disc int, Non_con_black Varchar(50), Non_conf_white Varchar(50), Non_conf_no_change Varchar(50), Order_No Varchar(10), Primary Key(job_no), Foreign key(order_no) references order_lines(order_no), Product_code varchar(20), foreign key(product_code) references Product(Product_code) ); (6) Create table Dispatch_line (Order_No Varchar(50), Delivery_Qty int, Weight int, Advice_No Varchar(10), Product_code Varchar(50), Job_no Varchar(50), Primary key(order_no), foreign key(advice_no) references Dispatch_advice_note(advice_No), Foreign key(product_code) references Product(Product_code), foreign key(job_no) references Job(Job_no)); (7) Create Table Delivery_advice_note ( Advice_no varchar(50), Date varchar(20), Driver Varchar(50) Customer_No Varchar(10), Received _by Varchar(1), Primary key(advice_no), Foreign key(customer_no) references Customer(Customer_no) );

Ändra data i databasen Detta görs med följande kommandon: INSERT UPDATE DELETE Exempel lägga till data i databasen INSERT INTO Customer ( 10067K, Blackwell Steel ) INSERT INTO Delivery_advice_note ( 13/1193G, 2010-11-09, 10067K ) INSERT INTO Order_lines ( 13/1193G, 20, 145, UL150 ) Exempel ändra data i databasen UPDATE Order_Lines SET Delivered_Qty = 25 WHERE Order_No = 13/1193G Exempel ta bort data i databasen DELETE FROM Order_Lines WHERE Order_No = 13/1193G

Söka och presentera data från databasen Detta görs med SELECT SELECT-kommandot utförs oftast av ett applikationsprogram (som finns i skiktet verksamhetslogik) Exempel SELECT * FROM Order_Lines Denna SELECT sats listar alla rader i tabellen Order_Lines SELECT Order_No, date, Job_No, Product_Description, Product_Code, Length, Delivered_Qty, Weight FROM Order_Lines, Product WHERE Order_Lines.Product_Code = Product.Product_code (Denna SELECT-sats söker ut alla rader I Order-Lines tabellen och matchar dessa rader mot Product tabellen på Product Code).