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

Relevanta dokument
Kapitel 6. Databaser

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

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

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

VAD GÖR DU / VEM ÄR DU?

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

VAD GÖR DU / VEM ÄR DU?

Prova på-laboration i SQL

Databaser. Vad du ska lära dig: Ordlista

Design och underhåll av databaser

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Databasutveckling Introduktion till SQL och TSQL

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.

Introduktion till frågespråket SQL (v0.91)

Karlstads Universitet, Datavetenskap 1

Databaser och Datamodellering Foreläsning IV

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

Starta MySQL Query Browser

Mitthögskolan ITM Telefon Access. Laborationskompendium för grunderna i databasen Microsoft Access. Detta exemplar tillhör:

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

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation

Inga hjälpmedel är tillåtna

Innehåll. MySQL Grundkurs

Structured query language (SQL)

Vad är SQL? Introduktion till SQL

Databaser och SQL - en kort introduktion

Grunderna i SQL del 1

Modul DB1-1 Databasmodellering

Introduktion MySQL och MariaDB

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

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

Konceptuella datamodeller

Föreläsning 5: Relationsmodellen

9. Between 10. Group by 11. Aggregatfunktionerna max, min, sum och avg 12. Nästlade sökningar

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

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

Tentamen för DD1370 Databasteknik och informationssystem

Databaser och. SQL, utsökningar mot en tabell

Tentamen för DD1370 Databasteknik och informationssystem

Sample exam questions. Database exam TIG058

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

Structured Query Language (SQL)

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

Innehåll MySQL Intro. Historik / Utveckling Produkter Primära delsystem Installation Tabell och datatyper Namnsättning

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

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

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig?

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

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

INNEHÅLL. Historik Vad är SQL Språkuppbyggnad SELECT Operatorer Logiska/Jämförelse SELECT med Alias och JOIN INSERT UPDATE DELETE

Scala Doc SQL Installation

Relationsmodellen och syntetisk databasdesign

Tentamen DATABASTEKNIK - 1DL116

Tentamen. Databasmetodik Lördag 27 september 2014 kl

SEB. Four foils. SEB IT Lars-Göran Karlsson

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12)

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

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Relationsdatabasdesign

Exempel-Tentamen III

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

TENTAMEN DATABASKUNSKAP ITEK12

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

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Databaser. Jan Erik Moström, Department of Computing Science, Umeå University - jem@cs.umu.se

WCMS-15, Webbutvecklare CMS

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

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

Introduktion till MySQL

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

Databasdesign. E-R-modellen

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

Skapa exempeldatabasen

Labb 1. prompt> mysql -h db-und.ida.liu.se -u [liuid] -p Enter password. mysql --host=db-und.ida.liu.se --user=[liuid] --password=[lösen]

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

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Webbprogrammering, grundkurs 725G54

Lösningsförslag, tentamen i Databaser

Webservice & ERP-Integration Rapport

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

NORMALISERING. Mahmud Al Hakim

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

3. Dynamiska webbplatser, 20 Yhp (4 v)

Labb 1. prompt> mysql --host=db-und.ida.liu.se --user=[liuid] -- password=[lösenord] [liuid]

Tentamen för DD1370 Databasteknik och informationssystem

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag

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

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

EXAMENSARBETE. Utveckling av datamodell för kompetenskartläggning. David Gunnarsson Filosofie kandidatexamen Systemvetenskap

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

Frågespråk och SQL. nikos dimitrakas rum 2423

Lösningar till tentamen i EDAF75

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

Tentamen för DD1370 Databasteknik och informationssystem

Grunderna för relationsmodellen!

Transkript:

Vad är en databas? Exempel på databaser: Kortregister på kontor Sjukvårdsjournal Bokregister på bibliotek Medlemsregister i en förening Kundregister på företag Telefonkatalogen Databas = Organiserad samling och lagring av information.

Olika databasmodeller Modellering Implementation Hierarkisk databas Relationsdatabas Nätverksdatabas Hierarkisk databas: Samling av filer och mappar i trädstruktur. Nätverksdatabas: Samling av filer och mappar i någon annan topologi.

Relationsdatabaser 1970 Dr. E.F.Codd: A Relational Model of Data for Large Shared Data Banks. En modell för organisation av stora mängder av data som är relaterade till varandra. Modellens byggsten (modul): Tabell Databas = samling av tabeller. Tabell = relation mellan mängder av data (kolumner). Modularisering: Information om en sak ska lagras endast i en tabell. Leder till primär- och främmande nycklar samt relationer. Relationsdatabas = samling av relationer.

Tabell: rader & kolumner Rad (post) Innehåller all data till ett exemplar av tabelltyp, t.ex. all information om en anställd i tabellen Anställda. Kan identifieras med ett unikt värde resp. en unik värdekombination (primärnyckeln, se bild 9). Ordningen i tabellen är inte definierad, obestämd. Kolumn (fält) Innehåller en typ av information om varje rad i tabellen. Måste ha ett namn = kolumnhuvudet = kolumnrubriken Måste ha en datatyp. Kan ha NULL i vissa poster. Har en position i tabellen: Ordningen är definierad.

Analogi mellan klass och tabell Tabell En tom tabell med fördefinierade kolumnrubriker kan jämföras med en klass där kolumnerna (bortsett från primär- och främmande nycklar) är dess datamedlemmar (egenskaper, attribut). Rad Varje rad som läggs i tabellen kan jämföras med ett objekt av denna klass (tabellen). Varje data i en rad är ett värde till en objektmedlem. Finns en primärnyckel används den för att identifiera raden på entydigt sätt (objektets namn).

