Co to jest Baza Danychusers.arch.pwr.wroc.pl/jerzy.slawski/IT/BazyDanych_e.pdf · A System zarz...

26
Co to jest Baza Danych Co to jest Baza Danych Wielki , zintegrowany Wielki , zintegrowany , , zbi zbi ó ó r informacji r informacji Stanowi model Stanowi model ś ś wiata rzeczywistego wiata rzeczywistego jednostki jednostki Entities Entities (e.g., (e.g., studen studen ci ci , , kursy kursy , , wyk wyk l l adowcy adowcy ) ) relacje relacje Relationships Relationships (e.g., (e.g., S S l l awski prowadzi awski prowadzi Technologie Technologie Informatyczne Informatyczne ) ) A A System zarz System zarz ą ą dzania baz dzania baz ą ą DataBase DataBase Management System Management System (DBMS) (DBMS) pakiet pakiet software software do przechowywania i zarz do przechowywania i zarz ą ą dzania dzania baz baz ą ą danych danych

Transcript of Co to jest Baza Danychusers.arch.pwr.wroc.pl/jerzy.slawski/IT/BazyDanych_e.pdf · A System zarz...

Co to jest Baza DanychCo to jest Baza DanychWielki , zintegrowanyWielki , zintegrowany, , zbizbióór informacjir informacji

Stanowi model Stanowi model śświata rzeczywistegowiata rzeczywistego

�� jednostkijednostki EntitiesEntities (e.g., (e.g., studenstudencici, , kursykursy, , wykwykłładowcyadowcy))

�� relacje relacje RelationshipsRelationships (e.g., (e.g., SSłławski prowadzi awski prowadzi TechnologieTechnologie

InformatyczneInformatyczne))

A A System zarzSystem zarząądzania bazdzania baząą DataBaseDataBase Management System Management System

(DBMS)(DBMS) pakiet pakiet software software do przechowywania i zarzdo przechowywania i zarząądzania dzania bazbaząą

danychdanych

Dlaczego nie Pliki?Dlaczego nie Pliki?

Szybki dostSzybki dostęęp aplikacji do ogromnych p aplikacji do ogromnych zasobzasobóów (OS nie jest wystarczajw (OS nie jest wystarczająąco co efektywny)efektywny)

Szybkie i logiczne przeszukiwanie zasobSzybkie i logiczne przeszukiwanie zasobóów w (formu(formułłowanie zapytaowanie zapytańń do bazydo bazy queriesqueries))

Zabezpieczenie przed uszkodzeniem albo Zabezpieczenie przed uszkodzeniem albo niezgodnoniezgodnośściciąą zasobzasobóów z powodu w z powodu jednoczesnego dostjednoczesnego dostęępu wielu upu wielu użżytkownikytkownikóów. w.

Odzyskiwanie zasobOdzyskiwanie zasobóów po awariachw po awariach

BezpieczeBezpieczeńństwo i kontrola doststwo i kontrola dostęęppu u (OS (OS dostarcza ograniczone narzdostarcza ograniczone narzęędziadzia))

Dlaczego Dlaczego DBMSDBMS

NiezaleNiezależżnonośćść danychdanych

Efektywny dostEfektywny dostęępp

KrKróótki czas budowy aplikacjitki czas budowy aplikacji

IntegralnoIntegralnośćść i bezpieczei bezpieczeńństwo danychstwo danych

Jednolite zarzJednolite zarząądzanie danymidzanie danymi

Zgodny rZgodny róównoczesny dostwnoczesny dostęępp

OOdzysk po awariachdzysk po awariach

Dlaczego Bazy DanychDlaczego Bazy Danych

PrzejPrzejśście odcie od computationcomputation dodo informationinformation

�� ““low endlow end””: : od zasobod zasobóów lokalnychw lokalnych dodo webspacewebspace

�� ““high endhigh end””: : zastosowania naukowe i biznesowezastosowania naukowe i biznesowe

Wzrost rWzrost róóżżnorodnonorodnośści i iloci i ilośści informacjici informacji

�� Elektroniczne bibliotekiElektroniczne biblioteki, , interainteraktywnektywne foto i foto i video, video, zasoby zasoby

naukowenaukowe, , zasoby encyklopedycznezasoby encyklopedyczne

