6. SQL1 Standardiseret spørge-sprog mv. til relationsdatabaser.

Slides:



Advertisements
Lignende præsentationer
SharePoint /36 2 General SettingsPermissions and ManagementCommunications Titel, description and navigation Versioning settings Advanced settings.
Advertisements

Stored Procedure Stored Procedure er programstumper, der gemmes i databasen og afvikles op databaseserveren på samme måde som forespørgsler. Med Stored.
2009NOEA/IT - Databaser/arkitektur1 Databaser Introduktion - Arkitektur Introduktion DBMS-arkitektur Datamodeller.
SQL underforespørgsler og Join
Relationsdatabaser og SQL
3. Funktionelle afhængigheder og normalisering
SQL 1 DDL og DML.
Web question answering Is more always better? (Artikel 14)
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Informationsteknologi B-A, HHX, 2005,
Regnskab & økonomistyring - Lektion 15 HD 5. semester forår 2010 v/ Jens Godik Højen, April 2010.
Regnskab & økonomistyring - Lektion 2 HD 5. semester forår 2010
NOEA/IT - FEN - Databaser/TabelDesign 1 Tabeldesign Design af relationsdatabaser Normalisering.
Validering af data (Access, del 7)
Relationsdatabaser og SQL
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
NOEA/IT FEN - Databaser/Sikkerhed 1 Lektion 10 Sikkerhed og integritet Områder Autorisationsmatrix Realisering i SQL.
XML1 4.7 XML and Its Data Model. XML2 Introduktion til XML, 178 XML = eXtensible Markup Language Markup language –sprog, hvor data "pakkes ind" i tags.
XML1 4.7 XML and Its Data Model. XML2 Introduktion til XML, 178 XML = eXtensible Markup Language Markup language –sprog, hvor data "pakkes ind" i tags.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Relationsdatabaser og SQL
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Operationer på relationer
22/092VE/E00/RB1 Introduktion til SQL Datalogi 2VE E00 DIKU Forelæsninger 22/9 og 29/9.
Relationsdatabaser og SQL
7. SQL constraints og triggers1 Aktive elementer i SQL.
MMP 21 Model og Metode til Programudvikling – MMP 2 Modellering og simulering af Posthus – 2: Ekspedienten Pointer operationer Disken, oprettelse af objekter.
FEN Prædikater/Seminar 11 Prædikatslogik eller Kvantificerede udtryk Prædikater udvider propositionslogikken på to måder: –Vi tillader variable.
2009NOEA/IT - Databaser/SQL1 Realisering af den relationelle model i SQL-baserede DBMS’er SQL er mere end forespørgsler - det omfatter bl.a. –DDL Data.
1 HMAK XMLRelationel model og XMLNOEA / PQC 2005 SQLServer og XML Hent data via URL Generering af xml –Raw –Auto –Explicit Hent data via template Evt.
SQL – Oracle Relationsdatabase
1 SQL2. 2 Funktioner der laver aggregerede beregninger Returnerer count() Antal rækker der opfylder bestemt betingelse min() Laveste værdi (eller null)
Den relationelle model
XML Rasmus D. Lehrmann DM Indhold Hvad er XML? XML standarder Hvor bruges XML? XML struktur Træ struktur Element & Attribute Syntaks i XML Stylesheets.
SQL – Oracle Relationsdatabase
SQL Jesper Tørresø DAB1 E oktober Punkter for i dag. SQL baggrund. Relationel algebra. Brug af VS2005.
2009NOEA/IT - Databaser/arkitektur1 Den relationelle model En teoretisk model for databaser Hviler på et sundt teoretisk grundlag Omfatter: Datastruktur.
1 SQL2. 2 Funktioner der laver aggregerede beregninger Returnerer count() Antal rækker der opfylder bestemt betingelse min() Laveste værdi (eller null)
8.7 Security: Grant and revoke1 Sikkerhed 8.7 Security and User Authorization in SQL.
1. Database-systemer, introduktion
Objekter og klasser Rasmus D. Lehrmann DM
DATATYPER. For at tilpasse hvert felt i databasen til dets formål og dermed øge funktionalitet 1 bit er tilstrækkelig til at angive køn (0/1) men for.
Slide Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization.
Intro Større applikationer, f. eks: Bogpris.dk. Nye bøger.
8.6 Transaktioner1 Transaktioner 8.6 Transactions in SQL.
Repetition: Introduktion til OOP med C# og .NET
Administratordelen - Sidsel Præsentation af administratordelen Sitemap Webstruktur Transaktioner Fremtid.
Procestræ under afvikling af cp init login shell cp cp src dest.
Tina Ratzer Hendes hjemmeside skal indeholde: Kontakt Forhandlerliste
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
FENNOEA IT - Databaser/SQL-Eval1 SQL: Opsamling Om SELECT Vurdering af SQL.
Intro Databaserne? Gik det som det skulle?. Databasestøttet webpublicering Forelæsning nr 8 Hvorfor data i en RDB (relationel database)? Databasemodellering.
Databaser, introduktion1 Kurset ”Databaser” Introduktion.
Januar 2003Databaser, introduktion1 Databaser, forår 2003 Introduktion.
SQL Jesper Tørresø DAB1 E September Punkter for i dag. SQL baggrund. Relationel algebra. SQL koncept –Vises ved brug af VS2008.
8.5 JDBC1 JDBC 8.5 Java Database Connectivity. 8.5 JDBC2 JDBC introduktion, 393 JDBC er ikke en forkortelse for –Java Database Connectivity Sun har defineret.
SQL – Oracle Vigtige SQL sætninger Lektion 6 7. Semester.
Oracle Application Express Lektion 2 7. Semester 2008.
Database.
PHP.
Den relationelle model
Oracle Application Express Lektion 1 7. Semester 2008.
Objekt-relationel DBMS1 4.5 The Object-Relational Model 9.4 User-Defined Types in SQL 9.5 Operations on Object-Relational Data Ullman: Object-Relational.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Normal former i en database Jan Christiansen Nyborg Gymnasium.
Solution Makers A/S – Gruppe 4 Lars Wolter Nils Martinsen Rasmus Seye Tobias Kjeldsen 1.
Modellering og data Nyt forløb.
MySQL dat2sem2018Fall Modul 2 – uge 2.
Dat2sem2019 Bornholm Modul 2 – uge 2
Præsentationens transcript:

