Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Hasonló dokumentumok
Bevezetés: az SQL-be

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

SQL DDL-1: táblák és megszorítások

Megszorítások. AB1_06A_Megszorítások - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

6.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Relációs algebra 2.rész példák

Információs rendszerek Adatbázis-kezelés

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

Bevezetés: Relációs adatmodell

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

B I T M A N B I v: T M A N

Lekérdezések az SQL-ben 1.rész

Az SQL adatbázisnyelv: DML

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Lekérdezések az SQL-ben 1.rész

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Bevezetés: Relációs adatmodell

Több táblára vonatkozó lekérdezések Relációs algebra és SQL SELECT

Relációsémák létrehozása SQL nyelvben

Lekérdezések az SQL-ben 2.rész

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázis használat I. 5. gyakorlat

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Adatbázis-kezelés. Harmadik előadás

Relációs algebra 1.rész alapok

4.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatbázisok elmélete 10. előadás

SQL parancsok feldolgozása

Adatbázis tartalmának módosítása

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Adatbázisok tavaszi félév Vizsgatételsor

Tankönyv példák kidolgozása

Adatbázis-kezelés alapok Adatbázisok című tárgyhoz, ismétlés kapcsán

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

SQL DDL-2 (aktív elemek) triggerek

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Bevezetés: Relációs adatmodell

9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Adatbázisok* tulajdonságai

ADATBÁZISOK: TAN7.EA témaköre SQL DDL, DML, DCL, Tranz.kez.

Adatbázis-kezelés, információs-rendszerek

Adatbázis kezelés Delphiben. SQL lekérdezések

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

BEVEZETÉS Az objektum fogalma

Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése,

Adatbázis tartalmának módosítása. SQL DML utasítások

Tervezés: Egyed-kapcsolat modell és az SQL DDL: táblák, nézetek

Adatbázisok biztonsága

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

Adatbázisok elmélete 9. előadás

Databases 1. Relációs algebra és nemrekurzív Datalog

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Adattípusok. Max. 2GByte

Tranzakciókezelés PL/SQL-ben

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

Haladó DBMS ismeretek 1

Adatbázisok elmélete 9. előadás

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

Készítette: Szabóné Nacsa Rozália

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

Adattípusok. Max. 2GByte

Magas szintű adatmodellek Egyed/kapcsolat modell I.

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatbázis Rendszerek II. 8. Gyakorló környezet

Adatbázis rendszerek SQL nyomkövetés

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Az adatbázisrendszerek világa

Adatbázis Rendszerek II. 3. SQL alapok

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Adatbázisok gyakorlat

Relációs algebra 2.rész


Átírás:

Bevezetés az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben Kulcsok megadása (folyt.köv.7.fej.) -- még: Relációs algebrai kifejezések átírása az SQL SELECT utasításra: Tk. 2.4.1.Termék-feladatai SQL-ben 1

SQL története, szabványok Szabvány adatbázis-kezelő nyelv: SQL SQL (angol kiejtésben SEQUEL) uis az SQL előfutára IBM fejlesztette ki a 70-es években: SEQUEL SQL más is volt pl. Ingres : QUEL (ez kalkulus alapú lekérdezés) Szabványok (ANSI, ISO) SQL86, SQL89, SQL92 (SQL2), SQL:1999 (SQL3), SQL: 2003, SQL:2006, SQL:2008 Nyelvjárások (Oracle, Sybase, DB2, Progress, MSSQL, mysql, SQL Server, PostgreSQL, Access, ) Az SQL megvalósítások között vannak különbségek, gyakorlatokon az Oracle SQL-t nézzük meg részletesen. 2

SQL fı komponensei Adatleíró nyelv, DDL (Data Definition Language) CREATE, ALTER, DROP Adatkezelő nyelv, DML (Data Manipulation Language) INSERT, UPDATE, DELETE, SELECT --Az SQL elsődlegesen lekérdező nyelv (Query Language) SELECT utasítás (az adatbázisból információhoz jussunk) Adatvezérlő nyelv, DCL (Data Control Language) GRANT, REVOKE Tranzakció-kezelés COMMIT, ROLLBACK, SAVEPOINT Procedurális kiterjesztések Oracle PL/SQL (Ada alapján), SQL/PSM (PL/SQL alapján) 3

