Top Banner
1 Databázové systémy BIK-DBS Ing. Ivan Halaška katedra softwarového inženýrství ČVUT FIT Thákurova 9, m.č. T9:311 [email protected] Kapitola Různé úrovně pohledu na data
26

BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

Aug 20, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

1

Databázové systémy

BIK-DBS

Ing. Ivan Halaška

katedra softwarového inženýrství

ČVUT FIT

Thákurova 9, m.č. T9:311

[email protected]

Kapitola

Různé úrovně pohledu na data

Page 2: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

2

Různé úrovně pohledu na data

vnější pohled vnější pohled vnější pohled

úložiště jako

množina BOIS bloků

konceptuální schéma

úložiště jako množina

souborů

Databázové schéma

Fyzická

úroveň

Úroveň analytických

konceptů

Úroveň

implementačních

konceptů

Page 3: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

3

Konceptuální modelování

v polovině 70. let - konceptuální modely – společné chápání objektů aplikace uživateli,

projektanty, …

– integrace různých uživatelských pohledů

– Výsledek je vstupem pro návrh implementace

důvody:

nízká úroveň pohledu na data obtížná komunikace nad schématem se zákazníkem

Page 4: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

4

Konceptuální modelování

de facto standard:

E-R diagramy (1976)

Kino

Film

Typy entit

Hraje Typy vztahů

Název-k

Adresa

Jméno-v

Jméno_f

Režisér

– Atributy entit

– Identifikátory

– Násobnost účasti

N

M

Čas – účast ve vztahu

– Atributy vztahů

integritní omezení

Page 5: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

5

Databázové modelování Relace, tabulky, záznamy, propojení záznamů

do sítě, struktury objektů, podle zvolených

konstruktů mluvíme o databázi hierarchické,

síťové, relační, objektově relační a objektové.

+ integritní omezení (IO)

Hrají (Název_k: string, Jméno_f: string, Režisér: string, Čas: date)

Název_k Jméno_f Režisér Čas Hrají

Page 6: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

6

Relační DB model, datové typy

jediný konstrukt - relace

– schéma relace; jméno relace, jména atributů a specifikace

domén atributů

– prvky domén jsou atomické hodnoty (1. normální forma)

– formální zápis: R(A1:D1,...,An:Dn)

KINO(NAZEV_K:CHAR(15),ADRESA:CHAR(25) )

Integritní omezení: primární klíč, cizí klíč

Page 7: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

7

Relační model FILM JMÉNO_F HEREC ROK

Černí baroni Vetchý 94

Černí baroni Landovský 94

Top gun Cruise 86

Top gun McGillis 86

Kmotr Brando 72

Nováček Brando 90

Vzorec Brando 80

MÁ_NA NÁZEV_K JMÉNO_F DATUM

PROGRAMU Blaník Top gun 29.03.94

Blaník Kmotr 08.03.94

Mír Nováček 10.03.94

Mír Top gun 09.03.94

Mír Kmotr 08.03.94

KINO NÁZEV_K ADRESA

Blaník Václ.n. 4

Vesna Olšiny 6

Mír Strašnická 3

Domovina V dvorcích

Page 8: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

8

KINO(NAZEV_K, ADRESA)

FILM(JMENO_F, HEREC, ROK)

MA_NA_PROGRAMU(NAZEV_K, JMENO_F, DATUM)

IO:

Primární klíče: NAZEV_K

JMENO_F

{NAZEV_K, JMENO_F}

Cizí klíče: MA_NA_PROGRAMU.NAZEV_K

MA_NA_PROGRAMU.JMENO_F

Relační model, schéma relací

Page 9: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

9

Relační DB model, operace

– vytvoř novou relaci (tabulku)

– přidej novou n-tici (řádek) do dané relace (tabulky)

– vymaž n-tice (řádky) zadaných vlastností

– vytvoř novou relaci (tabulku) ze zadané relace

výběrem n-tic (řádků) zadaných vlastností - selekce

výběrem zadaných atributů (sloupců) - projekce

– ve vybraných n-ticích (řádcích) zadané relace (tabulky) změň

hodnoty zadaných prvků (polí)

– vytvoř novou relaci (tabulku) ze zadaných relací (tabulek)

pomocí množinových operací sjednocení, průnik, rozdíl

– vytvoř novou relaci (tabulku) ze zadaných relací (tabulek) jako

podmnožinu jejich kartézského součinu - spojení

Page 10: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

10

Dotazování v relační databázi

(KINO(NAZEV_K=‘Blaník’)* MA_NA_PROGRAMU *

FILM)[jmeno_f,datum]

Select Jmeno_F, Datum

From KINO K JOIN MA_NA_PROGRAMU MNP

ON (K.NAZEV_K=‘Blaník’ and

K.NAZEV_K= MNP.NAZEV_K)

JOIN FILM USING(Jmeno_F)

Které filmy jsou dávány v kině Blaník a kdy?

Page 11: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

11

IO jsou tvrzení vymezující korektnost DB

definují se na konceptuální i databázové

úrovni

– název_k jednoznačně určuje řádky tabulky Kina

– daný film si lze rezervovat v půjčovně, jen když

jsou všechny jeho kopie vypůjčeny

– čtenář si může vypůjčit nejvýše 6 filmů (kopií)

– vypůjčující musí být v seznamu zákazníků

Integritní omezení (IO)

Page 12: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

12

10.03.94 09.03.94 29.03.94 09.03.94 08.03.94

Databázové modely síťový model

Mír

Starostrašnická 3

Blaník

