1 / 25

Databaser & databasdesign

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

palmer
Download Presentation

Databaser & databasdesign

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Databaser & databasdesign SQL

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

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

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

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

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

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

  8. SQL bygger på relationsalgebra: SQL-DML

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

  10. 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; operatorbetydelseexempel = 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

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

  12. 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’);

  13. 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’;

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

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

  16. SQL-DDL • Utöka tabeller • 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);

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

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

  19. Constraint on relationships • Cascade delete • The relation belowtry todescribe the structureof an order. Can an orderheadexistwithout a row? • If youdelete a certainrow in orderhead…whathappens? • Cascade update • If youupdateoredernr in orderhead…whathappens? Orderhead Orderrow 1 * Ordernr Partnr Quantity Ordernr Date custnr

  20. What is a storedprocedure? • Howitsworking? • SQL server has a languagecalledtransact SQL and itsusedtocreatemodulesoflogicdatabase actions. • It is stored in databasewith a nameto call whenyouneed it. • An exampleofexecuting a storedproceduretocreate a new customer:EXEC sp_newcustomer (’23’,’Jesper’, ’Hakeröd’,…) • Morepractise on this in laboratorywork 2.

  21. Exampleof a storedprocedure -- ============================================= -- 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 -- interferingwith SELECT statements. SET NOCOUNT ON; -- Insertionof the customer INSERT INTO CUSTOMER (CustomerID, firstname, surename, address, cellular, email, zipcode) VALUES (@CustomerID, @firstname, @surename, @address, @cellular, @email, @zipcode); END

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

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

  24. Data dictionary - entities

  25. Data dictionary - attributes

More Related