Sunteți pe pagina 1din 82

INTRODUCERE IN

SISTEME DE
BAZE DE DATE
MEDICALE
CALIN POENARU, MENG, PHD
APLICATII

INTRODUCERE IN BAZE
DE DATE
INTRODUCERE ÎN BAZE
DE DATE
Sint urmatoarele exemple baze de date?
•  Un fișier Excel cu numele pacienților și medicatia asociata într-un
spital
•  O agendă a unei asistente medicale cu activitatile viitoare
•  Un program de garzi pentru trimestrul I 2016
•  O listă a medicamentelor disponibile in farmacia spitalului
•  Dosarul medical al unui pacient
•  Un fisier text cu lucrarile publicate intr-un proiect de cercetare
INTRODUCERE ÎN BAZE
DE DATE
Bazele de date sint colecții de date cu o structură specifica și
un scop bine definit
Structura este data de:
•  inregistrari (records): o colectie/lista de elemente
•  cimpuri (fields): elementele unei inregistrari
In spitale, bazele de date colecteaza cantitati importante de
date si sint elementul central al sistemelor informatice de
spital
INTRODUCERE ÎN BAZE
DE DATE
Avantajele utilizării bazelor de date:
•  Posibilitatea de a stoca o cantitate foarte mare de date
•  Introducerea şi editarea facilă a datelor
•  Ordonarea şi sortarea rapidă
•  Viteză mare în utilizare
•  Partajarea datelor cu alte pachete software, în retele de
calculatoare
•  Securitatea datelor prin protectie împotriva accidentelor
software şi hardware
EXEMPLU: MICROBIAL
DATABASE
Date despre genomul microbian secventiat pina acum:

Organism: Gene (protein coding regions):


Name Name
Accession number Accession number
Genome size Organism
GC% Location on the chromosome
(start, end)
Release date
Strand
Genome center
Size
Sequence
Product
Sequence
BAZE DE DATE ȘI TIPURI
DE STRUCTURI
Tipuri de structuri de date:
Date nestructurate (flat)
Date ierarhice
Date Object-Oriented
Date relaționale

  Datele medicale (ex. cele prezente în dosarul electronic de


sănătate al unui pacient) sint de cele mai multe ori o
combinatie a unuia sau mai multor tipuri de date de mai
sus
TIPURI DE STRUCTURI DE DATE
BAZE DE DATE TIP FIȘIER “FLAT”
Un fișier “flat” poate fi un fișier text simplu, care conține de obicei o
înregistrare pe linie, dar poate fi si un fișier binar.
Avantaj:
•  Functioneaza foarte bine pentru datele simple.
•  Majoritatea software-ului existent include accesul facil la fișierele de date “flat”
Dezavantaj:
•  irosesc spatiu de stocare prin păstrarea de informații cu privire la elemente
nedisponibile pe cale logica
•  bazele de date “flat” nu sint “prietenoase” cu interogarile complicate
FLAT FILES
Caracteristici:
•  Datele sint stocate ca inregistrari in fisiere regulate
•  Inregistrarile au o structura simpla si (de obicei) un numar
fix de cimpuri
•  Nu exista un mecanism pre-definit pentru crearea unor
relatii intre fisiere
•  Datele sint manipulate cu programe scrise special pentru
acest scop
•  Pot suporta operatii de indexare pentru a asigura o
procesare mai rapida
SISTEME BAZATE PE
FLAT FILES
Sisteme bazate pe fisiere: Probleme:
•  Datele sint stocate in •  Lipsa standardelor (…)
fisiere •  Lipsa eficienta (date
•  Fiecare fisier poate avea duplicate)
un format diferit •  Dependenta datelor de
•  Accesul la date (mai ales formatul fizic
programarea) depinde de •  Lipsa posibilitatilor de
intelegerea formatului/ interogare ad-hoc
formatelor fisierelor •  Posibilitati reduse de
•  Programele sint scrise asigurare a securitatii,
special pentru setul de concurentei sau
fisere in cauza (ceea ce nu disponibilitatii ridicate
reprezinta un dezavantaj
daca formatul e
standardizat )
EXEMPLE – FLAT FILES
Microbial database:
•  Genbank format:
•  Escherichia coli K12
•  Streptococcus pneumoniae R6
•  …
•  FASTA format: multiple files
•  Escherichia coli K12: genome , genes , gene positions
•  Streptococcus pneumoniae R6: genome , genes , gene positions
•  …
Data manipulation:
•  Extragere de secvente, cautari
•  Indexare
•  Conversie de format
•  …
Obs: Formatul FASTA este un format bazat pe text, pentru a reprezenta fie secvențe de
nucleotide sau secvențe de peptide în care nucleotidele sau aminoacizii sint reprezentati
folosind coduri de o singură literă. Formatul provine din pachetul software FASTA si a devenit
acum un standard în bioinformatica.
TIPURI DE STRUCTURI
DE DATE
MODELE IERARHICE
Modele ierarhice - modele de date în care relația dintre obiecte
este arborescenta, fiecare element are un singur “parinte”, dar
poate avea mai multi “copii”
Avantaje:
•  Acțiunile asupra "părinților" salveaza timp, deoarece acestea se aplica
tuturor "copiilor"
Dezavantaje:
•  În lumea medicală reală cele mai multe relații nu sint strict ierarhice.
Doctor

