Databaser & databasdesign

Slides:



Advertisements
Liknande presentationer
BAS-M Hur du på ett enkelt sätt administrerar din båtklubbs register.
Advertisements

Butiksdata.
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
Vad är en databas? “En databas är en delad samling logiskt relaterade data som designats för att möta informationsbehovet i en organisation eller för.
Relationsdatabasdesign
Access med Sebastian och Robert
DATABASHANTERING för programmerare
Hämta företagsdata till Excel
Från verksamhet till databas
Andreas Carlsson Barvefjord och Carlsson Datakraft AB Svarkråkev Värnamo Tel: Epost: Databasteknik 2.
Andreas Carlsson Barvefjord och Carlsson Datakraft AB Svarkråkev Värnamo Tel: Epost: Databasteknik 2 T-SQL Transactions.
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
Programmeringsteknik för K och Media
1 Föreläsning 3 Datalogi för E1 / 2D1343 Repetition List List operationer Stränghantering For-slingor.
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 5 Python: argument från kommando-tolken
Bråktal En hel kan delas i två lika delar:
WEBMASTER DAG 13 Mahmud Al Hakim
Programmering B PHP Lektion 2
1 ITK:P1 Föreläsning 5 Iteration, slumpning och arrayer DSV Peter Mozelius.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Introduktionskurs för användare Del 1
Programmering B PHP Lektion 3
Föreläsning 11 Arrayer.
Ali Ghodsi Variabler En variabel är en sorts behållare som man kan placera data i Man måste ange typ och namn för alla variabler.
Tabeller.
Vektorer (klassen Vector) Sortering
DATABASHANTERING för programmerare
DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
Frågespråk och SQL nikos dimitrakas rum 6626
Online all the time, anywhere with anything Ytterligare ett alternativ är att gå via Inställningar för bibliotek. © NetIntegrate Sweden AB 1.Gå till bibliotek.
SQL nikos dimitrakas rum 6626
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
Databashantering Do it Max-style!. SELECT SELECT vad FROM tabellnamn Exempel: ◦ SELECT * FROM stralin_max  * = Välj allt som finns i tabellen ◦ SELECT.
FRÅGEUTVECKLING INOM MSSQL Marcus Medina. Dagens visdomsord ” Det är inte vad som händer dig som räknas – utan hur du reagerar på det. ” - Epiktetos.
Databashantering MS Access 2003 Lektion 2
Flexicon – Din systempartner
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord “Det verkar alltid omöjligt tills dess att det är gjort” Nelson Mandela.
FRÅGEUTVECKLING INOM MSSQL Marcus Medina. Dagens visdomsord ” Exercitatio artem parat ” (Övning ger färdighet) - Tacitus, Germania 24.
Frågor. Vad är en Fråga? -En fråga är ett urval av information från ett eller flera fält i en eller flera tabeller. - Du använder frågor för att selektera.
Mahmud Al Hakim 2  Mål för kursen  Kursplanering  Kurslitteratur  Betygsättning  Grunder om databaser  Tabeller.
IT i organisationer och databasteknik
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Webbsidesutbildning Lennart Ek, Tel Stefan Fosseus,
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Tabellrelationer Innan ni får göra lite övningar tänkte jag att jag skulle gå igenom lite om tabellrelationer.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
DATABASHANTERING för programmerare Lektion 6 Mahmud Al Hakim
DATABASHANTERING för programmerare Lektion 5 Mahmud Al Hakim
2D1311 Programmeringsteknik med PBL
Delarna i en Access-databas
Pontus Johansson 1 grammatiker 21.1 G 1 (BBS 7)
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
DA7351 Programmering 1 Databas SQL Föreläsning 24.
Databaser, avancerade frågor
Från databas till Excel
IT Databas Göran Wiréen
IT Databas Göran Wiréen
Från databas till Excel
Repetition Del 1.
Integration av lokala system
IT Databas Göran Wiréen
Rubriklayout Underrubrik.
SQL Structured Query Language Frågespråk för att används för Kommandon
SQL Structured Query Language Frågespråk för att används för Kommandon
Presentationens avskrift:

Databaser & databasdesign SQL

Föreläsningens innehåll SQL: Syfte? SQL: Att skriva SQL SQL: Data manipulation SQL: Data definition