6. SQL1 Standardiseret spørge-sprog mv. til relationsdatabaser

6. SQL2 SQL, 239 SQL = Structured Query Language –Standardiseret af ANSI senest SQL-99/SQL3 –inkl. objekt-relationelle features –Standard overholdes næste af DBMS'er DBMS'er tilføjer ofte noget til standarden. Hold dig til standarden, hvis du vil være uafhængig af en leverandør. –SQL = DDL + DML DDL Data Definition Language –create table osv. DML Data Manipulation Language –select, insert, update, delete

6. SQL3 Datatyper, 292 Hver attribut skal have en datatype. Typer nævnt i bogen –char(n) tekster af fast længde (n tegn) –varchar(n) tekster af varierende længde (max n tegn) –booleantrue / false –int / integerhel-tal –float / realdecimal-tal –date + time

6. SQL4 Data-typer i Oracle, tekster varchar2 (max_length) –tekster af variende længde f.eks. navne og adresser char (fixed_length) –tekster af fast længde f.eks. cpr og telefon nchar (fixed_length) –som char, men bruger 2 bytes pr. tegn varchar2 er OK mht. æ, ø, å long –tekster op til 2 gigabytes

6. SQL5 Data-typer i Oracle, tal Tal-typer –number (cifre, decimaler) fast antal decimaler f.eks. pris, løn –number (digits)hel-tal –numberfloating point (mange decimaler, til matemarik)