Pacient A Pacient B

Analize Imagistica Tratament Analize


TIPURI DE STRUCTURI DE DATE
MODELE ORIENTATE OBIECT
•  Datele sint reprezentate sub forma de “obiecte” (o instanta a unei clase)
•  Utilizeaza “obiecte” reale din viața de zi-cu-zi (entități) si stocheaza datele si
relatiile dintre ele direct, fara sa mai utilizeze o structura de randuri/coloane
•  Se poate utiliza pentru interogare OQL (Object Query Language)
•  Mult mai mare flexibilitate de programare, deoarece există posibilitatea de a
integra baza de date direct cu limbaje de programare orientate obiect (de
exemplu Java, C #, etc)
TIPURI DE STRUCTURI
DE DATE
MODELE RELATIONALE

•  Baza de date relationala este o colecție de tabele, care reprezintă


entități și relațiile dintre ele
•  Model foarte simplu de organizare
•  Interogare prin intermediul limbajelor de nivel inalt (simplu, dar
scump)
•  Implementare eficienta
TIPURI DE STRUCTURI
DE DATE
MODELE RELATIONALE

Programele mai complexe permit gruparea mai multor liste (tabele) la


un loc şi stabilirea de relaţii între ele
Fiecare listă este stocată într-un tabel distinct
(ex: într-un tabel sint pacienţii, în altul afecţiunile, în altul consultaţiile
oferite etc)
Intr-un tabel se pot folosi datele din alt tabel.
•  Ex: în tabelul pacienţilor, când veţi completa câmpul afecţiunilor,
acestea vor apare ca o listă derulanta gata scrisă şi deci nu va fi nevoie
să le tastaţi din nou.
O bază de date relaţională este capabilă să înţeleagă maniera în care
listele şi obiectele sale componente relaţionează între ele à ne
permite să introducem, sa căutam şi sa analizam date în mai multe
tabele simultan.
BAZE DE DATE
RELATIONALE
Caracteristici:
•  Datele sint organizate in tabele: rinduri & coloane
•  Fiecare rind reprezinta un instanta a unei entitati/
obiect (inregistrare)
•  Fiecare coloana reprezinta un atribut al entitatii/
obiectului
•  Fiecare coloana este descrisa de metadate
•  Relatiile dintre entitati sint reprezentate de valorile
stocate in coloanele ce fac corespondenta intre
tabele (keys)
•  Accesul la date se face prin intermediul unui limbaj
de nivel inalt numit “Standard Query
Language” (SQL)
BAZE DE DATE
RELATIONALE
Cheie (Key) - atribut a cărui valoare este unică în fiecare rand sau
un set de atribute ale căror valori combinate sint unice
NULL - valoare specială utilizata pentru un atribut "necunoscut"
sau "nedefinit”

ID Name GR Photo ID College CNT Year


123 Ana 33 A.jpg 124 Sf. Sava B 2013
124 Barbu 33 Null 125 Saguna BV 2012
125 Costin 33 B.jpg 126 Loga TM 2013
… … … … … … … …
BAZE DE DATE
RELATIONALE
Schema este o descriere structurală a relațiilor în
baza de date
Instanță este conținutul efectiv, la un moment dat
Baza de date este un set de relații nominalizate
sau tabele
Fiecare relație are un set de atribute nominalizate (sau
coloane)
Fiecare rând (sau tuple) are o valoare pentru fiecare
atribut
Fiecare atribut are un tip sau domeniu
TIPURI DE STRUCTURI
DE DATE
MODELE NOSQL
NoSQL - ”Not Only SQL"
Baze de date din generația următoare care modeleaza datele
in alt format decat cel tabular utilizat in bazele de date
relationale
Abordează unele dintre punctele dificile ale BD:
non-relațional, distribuit și scalabile orizontal.
De obicei, referinta la NoSQL inseamna baze de date de
documente, cu perechi cheie/valoare, date XML, date grafice,
sau chiar baze de obiecte
NoSQL au devenit bine cunoscute odată cu apariția datelor
web de scară mare și sint utilizate de companii care
proceseaza aceste date (ex. Google, Facebook, Amazon,
Twitter, etc.)
BAZE DE DATE NOSQL
NoSQL - caracteristici distinctive:
Volume mari de date (ex. Google Big Table)
Nu exista un model de date, datele sint stocate în fișiere
Utilizatorul pune la dispozitie funcții specifice
Sistemul pune la dispozitie accesul si prelucrarea datelor conform
functiilor primite, asigură toleranța la erori si replicarea scalabila si
distributie
•  Potențial instalata pe mii de mașini
•  Potențial instalata în orice locatie geografica
Cautarile trebuie să întoarcă rapid răspunsuri
Cea mai mare parte a actiunilor consta in interogari, doar câteva sint
actualizări ale datelor
Nu exista o schema asociata
In general sint dezvoltate in model Open Source
BAZE DE DATE NOSQL
Cele mai semnificative două diferențe între SQL și NoSQL:
Scalabilitatea - SQL nu permite procesarea masiv paralela, ceea ce duce la nevoia
de calculatoare mari (scale up) vs. distribuirea de numeroase servere obisnuite,
mașini virtuale sau instanțe cloud (scale out).
Modelarea - bazele de date SQL sint puternic normalizate și necesită modele de
date pre-definite înainte de introducerea datelor în sistem.
Prin contrast, bazele de date NoSQL nu necesită modele de date predefinite
BAZE DE DATE NOSQL
Prezenta lor nu este atât de semnificativa (încă)
Cele mai multe produse NoSQL sint încă beta și în mare măsură
open source, lipsite de suport comercial.
Aplicațiile medicale sint în mod inevitabil extrem de conservatoare,
pentru că pacientii ar putea avea de suferit în cazul în care sistemul
informatic se defecteaza
Fișele medicale electronice pot fi NoSQL. Unele dintre
caracteristicile sistemelor de informații de sanatate viitoare sint de
asteptat sa sprijine astfel de aplicatii. Acest lucru se datorează
necesitatilor induse de:
•  Interoperabilitatea semantică (SNOMED CT, ​LOINC, HL7, ICD 9/10, etc.), metadate și
gestionarea datelor de master (EMPI, furnizori, organizații, locații, dispozitive, etc.)
•  Arhitectura Cloud
•  Modele de date standardizate sau flexibile
Exemple de NoSQL: fisele medicale electronice (EHR) Vista, CHCS,
AHLTA
SISTEME RELATIONALE
SISTEME RELATIONALE
Informatia este stocata ca inregistrari, iar relatiile sint
reprezentate de tabele
•  Liniile = inregistrari
•  Coloanele = cimpuri
Majoritatea tipurilor actuale de sisteme de baze de date
sint relationale
Datele nu pot fi portate direct dintr-un sistem in altul, dar
acestea pot interopera, fiind accesibile prin interfete
standardizate
Modelul relational acopera:
•  Structura datelor
•  Integritatea datelor
•  Manipularea datelor
BAZE DE DATE
RELATIONALE
Principiile bazelor de date relaționale pot fi
rezumate la următoarele:
Datele din bazele de date relationale sint valori stocate în tabelele ce formeaza
baza de date.
Datele luate individual sint inutile.
Bazele de date relaționale sint compuse dintr-un set de tabele.
•  Fiecare tabel conține înregistrări (rândurile tabelului) și cimpuri (coloanele).
•  Campurile pot fi de diferite tipuri de date: alfanumeric, numeric, data/timp, Boolean,
etc
Pentru accesul la o anumita inregistrare (record) din tabel se utilizeza o cheie
(key):
•  Cheia care identifică în mod unic o înregistrare este cheia primară
•  Cheile sint parte din structura logică.
Într-o bază de date relațională o anume vizualizare a datelor (view) este, de fapt, un
tabel virtual compus dintr-un sub-set de tabele reale.
"Integritatea datelor” descrie precizia, valabilitatea și unitatea datelor existente
BAZE DE DATE
RELATIONALE
Relațiile sint create între datele stocate în tabele
diferite. O relație conectează un câmp dintr-un tabel la
un câmp dintr-un alt tabel (cele două campuri pot avea
nume diferite).
Trei tipuri de relații există:
•  One-to-one,
•  One-to-many
•  Many-to-many.
ANSI/SPARC
ARCHITECTURE

User 1 User 2 User 3

External External
External Schemas View 1 View 2

External/Conceptual Mappings
Conceptual DBA
Conceptual Schema View

Conceptual/Internal Mapping

Internal Schema Stored


Data
NIVELUL INTERN
Are de a face cu zona fizica, Internal Schema
de stocare a date: RECORD DOC
•  Structura inregistrarilor pe disk LENGTH=44
HEADER: BYTE(5)
sau in fisiere, pagini de
OFFSET=0
memorie, blocuri de disk
NAME: BYTE(25)
•  Indexarea si ordonarea OFFSET=5
inregistrarilor SALARY: FULLWORD
•  Mecanismele de transfer pe disk OFFSET=30
a tranzactiilor DEPT: BYTE(10)
OFFSET=34
NIVELUL CONCEPTUAL
Adreseaza organizarea bazei Conceptual Schema
de date ca intreg: CREATE TABLE
•  Detaliile ne-necesare de la Doctor (
nivelul fizic sint ascunse prin Name
abstractizare VARCHAR(25),
Salary REAL,
Dept_Name
VARCHAR(10))
NIVELUL EXTERN
Pune la dispozitie o vedere External Schemas
potrivita pentru utilizatorul Payroll:
obisnuit String Name
•  Portiuni ale datelor pot sa fie double Salary
ascunse din ratiuni diverse (ex.
securitate) Personnel:
•  Forma este cea mai potrivita char *Name
rolului care o utilizeaza
char *Department
MAPARI (MAPPINGS)
Maparile translateaza Physical data
informatia de la un nivel la independence
cel vecin •  Schimbari la nivel
•  Extern/Conceptual intern nu afecteaza
•  Conceptual/Intern nivelul conceptual

Acesta este mecanismul care Logical data


asigura independenta independence
datelor •  Schimbari la nivel
conceptual nu
afecteaza nivelul
extern
MODEL ENTITATE-
RELAȚIE
Exemplu de “schema” in modelul relational:
EXEMPLU DE RELATIONAL DATABASE
O schemă simplificată a unui
mediu tipic SQL
LIMBAJUL SQL
SQL = Structured Query Language
Cele mai cunoscute DBMS relaționale cu versiuni noi la fiecare doi ani
Suportat de toate sistemele majore de baze de date comerciale
Standardizat de ANSI (American National Standards Institute)
Mod de actiune declarativ, bazat pe algebra relațională
Bazat pe tranzacții pentru regasirea si actualizarea inregistrarilor
SQL este independent de aplicatiile de date (data applications) care au
acces la date prin:
•  Extensii de limbaj care permit “embedded SQL”
•  API (Application Programming Interfaces) ca ODBC/JDBC care permit
construirea de querry-uri SQL catre baza de cdate
Aplicațiile specifica ”ce” nu “cum“ intr-un limbaj potrivit utilizatorului
TIPURI/SETURI DE
COMENZI SQL

1.  Data Definition Language (DDL): comenzi care


definesc baza de date si includ crearea,
alterarea si stergerea tabelelor si a
constringerilor asociate
2.  Data Manipulation Language (DML): comenzi
care mentin si interogheaza (querry) baza de
date
3.  Data Control Language (DCL): comenzi ce
controleaza accesul la date, inclusiv controlul
privilegiilor administrative
(SUB) SETURI SQL
Data Manipulation Language: elemente de
sintaxa utilizate pentru selectarea, inserarea,
stergerea sau actualizarea datelor
• SELECT ... FROM ... WHERE ...
• INSERT INTO ... VALUES ...
• UPDATE ... SET ... WHERE ...
• DELETE FROM ... WHERE …
(SUB) SETURI SQL
Data Definition Language: elemente de sintaxa
utilizate pentru definirea structurii de date a unei
baze de date
• CREATE TABLE [table name] ( [column
definitions] ) [table parameters]
• DROP objecttype objectname
(SUB) SETURI SQL
Data Control Language: elemente de sintaxa
utilizare pentru controlul accesului la regasirea
si manipularea datelor
• GRANT SELECT
ON [database]
TO user_one;
• REVOKE SELECT
ON [database]
TO user_two
APLICATII DE BAZE DE
DATE
Este un "motor” software, care oferă o interfață între datele
fizice și interogările aplicatiei utilizator.
Exemple de aplicații SGBD (Sistem  Ges)une  a  Bazelor  de  Date)  
includ:
•  MS Access
•  Microsoft Visual FoxPro
•  Oracle
•  mySQL
•  SQL Server (Microsoft)
•  DB2 (IBM)
•  Informix
TIPURI DE ACTIVITATI
ASUPRA
BAZELOR DE DATE
OLTP - Online Transaction Processing
•  Tranzacții scurte
•  Interogări simple
•  Lucreaza cu cantitați mici de date
•  Actualizări frecvente
OLAP - Online Analytical Processing
•  Tranzacțiilor lungi
•  Interogări complexe
•  Lucreaza cu cantitați mari de date
•  Actualizări rare
BAZE DE DATE IN
MEDICINA
BAZE DE DATE SQL
Cele mai cunoscute sisteme de gestiune de baze de date (DBMS)
relaționale, cu versiuni noi la fiecare doi ani