Václ.n. 4

Brando

86

Kmotr

Brando

72

Vzorec

80

Top gun

Cruise

McGillis

Černí

Baroni

Vetchý

Landovský

94

Nováček

Brando

90

Page 13: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

13

Síťový model, diagram na úrovni typů

(Bachman)

–každému entitnímu typu odpovídá jeden typ Záznam

–každému vztahovému typu 1:N odpovídá jeden typ Set

NÁZEV_K

ADRESA

KINO

JMÉNO_F

HEREC*

ROK

FILM Má_na_programu

Page 14: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

14

Bachmanův diagram, síťový model

dává je dáván

NÁZEV_K

ADRESA

KINO

JMÉNO_F

HEREC*

ROK

FILM

DATUM

MÁ_NA_PROGRAMU

Page 15: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

15

Schéma na úrovni typů hierarchického

modelu

NÁZEV_K

ADRESA

KINO

JMÉNO_F

HEREC*

ROK

FILM

* označuje opakující se položku

DATUM

JMÉNO_F

MÁ_NA_PROGRAMU

DATUM

NÁZEV_K

JE_NA_PROGRAMU

•konstrukty:

•typ segment,

•vztah daný typ segmentu má za předka (rodiče) segment jiného typu

Page 16: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

16

Síťový DB model, datové typy

Datový typ Record (záznam), který se podobá

pascalskému datovému typu File of record,

Datový typ Set (C-množina, dvojice různých datových

typů Record), který se podobá datovému typu

Seznam

Po transformaci E-R schématu do síťového

– Každému entitnímu typu odpovídá jeden typ Record

– Každému vztahovému typu 1:N odpovídá jeden typ Set

Page 17: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

17

Síťový DB model, operace

vytvoř nový záznam daného typu , zruš daný

záznam, změň daný záznam,

zařaď členský záznam do výskytu c-množiny

daného vlastníka

vyřaď daný člen z daného výskytu c-množiny

najdi první člen ve výskytu c-množiny daného

vlastníka,

najdi následovníka ve výskytu c-množiny daného

vlastníka,

najdi vlastníka ve výskytu c-množiny známého člena

Page 18: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

18

Begin

Najdi KINO záznam (NAZEV=‘Blaník’);

Get KINO;

Najdi prvního člena v dává – MÁ_NA_PROGRAMU;

While Not EOL Do

Get MÁ_NA_PROGRAMU into A; Print (A.Datum);

Najdi vlastníka k A v dáván;

Get FILM into B; Print (B.Nazev);

Najdi následovníka v dává;

End;

End;

Navigační jazyk u síťového modelu NÁZEV_K

ADRESA

KINO

JMÉNO_F

HEREC*

ROK

FILM

DATUM

MÁ_NA_PROGRAMU

Které filmy jsou dávány v kině Blaník a kdy?

Page 19: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

19

Rekapitulace

Jaké úrovně pohledu na data rozeznáváme?

Hodí se schémata úložiště na úrovni db tabulek

k dialogu se zákazníkem? Která úroveň je

vhodnější?

Hodí se konceptuální schémata úložiště při

úvahách o optimálním uložení dat na nosném

médiu?

Hodí se databázové schéma při plánování sběru

optimalizačních statistik o datech v úložišti?

Page 20: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

20

Rekapitulace

Jaké konstrukty využívá E-R konceptuální

model?

Jaká omezení se určují u atributu entitního typu?

Jaká omezení se určují pro typu vztahu?

Jaké omezení se určují u typu entit?

Jaké znáte databázové modely?

Page 21: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

21

Rekapitulace

Které konstrukty zná síťový model?

Které konstrukty zná hierarchický model?

Které konstrukty zná relační model?

Proč se síťový model nazývá síťový? Kde je tam

ta síť?

Proč se relační model nazývá relační? Kde je

tam ta relace?

Page 22: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

22

Rekapitulace

Na které úrovni pohledu na data v úložišti jsme,

uvažujeme-li o indexech?

Pomocí kterého konstruktu síťového modelu

vyjádříme entitní typ?

Pomocí kterého konstruktu síťového modelu

vyjádříme typ vztahu?

Popište typ Record (záznam).

Popište typ Set (C-množina).

Page 23: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

23

Rekapitulace

Jaké operace poskytuje síťový model pro práci s

elementy typu Record?

Jaké operace poskytuje síťový model pro práci s

elementy typu Set?

Jakého typu je vlastník Setu?

Jakého typu je člen Setu?

Kolik vlastníků má jeden výskyt Setu?

Kolik členů může být v jednom výskytu Setu?

Page 24: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

24

Rekapitulace

Mohou být členy v jednom výskytu Setu různých

typů?

Mohou být vlastník a členy jednoho typu Set

stejného typu?

Page 25: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

25

Rekapitulace

Co bude mapováno na entitní typ v síťovém modelu?

Co bude mapováno na typ vztahu s kardinalitou 1:N v

síťovém modelu?

Jak můžeme vyjádřit v síťovém modelu vztah M:N?

Na co bude mapován entitní typ v relačním modelu?

Na co bude mapován typ vztahu v relačním modelu?

Page 26: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_2_datovy_mo… · 3 Konceptuální modelování v polovině 70. let - konceptuální modely – společné chápání objektů

26

Rekapitulace

Co to je integritní omezení?

Jaká integritní omezení můžeme zaznamenat v

E-R schématu?

Jaká integritní omezení můžeme zaznamenat v

síťovém schématu?

Jaká integritní omezení můžeme zaznamenat v

relačním schématu?