6. SQL6 Andre data-typer i Oracle CLOBcharacter large object –tekster op til 4 gigabytes BLOBbinary large object –op til 4 gigabytes, billeder, lyd, film NCLOB –som CLOB, men bruger 2 bytes pr. tegn BFILEbinary file –reference til en binær file uden for DBMS'en boolean –findes ikke i Oracle! date –indeholder både dato og klokkeslæt

6. SQL7 Opret, slet og modificer tabeller, 293 create table tabelNavn (att1 datatype1, …, attN datatypeN) –opretter en ny tabel –hvis en attribut ikke gives værdi, så bruges NULL –attribut kan erklæres med eksplicit default værdi attN datatypeN default værdi, eksempel side 295 drop tableName –Fjerner tabellen, inkl. data. Pas på! alter table tabelNavn ændring –Ændring bl.a. tilføj / slet attribut. –Eksempel side 294

6. SQL8 Opdatering, typer opdatering –insert –update –delete Ændrer tilstanden i databasen.

6. SQL9 insert, varianter af insert –insert into tabelNavn values (v1, v2, v3) Attributter skal komme i samme rækkefølge som da tabellen blev oprettet. –insert into tabelNavn (att1, att2, att3) values (v1, v2, v3) Man kan tage attributterne i sin egen rækkefølge. Man kan udelade enkelte attributter. –begge: indsætter 1 ny række ind i 1 tabel.

6. SQL10 insert II, 287 insert into tabelnavn (att) select-sætning –resultaterne fra select-sætningen sættes ind i tabellen (ren redundans) –kan indsætte flere rækker samtidigt (alt efter hvor mange række select-sætningen producerer).

6. SQL11 delete, 288 delete from tabelNavn where betingelse –slette alle rækker, der opfylder betingelse. –ingen betingelse  alle rækker slettes!! –eksempel side 289

6. SQL12 update, 289 update tabelNavn set att = værdi where betingelse –Giver ny værdi til att i alle rækker, der opfylder betingelse –Ingen betingelse  alle rækker opdateres. –Eksempel side 290

6. SQL13 Forespørgsler, simpel select, 240 select att1, att2 from tabel –Resultat: alle rækker fra tabel, men kun att1 og att2. –Resultatet er ikke en mængde, men en bag med mulighed for flere ens rækker (hvis primærnøglen ikke er med i de udpegede attributter). –Rel. algebra: π att1, att2 (tabel) select * from tabel – alle attributter fra tabellen

6. SQL14 select … where, 240 select att1, att2 from tabel where betingelse –Resultat: Kun rækker, der opfylder betingelse –Rel. algebra: π att1, att2 ( σ betingelse ( tabel)) – Eksempel 6.1, side 240 select * from tabel where betingelse – Rel. algebra: σ betingelse ( tabel) betingelse opbygges af –,= osv. – AND, OR, NOT

6. SQL15 Omnavngive attributter, 242 select att1 as a1, att2 as a2 from … select att1 a1, att2 a2 from … –a1 og a2 er nye navne for attributter i output –Eksempel 6.5, side 243

6. SQL16 Sammenligning af tekster, 246 select … where att operator 'tekst' –'…' om tekster, ikke "…". –sammenligning med =, > osv. –att LIKE 'and%' alt hvad der starter med and % 0 - mange vilkårlige tegn –att LIKE 'and_rs' _ præcis 1 tegn –OBS atomerne er slået i stykker!!

6. SQL17 Date og time, 247 Forskellige DBMS'er har forskellig syntaks for dato og tid. Problem: Datoer og tidspunkter må ikke forveksles med tekster '…' –Oracle har mange funktioner til konvertering bl.a. to_date ( '22/02/2003', 'DD/MM/YYYY') to_date ( datostreng, datoformat)