Adatbázis relációsémák definiálása Az SQL használata szerint építjük fel az előadást, vagyis a Tk.2.3. fejezete után a Tk.6.SQL fejezetével folytatjuk, majd visszatérünk újra a megszorításokra (Tk.7.fejezet) Az SQL tartalmaz adatleíró részt (DDL), az adatbázis objektumainaka leírására és megváltoztatására. Objektumok leíró parancsa a CREATE utasítás. A relációt az SQL-ben táblának (TABLE) nevezik, az SQL alapvetően háromféle táblát kezel: Alaptáblák (permanens) CREATE TABLE Nézettáblák CREATE VIEW (ezt később nézzük) Átmeneti munkatáblák (WITH utasítás is később) Alaptáblák megadása: CREATE TABLE 4

Tábla/reláció sémák SQL-ben A legegyszerűbb formája: CREATE TABLE relációnév( Attribútum deklarációk listája, További kiegészítések ); Az attribútum deklaráció legalapvetőbb elemei: Attribútumnév típus [kiegészítő lehetőségek] --itt: a típus olyan, amit az SQL konkrét megvalósítása támogat (gyakorlaton Oracle környezetben nézzük meg), Típusok, pl: INTEGER, REAL, CHAR, VARCHAR, DATE --A kiegészítő lehetőségek például [PRIMARY KEY] vagy [DEFAULT érték] (köv.lapon példa, ill. később lesz: 7.fej) 5

Példa: sörivók adatbázis Sörök(sör, gyártó) Bárok(bár, város, tulaj, engedély) Ivók(név, város, tel) Kedvel(név, sör) Felszolgál(bár, sör, ár) Látogat(név, bár) Az aláhúzás jelöli a kulcsot (a sorok a kulcs összes attribútumán nem vehetik fel ugyanazt az értékeket). --Ez a kulcs, külső kulcs és hivatkozási épség megszorításoknak lesz később kiváló példája. 6

Egyszerő példák táblák létrehozására CREATE TABLE Bárok ( bár CHAR(20), város VARCHAR2(40), tulaj CHAR(30), engedély DATE DEFAULT SYSDATE ); CREATE TABLE Felszolgál ( bár CHAR(20), sör VARCHAR2(20), ár NUMBER(10,2) DEFAULT 100 ); 7

Az SQL értékekrıl (bıvebben gyakorlaton) INTEGER, REAL, stb,a szokásos értékek, számok. STRINGszintén, de itt egyes-aposztróf közé kell tenni a szöveget (vagyis nem macskaköröm közé). Két egyes-aposztróf = egynek felel meg, például Joe s Bar megfelel a Joe s Bar szövegnek. Bármely érték lehet NULL(erről később a 6.1.fejezetben) DATE éstime típusok is vannak az SQL-ben. A dátum formátumát meg kell adni DATE yyyy-mm-dd Például: DATE 2007-09-30 (2007. szept. 30) Az idő formátumát is meg kell adni TIME hh:mm:ss Például: TIME 15:30:02.5 (délután fél 4 múlt két és fél másodperccel) 8

Kulcs megadása PRIMARY KEY vagy UNIQUE Nincs a relációnak két olyan sora, amely a lista minden attribútumán megegyezne. Kulcs esetén nincs értelme a DEAFULT értéknek. Kulcsok megadásának két változata van: Egyszerű kulcs (egy attribútum) vagy Összetett kulcs (attribútumok listája) (példákat lásd a következő oldalon) 9

Egyszerő kulcs megadása Ha a kulcs egyetlen attribútum, akkor ez az attribútum deklarációban megadható <attribútumnév> <típus> PRIMARY KEY vagy <attribútumnév> <típus> UNIQUE Példa: CREATE TABLE Sörök ( ); név gyártó CHAR(20) UNIQUE, CHAR(20) 10