Avantaje
•  Opțiuni avansate de agregare a datelor, statistici și rapoarte la nivel de date
•  Caracteristici bune ale tranzactiilor
•  Interogări SQL complexe, potrivite pentru (aproape) orice caz
•  O gamă largă de instrumente și software compatibil
•  Independența de “database applications”

Dezavantaje
•  Complexitate ridicata a SQL și costurile mari pentru soluții de mari dimensiuni
•  Învățarea nu este facilă
•  Probleme de scalabilitate
•  Probleme de performanță
•  Probleme de întreținere
DBMS
DMBS - DEFINITIE
Programele de acces, dezvoltare si gestionare a acestor date
sint numite Sisteme de management/gestionare a bazelor de
date (DBMS/SGDB)
Scopul principal al oricărui DBMS/SGBD este regăsirea
rapidă atunci când este căutata o data particulara in datele
stocate.
DATABASE VS. FILE
Definitia bazei de date este unanim acceptata, in limbaj
curent:
database = DBMS (Database Management
System)
In aceasta abordare este mentinut un singur loc de
stocare a datelor (single repository of data) care odata
definit este accesat de orice user.
Diferentele majore intre DB si File sint:
1.  Auto-descrierea DB (metadata)
2.  Izolare intre programe si date
3.  Suport pentru vizualizari multiple ale datelor
4.  Partajarea datelor intre mai multi utilizatori
5.  Caracterul tranzactional al procesarii
SCOPUL UNUI DBMS