6. SQL18 Sammenligning med null, 248 Alle sammenligninger att = noget –false, hvis att har værdien null. Speciel syntaks –select … where att is null

6. SQL19 Ordning af output, 251 select … order by att1 asc, att2 desc –primær ordning: att1, stigende (ascending) –sekundær ordning: att2 faldende (descending) –default: ascending –tabeller ikke er mængder ingen ordning i mængder

6. SQL20 Select fra flere tabeller, 254 select * from A, B –kartesiansk produkt: alle kombinationer af rækker fra tabel A og B. –sjældent ønskeligt select a1, a2 from A, B where betingelse –join –betingelse kan indeholde join-betingelsen og evt. ekstra betingelser. –eksempel side 255

6. SQL21 Navnesammenfald, 256 Problem –2 attributter med sammen navn (fra 2 tabeller) i samme select-sætning Løsning –Eksplicit navngivning: tabel.attribut –Eksempel 6.13, side 256

6. SQL22 "Selv-join", side 257 Problem –Hvordan adskiller man 2 instanser af samme tabel select navn, boss_navn from ansat where …??? Løsning –Omnavngivning af tabeller select ansat.navn, boss.navn from ansat, ansat boss where ansat.boss_cpr = boss.cpr AS ikke tilladt ved omnavngivning af tabeller –som ved omnavngivning af attributter

6. SQL23 Semantik, 258 Hvad er semantikken (betydningen) af select med flere tabeller? 3 ækvivalente semantikker –Løkker inden i hinanden Løkker (1 pr. tabel) kører inden i hinanden, inderst checkes betingelsen –Parallelle assignments Lav alle kombinationer af rækker fra tabellerne, og check betingelsen –Konverter til relationel algebra –Alle tilfælde: Hvis en af tabellerne er tom (ingen rækker), så er output tomt. Eksempel side 260

6. SQL24 Mængde-operatorer, 260 Mængde-operatorer (men på bags) –(select …) union (select …) –(select …) intersect (select …) –(select …) except (select …) –eksempel side 261 –resultatet af de 2 under-select skal være "union-kompatible". sammen attributter, i sammen rækkefølge

6. SQL25 Sub-queries, 264 select med under-select i where-betingelsen –select … where att operator (select …) select med under-select i from-delen –select from (select …) where … 2 typer sub-queries –Simpel: Sub-query returnerer 1 værdi (1 række, 1 attribut)kaldes en skalar –Avanceret: Sub-query returnerer en alm. tabel med flere rækker og attributter.

6. SQL26 Simple sub-queries, 264 SQL programmør ved, at sub-query giver præcis 1 række –ellers (0 eller mange) er en runtime-fejl Operatorer: =,>,< osv. Eksempel 6.19, side 265

6. SQL27 Avancerede sub-queries, 266 Sub-query returnerer en hel tabel Operatorer –EXISTS sub-query sand, hvis sub-query leverer et ikke-tomt resultat –att IN sub-query sand, hvis værdien af att findes i resultatet af sub-query –att >ALL sub-query sand, hvis værdien af att er større end alle værdier i resultatet af sub-query –att>ANY sub-query sand, hvis værdien af att er større end en af værdierne i resultatet af sub-query –2 sidste operatorer findes også med < osv. –Eksempel side 267, læses inde fra

6. SQL28 Correlated sub-queries, 268 Indre select-sætninger kan bruge attributter fra ydre select-sætninger. –Eksempel side 269 –Indre select-sætning kan ikke "beregnes" en gang for alle, men må gentages for hver række i den ydre select-sætning løkker i løkker

6. SQL29 Sub-queries i from, 270 Sub-queries kan også bruges i from-delen –Eksempel side 270 –Der dannes en midlertidig, unavngiven tabel. –Ligner et view, afsnit 6.7 side 301

