Kap 1-3 1. Informationssystem med Treskikts Client-Server arkitektur (Fig 1.6, 1.8) (Database systems, Database application, Datoriserade informationssystem) 2 Data layer Databasen (1.2.2) Database Management System DBMS (Kap 1.6), Teknisk Programvara SQL (Kap 3) Den relationella modellen (Kap 2)
Informationssystem (Database Systems) bygger på tre-skikts arkitektur Interface layer Business layer Data layer Se figur 1.8
Informationssystem (Datoriserat) 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 och styr transaktionernas logik 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
Transaktioner exempel Visual Studio Det finns komponenter (i Business Layer) som kan användas för att på ett enkelt sätt skapa SQL-satser och som kan användas för att presenterainformationen för användarna Detailsview och Gridview är exempel på detta
Interface Layer Business Layer Data Management Layer DetailsView Event i User Interface SQL-parameter sätts Event innan SQL-sats utförs SQL-sats utförd Event efter User Interface ändras
Manuellt informationssystem: presentation och lagring i ett skikt och inget business layer
Data Management Layer Database Management System T.ex. ACCESS Database administer administrerar databasen via ett DBMS SQL - CREATE - INSERT - UPDATE - DELETE SELECT INSERT UPDATE DELETE SELECT Verksamhetsspråket är implementerat som tabeller i databasen Skilj på: - ACCESS ett databashanteringssystem (DBMS, Teknisk Programvara), finns många olika t.ex. MySQL, Oracle etc. -SQL som är ett standardiserat databasspråk -Tabellerna som utgör databasen i en relationsdatabas
Fördelar med ett data management layer (1.7) Kontroll av redundant information (Control of data redundancy) Konsistenta data (Data consistency) Delning och distribution av data (Sharing of data) Data integritet (Improved data integrity) Program och dataoberoende (Improved maintenence through data independence)
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 Customer Customer No. (PK) 1 1..* 1..* Dispatch Advice Note Delivery Advice Note Advice No. (PK) Advice No. (PK) 1 1 1..* Dispatch_Line 1..* Product 1..* 1..* Order_Line Order_No. (PK) 0..1 Produtcode(PK) 0..1 Order_No. (PK) 1..* 1 0..1 1..* Job Sheet 1 Job_No. (PK) 1..*
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
Verksamhetsspråk Verksamhetsspråk (Domain languages) specifika för olika typer av verksamheter (t. ex. inom olika industrigrenar eller offentlig sektor) är en blandning av formellt och informellt språkbruk formaliserat verksamhetsspråk är dock inget nytt, byråkratspråk är ett typiskt exempel på detta. Verksamhetsspråket kräver mer detaljerade definitioner av vanligt använda allmänbegrepp, t.ex. allmänbegreppet kurs måste preciseras i samband med utbildningsverksamhet Digitaliserat verksamhetsspråk kräver än mer detaljerade definitioner jämfört med verksamhetsspråk där kommunikation sker med papper eller muntligt, formaliseringen av av verksamhetsspråket ökar genom den ökade datoriseringen
ER-diagrammet visar verksamhetsspråket Del av ER-Diagram Goronwy Viktigt att detta blir riktigt det påverkar hela informationssystemet och inte bara databasen Product Produtcode(PK) 0..1 1..* Order_No. (PK) Order_Line 0..1 1..* Job Sheet 1 Job_No. (PK) 1..*
Hur ska ni göra för att återrapportera hur jobben har genomförts? Var är problemet? Figure 9.4: Format, content and control
Systemet stämmer inte överens med ER-diagrammet Fel Tabellen ej i 2:a NF
Ett något begripligare gränssnitt Batch No. Qty Batch 18 Create Report
Ett något begripligare gränssnitt Job No. Batch No. 2046 13/1193G Qty Batch 18 Non Conforming White 2 Create Report
Product Produtcode(PK) 0..1 1..* Batch_No. (PK) Batch Ett begripligare E-diagram Job Sheet 1 Job_No. (PK) 1..*
Databashanteringssystem Database Management System (DBMS) 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
Integrity services Entity integrity Refrential integrity I Access kan man lägga på integrity rules
Structured Query Language (SQL) (Kap 3) Detta är ett databasspråk som kan användas för att utföra databaskommandon i samband med relationsdatabaser
Kap 4 The database system development life cycle Systemutveckling
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
Conception Analysis Design Construction Implementation Maintenance
Systemutvecklingsprocessen och dess faser (phases) (Systems Development Life Cycle) 1. Conception (4.4 Database Planning, 4.5 Systems definition) 2. Analysis (4.6 Analysis and requirements collection) 3. Design (4.7, (4.8), 4.9, 4.10, System design including database design and prototyping) 4. Construction (4.11 Implementation, Programmering) 5. Implementation (4.12, Data conversion and Loading, Testing 4.13, acceptanstest, driftsättning) 6. Maintenance (4.14 Oprational maintenance, Förvaltning)
Viktiga kravdokument Progcessmodell (DFD-diagram) ER-Diagram Prototyping en interaktiv modell
Processmodellen Ger en dynamisk beskrivning av verksamehten Ger en beskrivning av förädlingen bearbetningeni verksamheten Input-bearbetning-output Beskriver både materiella och informationsbehandlande funktioner Nulägeochframtida (bör) läge OBS! Asfaltera inte kostigar
Figure 1.15: The information system at Goronwy
ER-Modellering - 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
ER-Diagram Goronwy 1 Customer Customer No. (PK) 1 1..* 1..* Dispatch Advice Note Delivery Advice Note Advice No. (PK) Advice No. (PK) 1 1 1..* Dispatch_Line 1..* Product 1..* 1..* Order_Line Order_No. (PK) 0..1 Produtcode(PK) 0..1 Order_No. (PK) 1..* 1 0..1 1..* Job Sheet 1 Job_No. (PK) 1..*
Lagerarbetare Produktionsledare Galvaniseringsarbetare Olika användarvyer (se 4.6)
Database design (se 4.7) Conceptual database design (Kap 6,7,9) Logical (Kap 8, 10) Physical (Kap11)
Database Management System (DBMS) selection (se 4.8) ACCESS SQLServer MySQL Oracle DB2
Application design och prototyping (se 4.9 och 4.10) Gör tabeller I Excel eller ACCESS (eller annat DBMS) Skapa ett enkelt gränssnitt
Implementation (se 4.10) OBS! Olycklig term detta ska kallas Construction Ø Om prototyp är bra kan man vidareutvecckla den kallas för evolotionary prototyping Ø Om prototyp inte riktigt bra utan gjorde bara att man förstod kraven bättre, börja om på nytt, requirements prototyping
Fact finding datainsamlingsmetoder (se kapitel 5) Undersök dokument Intervjua Obeservation Deltagande observation Workshops Forskning Enkäter
Kap 6, 7 och 9 Entity-Relationship Modeling (Conceptual Modeling, Conceptual database Design, Information Modeling) Detta är viktigt men svårt p.g.a.: - vi måste förstå begrepp och termer i verksamhetsspråket (bestämma semantik och pragmatik) - datorer ska kunna bearbeta verksamhetsspråket - vi måste ge förslag på hur verksamhetsspråket ska utvecklas
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
Grundläggande konstruktioner i samband med konceptuell modellering Klass (Class, Entity type) och Objekt (object, instance) Identifierare (Key) Attribut (Attribute) Relationer (Association, Relationship)
Klasser (Entity type) och objekt Ett objekt (instans) är någonting som man har intresse av att identifiera i en verksamhet och som har en oberoende existens Ett objekt kan representera: ett fysiskt objekt (fysiskt ting), t.ex. en bil eller personal (eng. staff) en händelse eller transaktion, t.ex. en order En klass = en entitetstyp (bil som ett generellt begrepp) Ett objekt är en instans i klassen (en unik personalmedlem) En identifierare (Key) väljs Primary Key (PK) för att unikt identifiera ett objekt ( ex. personalnummer, eng. staffno)
Relationer (Relationships) En relation är en association mellan två klasser Ofta beskrivs binära relationer dvs relationer mellan två klasser (En i personalen (staff) leder (manages) ett distributionscentra (DistributionCenter) Samma två klasser kan ha flera relationer till varandra (Ett distributionscentra har flera personal) Relationens multiplicitet beskriver hur många objekt av en klass samtidigt får relateras till objekten i den andra klassen En till ett 1:1 En till många 1:* Många till många *:* Multiplicitet beskriver både kardinalitet och participation
Attribut (Attribute) En klass kan definieras och beskrivas med attribut Definition: En person som har lön för att utföra och ansvara för arbete i organisationen Beskrivning: namn, position, lön
Detta representeras så här i en relationsdatabas
ER-Diagram Subklasser och superklasser
Exempel på hur Subklasser och Superklasser representeras i tabeller
Normalisering Kap 8 1:a, 2:a och 3:e Normalformen Logisk analys av information Undvika redundans Undvika anomalier
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
Systemet stämmer inte överens med ER-diagrammet Fel Tabellen ej i 2:a NF
Conceptual Database Design Kap 9 Återupprepning av kap 6, 7 Återupprepning av 4.7, 4.9
Logical Database Design Kapitel 10 Transformationsregel mellan ER-diagram och tabeller 1 klass blir en tabell Relationer representeras med hjälp av främmande nycklar
1:* PK i 1 blir FK i * Associationer (relationer)
0:1 PK i 1 blir FK i 0 Associationer (relationer)
Associationer (relationer) *:* Ny tabell där kombinationen av PK i de tabellerna som relateras utgör PK i den nya korstabellen
Representation av subklasser Relation inom en klass OBS! Subklassen har samma PK som superklassen finns något attribut som anger olika subklasser
ER-Diagram Subklasser och superklasser
Exempel på hur Subklasser och Superklasser representeras i tabeller Attribut som anger subklass
Rekursiv relation inom en klass Managed by 1:* StaffNo (PK) Staff 1
Aggregat Stålrör Batch Rörnummer. (PK) 1..* 1 Batchnummer (PK)
11 Physical data base design Implementera logisk databas design Implementera integrity rules Skapa index Övervaka och trimma databasen
Normalisering och avnormalisering Databas som ändras och uppdateras 3e:NF (operativa databaser) Databas som främst används för att söka i kan vara i 1:a eller 2:a NF Men gör inte för stora tabeller
12 Database adminsitration and security Data administration Database administration
Database security Authorization (Grant kommando) Views Backup and recovery Integrity Encryption
Network security Firewalls DMZ DBMS
13 Professional legal, and ethical issues in datamanagement Defining legal and ethical issues in information technology Legislation and its impact on the IT function Establishing a culture of legal and ethical data stewardship Intellectual property
Defining legal and ethical issues in information technology IT experter blir mer och mer involverade i legala och etiska problem Detta är ett resultat av informationsinfrastrukturens ökade betydelse för samhället Lagstiftningen släpar efter vilket kräver moralisk kompass
Legislation and its impact on the IT function Mycket ny lagstiftning Ni måste vara medvetna om det PUL är t.ex. mycket styrande Lagarna påverkar också ER-modellering och databasdesign I Sverige finns registerlagar som är mycket styrande nämns inte i boken
Establishing a culture of legal and ethical data stewardship Professional code of ethics
Intellectual Property Rights (IPR) IPR for software IPR for data (Information)
14 Transaction Management Transaction support Concurrency control Recovery
Transaction support Transaction en logiskt sammanhängade operation gentemot databasen Kan inkludera flera SQL-satser Kan utgöras av ett helt program eller delar av ett program
Concurrency Control Program använder delade data Databashanteringssystemet måste garantera att data uppdateras på ett konsistent sätt Detta sker genom lås Undvik att hålla för mycket lås genom att göra commit
Database Rcovery Återställa databasen till ett konsistent status efter fel Backup Loggfil Roll-back Roll-forward
15 ecommerce and database deign Web-database Integration Web-database integration technologies XML
Active Server Pages PHP För att HTML-sidorna ska vara tillgängliga måste de finnas på en WEBB-server de måste publiceras där Business Layer Interface Layer SQL HTTTP Browser HTML IIS Data Layer TCP/IP Client Internet Server Webbservern har ett domännamn och URL som gör den synlig på Internet. Business Layer
Web-database Integration HTML PHP eller Active Server Pages (ASP) SQL
XML Kan användas för informationsutbyte mellan program i business layer
Översändningar av bokningar från TimeEdit med hjälp av Web-services TimeEdit Business layer Planeringssystemet Soap envelope Soap envelope body Bokningarna Soap envelope Teknisk Sändning Teknisk överföring Teknisk Mottagning