• Nem Talált Eredményt

Adatbázisok elmélete 10. el ˝ oadás

N/A
N/A
Protected

Academic year: 2023

Ossza meg "Adatbázisok elmélete 10. el ˝ oadás"

Copied!
5
0
0

Teljes szövegt

(1)

Adatbázisok elmélete 10. el ˝ oadás

Csima Judit

Budapesti M ˝uszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz.

I. B. 136/b

csima@cs.bme.hu

2003. Március 18.

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

Példák oszlopkalkulus alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG 4000

Az 2002. jan. 1. utáni napok bevételei a dátummal együtt, legyen el ˝obb a dátum:

t

2

BEVÉTEL

t

t

1 2002-01-01

yx

BEVÉTEL

yx

y 2002-01-01

(sajtóhiba a Gajdos könyvben)

Az 2002. jan. 15-i bevétel és a befizetett összeg:

u

2

BEFIZ

u

v

BEVÉTEL

v

v

1 2002-01-15 v

2 u

1

xy

BEFIZxy

z

BEVÉTELzx

z 2002-01-15

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

Hány darabot adtak el 2002. jan. 15-én az A123 kódú áruból, mi a neve és az ára?

s

3

u

v

MENNYISÉGu

ÁRUv

u

1 2002-01-15 u

2

A123

v

1

A123

s

1 u

3 s

2 v

2 s

3 v

3

xyz

u

v

MENNYISÉGuvx

ÁRUvyz

u 2002-01-15 v

A123

Mely nev ˝u áruk azok, amelyekkel van azonos egységárú másik áru?

s

1

u v

ÁRU

v

ÁRU

u

s

1 v

2 v

3 u

3

v

1 u

1

v

x y w u

ÁRUxvu

ÁRUywu

x

y

2

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

Biztonságos kifejezés

Dom(ψ) és a biztonságos formula és kifejezés ugyanaz, mint sorkalkulusnál.

Ugyanolyan technikák vannak a biztonságosság elérésére, mint sorkalkulusnál.

Tétel. A sorkalkulus és az oszlopkalkulus ekvivalensek. A biztonságos sorkalkulus és a biztonságos oszlopkalkulus ekvivalensek.

Bizonyítás: Vázlat:

t

k φt

k u1 uk

ψu1 uk

t

k

u1 uk R

t

k

R

u1 uk

t

k

j uj

t

k

φt

k

u1

ukψu1 uk

biztonságos biztonságos

(2)

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

Lekérdez ˝ onyelvek típusai, általános jellemz ˝ oik

Lehetnek algebrai alapúak: relációs algebrán alapuló lekérdezés, procedurális leírás

El ˝ony: lekérdezésoptimalizálásra jobb

Lehetnek logikai alapúak: sor vagy oszlopkalkulusra épül ˝o lekérdezés, deklaratív leírás

El ˝ony: könnyebben átlátható

Általában a konkrét lekérdez ˝onyelvek eltérnek a modellt ˝ol (algebrai és logikai esetben is), van amiben többet tudnak, van amiben kevesebbet, vagy csak máshogy

Lehetséges eltérések:

logikai alapúakban eleve csak biztonságos kifejezéseknek megfelel ˝o kérdéseket lehet írni (nincsenek kvantorok)

4

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

aritmetika aggregátumok

többszörös sorok kezelése/megengedése attribútumok sorrendje kötött

De az igaz mindre, hogy relációsan teljesek (esetleg bizonyos m ˝uveletek nehezebben mennek) és általában van a lekérdez ˝o funkció mellett DML és DDL is.

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

Példák relációs adatbáziskezel ˝ o nyelvekre

InformationSystemBaseLanguage – relációs algebra alapú

– kifejleszt ˝o: IBM’s United Kingdom Scientific Center Query-By-Example

– oszlopkalkulus alapú

– kifejleszt ˝o: IBM’s Watson Research Center StructuredQueryLanguage

– oszlopkulus-szer ˝u alapjai vannak, némi sorkalkulus elemmel – kifejleszt ˝o: IBM’s San Jose Research Laboratory

6

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

A példákban használt relációs séma

nap ido

FILM

rendezo

filmID

cim moziID MOZI

nev

varos

VETIT

(3)

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

MOZI moziID nev varos

101 M ˝uvész Budapest

102 Uránia Pécs

...

FILM filmID cim rendezo

1 Macskajaj E. Kusturica 2 Moszkva tér Török F.

...

VETIT moziID filmID nap ido

101 1 péntek 16:00

101 2 szombat 19:00

...

8

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

ISBL

Relációs algebra alapú lekérdezések – operátorok

m ˝uvelet relációs algebra ISBL

unió R S R + S

metszet R S R . S

természetes illesztés R S R * S

különbség (általánosabb) R

R S

R – S

kiválasztás σF

R

R:F

vetítés πABC

R

R % A,B,C – egyéb elemek

eredmény megjelenítése:listkulcsszó

értékadás relációnak:=

és, vagy, tagadás jelei: &, |, További nyelvi elemek

– aggregátumok (min., max., összeg, átlag, darabszám) kezelése

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

– adatfrissít ˝o m ˝uveletek – átnevezés

– kimenet formázása

10

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

ISBL példák

Budapesti mozik nevei

listMOZI:varos = "Budapest"%nev

Pénteken 16 órakor kezd ˝od ˝o filmek címe, rendez ˝oje

listFILM*VETIT:nap = "péntek" & ido = "16:00"%cim, rendezo Pénteken nem vetített filmek címe