6. SQL30 SQL join, 270 Join variationer –natural joinsammenlign med = –theta joinsammenlign med alt muligt –outer joinshensyn til ikke matchende tupler Normal join i SQL –select … from A, B where A.att1 = B.att2 SQL har speciel syntaks til join –select … from A join B on att1 = att2

6. SQL31 SQL join II, 272 select … from A natural join B where … –A og B må have attribut af samme navn og type select … from A natural full/left/right outer join B where … –full outer join: ikke-matchende rækker også med i resultatet. select … from A full/left/right outer join B on att1 = att2 where … –theta join (i modsætning til natural join)

6. SQL32 distinct, 277 Alm. select producerer en bag af rækker –Muligvis flere ens select distinct … –producerer en mængde af rækker –ingen ens –det tager tid for DBMS'en at filtrere ens rækker ud, så brug det varsomt.

6. SQL33 Gruppering og aggregering, 279 Beregning på data –min, max, sum, avg, count –select funk(att) … Beregninger på grupper af data –select att1, funk(att2) … group by att1 –Eksempel 6.31, side 281 –select att1, funk(att2) … group by att1 having betingelse –kun grupper, der opfylder betingelse er med. –Eksempel side 283

6. SQL34 Indekser, 295 En alm. fagbog har 2 indekser –indholdsfortegnelse (foran) –ordliste (bag) –fordel: hurtigere opslag En database kan have indekser på attributter –fordel: hurtigere opslag (select) –ulemper: fylder (redundant data, opretholdes af DBMS) langsommere insert, delete, update (indeks skal også vedligeholdes)

6. SQL35 Indekser i SQL, 296 Ikke længere en del af SQL standarden Syntaks –create index navn on tabelNavn (att) –create index navn on tabelNavn (att1, att2) –drop index navn Mere om indekser i afsnit 7.1.3, side 318

6. SQL36 Views, typer tabeller –Base tables Findes fysisk på disken –Views = virtuelle tabeller = navngivne select- sætninger Findes ikke fysisk på disken Defineres på baggrund af base tables.

6. SQL37 Views i SQL, 302 create view navn as select-sætning –Eksempel 6.45, side 302 create view navn (att1,..., attN) as select- sætning –Eksempel side 305 select … from navn –Ingen kan se om "navn" er en rigtig tabel eller et view. –DBMS oversætter til select fra underliggende base tables. drop view navn

6. SQL38 Opdatering af data i views, 305 Opdatering af view skal konverteres til opdatering af underliggende base tables. Nogle views kan opdateres - andre ikke! Ikke opdaterbare –aggregerings-funktioner (min, max osv.) –mange flere Opdaterbare –select attributter fra 1 tabel inkl. primærnøgle.

6. SQL39 Views, Oracle syntaks create [or replace] [force / noforce] view vName [column aliases] as select query [with check option [constraint cName]] [with read only] Syntax syntax: […] betyder frivillig. "or replace" –kan erstatte et eksisterende view med det samme navn. "force / noforce" –noforce: view skabes ikke, hvis de underliggende base tables ikke findes.

6. SQL40 Views, Oracle syntaks II "column aliases" –kolonnerne i view kan have andre navne end kolonner i base tables. "with check option" –DBMS checker om insert og update på view'et bliver "inde i view'et". "with read only" –Data kan ikke opdateres via view'et - kun via base tables.

6. SQL41 Views og sub-queries i from-delen, 270 Sub-query i from-delen af en select- sætning –select … from (select …) where … –Sub-query i from er en slags unavngivet / midlertidigt view. –Eksempel 6.22, side 270

6. SQL42 Formål med views Beskyttelse af data –Visse brugere må kun se en del af data create view lidt as select få_attributter from tabel Ofte brugte joins –Joine tabeller, der er blevet adskilt pga. normalisering create view helPerson as select person.*, bynavn from person, postby where person.postnr = postby.postnr Dække over senere normalisering –Applikation kan køre videre med de gamle definitioner, der nu ikke længere er tabeller men views.