Datoriserade informa.onssystem bygger på en tre-­‐skikts arkitektur • Data Management layer (Implementerat veksamhetsspråk) • Business layer (Verksamhetslogik) • Interface layer (Användargränssni@) • Kapitel 6 sid 172-­‐181 Figure 1.18: Layers of an ICT system " Data Management layer • Database • Data Base Management Systems (DBMS) Databas (Database) • En organiserad samling av data • Ska utgöra en representaOon av informaOonmodellen • Data i databasen ska vara åtkomligt av flera användare samOdigt Databashanteringssystem Database Management System • Programvara som används för a@ hantera en eller flera databaser • Tillhandahåller följande funkOonalitet: – Structural maintenance, förändra datastrukturerna i databasen – Transac/on processing, lägga Oll, förändra och ta bort data I databasen – Informa/on retrieval, söka och presentera data från databasen Oll applikaOoner (business layer) och användare – Data base administra/on, sköta behörighet, trimma databsen etc. RelaOonsdatabaser • Data lagras i tabeller • Tabellerna består av rader och kolumner • I en tabell måste det allOd finnas en uppsä@ning av a@ribut som gör varje rad unik de@a kallas tabellens primärnyckel (primary key) • 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) Structured Query Language (SQL) • De@a är e@ databasspråk som kan användas för a@ uZöra databaskommandon i samband med relaOonsdatabaser Transac.on processing med hjälp av SQL (Lägga .ll ta bort datastrukturer) • De@a innebär a@ skapa och ta bort tabeller I databasen • Med kommandot CREATE TABLE lägger man Oll tabeller I databasen och med kommandot DROP TABLE tar man bort tabeller i databasen • Dessa kommandon uZörs o\ast av databasadministratören • Ex. – – – CREATE TABLE Customer (Customer_no CHARACTER 7, Customer_name CHARACTER 7, PRIMARY KEY (Customer_no) CREATE TABLE Delivery_advice_note (Advice_no CHARACTER 6, Date DATE, PRIMARY KEY (Advice_no) FOREIGN KEY (Customer_No REFERENCES Customer) CREATE TABLE Order_lines (Order_no CHARACTER 8, Delivered_Qty INTEGER, Weight INTEGER, PRIMARY KEY (Order_no) FOREIGN KEY (Product_Code REFERENCES Product) Verksamhetsspråket är implementerat som tabeller i databasen Figure 1.18: Layers of an ICT system " Transac.on Processing med hjälp av SQL (Ändra data i databasen) • De@a innebär a@ Lägga Oll, ändra, ta bort data i tabellerna • De@a görs med följande kommandon: – INSERT – UPDATE – DELETE – Dessa databaskommandon anropas av applikaOonsprogram (som finns i skiktet verksamhetslogik) skrivna i programspråk som Visual Basic, C#, C++ INSERT UPDATE DELETE ApplikaOons-­‐ program skrivna i t.ex. C#, Visual Basic, C++, Pearl som bygger på verksamhets-­‐ Verksamhetsspråket logik och använder sig är implementerat som tabeller i databasen av tabellerna I databasen. Figure 1.18: Layers of an ICT system " Transac.on Processing med hjälp av SQL (Ändra data i databasen) • Exempel lägga Oll data i databasen – INSERT INTO Customer (’10067K’, ‘Blackwell Steel Products’) – 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’ Exempel tabeller ur databasen Informa.on retrieval, söka och presentera data från databasen • De@a görs med SELECT • SELECT-­‐kommandot uZörs o\ast av e@ applikaOonsprogram (som finns i skiktet verksamhetslogik) • Exempel – SELECT * FROM Order_Lines Denna SELECT sats listar alla rader i tabellen Order_Lines – SELECT Order_No, date, Product_DescripOon, 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). Hur de olika skikten samverkar i samband med eK datoriserat informa.onssystem i en organisa.on Hårdvara, OperaOvsystem, Generell Programvara, Programspråk, DBMS, KommunikaOon INSERT UPDATE DELETE ApplikaOons-­‐ program, bygger på verksamhetslogik SELECT och verksamhetsregler, t.ex. funkOonen Jobs Användargränssni@et Verksamhetsspråket styr användarens möjlighet är implementerat a@ kommunicera genom den som tabeller i databasen verksamhetslogik som finns implementerad i applikaOons-­‐ Figure 1.18: Layers of an ICT system programmenoch det implementera verksamhetsspråket i databasen " Användaren ska mata in det som ska levereras tillbaka till kunden för en specifik order-line (batch). 1) Användaren väljer Jobs 2) När användaren kommer till Jobs dokumentet har följande SQL-sats redan utförts SELECT Order_No, date, Job_No, Product_Description, Product_Code, Length, Delivered_Qty, Weight FROM Order_Lines, Product, Job, Dispatch_line WHERE Order_Lines.Product_Code = Product.Product_code AND Job.Order_no = Order_Lines.Order_no AND Dispatch_line.Order_No = Job.Order_no 3) Användaren fyller i “QTY returned” och “Weight returned “och trycker på save. 4) Programmet kontroller då att användaren fyllt i rimliga värden och utför sedan följande UPDATE-sats UPDATE Dispatch_line SET Delivered_Qty = 20, SET Weigt =50 WHERE Dispatch_line.Order_No = ’13/1193G’