Systemy Baz DanychSystemy Baz Danych

ORACLEORACLE

SYBASESYBASE

INFORMIXINFORMIX

DB2DB2

IngresIngres

BTreeBTree

SQL ServerSQL Server

MS AccessMS Access

ddBaseBase

ModelModele Danyche Danych

data modeldata model opis organizacji zasobopis organizacji zasobóów danych w danych

schemaschema to opis konkretnego zasobu danych to opis konkretnego zasobu danych

zgodnie z okrezgodnie z okreśślonym modelem danychlonym modelem danych

relational data modelrelational data model to dzito dziśś najszerzej najszerzej

stosowany model danychstosowany model danych

�� relationrelation, , tabela z wierszami i kolumnamitabela z wierszami i kolumnami

�� KaKażżda relacja ma da relacja ma schemaschema, , ktktóóra opisuje ra opisuje

kolumny (pola)kolumny (pola)

Ewolucja Modelu DanychEwolucja Modelu Danych

Poziomy AbstarkcjiPoziomy Abstarkcji

wielewiele viewsviews, ,

jedenjeden conceptual (logical) conceptual (logical) schemaschema

jedenjeden physical schemaphysical schema

�� ViewView opisuje jak uopisuje jak użżytkownik ytkownik widzi danewidzi dane

�� Conceptual schemaConceptual schemadefiniuje strukturdefiniuje strukturęę logicznlogicznąą

�� Physical schemaPhysical schema definiuje definiuje zbiory i indeksyzbiory i indeksy

Physical Schema

Conceptual Schema

View 1 View 2 View 3

Conceptual schemaConceptual schema

E/R modelE/R model

Entities, Relationships, AttributesEntities, Relationships, Attributes

Cardinalities 1:1, 1:m, n:1, m:nCardinalities 1:1, 1:m, n:1, m:n

Keys (klucze): superkey, primary key, Keys (klucze): superkey, primary key, foreign keyforeign key

X

PrzykPrzykłładad: : Baza Baza BankowaBankowa

Kolumna (atrybut)Kolumna (atrybut)

Wiersz (rekord)Wiersz (rekord)

Tabela (relacja)Tabela (relacja)

PrzykPrzykłładad: : Baza Baza UniUniwwersersyteckaytecka

Conceptual schemaConceptual schema: :

�� StudenStudentsts ((sid:stringsid:string, , name:stringname:string, , loginlogin:string, :string,

ageage::integer, gpa:realinteger, gpa:real))

PrzykPrzykłładad: : Baza Baza UniUniwwersersyteckayteckaConceptual schemaConceptual schema: :

�� StudenStudentsts ((sid:stringsid:string, , name:stringname:string, , loginlogin:string, :string,

ageage::integer, gpa:realinteger, gpa:real))

�� EnrolledEnrolled ((sid:stringsid:string, , cid:stringcid:string, , grade:stringgrade:string))

�� CoursesCourses((cid:stringcid:string, , cname:stringcname:string, , credits:integercredits:integer) )

Relation (Tablica)Relation (Tablica)

NazwaNazwa

SchemaSchema

ZbiZbióór kolumn i rekordr kolumn i rekordóów zgodnych ze w zgodnych ze

specyfikacjspecyfikacjąą SchemaSchemaSTUDENTSSTUDENTS

X

table relationshiptable relationship

Relationship Relationship tworzytworzy sisięę pomocpomocąą kluczkluczyy (key(keyss))

Primary Primary KeyKey to pole w ktto pole w któórym wystrym wystęępujpująą unikalne wartounikalne wartośścici

Foreign KeyForeign Key to pole ktto pole któóre w innej relacji jest re w innej relacji jest Primary KeyPrimary Key

Relationship Relationship pomipomięędzy dzy Primary KeyPrimary Key i i Foreign KeyForeign Key zapewnia zapewnia

integralnointegralnośćść bazybazy

PrzykPrzykłładad: : Baza Baza UniUniwwersersyteckaytecka

External SchemaExternal Schema ((ViewView): ):

�� Course_infoCourse_info((cid:stringcid:string,, numstudnumstud:integer):integer)

cidcid numstudnumstud

215215 1515

382382 2121

SQLSQL