Decuplarea de structura de fisiere


Dezavantajele utilizarii directe a fisierelor:
•  Redundanta inutila si inconsistenta (formate
multiple, date duplicate in fisiere diferite)
•  Dificultati de acces (fiecare interogare necesita
programe noi sau modificarea celor existente)
•  Probleme de integritate a datelor (constringerile
sint parte a programelor de interogare)
SCOPUL UNUI DBMS (2)
Dezavantajele utilizarii directe a fisierelor:
•  Actualizari individuale/atomice ale fisierelor (lipsa unei
actualizari complete, a tuturor fisierelor implicate poate
duce datele intr-o stare inconsistenta)
•  Acces concurent dificil
•  Probleme de securitate
INTRODUCERE ÎN DBMS
Un sistem de baze de date Sistemele de baze de
consta in: date permit
•  Date (the database) utilizatorilor
•  Software urmatoarele operatii
•  Hardware asupra datelor:
•  Utilizatori (users) •  Stocare (Store)
•  Actualizare (Update)
•  Recuperare (Retrieve)
•  Organizare (Organise)
•  Protejare (Protect)
FUNCTIONALITATI
TIPICE ALE DBMS
Defineste o baza de date in termeni de tipuri
de date, structura si constringeri
Construieste (Load) continutul initial pe un
mediu de stocare
Manipuleaza datele:
•  Retrieval: interogare (querying), raportare
•  Modification: inserare, stergere si actualizare
continut
•  Accessing: prin intermediul aplicatiilor
Partajeaza datele intre mai multi utilizatori si
programe simultan
CARACTERISTICI DBMS
(1)
Sistemul de Management al bazei de date (DBMS) pune la
dispozitie o modalitate eficientă, de încredere, convenabila și
sigură de stocare și acces multi-user la cantități masive de
date persistente.
sistemele de baze de date pot gestiona date la o scară masivă 
sisteme de baze de date care manipuleaza terabytes de date,
uneori chiar și terabytes de date în fiecare zi.
unul dintre aspectele critice este că datele care sint manipulate de
către sistemele de management al BD sint mult peste memoria
unui sistem de calcul obisnuit  sistemele de baze de date sint
concepute să gestioneze date care se afla în afara de memorie.
CARACTERISTICI DBMS
(2)
Sistemul de Management al bazei de date
(DBMS) pune la dispozitie o modalitate
eficientă, de încredere, convenabila și
sigură de stocare și acces multi-user la
cantități masive de date persistente.
Datele care sint manipulate de către sistemele de gestionare a bazelor
de date sint de obicei persistente (datele din baza de date continua sa
existe si dupa ce programele care prelucreaza aceste date s-au incheiat)
•  Un model de calcul tipic va începe să ruleze cu variabilele create la
pornire; cand programul se termina, datele utilizate dispar.
•  In cazul bazelor de date situatia este inversa: date exista și inainte si
dupa prelucrare. Programul se executa, opereaza asupra datelor, se
termina, dar datele vor fi în continuare acolo.
Cel mai probabil, mai multe programe vor utiliza aceleași date pentru
operare.
CARACTERISTICI DBMS
(3)
Sistemul de Management al bazei de date (DBMS)
pune la dispozitie o modalitate eficientă, de
încredere, convenabila și sigură de stocare și
acces multi-user la cantități masive de date
persistente.
sistemele de baze de date, deoarece sint utilizate in aplicații
critice trebuie să ofere garanții că datele gestionate de sistem vor
rămâne într-o stare consistentă
Datele nu vor fi pierdute, corupte sau suprascrise atunci când
există erori de software, erori de hardware, pene de curent sau
chiar probleme cu utilizatori (rău intenționați, neinstruiti, etc.)
 Sistemele de baze de date au un număr de mecanisme interne
