Documente Academic
Documente Profesional
Documente Cultură
Data Management
Application
Query Query
Query
Data
Example: At a Company
Query 1: Is there an employee named Nemo? Query 2: What is Nemos salary? Query 3: How many departments are there in the company? Query 4: How many employees have Salary >= 80K? Query 5: What is the name of Nemos department? Query 6: How many employees are there in the Accounts department? Employee
ID 10 20 40 52 Name Nemo Dory Gill Ray DeptID 12 156 89 34 Salary 120K 79K 76K 85K
Department
ID 12 34 89 156 Name IT Accounts HR Marketing
Answer Translates Q into best execution plan for current conditions, runs plan
DBMS
Data
Cars
Make Honda Toyota Mini Honda Model Accord Camry Cooper Accord OwnerID 12 34 89 156
Owners
ID 12 34 89 156 Name Nemo Ray Gill Dory Age 22 42 36 21
Answer Translates Q into best execution plan for current conditions, runs plan
DBMS
Keeps data safe and correct despite failures, concurrent updates, online processing, etc.
Data
DBMS is multi-user
Example
Get account balance from database; If balance > amount of withdrawal then balance = balance - amount of withdrawal; dispense cash; store new balance into database;
Homer at ATM1 withdraws $100 Marge at ATM2 withdraws $50 Initial balance = $400, final balance = ? Should be $250 no matter who goes first
read balance; $400 if balance > amount then balance = balance - amount; $3 write balance; $350
if balance > amount then balance = balance - amount; $300 write balance; $300
if balance > amount then balance = balance - amount; $300 write balance; $300 if balance > amount then balance = balance - amount; $3 write balance; $350
Recovery in DBMS
Example: balance transfer decrement the balance of account X by $100; increment the balance of account Y by $100; Scenario 1: Power goes out after the first instruction Scenario 2: DBMS buffers and updates data in memory (for efficiency); before they are written back to disk, power goes out Log updates; undo/redo during recovery
Answer Translates Q into best execution plan for current conditions, runs plan
DBMS
Keeps data safe and correct despite failures, concurrent updates, online processing, etc.
Data
Motivation
Relational databases are tuned towards: simple data simple, ad-hoc queries multiple users Other models are more suitable for other types of data Object-Oriented, Deductive, Semi-Structured Databases, Data warehouses
Deductive Databases
Motivation is two-fold:
add deductive capabilities to databases; the database contains:
facts (intensional relations) rules to generate derived facts (extensional relations)
Deductive Databases
Datalog as engine of deductive databases
similarities with Prolog has facts and rules rules define -possibly recursive- views
Deductive Databases
g(a,b). g(b,c). g(a,d). reach(X,X) :- g(X,Y). reach(X,Y) :- g(X,Y). reach(X,Z) :- reach(X,Y), reach(Y,Z). node(X) :- g(X,Y). node(Y) :- g(X,Y). unreach(X,Y) :- node(X), node(Y), not reach(X,Y).
Deductive Databases
In this topic we study:
How to handle negation and recursion in the same program How to efficiently evaluate Datalog queries
OO Databases
Many applications require the storage and manipulation of complex data
design databases geometric databases
OO Databases
Very simple example:
Class book
set of authors title set of keywords
OO Databases
In many applications persistency of the data is nevertheless required
protection against system failure consistency of the data
Mapping: object in OO language tuples of atomic values in relational database is often problematic
OO Databases
Title Database System Concepts Database System Concepts Database System Concepts Database System Concepts Database System Concepts Database System Concepts
OO Databases
Or we go to 4NF
Title Database System Concepts Database System Concepts Database System Concepts Title Database System Concepts Database System Concepts Author Silberschatz Korth Sudarshan Keyword Database Storage
OO Databases
Basically OODB = persistent OO programming language
Very important concept rather uninteresting scientifically
sources
Operational Extract Transform Load Refresh
OLAP Server
Analysis
Query/Reporting
DBs
Data Warehouse
Serve
Data Mining
Data Marts
ROLAP Server
Data Sources
Data Storage
XML
Why is XML important?
simple open non-proprietary widely accepted data exchange format
no fixed structure
user-defined schemas
XML
<PersonList Type="Student" Date="2004-12-12"> <Title Value="Student List"/> <Contents> <Person> <Name>Jan Vijs</Name> <Id>11</Id> <Address> <Number>123</Number> <Street>Turnstreet</Street> </Address> </Person> <Person> <Id>66</Id> <Address> <Street>Hole Rd</Street> </Address> </Person> </Contents> </PersonList>
XML
In this topic:
XML XQuery, XSLT LiXQuery
Loader
Table R Table S
Result
Input streams
DBMS
TeraBytes PetaBytes
Data
<CD> <TITLE>Empire B.</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia </COMPANY> <PRICE>10.90</PRICE> </CD>