SQL: standardowy jSQL: standardowy jęęzyk Baz Danychzyk Baz Danych

Data Definition Language (DDL)Data Definition Language (DDL)

�� tworzenie, modyfikacja, kasowanie relacji tworzenie, modyfikacja, kasowanie relacji

�� okreokreśślanie zalelanie zależżnonośści mici mięędzy relacjamidzy relacjami

�� ZarzZarząądzanie udzanie użżytkownikami, bezpieczeytkownikami, bezpieczeńństwem, etc.stwem, etc.

Data Manipulation Language (DML)Data Manipulation Language (DML)

�� Tworzenie zapytaTworzenie zapytańń do odszukania rekorddo odszukania rekordóów w

spespełłniajniająących kryteriacych kryteria

�� Dodawanie, modyfikacja, usuwanie rekordDodawanie, modyfikacja, usuwanie rekordóów.w.

SQLSQL

CREATE TABLE <name> ( <field> <domain>, … )

SELECT <fields> FROM <name> WHERE <condition>

INSERT INTO <name> (<field names>) VALUES (<field values>)

DELETE FROM <name>WHERE <condition>

UPDATE <name> SET <field name> = <value> WHERE <condition>

SQL DDLSQL DDL

CREATE TABLE <name> ( <field> <domain>, … )

CREATE TABLE Students

(sid CHAR(20),

name CHAR(20),

login CHAR(10),

age INTEGER,

gpa FLOAT)

SQL DMLSQL DMLINSERT INTO <name> (<field names>) VALUES (<field values>)

INSERT INTO Students (sid, name, login, age, gpa)VALUES (‘53688’, ‘Smith’, ‘smith@ee’, 18, 3.2)

DELETE FROM <name>WHERE <condition>

DELETEFROM Students SWHERE S.name = ‘Smith’

SQL DMLSQL DML

UPDATE <name> SET <field name> = <value> WHERE <condition>

UPDATE Students

SET age = age + 1

UPDATE EnrolledSET grade = ‘E’

WHERE grade = ‘F’

SQL DMLSQL DML

name sid gpa

Jones 53666 3.4

Smith 53650 3.8

SELECT <fields> FROM <name> WHERE <condition>

SELECT name, sid, gpa

FROM StudentsWHERE gpa > 3.3

NameName SidSid GpaGpa

JonesJones 5366653666 3.43.4

SmithSmith 5365053650 3.83.8

SQL DMLSQL DML

SELECT <fields> FROM <name> WHERE <condition>

SELECT S.name, E.cidFROM Students S, Enrolled EWHERE S.sid=E.sid AND E.grade='A'

Data WarehousingData Warehousing

Co to jest Co to jest data warehousingdata warehousing??

Systemy przechowujSystemy przechowująą dane operacyjnedane operacyjne uużżywane w codziennych ywane w codziennych transakcjach. transakcjach.

Analitycy biznesu czAnalitycy biznesu częęsto nie majsto nie mająą dodośćść wiedzy i narzwiedzy i narzęędzi do dzi do przetwarzania danych operacyjnych.przetwarzania danych operacyjnych.

Wielokrotne procesy przetwarzania tych samych danych Wielokrotne procesy przetwarzania tych samych danych operacyjnych spowalnia systemyoperacyjnych spowalnia systemy

Format danych operacyjnych jest czFormat danych operacyjnych jest częęsto niewygodny dla analityksto niewygodny dla analitykóów w biznesu.biznesu.

data warehousingdata warehousing rozwirozwiąązuje te problemy poprzez tworzenie zuje te problemy poprzez tworzenie zasobzasobóów w danych informacyjnychdanych informacyjnych –– ktktóóre sre sąą wytworzone na wytworzone na podstawie podstawie danych operacyjnychdanych operacyjnych tak aby utak aby ułłatwiatwićć analizanalizęę zjawiska i zjawiska i podjpodjęęcie wcie włłaaśściwej decyzji. ciwej decyzji.

Data Warehousing Data Warehousing

ArchitekturaArchitektura Three TierThree Tier

Data Warehousing Data Warehousing

ArchitekturaArchitektura Three TierThree Tier

Data Warehousing Data Warehousing

ArchitekturaArchitektura Three TierThree Tier