care să garanteze că datele rămân consistente, indiferent de ceea
ce se întâmplă.
CARACTERISTICI DBMS
(4)
Sistemul de Management al bazei de date (DBMS) pune la
dispozitie o modalitate eficientă, de încredere, convenabila și
sigură de stocare și acces multi-user la cantități masive de
date persistente.

Multi-user: programele unice sau multiple pot opera pe aceeași


bază de date și permit mai multor utilizatori sau aplicații diferite sa
acceseze datele concomitent.
Atunci când mai multe aplicații lucrează pe aceleași date, sistemul
trebuie să aibă mecanisme interne care să garanteze că datele
rămân consistente.
PARTAJAREA DATELOR
SI PROCESAREA MULTI-
USER A TRANZACTIIILOR
Mecanismele în sistemele de baze de date care
asigură că datele rămân consistente sint
numite control al accesului concurent à
controlul are loc la nivelul elementelor de date
din baza de date.
Controlul concurent al accesului garanteaza
ca fiecare tranzactie este fie complet executata
fie complet anulata
•  Ex: alocarea pacientilor dintr-un spital pentru o anumita
operatie, intr-o anumita sala, intr-un anumit interval de
timp
ROLURI DBMS
Roluri cheie:
•  Implementator baze de date
•  Administrator baze de date
•  Designer de baze de date
•  Dezvoltator de aplicatii de baze de date
•  Utilizator
ROLURI DBMS
Utilizator (end user) Administrator (database
administrator - DBA)
•  Utilizeaza baza de date pentru
atingerea unui anumit scop •  gestioneaza sistemul de
Dezvoltator (application baze de date, resursele
asociate si accesul la ele
developer)
Implementator (database
•  Scrie software-ul necesar
systems programmer)
utilizatorilor pentru a interactiona
cu sistemul de baze de date •  Scrie softul de control si
Designer (database designer) de operare al bazei de
date
•  Responsabil pentru definirea
continutului, structurii,
constringerilor si functiilor ce
definesc baza de date
NIVELURI DE AUTORIZARE
A ACCESULUI
Utilizatorii văd doar datele pe Even more
care ei trebuie să le utilizeze software End user
Baza de date trebuie protejata
împotriva modificărilor
neautorizate (ex. de către More
utilizatori rau intentionati sau software Database
neexperimentati) application
DBMS developer
Utilizatorii au acces la date in
functie de privilegiile ce le sint
asociate
Data