Összetett kulcs megadása Ha a kulcs több attribútumból áll, akkor a CREATE TABLE utasításban az attribútum deklaráció után a kiegészítő részben meg lehet adni további tábla elemeket: PRIMARY KEY (attrnév 1, attrnév k ) Példa: CREATE TABLE Felszolgál ( bár CHAR(20), ); sör ár VARCHAR2(20), NUMBER(10,2), PRIMARY KEY (bár, sör) 11

PRIMARY KEY vs. UNIQUE Csak egyetlen PRIMARY KEY lehet a relációban, viszont UNIQUE több is lehet. PRIMARY KEY egyik attribútuma sem lehet NULL érték egyik sorban sem. Viszont UNIQUE-nak deklarált attribútum lehet NULLértékű, vagyis a táblának lehet olyan sora, ahol a UNIQUE attribútum értékenull vagyis hiányzó érték. Köv.ea: 6.1.fejezetben: NULL az SQL lekérdezésnél adjuk meg hogyan kell ezzel a speciális értékkel gazdálkodni, hogyan lehet NULL-t kifejezésekben és hogyan lehet feltételekben használni. Itt csak: kulcsok, majd idegen kulcsok megadása lesz. Később, a 7.fejezetben visszatérünk a megszorításokra, arra is, hogy milyen lehetőségeink vannak a hivatkozási épség fenntartására, valamint további megszorításokra. 12

Idegen kulcsok megadása Még egy kiegészítő lehetőség Mi köthet össze két táblát? Idegen kulcs (foreign key) megadása Az egyik tábla egyik oszlopában szereplő értékeknek szerepelnie kell egy másik tábla bizonyos attribútumának az értékei között. A hivatkozott attribútumoknak a másik táblában kulcsnak kell lennie! (PRIMARY KEY vagy UNIQUE) Példa: Felszolgál(bár, sör, ár)táblára megszorítás, hogy a sör oszlopában szereplő értékek szerepeljenek a Sörök(sör, gyártó)táblában a sör oszlop értékei között. 13

Idegen kulcsok megadása: attribútumként REFERENCESkulcsszó használatának két lehetősége: attribútumként vagy sémaelemként lehet megadni. 1.) Attribútumként(egy attribútumból álló kulcsra) PÉLDA: CREATE TABLE Sörök ( sör CHAR(20) PRIMARY KEY, gyártó CHAR(20) ); CREATE TABLE Felszolgál ( bár CHAR(20), sör CHAR(20) REFERENCES Sörök, ár REAL ); 14

Idegen kulcsok megadása: sémaelemként 2. Sémaelemként (egy vagy több attr.-ból álló kulcsra) FOREIGN KEY (attribútum lista) REFERENCES relációnév(attribútum lista) PÉLDA: CREATE TABLE Sörök ( név CHAR(20) PRIMARY KEY, gyártó CHAR(20) ); CREATE TABLE Felszolgál ( bár CHAR(20), sör CHAR(20), ár REAL, FOREIGN KEY(sör) REFERENCES Sörök(név)); -- itt most másképp neveztük a hivatkozott attribútumot 15

Rel.algebrai kifejezések felírása SELECT-tel A lekérdezések megadására formálisan relációs algebrai kifejezéseket adtunk meg (lásd előző 02A_RelAlg2kif-ben). Ezeket hogyan tudjuk átírni az SQL SELECT utasítására? Példa: Termék (gyártó, modell, típus) PC (modell, sebesség, memória, merevlemez, cd, ár) Laptop (modell, sebesség, memória, merevlemez, képernyő, ár) Nyomtató (modell, színes, típus, ár) --- típus itt mást jelent! Mi volt a leggyakrabban előforduló típus, amiből építkezek? lista (σ feltétel (táblák szorzata) Ezt a komponenst támogatja legerősebben majd az SQL: SELECT s-lista FROM f-lista WHERE feltétel Halmazműveletek SQL-ben SELECT lekérdezések között UNION EXCEPT/MINUS INTERSECT 16