Först liten repetition av några relationella begrepp (Date, 2000, p.111)

SQL: Syfte? Skapa databaser och relationella strukturer Utföra diverse datahanteringsuppgifter Att tillhandahålla möjlighet att ställa både enkla och komplexa frågor Indelas i en DDL-del och en DML-del

SQL: Att skriva SQL Mer läsbar SQL-kod: Varje sats börjar med en ny rad Början av varje rad ska ligga i linje med andra satser Då en sats har flera delar, bör varje del börja på en ny indragen rad Extended Backus Naur Form (BNF): VERSALER - reserverade ord Gemener - användardefinerade ord a|b - val mellan olika alternativ {a} – element som krävs [a] – valbart element (...) – valbar iteration

SQL: Ett exempel CREATE TABLE n_kund ( kundnummer INT NOT NULL, namn VARCHAR(50) NOT NULL, personnummer CHAR(11), PRIMARY KEY (kundnummer));

SQL: Data manipulation Fyra huvudsakliga typer av frågor: SELECT – presentera data ifrån databasen INSERT – lägga till nya data i en tabell UPDATE – uppdatera innehåll i en tabell DELETE – ta bort data från en tabell

SQL-DML SQL bygger på relationsalgebra:

SQL/DML: SELECT-sats SELECT [DISTINCT | ALL] {* | [columnExpression [AS newName]] [,...] } FROM TableName [alias] [, ...] [WHERE condition] [GROUP BY columnList] [HAVING condition] [ORDER BY columnList]

SQL-DML: sökning i tabell Exempel: Vi vill hämta alla rader i tabellen artikel. SELECT * FROM artikel; Exempel: Vi vill hämta enbart kolumnerna artnr och artnamn från tabellen artikel. SELECT artnr, artnamn FROM artikel; Exempel: Vi vill hämta alla artiklar som kostar mer än 1000kr. SELECT * FROM artikel WHERE pris>1000; operator betydelse exempel = lika med artnr=’10001’ <> skilt från artnr<>”10002” > större än pris>1000 < mindre än pris<20 >= större än eller lika med antal >=50 <= mindre än eller lika med pris<=20

SQL-DML Det finns även inbyggda funktioner Exempel: Hur många artiklar har vi? SELECT COUNT (*) FROM artikel;

SQL-DML UPDATE (uppdatera befintliga data) Exempel: Vi vill ändra pris till 33kr och lagerantal till 10 för artkel 10001. UPDATE artikel SET pris=33.00, lagerantal=10 WHERE atrnr=’10001’; INSERT (lägga till en ny rad) Exempel: Vi vill lägga till en ny artikel med artikelnummer 10006 och namnet SuperComputer. De andra fälten lämnas i detta fall blanka. INSERT INTO artikel (artnr, artnamn) VALUES (’10006’, ’SuperComputer’);

SQL-DML DELETE (ta bort rad/rader) Exempel: Vi vill ta bort alla rader i tabellen artikel. OBS! Anges inga villkor tas ALLA rader bort!!! DELETE FROM artikel; Exempel: Vi vill ta bort artikeln 10006. DELETE FROM artikel WHERE artnr=’10006’;

En liten övning i SQL a) Vilka leverantörer finns det? (Visa namn) b) Vilka artiklar är beställda från leverantörer? (Visa antnr och antal) c) I vilka orter finns våra leverantörer? (Obs! Ej dubletter!) Segerlund, M. & Stridsman, F. (1998). SQL-introduktion, p29. Lysekil: Pontes.

SQL: DDL skapa en tabell Exempel: Skapa tabellen artikel (artnr, artnamn, lagerantal, bestpunkt, pris). Det finns olika typer av dataformat som används beroende på vad som ska lagras, tex CHAR(n) – n tecken, INTEGER – ett heltal eller DECIMAL(n,m) – ett decimaltal med n siffror och m decimaler. Dessa format kan variera beroende på vilken databashanterare vi arbetar mot. NOT NULL innebär att ett värde måste matas in, tex för ett primärnyckelfält. CREATE TABLE artikel (artnr CHAR(5) NOT NULL, artnamn CHAR(15) NOT NULL, lagerantal INTEGER, bestpunkt INTEGER, pris DECIMAL(5,2));