Database
administrator
CARACTERISTICI DBMS
(5)
Sistemul de Management al bazei de date (DBMS)
pune la dispozitie o modalitate eficientă, de
încredere, convenabila și sigură de stocare și
acces multi-user la cantități masive de date
persistente.
Comoditatea este de fapt una dintre caracteristicile
esențiale ale sistemelor de baze de date. Acestea sint
concepute pentru a face mai ușor lucrul cu cantități mari de
date și pentru a face prelucrari avansate pe aceste date.
Independenta fizica a datelor constă in faptul că modul în
care datele sint stocate și puse pe disc (ex. organizarea
fisierelor) este independent de modul în care programele
inteleg structura datelor. Operațiunile asupra datelor sint
independente de modul în care datele sint pastrate.
SEPARAREA INTRE
PROGRAME SI DATE
In procesarea fisierelor orice potentiala modificare
a structurii acestora necesita o modificare a tuturor
programelor de acces la fisiere
In cazul bazelor de date structura fisierelor este
scrisa in catalogul DBMS separat de programele
de acces
Acest lucru este numit program-data
independence
CATALOG (DICTIONAR)
DATE - METADATA
Catalogul bazei de date Catalogul
stocheaza informatii despre (dictionarul) contine:
baza de date in sine •  Descrierea obiectelor
Acest tip de “date despre date” din baza de date
(tabele, utilizatori,
se numesc “metadata” reguli, view-uri, index,
Aproape orice operatie legata etc)
de un DBMS utilizeaza •  Informatii despre cine
si ce date utilizeaza
catalogul (locks)
•  Scheme (organizarea
datelor) si mappings
(legatura dintre date si
tabele)
METADATA
•  Sint date ce descriu proprietatile sau
caracteristicile altor date
•  Nu includ datele propriu-zise (sample
data)
•  Permit designerilor si utilizatorilor sa
inteleaga sensul datelor propriu-zise
EXEMPLU: METADATA &
DATA TABLE
Name Type Max Length Description
Name Alphanumeric 100 Organism name
Size Integer 10 Genome length (bases)
Gc Float 5 Percent GC
Accession Alphanumeric 10 Accession number
Release Date 8 Release date
Center Alphanumeric 100 Genome center name
Sequence Alphanumeric Variable Sequence

