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).