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.

Slides:



Advertisements
Lignende præsentationer
Stored Procedure Stored Procedure er programstumper, der gemmes i databasen og afvikles op databaseserveren på samme måde som forespørgsler. Med Stored.
Advertisements

2009NOEA/IT - Databaser/arkitektur1 Databaser Introduktion - Arkitektur Introduktion DBMS-arkitektur Datamodeller.
SQL introduktion og basis
Test First Development
Relationsdatabaser og SQL
Select one of the 3 title pages and delete the others. Please do not create new title pages by using the layouts Title 1 – 3 as these layouts do not contain.
SQL 1 DDL og DML.
E/R model Enhanced E/R-model (EE/R-model) Relationelle model Relationelle algebra Omformning fra E/R-model til relationelle model Tirsdag.
SQL - Database Lektion 3 7. Semester.
View Procedures Trigger og Function Jesper Tørresø DAB1 E07 1. november 2007.
Q UERY P ROCESSING & O PTIMIZATION Database Systems (Fourth Edition )
CodeIgniter Database Brugerinput Form Validation 20101JFH.
Regnskab & økonomistyring - Lektion 15 HD 5. semester forår 2010 v/ Jens Godik Højen, April 2010.
Regnskab & økonomistyring - Lektion 4 HD 5. semester forår 2010 v/ Jens Godik Højen, April 2010.
Regnskab & økonomistyring - Lektion 2 HD 5. semester forår 2010
Database Normalization without Mathmatics
Objekter og klasser Applikationsdesign Code Namespace Value og reference typer Reference type Rasmus D. Lehrmann1.
FEN Databaser/DBAdgang21 DB-adgang - Connectionless Connectionless DataAdapter DataSet.
ASP.NET Custom Web Controls Deployment. Agenda – ASP.NET Web User Controls Composite Control Rendered Custom Control Deploy en Web Applikation.
Relationsdatabaser og SQL
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.
SQL Introduktion Jesper Tørresø DAB1 F08 6. Februar 2008.
6. SQL1 Standardiseret spørge-sprog mv. til relationsdatabaser.
Relationsdatabaser og SQL
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.
Opsummering.
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.
1 SQL2. 2 Funktioner der laver aggregerede beregninger Returnerer count() Antal rækker der opfylder bestemt betingelse min() Laveste værdi (eller null)
Informationssystemer kursusgang: Modellering med henblik på dataudtræk
2009NOEA/IT - Databasedesign1 Agenda Datamodellering Databasedesign Normalisering.
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.
Virksomhedens informationsbehandling lektion Ved. Jens Godik Højen.
8.7 Security: Grant and revoke1 Sikkerhed 8.7 Security and User Authorization in SQL.
1. Database-systemer, introduktion
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.
Tina Ratzer Hendes hjemmeside skal indeholde: Kontakt Forhandlerliste
Eksamen i Databasesystemer. Eksamen 4 timers skriftlig eksamen afholdes 8. januar 2004 kl Alle skriftlige hjælpemidler. Der gives karakter efter.
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.
ADO.NET Databaser SQL Client (SQL server 7 og senere) OleDb (en række incl. jet) ODBC MySql (ekstra driver skal instaleres) Oracle (XML dataset) Samme.
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.
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 11.
Database.
Database Some walk through. Database Design – Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management.
Opgaver Design tabeller Kvalitetscheck af (3NF) tabeldesignet Skriv CREATE TABLE-sætninger.
Dansk Data Arkiv Hans Jørgen Marker IASSIST 2005 DDI and Data Hans Jørgen Marker Senior Researcher Dansk Data Arkiv
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.
Intro Databaserne? Gik det som det skulle?. Databasestøttet webpublicering Forelæsning nr 7 Hvorfor data i en RDB? Databasemodellering Begrebet nøgle.
Omsætning af en model til en RDB Jesper Tørresø DAB1 F Marts 2008.
Indsæt nyt billede: Format: B 254 x 190,5 mm Efter indsættelse, højreklik på billedet og placér det bagerst. Delete det gamle foto Geodata for Everyone.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Solution Makers A/S – Gruppe 4 Lars Wolter Nils Martinsen Rasmus Seye Tobias Kjeldsen 1.
Modellering og data Nyt forløb.
B-boringer og prøvesteder Opsummering af projektet heunder rolle-rettigheder og kvalitetssikring proces Dato: Udarbejdet af projektledelsen.
MySQL dat2sem2018Fall Modul 2 – uge 2.
Smart Data Tool (SDT) In Sales
Dat2sem2019 Bornholm Modul 2 – uge 2
Præsentationens transcript:

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 Definition Language –DML Data Manipulation Language