Name Size Gc Accession Release Center Sequence


Escherichia coli K12 4,640,000 50 NC_000913 09/05/1997 Univ. AGCTTTTC
Wisconsin ATT…
Streptococcus 2,040,000 40 NC_003098 09/07/2001 Eli Lilly and TTGAAAGA
pneumoniae R6 Company AAA…

STRUCTURA GENERALA A
SISTEMULUI
NIVELURI DE
ABSTRACTIZARE
Nivelul fizic descrie modul in care o inregistrare (record) este
stocata (ex. pacient).
Nivelul logic descrie modul in care datele sint pastrate in baza de
date si relatiile intre ele:
type pacient = record
nume : string;
adresa : string;
clinica: integer;
end;
Nivelul vizual descrie modul in care datele sint vizualizate de
catre utilizator, ascunzind detaliile ne-necesare (ex. tipul datelor)
sau datele care au fost marcate ca invizibile (masked)
NIVELURI DE
VIZUALIZARE
Sistemul de baze de date suporta vizualizari diferite,
simultane si concurente
Fiecare utilizator poate vizualiza doar datele de interes,
persistente sau temporare (virtuale) ce sint derivate din cele
stocate permanent, dar care nu sint explicit pastrate ca atare
VIZUALIZAREA DATELOR
Pentru un sistem generic de baze de date avem urmatoarea arhitectura:
EXEMPLU: DATA
INDEPENDENCE
Logical view
Lectori: Lectori curs:
id fName lName id cid
15901 Elena Poenaru 15901 130128
... ...

Cursuri: cid Title Year


130128 IM 2015
...

Lectors_file Courses_title_index_file

Lectors_fname_index_file Courses_file Physical view

67
ARCHITECTURA APLICATIILOR

 Two-tier architecture: programele/aplicatiile client comunica direct cu


baza de date utilizind un API (Application Programming Interface) (ex.
ODBC/JDBC)
 Three-tier architecture: programele/aplicatiile comunica cu baza de
date prin intermediul unui nivel intermediar numit “middleware” (ex.
aplicatii web)
CARACTERISTICI DBMS
(6)
Sistemul de Management al bazei de date (DBMS) pune la dispozitie o
modalitate eficientă, de încredere, convenabila și sigură de stocare și
acces multi-user la cantități masive de date persistente.

Eficiența: cea mai importanta caracteristica a bazelor de date este


faptul că cele mai importante trei lucruri ale unui sistem de baze de
date sint: performanța, performanța și din nou performanța.

Sistemele de baze de date trebuie să faca mii de interogări sau actualizări


pe secundă  acestea pot fi operațiuni extrem de complexe
 Construirea unui sistem de baze de date, care poate executa interogări
complexe, la rate mari, peste cantități gigantice de date (terabytes) nu este
o sarcină simplă, iar performanta este una dintre caracteristicile majore ale
unui sistem de management de baze de date.
CARACTERISTICI DBMS
(7)
Sistemul de Management al bazei de date (DBMS) pune la dispozitie o
modalitate eficientă, de încredere, convenabila și sigură de stocare și
acces multi-user la cantități masive de date persistente.

Încredere: este extrem de important ca sistemele critice (ex. bancar,


telecom, sistemele de sănătate, etc.) să fie tot timpul active

à 99.99999% timp de functionare este un exemplu de


garanție că sistemele de gestionare a bazelor de date
pot sa serveasca aplicații critice.
 atunci când avem nevoie să construim o aplicatie
care implică date critice, este important să avem toate
aceste caracteristici grupate la un loc  DBMS.
CONCLUZIE: CE FACE UN
DBMS
Furnizeaza utilizatorilor: DBMS furnizeza
•  Data definition language (DDL) •  Persistenta
•  Data manipulation language •  Concurenta
(DML) •  Integritate
•  Data control language (DCL) •  Securitate
Adesea acestea au acelasi •  Independenta datelor
limbaj Dictionarul datelor
•  Descrierea datelor (the
database itself)
CONCLUZIE: CE E UN
DBMS
Un sistem de management de baze de date
(DBMS) este un ansamblu software care permite
crearea de baze de date și manipularea continutului
lor (date)
CONCLUZIE: CE
AVANTAJELE ARE DBMS
•  Independența program – date
•  Redundanța minima a datelor (back-up &
recuperare)
•  Coerența și calitatea datelor îmbunătățită
•  controlul accesului
•  controlul tranzacției
•  Îmbunătățirea accesibilității și schimbul de date
•  Creșterea productivității de dezvoltare de
aplicatii
•  Forteaza standardizarea
APLICATII

