32
COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) Project IB_JEP-41148-2006 (RS) University of Ni University of Ni š š Faculty of Electronic Faculty of Electronic Engineering Engineering Department of Computer Science Department of Computer Science

COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Embed Size (px)

Citation preview

Page 1: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

COURSE: DATABASESProf.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović

Project IB_JEP-41148-2006 (RS)Project IB_JEP-41148-2006 (RS)

University of NiUniversity of NiššFaculty of Electronic EngineeringFaculty of Electronic EngineeringDepartment of Computer ScienceDepartment of Computer Science

Page 2: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

General information

Course: Databases Lecturers and authors of materials

Prof. dr Leonid Stoimenov Mr. Aleksandar Stanimirović Dipl. ing. Miloš Bogdanović

Scheduled: June 19.,20.,21 2009. Lessons:

3 sections 8 lessons

Page 3: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Goals

Basics of relational databases How to create relational database How to query data How to manipulate data Database applications

MS Access ADO.NET Desktop and Web applications

Page 4: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Literature

D.Kroenke, D.Auer, Database Concepts, Third Edition, Pearson Prentice Hall, 2008.

S.Đorđević-Kajan, L.Stoimenov, Baze podataka, praktikum za vežbe na računaru, Elektronski fakultet u Nišu, Edicija pomoćni udžbenici, 2004.

R. Elmastri & S. Navathe, Fundamentals of Database Systems, Pearson International Education, Addison Wesley, 5th edition, 2007.

Page 5: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lessons overview

Section I : Introduction: Lesson 1: Databases and relational model

Section II : SQL Lesson 2: Data definition (CREATE TABLE) Lessons 3 and 4: Queries (SELECT) Lesson 5: Data manipulation (INSERT, UPDATE,

DELETE) Section III: Application development

Lesson 6: MS Access – applications, forms, reports Lesson 7: ADO.NET Lesson 8: Desktop and Web database applications

Page 6: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

COURSE: Databases

Section I : Databases and relational model

Page 7: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 1: Databases and relational model

Introduction Database Database Management System (DBMS)

Data models Categories of Data models

Relational data model Characteristics of Relations Examples Key constraints Referential integrity and foreign keys

Exercises

Page 8: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 1: Databases and relational model

Relational databases What are relational databases? Relations represented as two-dimensional tables Table columns Table rows Constraints

Database Management System (DBMS) What is Database Management System? Basic components

Database applications Exercises

Page 9: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 1: Databases and relational model

Personal DBMS

Page 10: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 1: Databases and relational model

Company DBMS

Page 11: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 1: Databases and Relational model

Example: Database PREDUZEĆE (COMPANY)RADNIK

LIME SSLOVO PREZIME MATBR DATRODJ POL ...

... PLATA ADRESA MATBROJS BRSEK

PROJEKAT

NAZIV LOKPR BROJPR BRS

SEKTOR

NAZIV SBROJ MATBRR DATPOST

CLAN_PORODICE

MATBRRAD IME POL SRODSTVO DATRODJ

LOK_SEKTOR RADI_NA

BRS LOKACIJA MBR BRPR SATI

Page 12: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 1: Databases and Relational model

Exercises

Zadatak 7: Baza podataka PREDUZEĆE

Na osnovu navedenih zahteva projektovati relacionu šemu baze podataka PREDUZEĆE.

Zahtevi:

Preduzeće ima više sektora. Svaki sektor ima ime, broj i rukovodioca. Sektor ima bar

Zadatak 4: Relacije

Na osnovu zahteva koji su dati prepoznati relacije i njihove atribute, definisati odgovarajuće tabele i njihove primarne ključeve:

(a) Brod: brod ima ime, registracioni kod, bruto nosivost, i godina igradnje.

Restoran: restorani imaju naziv, adresu, broj mesta, telefon, i vrstu hrane (roštilj, riba, pice).

Page 13: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

COURSE: Databases

Section II: SQL

Page 14: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 2: SQL and Data Definition

Introduction Database PREDUZEĆE (COMPANY)

Tables (definitions and structure) Test data

SQL and Data Definition (CREATE TABLE)

Data types Column constraints Table constraints

Exercises: MS Access

Page 15: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 2: SQL and Data Definition

Example: Database PREDUZEĆE (Company)

Page 16: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lessons 3 i 4: Queries (SELECT)

SELECT keyword SELECT and FROM

clauses WHERE clause ORDER BY clause Arithmetic and

aggregate functions Exercises: MS Access

GROUP BY and HAVING clauses

Table joins Cartesian product

(cross-join) Different types of

table joins Combining results

from multiple queries

Page 17: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lessons 3 and 4: Queries (SELECT)

SELECT MAX(Plata) AS MaxPlata, MIN(Plata) AS MinPlata, AVG(Plata) AS ProsPlata, SUM(Plata) AS UkPlata

FROM RADNIK;

Primer 16

MaxPlata MinPlata ProsPlata UkPlata

55000 25000 34875 279000

SELECT MAX(Plata) AS MaxPlata, MIN(Plata) AS MinPlata, AVG(Plata) AS ProsPlata, SUM(Plata) AS UkPlata

FROM RADNIK;

Primer 16

MaxPlata MinPlata ProsPlata UkPlata

55000 25000 34875 279000