2009NOEA/IT - Databaser/SQL2 SQL-versioner SQL er implementeret af mange forskellige DBMS- leverandører. SQL er for langt den største dels vedkommende ens fra DBMS til DBMS - tæt på en standard. Standarder: SQL86 (SQL1), SQL89 (SQL1½), SQL92 (SQL2), SQL3 (SQL:99) SQL2 er den mest udbredte standard i dag Mange leverandører har deres egne udvidelser til standarden

2009NOEA/IT - Databaser/SQL3 SQL2 - DDL Understøttelse af domænebegrebet: –Simple typer, INT, CHAR, strenge etc. –Dato og tid –programmørdefinerede typer: CREATE DOMAIN cprType AS CHAR(10); CREATE DOMAIN postnrType AS CHAR(4); Typer sætter compileren i stand til at finde logiske fejl

2009NOEA/IT - Databaser/SQL4 SQL2 - DDL CREATE TABLE Kunde ( cprnrcprTypeNOT NULL, …. PostnrpostnrType, …, CONSTRAINT KundePK PRIMARY KEY(cprnr), CONSTRAINT PNrByFK FOREIGN KEY(postnr) REFERENCES pNrBy(pnr) ON UPDATE CASCADE ON DELETE SET NULL); CREATE TABLE pNrBy ( pnrpostnrTypeNOT NULL, ByVARCHAR(30)NOT NULL, CONSTRAINT pNrByPK PRIMARY KEY(pnr));

2009NOEA/IT - Databaser/SQL5 Problemspecifik integritet CREATE ASSERTION saldoConstraint CHECK (NOT EXISTS (SELECT * FROM Konto WHERE saldo<0); Operationer, som bryder denne regel afvises af DBMS’et Nogle DBMS’er arbejder endvidere med TRIGGER-procedurer, som kaldes, hvis et constraint overtrædes

2009NOEA/IT - Databaser/SQL6 SQL2 - DML Forespørgsler: SELECT FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ] [...]:WHERE, GROUP BY, HAVING og ORDER BY kan undlades.

2009NOEA/IT - Databaser/SQL7 Company-databasen - anvendes i følgende eksempler

2009NOEA/IT - Databaser/SQL8 SQL2 - DML (Q0): Række- og søjleudvælgelse: SELECTBDATE, ADDRESS FROMEMPLOYEE WHEREFNAME = ’John’ AND MINIT = ’B’ AND LNAME = ’Smith’ Ønskes alle attributter, så anvendes: SELECT * ----

2009NOEA/IT - Databaser/SQL9 SQL2 - DML (Q1): JOIN: SELECTFNAME, LNAME, ADDRESS FROMEMPLOYEE, DEPARTMENT WHEREDNAME = ’Research’ AND DNUMBER = DNO Sidste del af WHERE-betingelsen er join-betingelsen.

2009NOEA/IT - Databaser/SQL10 SQL2 - DML (Q2): JOIN over flere tabeller: SELECTPNUMBER, DNUM, LNAME, ADDRESS FROMPROJECT, DEPARTMENT, EMPLOYEE WHEREPLOCATION = ’Stafford’ AND DNUM = DNUMBER AND MGRSSN = SSN Bemærk, der skal være to join-betingelser.

2009NOEA/IT - Databaser/SQL11 SQL2 - DML Tvetydige attributnavne Det samme attibut-navn kan bruges så længe, de er defineret i forskellige tabeller En søgning der involverer flere attributter med samme navn skal gennem prefix definere relationenen – eks: EMPLOYEE.LNAME, DEPARTMENT.DNAME