HOSPITAL INFORMATION
SYSTEMS
CE ESTE HIS?
Un sistem informatic de spital (HIS) este un element al Health
Informatics care se concentrează în principal pe nevoile
administrative ale spitalelor.
Una dintre cele mai importante probleme este de servicii de
îngrijire a sănătății
Cea mai utilizata referință (Wikipedia) defineste HIS:
"Un sistem informatic de spital (HIS) este un element de
informatică de sănătate care se concentrează în principal pe
nevoile administrative ale spitalului. În multe implementări, un
HIS este un sistem de informații cuprinzător, integrat, destinat
să gestioneze toate aspectele de funcționare ale unui spital,
cum ar fi probleme medicale, administrative, financiare și
juridice și cat si prelucrarea corespunzătoare a serviciilor
asociate acestora."
CE ESTE HIS?
CIS (Clinical Information Systems) este
uneori separat de HIS în sensul în care
primul se concentreaza pe datele
referitoare la starea clinica (dosarul
electronic) a pacientului, iar cel din urmă
ține evidența problemelor administrative
legate de pacient.
Distincția nu este întotdeauna clara și există
dovezi contradictorii împotriva unei utilizări
consecvente a ambilor termeni.
CE ESTE HIS?
HIS este un sistem format din mai multe componente, cu
extensii specifice pentru fiecare functie speciala:
•  Sistem informatic de laborator (LIS),
•  Politici organizationale și sistemul de management operational
•  Sistemul de Informații de Radiologie (RIS)
•  Arhivare imagini si sistem de comunicare (PACS)
•  Electronic Health Record (DES)
HIS ia în considerare toate grupurile de activitati de spital:
•  secții
•  unități de ambulatoriu
•  unități de servicii medicale (diagnostic, terapie, altele)
•  departamente administrative
•  management si unități executive
HIS are ca subiect principal stocarea datelor (DW) si prin urmare are un
model mai static de gestionare a informațiilor.
CE ESTE HIS?
HIS trebuie să ia în considerare toate grupurile de persoane …
•  medici
•  asistente medicale
•  personal administrativ
•  personal tehnic
•  Informaticieni/manageri de informații medicale

... si nu in ultimul rand, grupurile externe:


•  pacienți
•  vizitatori
•  furnizori
•  ...
STRUCTURA GENERICA
A HIS
Intro date Monitor Module Financiar
& vizionare Logice
Laborator Evenimente
Resultate Medicale

Codificari
Specializate

Farmacie Interfata
Database
Dictionar
entitati
Medicale

Radiologie

Baza date
Baza date pacient
cercetare
INFORMATII DIN HIS
HIS pune la dispozitie:
•  informații, în primul rând despre pacienți, asigurandu-se ca
acestea sint corecte, pertinente și actuale, furnizate la timp si
accesibile de catre persoanele potrivite, la locul potrivit, într-un
format utilizabil imediat
•  cunoștințe, în primul rând despre boli, dar si despre modul lor
de abordare, de tratament, moduri si efecte de interacțiune
intre medicamente, pentru a sprijini diagnosticul și terapia
•  rapoarte despre calitatea ingrijirii pacientilor, performantele
spitalului și costurile asociate
TIPURI DE DATE
UTILIZATE
Tipuri de date de sănătate utilizate de HIS:
Date specifice de pacient
•  Datele clinice
•  Date administrative
•  Date financiare și de facturare
Date agregate de sănătate
•  Index de boli și proceduri
•  Rapoarte cost
•  Statistici de sănătate publica
•  Măsuri rezultate
•  Index de performanta
TIPURI DE ACTIUNI
Resursele de calcul sint utilizate în general pentru următoarele
activitati:
•  Sprijin administrativ - planificarea administrativă și logistică legata de ingrijirea
pacientului si de interventiile necesare.
•  Colectare a datelor pacientului - achiziționarea, stocarea și regăsirea datelor
pacientului (ex. examenele clinice, biosemnale, imagini, etc.), verificarea,
codificarea și prelucrarea lor, precum și integrarea tuturor datelor într-o
prezentare cuprinzătoare.
•  Decizii - Simularea intervențiilor prin utilizarea de modele, suport pentru
procesul decizional legat de diagnostic și tratament.
•  Monitorizare - Monitorizarea și evaluarea terapiei (medicamentoase si nu
numai).
•  Raportare - Generarea de rapoarte (ex. după externarea pacientului din
spital).
•  Evaluare - Evaluarea efectului ingrijirilor ce au fost furnizate pacientului
asupra starii sale.