SELECT R.MatBr, R.ime, R.Prezime, P.Naziv FROM RADNIK R, RADI_NA RN, PROJEKAT P WHERE R.MatBr = RN.Radnik AND RN.Projekat = P.Broj AND R.pol = 'Ž';

Primer 11

MatBr ime Prezime Naziv

999887777 Valentina Kovačević Godišnji izveštaj

999887777 Valentina Kovačević Reorganizacija

987654321 Aleksandra Petrović Godišnji izveštaj

987654321 Aleksandra Petrović Informacioni sistem

453453453 Jelena Janković ProizvodX

453453453 Jelena Janković ProizvodY

SELECT R.MatBr, R.ime, R.Prezime, P.Naziv FROM RADNIK R, RADI_NA RN, PROJEKAT P WHERE R.MatBr = RN.Radnik AND RN.Projekat = P.Broj AND R.pol = 'Ž';

Primer 11

MatBr ime Prezime Naziv

999887777 Valentina Kovačević Godišnji izveštaj

999887777 Valentina Kovačević Reorganizacija

987654321 Aleksandra Petrović Godišnji izveštaj

987654321 Aleksandra Petrović Informacioni sistem

453453453 Jelena Janković ProizvodX

453453453 Jelena Janković ProizvodY

Page 18: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 5: Data manipulation

Adding new rows Modifying existing rows Deleting existing rows Modifying relational database scheme

Deleting tables Modifying tables

Primer 6

U ovom primeru se koristi UPDATE...SET naredba da bi se lokacija projekta čiji je broj 5 promenila na vrednost 'Beograd'.

UPDATE PROJEKAT SET Lokacija = 'Beograd' WHERE Broj = 5;

PROJEKAT

Broj Naziv Lokacija Sektor

1 ProizvodX Niš 5

2 ProizvodY Pirot 5

Primer 6

U ovom primeru se koristi UPDATE...SET naredba da bi se lokacija projekta čiji je broj 5 promenila na vrednost 'Beograd'.

UPDATE PROJEKAT SET Lokacija = 'Beograd' WHERE Broj = 5;

PROJEKAT

Broj Naziv Lokacija Sektor

1 ProizvodX Niš 5

2 ProizvodY Pirot 5

Page 19: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

COURSE: Databases

Section III: Application development

Page 20: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lekcija 6: MS Access – applications, forms, reports

Introduction Forms Reports Macros Access application

Page 21: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lesson 7: ADO.NET

ADO.NET basics ADO.NET data providers ADO.NET direct data access Connection object Command object DataReader object DataSet object and connectionless data

access SqlConnection conn = new SqlConnection(); String strSQL = “Select * from RADNIK”; SqlCommand comm = new SqlCommand(strSQL, conn); SqlCommand newComm = new SqlCommand(); newComm.Connection = conn; newComm.CommandText = strSQL;

SqlConnection conn = new SqlConnection(); String strSQL = “Select * from RADNIK”; SqlCommand comm = new SqlCommand(strSQL, conn); SqlCommand newComm = new SqlCommand(); newComm.Connection = conn; newComm.CommandText = strSQL;

Page 22: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Lekcija 8: Desktop and Web database applications

Introduction Windows Forms controls data bindings ASP.NET controls data bindings

DataGridView dgv = new DataGridView(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=localhost;User Id=admin;Password=admin;Initial Catalog=PREDUZECE;"; String strSQL = "Select * from RADNIK"; SqlCommand comm = new SqlCommand(strSQL, conn); SqlDataAdapter adapter = new SqlDataAdapter(comm); DataSet ds = new DataSet(); try { conn.Open(); adapter.Fill(ds, "Radnik"); conn.Close(); dgv.DataSource = ds.Tables["Radnik"]; dgv.Width = this.Width; this.Controls.Add(dgv); } catch(Exception exc) { //obrada izuzetka }

DataGridView dgv = new DataGridView(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=localhost;User Id=admin;Password=admin;Initial Catalog=PREDUZECE;"; String strSQL = "Select * from RADNIK"; SqlCommand comm = new SqlCommand(strSQL, conn); SqlDataAdapter adapter = new SqlDataAdapter(comm); DataSet ds = new DataSet(); try { conn.Open(); adapter.Fill(ds, "Radnik"); conn.Close(); dgv.DataSource = ds.Tables["Radnik"]; dgv.Width = this.Width; this.Controls.Add(dgv); } catch(Exception exc) { //obrada izuzetka }

Page 23: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

COURSE: Databases

Course implementation

Page 24: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Course implementation

Lessons schedule Databases and relational model – May 25 Data definition (CREATE TABLE) – May 29 Queries (SELECT) – June 2 Data manipulation (INSERT, UPDATE, DELETE) –

June 5 MS Access – applications, forms, reports – June

9 ADO.NET – June 12 Desktop and Web database applications – June

15

Page 25: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Course implementation

Lessons were created using exeLearning

Page 26: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Course implementation

Moodle course with imported SCORM packages

Page 27: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Course implementation

Lesson 1 (SCORM package)

Page 28: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Course implementation

Moodle calendar

Page 29: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Course implementation

Moodle forum

Page 30: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Course implementation

Moodle assigment

Page 31: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

Course implementation

Moodle quiz

Page 32: COURSE: DATABASES Prof.dr Leonid Stoimenov, mr Aleksandar Stanimirović, dipl.ing Miloš Bogdanović Project IB_JEP-41148-2006 (RS) University of Niš Faculty

DATABASES

Contact info