2009NOEA/IT - Databaser/SQL12 SQL2 - DML (Q8): Aliaser: I visse tilfælde kan det være nødvendigt at referere til den samme relation flere gange SELECTE.FNAMA, E.LNAME, S.FNAME, S.LNAME FROMEMPLOYEE E, EMPLOYEE S WHEREE.SUPERSNN = S.SSN EMPLOYEE joines med sig selv vha. aliaserne E og S (også kaldet tupel-variable.

2009NOEA/IT - Databaser/SQL13 SQL2 - DML Brug DISTINCT for at eliminere gengangere i søgninger (Q11):SELECTSALARY FROMEMPLOYEE (Q11A):SELECT DISTINCTSALARY FROMEMPLOYEE

2009NOEA/IT - Databaser/SQL14 SQL2 - DML (Q4): Mængdeoperationer: Find alle projektnumre der involverer medarbejdere med efternavnet “Smith” som medarbejder eller som en afdelingsleder der administeret projektet: (SELECTPNUMBER FROMPROJECT, DEPARTMENT, EMPLOYEE WHERELNAME = ’Smith’ AND DNUM = DNUMBER AND MGRSSN = SSN ) UNION (SELECTPNUMBER FROMPROJECT, WORKS_ON, EMPLOYEE WHERELNAME = ’Smith’ AND PNO = PNUMBER AND ESSN = SSN)

2009NOEA/IT - Databaser/SQL15 SQL2 - DML Opdateringer: –indsætte rækker: INSERT –slette rækker: DELETE –ændre værdier i rækker: UPDATE Arbejder som SELECT på hele tabeller.

2009NOEA/IT - Databaser/SQL16 SQL2 - DML Indsættelse af enkelte rækker: INSERT INTOEMPLOYEE VALUES(’Richard’,’K’,’Marini’,’ ’, ’30-DEC-52’,’98 Oak Forest, Katy, ’TX’,’M’,37000,’ ’,4) Indsættelse af række, kun specifikke attributter: INSERT INTOEMPLOYEE(FNAME,LNAME,SSN) VALUES(’Richard’,’Marini’,’ ’) Afvises, hvis nogle af de øvrige attributter er defineret NOT NULL

2009NOEA/IT - Databaser/SQL17 SQL2 - DML Sletning af rækker: DELETE FROMEMPLOYEE WHERELNAME =’Brown’ DELETE FROMEMPLOYEE WHEREDNO IN(SELECTDNUMBER FROMDEPARTMENT WHEREDNAME = ’Research’) DELETE FROMEMPLOYEE (Ikke det samme som: ´DROP TABLE EMPLOYEE’. Hvorfor ikke?)

2009NOEA/IT - Databaser/SQL18 SQL2 - DML Opdatering af rækker: UPDATEPROJECT SETPLOCATION = ’Bellaire’, DNUM = 5 WHEREPNUMBER = 10 UPDATEEMPLOYEE SETSALARY = SALARY*1.1 WHEREDNO IN(SELECTDNUMBER FROMDEPARTMENT WHEREDNAME = ’Research’)

2009NOEA/IT - Databaser/SQL19 Og SQL kan meget mere

2009NOEA/IT - Databaser/SQL20 Embedded SQL Tillader et program (en applikation) i fx C# at hente data fra en SQL-database SQL arbejder med hele tabeller – udbredte programmeringssprog med enkelte objekter (svarende til en række)

2009NOEA/IT - Databaser/SQL21 Embedded SQL I.NET Connection: –Open Connection –Udfør db-operationer –Luk Connection –Data bearbejdes

2009NOEA/IT - Databaser/SQL22 Overblik: connected databaseadgang Tre skridt: 1.åbn connection til databasen 2.eksekver SQL for at opdatere/læse DB 3.luk connection

2009NOEA/IT - Databaser/SQL23 using System.Data; using System.Data.SqlClient; using System.Data.Common; //--- static void Main(string[] args) { // Create and open a connection. SqlConnection cn = new SqlConnection(); cn.ConnectionString +”Initial Catalog=vwEng;” +”Integrated Security=True;"; cn.Open(); //--- Forbindelse til DBMS og database Hvor er databasen? Vi skal bruge nogle biblioteksklasser

2009NOEA/IT - Databaser/SQL24 // Create a SQL command object. string strSQL = "SELECT * FROM Bil"; SqlCommand myCommand = new SqlCommand(strSQL, cn); // Obtain a data reader ala ExecuteReader(). SqlDataReader myDataReader; myDataReader = myCommand.ExecuteReader(); Indkapsler SQL- sætninger og sender dem til DBMS Resultattabel fra SQL returneres i et DataReader-objekt, som er en Collection der kan behandles i programmet

2009NOEA/IT - Databaser/SQL25 // Loop over the results. while (myDataReader.Read())//while(more rows) { //Display each attribute in current row for (int i = 0; i < myDataReader.FieldCount; i++) { Console.Write("{0} = {1} ", myDataReader.GetName(i), myDataReader.GetValue(i).ToString().Trim()); } Console.WriteLine(); Console.ReadLine(); }

2009NOEA/IT - Databaser/SQL26 Output

2009NOEA/IT - Databaser/SQL27 Hvad sker der? Tre objekter: –Connection –Command –DataReader Forbindelse til DBMS og database Indkapsler SQL- sætninger og sender dem til DBMS Resultattabel fra SQL returneres i et DataReader- objekt, som er Collection der kan behandles i programmet