Klassen och tabellen Employee

Primär- och främmande nycklar En eller flera kolumner i en tabell kan definieras till tabellens primärnyckel (PK). En tabell kan ha endast en primärnyckel, ev. av flera kolumner: sammansatt PK. Varje rad identifieras unikt via primärnyckeln. Därför får inga dubletter förekomma. En annan tabells (eller den egna tabellens) primärnyckel i en tabell kallas främmande nyckel (FK): Flera möjligt! Tabellen EMPLOYEES Tabellen DEPARTMENTS Primärnyckeln Främmande nyckel Primärnyckeln

Databashanterare Programvara för att skapa, utforma (designa), lagra och administrera databaser, Kallas Database management system (DBMS eller RDBMS) som i regel installeras på en server. Exempel på databashanterare är Access, (Excel), SQL- Server, Oracle 11 g, MySQL, DB2, FoxPro, Paradox, Alla DBMS har stöd för SQL, men även för procedurala utökningar av SQL: Oracle PL/SQL, Micorsoft Transact SQL,

SQL databasers språk Structured Query Language (Strukturerat frågespråk) Standardspråk för kommunikation med relationsdatabaser. Oberoende av databashanterare. Utvecklades på 70-talet av IBM. Idag: allmän standard, senaste version: SQL-99 Med SQL kan man ställa frågor till databaser för att ta fram, uppdatera, sortera och strukturera information i databaser, skapa tabeller, definiera constraints ge rättigheter till databasobjekt,

SELECT-satsen Läser från databasen och visar data i kolumner och rader: 1. Projektion 2. Selektion Selekterar kolumner från 1 tabell Selekterar rader från 1 tabell 3. Join (Kap. 3) Tabell 1 Tabell 2 Tar ut data från flera tabeller

Att ta ut alla kolumner SELECT * FROM departments; SELECT FROM talar om vilka kolumner som ska tas ut. talar om från vilken tabell kolumnerna ska tas ut. Ger samma resultat: SELECT department_id, department_name, manager_id, location_id FROM departments;

Att ta ut vissa kolumner SELECT department_id, location_id FROM departments; Kommaseparerad lista över kolumner som anger ordningen endast i den aktuella utskriften, inte i databasen. SELECT-satsen är read-only, kan inte ändra databasen.

Hittills har vi endast använt projektion: Att selektera kolumner. Att selektera rader: selektion Tabellen EMPLOYEES Vilka anställda jobbar på avd. 90? För att få ut det måste ett villkor läggas till SELECT-satsen. Detta görs med den nya satsdelen (eng. clause) WHERE.

Att lägga till villkor med WHERE SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id = 90 ; OBS! Enkelt villkor på likhet mellan tal. = är här en jämförelseoperator. Villkoret kan involvera en kolumn som inte ens förekommer i SELECT-satsen: SELECT employee_id, last_name, job_id FROM employees WHERE department_id = 90 ;

Radsortering med ORDER BY SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ; Satsdelen ORDER BY kommer sist i SELECT-satsen. Utan ORDER BY är radordningen odefinierad. ORDER BY sorterar by default i stigande ordning dvs ASC (ASCending). För fallande ordning kan DESC (DESCending) användas: SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC;

Jämförelseoperatorn LIKE SELECT FROM WHERE last_name employees first_name LIKE 'S%n'; Alla efternamn vars förnamn börjar på S och slutar på n. % är ett mönstermatchningstecken som betyder: 0, 1 eller flera tecken vilka som helst. Anställdas efternamn och anst.datum som började jobba 1995: SELECT last_name, hire_date FROM employees WHERE hire_date LIKE '%95%';

Mönstermatchning med LIKE SELECT last_name FROM employees WHERE last_name LIKE '_o%' ; Alla efternamn vars andra bokstav är o. _ är ett mönstermatchningstecken som betyder: Endast ett tecken vilket som helst. Anställningsnr. vars andra siffra är 5 och sista siffra 8: SELECT last_name, employee_id FROM employees WHERE employee_id LIKE '_5%8' ; LAST_NAME EMPLOYEE_ID McEwen 158

CREATE TABLE-satsen CREATE TABLE Kurser ( KursID INT IDENTITY (1,1) NOT NULL, Namn VARCHAR(50) NOT NULL, Längd INT NULL, InstID INT NOT NULL ); Måste specificeras: Tabellnamn: Kurser Kolumnnamn: KursID, Namn, Längd, InstID Kolumndatatyper: INT, VARCHAR(50) (OBS! Inte optional)

Regler & konventioner Några regler för SQL-satser: SQL-satser är inte case sensitive. Det är inte obligatoriskt att avsluta SQL-satser med semikolon. SQL-satser kan skrivas på en eller flera rader. Reserverade ord kan ej förkortas. Konventioner: Skriv reserverade ord med versaler. Börja reserverade ord på separat rad. Avsluta SQL-satserna med semikolon.

Klient - Server modellen SQL ställer en fråga, t.ex.: SELECT department_name FROM departments; dvs ber om en tjänst (klient), beskriver vad den vill ha, men inte hur svaret kommer till. Frågan skickas till servern Server SQL server Servern svarar Operationens slutresultat är alltid en tabell: Resultattabell