SQL-DDL Utöka tabeller Ta bort en tabell Skapa index Exempel: Vi vill lägga till en enhetskolumn till tabellen artikel. ALTER TABLE artikel ADD (enhet CHAR(3)); Ta bort en tabell Exempel: Vi vill ta bort tabellen artikel. DROP TABLE artikel; Skapa index att skapa en unik nyckel i en tabell att göra sökningar snabbare Exempel: Vi vill göra artnr till unikt index. CREATE UNIQUE INDEX artindex ON artikel(artnr);

Open DB Connectivity (ODBC) är ett funktionsbibliotek utformat för att tillhandahålla ett gemensamt programmeringsgränssnitt (API: Applikation Programming Interface) mot det underliggande databassystemet. Vi kan nå databaser över nätverket med hjälp av ODBC. Det unika med ODBC är att ingen leverantörsspecifik kod behövs. Vi kan tex använda samma kod för frågor till en tabell i MS SQL-server, Informix eller i MySQL... ODBC gör programmen mer portabla mellan olika system, men långsammare än när man använder systemspecifika DB bibliotek. Program anropar ODBCs funktioner Drivrutins-hanterare läser in ODBC-drivrutin ODBC-anrop sänder SQL-frågor, returnerar resultat... Datakälla: underliggande DBMS

Database Languages Data Definition Language (DDL) Allows the DBA or user to describe and name entities, attributes, and relationships required for the application plus any associated integrity and security constraints. Data Manipulation Language (DML) Provides basic data manipulation operations on data held in the database. Procedural DML allows user to tell system exactly how to manipulate data. Non-Procedural DML allows user to state what data is needed rather than how it is to be retrieved. Fourth Generation Languages (4GLs)

Constraint on relationships Cascade delete The relation below try to describe the structure of an order. Can an orderhead exist without a row? If you delete a certain row in orderhead…what happens? Cascade update If you update oredernr in orderhead…what happens? Orderhead Orderrow * 1 Ordernr Date custnr Partnr Quantity

What is a stored procedure? How its working? SQL server has a language called transact SQL and its used to create modules of logic database actions. It is stored in database with a name to call when you need it. An example of executing a stored procedure to create a new customer: EXEC sp_newcustomer (’23’,’Jesper’, ’Hakeröd’,…) More practise on this in laboratory work 2.

Example of a stored procedure -- ============================================= -- Author: <Jesper> -- Create date: <2009-10-10> -- Description: <Insert a new customer> CREATE PROCEDURE [dbo].[uspNewCustomer] (@CustomerID as bigint, @firstname as nvarchar(50), @surename as nvarchar(50), @address as nvarchar(50), @cellular as nvarchar(50), @email as nvarchar(50), @zipcode as nvarchar(10)) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insertion of the customer INSERT INTO CUSTOMER (CustomerID, firstname, surename, address, cellular, email, zipcode) VALUES (@CustomerID, @firstname, @surename, @address, @cellular, @email, @zipcode); END

Kommer ni ihåg begreppen? Supernyckel = Ett eller flera attribut som ensamt eller sammansatt unikt identifierar en tuple i en relation. Kandidatnyckel = En supernyckel där det inte kan tas bort något attribut som ingår i supernyckeln, utan att man mister den unika identifieringen av en tuple. Kompositnyckel = En nyckel som består av flera attribut kallas för sammansatt- eller kompositnyckel. Primärnyckel = En primärnyckel är en vald kandidatnyckel som unikt kan identifiera en tuple. Alternativ nyckel = kandidatnycklar förvandlas till alternativa nycklar när primärnyckeln valts. Främmande nyckel = Ett attribut eller en samling attribut i en relation som matchar en kandidatnyckel i en annan relation.

Normaliseringsformer repetition Onormaliserat – UNF En tabell som innehåller repeterade grupper. Första Normalform - 1NF En tabell är i 1NF om det i varje tuple bara finns ett värde för varje attribut. Välj även ut en primärnyckel. Andra normalform - 2NF En tabell är i 2NF om alla icke nyckelattribut är funktionellt beroende av hela primärnyckeln. Tredje normalform - 3NF En tabell är i 3NF om alla icke nyckelattribut inte är transitivt beroende av primärnyckeln.

Data dictionary - entities

Data dictionary - attributes