listFILM( VETIT:nap = "péntek" )%cim (Figyelem! Különbségnek más a definíciója.) Pénteken és szombaton is vetített filmek címe

list( FILM*VETIT:nap = "péntek"%cim ) . ( FILM*VETIT:nap = "szombat"%cim ) vagy köztes relációk bevezetésével:

r1=FILM*VETIT:nap = "péntek"%cim r2=FILM*VETIT:nap = "szombat"%cim listr1.r2

(4)

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

QBE

Oszlopkalkulus alapú lekérdezések, kétdimenziós

– A lekérdezés elemeiváltozókkaléskonstansokkalkitöltöttsablon(ok)

jelölések

változó aláhúzott változónév

konstans nem aláhúzott érték

egyszer említett változó üres cella kimenetre kerül ˝o attribútum P.prefix

Példa: Budapesti mozik nevei

MOZI moziID nev varos

1 P.mozinev Budapest vagy

MOZI moziID nev varos

P. Budapest

12

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

Összetett lekérdezések is lehetségesek (használatukkor az azonos nev ˝u változókillesztése történik meg).

használható több soros sablon (ekkor a kiértékeléskor mindegyik sornak egy- egy futó sorváltozó fog megfelelni, és ha illeszkedés van, akkor megtörténik a kiírás)

használható több sablon (kiértékelés hasonlóan, mint a többsoros kérdésnél, csak a sorváltozók nem ugyanazon reláció sorait futják be)

– A kiválasztás feltételeinek megadása

Azegyenl ˝oségkonstanshoz való illesztéssel vizsgálható (mint az el ˝obb),

egyéb egyszer ˝u relációkhoza operátorok használhatók,

összetett feltételeket(pl. két változó közt a < relációt) külön feltételsablon megadásával lehet vizsgálni.

További nyelvi elemek – mintaillesztés – aritmetika

– kimenet rendezése – csoportosítás

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

– aggregátumok kezelése

– reláció tranzitív lezártjának kezelése – adatmódosító m ˝uveletek

– típusdefiníció, sémalétrehozás

Megjegyzés: dupla példányt kiirtja, azaz többszörös sorok nincsenek

14

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

QBE példák még

Nem budapesti mozik nevei

MOZI moziID nev varos

P. Budapest Pénteki és szombati kezdési id ˝opontok

VETIT moziID filmID nap ido

P.péntek P.

P.szombat P.

Id ˝opontok, amikor pénteken és szombaton is kezd ˝odik film

VETIT moziID filmID nap ido

péntek P.kezdes szombat kezdes

(5)

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

Pénteken vetített filmek adatai

FILM filmID cim rendezo

1 P. P.

VETIT moziID filmID nap ido

1 péntek

Azok a városok, ahol van legalább két mozi:

MOZI moziID nev varos

1 P.városnév

2 városnév

CONDITIONS 1 2

16

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

Az SQL nyelv

Relációs nyelv, mint az eddigiek

oszlopkalkulus jelleg ˝u, de némi sorkalkulusos beütéssel Termékek, (amik szükségszer ˝uen relációs nyelvet is tartalmaztak):

IBM: System/R

Relational Software: Oracle Relational Systems: Ingres Szabványok

SQL89 (SQL1)

SQL92 (SQL2, mi nagyrészt ezt nézzük most)

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

SQL99 (SQL3, ebb ˝ol is pár dolog, pl. triggerek, rekurzió) M ˝uköd ˝o rendszerekben ezek verziói vannak (f ˝oleg SQL2)

18

ADATBÁZISOK ELMÉLETE10.EL ˝OADÁS

Fontosabb utasítások

Data Definition Language:

CREATE - séma létrehozása ALTER - séma módosítása DROP - séma törlése Data Modification Language:

INSERT - adatok beszúrása UPDATE - adatok módosítása DELETE - adatok törlése SELECT - adatok lekérdezése

Természetesen el ˝obb mindig a sémát kell létrehozni, és utána dolgozhatunk vele, de most fordítva tárgyaljuk mert eddig a lekérdez ˝o nyelvekr ˝ol volt szó.

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

A második követelmény elég nehezen megfogható, mert a gyakorlatban el ˝oforduló kulcshalmazok egyáltalán nem véletlenszer ˝uek.... EL ˝

Az ellenség úgy válaszol, hogy minél több lehet ˝oség maradjon, így el tudja érni, hogy legalább

Ahhoz, hogy belássuk, hogy i szuperforrás, meg kell vizsgálni az i-edik sor és i-edik oszlop minden elemét.... Ahhoz, hogy belássuk, hogy i szuperforrás, meg kell vizsgálni az

Mindig a legkisebb súlyú olyan élet színezzük kékre, ami még nem alkot kört az eddigi kék élekkel.. = ⇒ A kék élek végig egy erd ˝ot határoznak meg, akkor van kész,

Amikor a többágú kapcsolatot binárissá írtuk át, akkor olyan egyedhalmaz keletkezik (a kapcsolatból), aminek általában nincs is attribútuma, ezért ennek az egyedhalmaznak

Az adatbázis fogalmi keretének megadására jók, tervet lehet velük készíteni, amit aztán majd át kell alakítani az adatbáziskezel ˝o által használt formális megadási

On-line változatban is m ˝uködik a piros-kék algoritmus: színezzük az új élet élet kékre; ha emiatt kialakul egy kék kör, akkor abból töröljünk egy maximális súlyú

Ez BCNF, de mégis redundáns, mert ha valamelyik tárgynál szerepel egy gyereknév, akkor az összes többinél is szerepelnie kell. beszúrni nehéz, mert amikor egy sort