80 likes | 204 Views
SQL: Opsamling. Om SELECT Vurdering af SQL. SELECT: en række operatorer. SELECT a1, a2 FROM A, B WHERE a1=b1 AND <række-betingelse-1> GROUP BY a2 HAVING <række-betingelse-2> Udføres som fem operatorer (én pr. linje) på tabeller i følgende rækkefølge:. A. A join B. Række-bet-1. WHERE.
E N D
SQL: Opsamling Om SELECT Vurdering af SQL NOEA IT - Databaser/SQL-Eval
SELECT: en række operatorer SELECT a1, a2 FROM A, B WHERE a1=b1 AND <række-betingelse-1> GROUP BY a2 HAVING <række-betingelse-2> Udføres som fem operatorer (én pr. linje) på tabeller i følgende rækkefølge: NOEA IT - Databaser/SQL-Eval
A A join B Række-bet-1 WHERE B FROM GROUP BY HAVING a1 a2 SELECT NOEA IT - Databaser/SQL-Eval
SQL: Styrker • understøtter een simpel datastruktur: tabeller • arbejder på hele tabeller • understøtter basale relationsalgebraiske operationer: RESTRICT, PROJECT og JOIN • visse typer af komplekse forespørgsler udtrykkes langt simplere end i algebraen NOEA IT - Databaser/SQL-Eval
Styrker…fortsat • omfatter både DDL og DML på • begrebsmæssigt niveau • understøtter delvis eksternt (og internt) niveau • kan anvendes både som interaktivt stand-alone sprog og indlejret i et generelt 3GL/OOPL • understøtter i SQL2-vers. primær og fremmednøgler NOEA IT - Databaser/SQL-Eval
SQL: Svagheder • først i nyere versioner understøttes primær- og fremmednøgler - og hermed referenceintegritet - kandidatnøgler understøttes ikke • domænebegrebet er kun understøttet meget primitivt (forbedres med SQL3) • understøtter ikke opdatering af join’ede views • dårligt sprogdesign: • SQL "blander" to sprogparadigmer: relationskalkulen (deklarativt sprog), men understøtter ikke al-kvantoren; og relationsalgebraen (proceduralt sprog), UNION-operatoren fx • ikke ortogonalt (ens ting ser forskellige ud og forskellige ting ser ens ud) NOEA IT - Databaser/SQL-Eval
Svagheder..fortsat • DIVISION er vanskelig at realisere • vanskeligt at realisere rekursive forespørgsler (ex.: Company-databasen, find alle en ansats foresatte (supervisor, supervisor’s supervisor... etc.) • det er vanskeligt at gemme temporære resultater, hvilket leder til komplekse indlejrede subqueries • de fleste leverandører implementerer ikke standarden fuldt ud • visse dele er ikke implementeret • der er udvidelser til standarden • (bliver sikkert værre med SQL3) NOEA IT - Databaser/SQL-Eval
Typiske problemområder i SQL-implementationer • Relationel model • integritet (reference, assertions, triggers) • objekter (”BLOB”) • domæner • DDL og DML (SQL) • outer join • views-opdatering • understøttelse af SQL2-standarden (og nu også SQL3) • tilføjelser til SQL2-standarden (og nu også SQL3) • stored procedures NOEA IT - Databaser/SQL-Eval